Jump to content

Random notes


Taimon

Recommended Posts

+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)

Forgot about that one - it was rather boring.

0xf4 is just what you guessed, only a bool to keep track of in-party-status for the time statistics.

0xf5/0xf6 are as far as I can tell unused.

0xf7 is an ASCII character related to the CRE name. '*' comes to mind here.

Also shares the same field in the CGameSprite class with the actor+0x2e byte.

 

But I have something a little more interesting:

The item abilities have an alternative set of dice values and damage bonus.

They get used when the target has bit 13 of the CRE flags (quest critical?) set.

0x03 is alternative dice sides. (byte)

0x11 is alternative dice thrown. (byte)

0x13 is alternative damage bonus. (byte)

Link to comment
0xf7 is an ASCII character related to the CRE name. '*' comes to mind here.
Yeah, this byte is always 0x2a in the GAM, I think, but it ranges in the saved AREs (I think I posted years ago my suspicion that these two were related, so maybe the range isn't as great as I think).

 

So just a remnant of attaching CRE resources (not important to figure out why they're storing it in any case)?

 

But I have something a little more interesting:
These show up in a fair number of BG items, but no CRE ever has any such flag set?

 

NI combines the main and alternative dice values into words; they're always bytes, though, right (although, it seems pretty obvious somebody shoehorned these in after-the-fact)?

Link to comment
Yeah, this byte is always 0x2a in the GAM, I think, but it ranges in the saved AREs

Maybe it's the first char of the CRE resref?

 

So just a remnant of attaching CRE resources (not important to figure out why they're storing it in any case)?

That's what I thought. But I'm not really sure.

There was like one case where they actually used the value (CString::setAt(0, char)), but I failed to trigger this in my testings.

 

These show up in a fair number of BG items, but no CRE ever has any such flag set?

Maybe they set it ingame? But that's highly unlikely ...

 

NI combines the main and alternative dice values into words; they're always bytes, though, right (although, it seems pretty obvious somebody shoehorned these in after-the-fact)?

Yep, dice values are always bytes in the item ability. (But main damage bonus is a word.)

That means speed and projectile type are bytes as well.

Link to comment

Ok, you meant area containers...

So, this is evaluated on first load of the .are?

I still wonder if this works with .cre, or .sto :)

Probably they resolve it in the same place where they resolve rnditems.

 

 

Got any examples of cre/itm where this alternate dice gets used?

Link to comment
So, this is evaluated on first load of the .are?

In the constructor of the container.

 

I still wonder if this works with .cre, or .sto :)

Should work on .cre inventory items, but I don't think anywhere else.

 

Got any examples of cre/itm where this alternate dice gets used?

The only item that has both alternate dice values set is morsword.itm.

But as devSin already mentioned, there are no creatures with that flag.

(Besides the two that have all flags set.)

 

Two more "features":

If an item name starts with a digit, its treated as misc07 (gold). atol(name) is used as the stack amount. ("123ign" => misc07 with 123 stack amount)

 

You can set the stack amount with the item name. "scrl69*9" will give you 9 times scrl69.

Link to comment
Why it needs the *9 thing when there is a column for charges :)

This isn't tied to 2da stuff. It's checked together with the RND* thingies in the function that actually loads the item.

 

Would "arow01*9 20 0 0" create 9 stacks of arrows with 20 in each pack?

Why don't you go and try yourself? :grin:

But I doubt it's working like that.

Link to comment
Why it needs the *9 thing when there is a column for charges :)

This isn't tied to 2da stuff. It's checked together with the RND* thingies in the function that actually loads the item.

 

Would "arow01*9 20 0 0" create 9 stacks of arrows with 20 in each pack?

Why don't you go and try yourself? :grin:

But I doubt it's working like that.

They don't like if i play in worktime ;)

Link to comment
Yeah, this byte is always 0x2a in the GAM, I think, but it ranges in the saved AREs

Maybe it's the first char of the CRE resref?

Tested this and it seems to be what I suspected.

When an actor is saved for the first time, this is the first char of the .cre resref. Any additional save will lead to '*'.

 

They don't like if i play in worktime :)

That's not playing, that's research. :grin:

 

Just out of curiosity, do the SPDRxxx and SPRAxxx spell groups have numeric designations?

No, at least not in the function that normally decodes the spell id.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...