Jump to content
Sign in to follow this  
Taimon

Random notes

Recommended Posts

I'm planning to use this topic for various information that I found in the executable, but that probably doesn't deserve it's own topic. Will update it, as soon as I come across something interesting.

So here goes:

 

1. The dword at 0x38 in the area actors structure stores the time (in ingame seconds) when the creature will be removed from the area. That also means that the actor will not be spawned if the value is <= the current ingame time. Default value is -1, which skips the check.

I guess this is how the engine determines when to remove corpses, etc. from the area.

 

2. spell.ids:

4xxx => SPCLxxx (already known, but not clear in the IESDP)

nxxx => MARWxxx (for n != 1-4)

 

3. Effect 0x08D (Lighting Effects):

Param1 selects what coordinates and which object id gets passed to the animation.

0 means: use the current location and the object id from the creature that the effect is applied to.

And everything else means: use the target location from the effect and a standard (invalid) object id.

 

4. Most of the RES variants of the spell actions take an additional int parameter, which specifies the caster level. This does not work in SpellRES and ApplySpellRES, but pretty much everything else. (ForceSpellRES, ForceSpellPointRES, ...)

Share this post


Link to post
1. The dword at 0x38 in the area actors structure stores the time (in ingame seconds) when the creature will be removed from the area.
Can you tell what the two words at 0x3c do (it's something evil, whatever it is)? Edited by devSin

Share this post


Link to post

What script uses the MARW* spells?

 

I see the MARW string in all .exe except bg1 and pst.

Edited by Avenger

Share this post


Link to post
The Daer'Ragh spells are MARW.

THAT much i know, as the spell name says so :hm:

spell.ids doesnt' contain these numbers.

I need to know if a script uses 0 for n, or 5, or whatever, because i planned to use other prefixes (and n) which would clash with this feature.

Edited by Avenger

Share this post


Link to post

No script (nothing at all in the history of IE actually) uses MARW. I think he put support there along with his spells just to be cute.

Share this post


Link to post
Can you tell what the two words at 0x3c do (it's something evil, whatever it is)?

Now how did you know that (it's evil)? :hm:

And how did you know it's actually two words and not a dword?

 

0x3c is used in the random walk action (again *sigh*).

I'm only guessing, but it seems to restrict the maximum walking distance. The value is compared to the weight/height of the viewport. If it's lower (and not zero) it gets used.

 

0x3e looks like something that got cut. It gets referenced in move to object actions but directly before use, it is set to zero. Like 0x3c it looks like some kind of distance restriction (from home location?). One execution path leads to an target unreachable trigger.

But like I said, it seems to be disabled.

Edited by Taimon

Share this post


Link to post

Because the Hendricks use 0x0a000a00 here, and they're completely unable to move. They are frozen in place, unable to RunAwayFrom() or do much of anything as long as they're neutral (I can't remember if going hostile frees them or if they were stuck like that too).

 

They can talk, they can turn, but they can't take a step in any direction. Now that you can see what it is, it's obvious what they were trying to do (DON'T LEAVE THE CHICKENS!), but it doesn't work at all except to break things.

Share this post


Link to post

I did catch Enna taking one tiny step. :hm:

 

If you increase the value at 0x3c (let say 0xff) they will wander around.

Share this post


Link to post

10 pixels is very small distance for movement.

So,

0x3c - max X distance from starting point

0x3e - max Y distance from starting point :hm:

Share this post


Link to post
So,

0x3c - max X distance from starting point

0x3e - max Y distance from starting point :hm:

No, the two values are independent of each other.

0x3c for RandomWalk() and 0x3e for everything that has to do with moving to an object (even Attack()), but 0x3e is disabled (overwritten with 0 before use).

Share this post


Link to post

5. GAM v2.0 Offset 0x64

This is a worldmap related value that signals one of the following:

3 = do xnewarea.2da processing upon loading

4 = an area was added to the worldmap (do not process xnewarea.2da anymore)

5 = we are in ToB

Share this post


Link to post

Nice.

 

+0xf4 in the character section is the big unknown left here. (+0xf4 seems to just be a InParty toggle; +0xf5-6 unknown; and +0xf7 always has some value between like 40-100)

Share this post


Link to post

Small update on the 0x64:

The value is also used to enforce XP limits when loading the pc's/npc's.

0 = use BG1 limit (89000)

1 = use TotSC limit (161000)

3 = use SoA limit (2950000)

 

So it's rather some "progress indicator" or something.

The standard baldur.gam in my installation has it set at 3. And immediatly when starting a new game (before char creation) it will process the xnewarea.2da and advance it to 4.

 

 

Will take a look at the unknown in the char stats.

Share this post


Link to post
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...