Jump to content

Random notes


Taimon

Recommended Posts

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

Posted
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)?

Posted
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.

Posted

If a container item resref starts with "T2" (case-insensitive) a 2da file with the same name is loaded and all the items in there are added to the container.

Posted

Not sure what you mean. It's unrelated to stores (and bags).

I was talking about area containers.

 

/Edit: I see, that "container item resref" above is ambiguous.

Posted

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?

Posted
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.

Posted

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

 

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

Posted
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.

Posted
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 ;)

Posted

Ok i tried these:

1 misc07*2 123 0 0 0 0 - created a stack of 2 gold coins

2 misc07 123 0 0 0 0 - created a stack of 123 gold coins

3 100*3 0 0 0 0 0 - created a stack of 100 gold coins

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

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

 

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

Posted
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.

Archived

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

×
×
  • Create New...