Jump to content


Photo

PST .ini files


9 replies to this topic

#1 Displacer

Displacer
  • Members
  • 107 posts

Posted 09 December 2011 - 09:06 AM

Seems there are more to these than are seen. Looking through the code there are other entries that can be used that are not listed, probably because they do not occur in any of the existing ini files.

For instance the following:

exit
detail_level
control_var
spawn_time_of_day
ai_ea
ai_general
ai_race
ai_class
ai_gender
auto_buddy
spawn_facing_global
check_crowd

etc. etc.

There are quite a few more, not in any order and I'm not sure yet what goes under which [] section (pretty sure exit goes under [spawn_main] but not sure about the others)

#2 i30817

i30817
  • Members
  • 146 posts

Posted 09 December 2011 - 12:50 PM

Could you print out a list and put it here in spoilers?

Can you figure out what the arguments are? (0, 1) or something else?

#3 Avenger

Avenger
  • Modders
  • 3428 posts
  • Gender:Male
  • Location:Hungary

Posted 09 December 2011 - 11:51 PM

The AI_* keywords set the spawned critter to the specific value.
spawn_facing_global sets its orientation to the value stored in the global var.

#4 Avenger

Avenger
  • Modders
  • 3428 posts
  • Gender:Male
  • Location:Hungary

Posted 10 December 2011 - 02:38 AM

detail_level is connected to torment.ini/program_options/detail_level. To filter out unimportant critters, if detail level is low.
Btw, only the first letter of detail level counts (High/Medium/Low)

Though, there is a bug in the .exe which seems to cause high and medium the same. When parsing the ini file, it sets the value of high when it encounters a 'medium' entry.

Edited by Avenger, 10 December 2011 - 03:08 AM.


#5 Displacer

Displacer
  • Members
  • 107 posts

Posted 10 December 2011 - 08:08 AM

Yea a lot of these appear to be overrides to defaults for individual critters. I suppose that gives a lot of flexibility which apparently they didn't take advantage of, doesn't mean others can't though ;)

I'll toss up a list soon and maybe someone can play with them and see what they do quicker than I can trace the code for them

Edited by Displacer, 10 December 2011 - 08:10 AM.


#6 Displacer

Displacer
  • Members
  • 107 posts

Posted 10 December 2011 - 08:43 AM

OK here's the list I've found. Note it does not contain the nameless entries, they are in another section of code I haven't gotten to:

Spoiler


Also I have no idea how many of these actually work, what input they take etc. etc.

#7 Displacer

Displacer
  • Members
  • 107 posts

Posted 17 December 2011 - 03:09 PM

Looks like under [spawn_main] valid entries are

events
enter
exit

NOTE: In the IESDP, it says "event=name_of_section2" it should be "events=name_of_section2"

#8 Avenger

Avenger
  • Modders
  • 3428 posts
  • Gender:Male
  • Location:Hungary

Posted 18 December 2011 - 07:19 AM

I didn't find any examples of exit. It doesn't really make sense to spawn creatures in an area on exit.
enter - seems to be an one time spawn when the area is created (at least that's how i implemented it in gemrb).

spawn_time_of_day/Blackisle is just a dead string, not used in spawn ini.

#9 Displacer

Displacer
  • Members
  • 107 posts

Posted 18 December 2011 - 08:23 AM

Well I could think of one reason for a spawn on exit. Say you go to an area and wreck the place, it would be a nice touch if you had a army waiting for you on your return looking for revenge. Using exit would spawn them to the area without you knowing about it, making for a unpleasant surprise when you returned...

More info on [spawn_main], the events entry, and possibly enter and exit can have several arguments. I don't know if there's a limit yet but the arguments can be separated by either a "," or a "."
These arguments can be seen under the actual section label set in "events" (an example would be the "critters" list).

#10 Displacer

Displacer
  • Members
  • 107 posts

Posted 18 December 2011 - 09:06 AM

Found something interesting. At the point where it's processing "interval". It appears that it has a minimum. It checks if it's lower than 0x0f and if it is it sets it to 0x0f. Odd since there's several ini files that have a value less than 0x0f. May have been a last minute hack to the code before they shipped

Here's the relevant code:

.text:007E9DFE				 mov	 edx, [ebp+var_A8]
.text:007E9E04				 cmp	 dword ptr [edx+30h], 0Fh
.text:007E9E08				 jnb	 short loc_7E9E17
.text:007E9E0A				 mov	 eax, [ebp+var_A8]
.text:007E9E10				 mov	 dword ptr [eax+30h], 0Fh




Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users