I like the first one best! It's much cleaner and simpler. And the lighting's great!
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenuQuote from: Ashen on Thu 27/10/2005 22:20:16
fovmester:
Obvious one, but do you have a GUI at y=220 that might be blocking clicks? I've had that problem with a statusline GUI (mostly transparent, and I forgot it was there), but once I made it non-clickable it was fine.
Quote from: Elliott Hird on Wed 26/10/2005 19:03:40
PreloadChunk(int milliseconds, BlockingStyle blocking)
Quote from: Iv4n on Sun 23/10/2005 20:44:39Well he doesn't really show ALL his cards. Not many at all in fact.
Yeah, I just wanted to metion the cursor mode issue too and that I like the trees. Somewhat I don't like much is when Tom meets the evil wizrard. They talk too much! I mean a real evil wizzard shouldn't show all his playing cards, especially at the beginning, right? Maybe this is a way to tell a story, but somehow it's strange and it doesn't fit for me.
Quote from: Pablo on Sun 23/10/2005 15:44:06
I didn't like it when the cursor mode automatically changes to walk mode when you click on something, but otherwise it's a very cool interface.
Quote from: Ozzie on Sat 22/10/2005 13:23:27
The problem with the trees isn't that they aren't enough detailed, they are, but from the way you draw them they look a bit unnatural, strange. It's not a big thing, they are ok, but it stood out for me. When I think about it, it was only the big tree on the second screen which was so striking in this regard.
The graphics as a whole are more than pleasant enough to not distract from the plot/action, much more, the animations for example of the drummer, flute player and the dancers are extraordinary. Also, you clearly get better the more backgrounds you create. Maybe you just have to find a way to draw some trees better in the future, however, the most important thing is that you finish it. Of course that doesn't mean that you should rush it but on this quality level this will already become one of the best AGS games ever, I guess!
Quote from: Gilbot V7000a on Sat 22/10/2005 11:39:10
Hehe, but since from his codes he's using the "latest stable version" (i.e. V2.7), fixing it would mean he'll need to upgrade to the "not yet stable version" (i.e. V2.71), and he may need to update the string codes for his game to work... unless you compile a service release binary of the V2.7 engine.
string objectText;
string commandText;
int default = 1; //no inv,ch,hot or obj
if (Mouse.Mode==eModeWalkto) {
StrCopy(commandText, "Walk to");
default = 0;
}
if (Mouse.Mode==eModeUseinv) {
string invName;
InventoryItem *in = cTom.ActiveInventory;
if (in!=null) {
in.GetName(invName);
StrCopy(commandText, "Use ");
StrCat(commandText, invName);
StrCat(commandText, " with");
default = 0;
} else StrCopy(commandText, "Use");
}
int x = mouse.x;
int y = mouse.y;
Hotspot *hot = Hotspot.GetAtScreenXY(x, y);
Object *obj = Object.GetAtScreenXY(x,y);
Character *ch = Character.GetAtScreenXY(x, y);
InventoryItem *inv = InventoryItem.GetAtScreenXY(x,y);
if (inv != null) { //if clicking on inventory item don't show char,obj or hotspot text
obj = null; ch = null;
}
if (obj!=null && ch!=null) {//making sure the object or the char in front gets handled
if (obj.Y > ch.y) ch = null;
else obj = null;
}
string buffer;
if (inv != null) {
default = 0;
inv.GetName(objectText);
if (Mouse.Mode==eModeLookat) {
inv.GetPropertyText("Look at", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModeInteract) {
inv.GetPropertyText("Use", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModeTalkto) {
inv.GetPropertyText("Talk to", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModePickup) {
inv.GetPropertyText("Pick up", buffer);
StrCopy(commandText, buffer);
}
} else if (hot != hotspot[0]) {
default = 0;
hot.GetName(objectText);
if (Mouse.Mode==eModeLookat) {
hot.GetPropertyText("Look at", buffer); //gets the appropriate text for the look-command
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModeInteract) {
hot.GetPropertyText("Use", buffer);//gets the appropriate text for the use-command
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModeTalkto) { //gets the appropriate text for the talk to-command
hot.GetPropertyText("Talk to", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModePickup) { //gets the appropriate text for the pickup-command
hot.GetPropertyText("Pick up", buffer);
StrCopy(commandText, buffer);
}
} else if (obj != null) {
default = 0;
obj.GetName(objectText);
if (Mouse.Mode==eModeUseinv && obj.GetProperty("noWalkView")==1) {
//this is a hack to differ between living
//and not living objects: GetProperty("noWalkView")==1 for living things
string invName;
InventoryItem *in = cTom.ActiveInventory;
if (in!=null) {
in.GetName(invName);
StrCopy(commandText, "Give ");
StrCat(commandText, invName);
StrCat(commandText, " to");
default = 0;
} else {
ch.GetPropertyText("Use", buffer);
StrCopy(commandText, buffer);
}
} else if (Mouse.Mode==eModeLookat) {
obj.GetPropertyText("Look at", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModeInteract) {
obj.GetPropertyText("Use", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModeTalkto) {
obj.GetPropertyText("Talk to", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModePickup) {
obj.GetPropertyText("Pick up", buffer);
StrCopy(commandText, buffer);
}
} else if (ch != null) {
default = 0;
StrCopy(objectText,ch.Name);
if (Mouse.Mode==eModeUseinv) {
string invName;
InventoryItem *in = cTom.ActiveInventory;
if (in!=null) {
in.GetName(invName);
StrCopy(commandText, "Give ");
StrCat(commandText, invName);
StrCat(commandText, " to");
default = 0;
} else {
ch.GetPropertyText("Use", buffer);
StrCopy(commandText, buffer);
}
} else if (Mouse.Mode==eModeLookat) {
ch.GetPropertyText("Look at", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModeInteract) {
ch.GetPropertyText("Use", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModeTalkto) {
ch.GetPropertyText("Talk to", buffer);
StrCopy(commandText, buffer);
} else if (Mouse.Mode==eModePickup) {
ch.GetPropertyText("Pick up", buffer);
StrCopy(commandText, buffer);
}
} else StrCopy(objectText,"");
if (default==1) { //not over anything special
if (Mouse.Mode == eModeLookat)
StrCopy(commandText, "Look at");
else if (Mouse.Mode == eModeTalkto)
StrCopy(commandText, "Talk to");
else if (Mouse.Mode == eModePickup)
StrCopy(commandText, "Pick up");
else if (Mouse.Mode == eModeInteract)
StrCopy(commandText, "Use");
}
string text;
StrCopy(text, commandText);
StrCat(text, " ");
StrCat(text, objectText);
if (player.Room == 0) StrCopy(text, ""); //in titlescreen
//display text
gLabel.Controls[0].AsLabel.SetText(text);
QuoteMy gut feeling would be that I would suspect this code most. I'm not sure why resizing a GUI to the text it contains would be necessary, unless the GUI provides a border or backgroudn to the text. Maybe there's a memory leak in the GUI resizing code in AGS: does the GUI have a BG image that gets clipped? Mayeb the dynamic sprite I guess that is created for the clipped background doesn't get cleared up properly, or something? The declaring of the pointers shouldn't matter as they just create another reference to an existing object...
Hotspot *hot = Hotspot.GetAtScreenXY(x, y);
Object *obj = Object.GetAtScreenXY(x,y);
Character *ch = Character.GetAtScreenXY(x, y);
InventoryItem *inv = InventoryItem.GetAtScreenXY(x,y);
string buffer;
Overhp.GetText(buffer);
int width = GetTextWidth(buffer, Overhp.Font);
if (width>=0 && width<320) {
Overhp.Width = width + 1;
gLabel.Width = width + 1;
}
#define SPEED 4
#define CONSTANT 0
#define STD_SPEED 2
struct FaderGui {
short fading;
int speed;
// fading:
// less than CONSTANT = fade out,
// equal to CONSTANT = don't fade
// larger than CONSTANT = fade in
};
FaderGui guis[AGS_MAX_GUIS];
static function GUIFader::fadeInGUI(int guiNbr,int speed) {
guis[guiNbr].fading = 1;
guis[guiNbr].speed = speed;
}
static function GUIFader::fadeOutGUI(int guiNbr,int speed) {
guis[guiNbr].fading = -1;
guis[guiNbr].speed = speed;
}
function repeatedly_execute_always() {
int nbrOfGuis = GetGameParameter(GP_NUMGUIS, 0, 0, 0);
int count = 0;
while (count < nbrOfGuis) {
GUI *theGUI = gui[count];
int trans = theGUI.Transparency;
if (guis[count].fading > CONSTANT) {
//fade in
trans-=guis[count].speed;
if (trans<=0) {
trans = 0;
guis[count].fading = CONSTANT;
}
theGUI.Transparency=trans;
} else if (guis[count].fading < CONSTANT) {
//fade out
trans+=guis[count].speed;
if (trans>=100) {
trans = 100;
guis[count].fading = CONSTANT;
}
theGUI.Transparency=trans;
}
count++;
}
}
function repeatedly_execute_always() {
if (mouse.y < 20) gGUI.Enable();
else gGUI.Disable();
}
By continuing to use this site you agree to the use of cookies. Please visit this page to see exactly how we use these.
Page created in 0.061 seconds with 14 queries.