-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReDefine.cfg
242 lines (208 loc) · 16.5 KB
/
ReDefine.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
[ReDefine]
HeadersDir = @NAMEPATH@/Headers
ScriptsDir = @NAMEPATH@/ReDefine
# NOTE: Log* settings are usually not set in standard setup
LogFile = @NAMEPATH@.log
LogWarning = @NAMEPATH@.WARNING.log
LogDebug = @NAMEPATH@.DEBUG.log
UnixNewlines = true
[Defines]
# NOTE: when processing zip, _Headers/ is copied to <dir>/Headers/Shared/
AI = ai.h AI
DMG = Shared/define_lite.h DMG
ELEV = Shared/define_lite.h ELEV
FLOAT_MSG = Shared/define_lite.h FLOAT_MSG
GVAR = global.h GVAR
HIDDEN_MEMBERS = Shared/define_lite.h - HIDDEN_MEMBERS
INVEN_CMD = Shared/define_lite.h INVEN_CMD
INVEN_TYPE = Shared/define_lite.h INVEN_TYPE
KILL_TYPE = Shared/define_lite.h KILL_TYPE
MAP = maps.h MAP
MARK_STATE = Shared/define_lite.h MARK_STATE
MARK_TYPE = Shared/define_lite.h MARK_TYPE
METARULE = Shared/define_lite.h METARULE
METARULE3 = Shared/define_lite.h METARULE3
OBJECT = Shared/define_lite.h OBJECT
PCSTAT = Shared/define_lite.h PCSTAT
PERK = Shared/define_lite.h PERK
PROC = Shared/define_lite.h - proc
REACTION = Shared/define_lite.h - REACTION
SID = scripts.h SCRIPT
SKILL = Shared/define_lite.h SKILL
STAT = Shared/define_lite.h STAT
TRAIT = Shared/define_lite.h TRAIT
TRAIT_TYPE = Shared/define_trait.h TRAIT
VLNCLVL = Shared/define_lite.h VLNCLVL
##### Injecting defines ######
[Defines:SID]
# These `impossible` defines silents create_object_sid warnings
0 = 0
-1 = -1
##### Variables #####
[Variable]
# NOTE: adding any SID variable requires ReDefineZip.sh changes
cur_map_index = MAP
script_action = PROC
# metarule() renames
violence_filter_setting = VLNCLVL
##### Functions #####
[Function]
create_object_sid = ? ? ? SID
critter_add_trait = ? TRAIT_TYPE ?dynamic? ?dynamic?
critter_dmg = ? ? DMG
critter_inven_obj = ? INVEN_TYPE
critter_mod_skill = ? SKILL ?
critter_rm_trait = ? TRAIT_TYPE ?dynamic? ?
critter_skill_level = ? SKILL
float_msg = ? ? FLOAT_MSG
get_critter_stat = ? STAT
get_pc_stat = PCSTAT
giq_option = ? SID ? ? REACTION
gsay_message = SID ? REACTION
gsay_option = SID ? ? ?
gsay_reply = SID ?
global_var = GVAR
has_skill = ? SKILL
has_trait = TRAIT_TYPE ? ?dynamic?
inven_cmds = ? INVEN_CMD ?
mark_area_known = MARK_TYPE ? MARK_STATE
metarule = METARULE ?
metarule3 = METARULE3 ? ? ?
message_str = SID ?
set_critter_stat = ? STAT ?
set_global_var = GVAR ?
town_known = [MARK_STATE] ?
# metarule() renames
critter_kill_type = [KILL_TYPE] ?
elevator = ELEV
is_skill_tagged = SKILL
party_member_count = HIDDEN_MEMBERS
# metarule3() renames
##### SETUP #####
#
# edited very early due to arguments depending on each other
# standard replacements won't be able to process function properly without this setup
#
[Script:Setup:CritterAddTrait]
AI = RunBefore:3 IfFunction:critter_add_trait IfArgumentIs:1,TRAIT_OBJECT IfArgumentIs:2,OBJECT_AI_PACKET DoArgumentSetType:3,AI
Object = RunBefore:1 IfFunction:critter_add_trait IfArgumentIs:1,TRAIT_OBJECT DoArgumentSetType:2,OBJECT
Perk = RunBefore:0 IfFunction:critter_add_trait IfArgumentIs:1,TRAIT_PERK DoArgumentSetType:2,PERK
#Team = RunBefore:4 IfFunction:critter_add_trait IfArgumentIs:1,TRAIT_OBJECT IfArgumentIs:2,OBJECT_TEAM_NUM DoArgumentSetType:3,TEAM
Trait = RunBefore:2 IfFunction:critter_add_trait IfArgumentIs:1,TRAIT_TRAIT DoArgumentSetType:2,TRAIT
[Script:Setup:CritterRmTrait]
AI = RunBefore:3 IfFunction:critter_rm_trait IfArgumentIs:1,TRAIT_OBJECT IfArgumentIs:2,OBJECT_AI_PACKET DoArgumentSetType:3,AI
Object = RunBefore:1 IfFunction:critter_rm_trait IfArgumentIs:1,TRAIT_OBJECT DoArgumentSetType:2,OBJECT
Perk = RunBefore:0 IfFunction:critter_rm_trait IfArgumentIs:1,TRAIT_PERK DoArgumentSetType:2,PERK
#Team = RunBefore:4 IfFunction:critter_rm_trait IfArgumentIs:1,TRAIT_OBJECT IfArgumentIs:2,OBJECT_TEAM_NUM DoArgumentSetType:3,TEAM
Trait = RunBefore:2 IfFunction:critter_rm_trait IfArgumentIs:1,TRAIT_TRAIT DoArgumentSetType:2,TRAIT
[Script:Setup:HasTrait]
Object = RunBefore:1 IfFunction:has_trait IfArgumentIs:0,TRAIT_OBJECT DoArgumentSetType:2,OBJECT
Perk = RunBefore:0 IfFunction:has_trait IfArgumentIs:0,TRAIT_PERK DoArgumentSetType:2,PERK
Trait = RunBefore:2 IfFunction:has_trait IfArgumentIs:0,TRAIT_TRAIT DoArgumentSetType:2,TRAIT
##### HUMANIZE #####
#
# edited early, as other parts of config might want to process results
#
[Script:DefineLite:Metarule]
SignalEndGame = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_SIGNAL_END_GAME DoVariable:signal_end_game
MapFirstRun = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_TEST_FIRSTRUN DoVariable:map_first_run
Elevator = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_ELEVATOR DoNameSet:elevator DoArgumentsErase:0
PartyMemberCount = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_PARTY_COUNT DoNameSet:party_member_count DoArgumentsErase:0
TownKnown = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_AREA_KNOWN DoNameSet:town_known DoArgumentsErase:0
DrugInfluence = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_WHO_ON_DRUGS DoNameSet:drug_influence DoArgumentsErase:0
MapIsKnown = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_MAP_KNOWN DoNameSet:map_is_known DoArgumentsErase:0
IsLoadingGame = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_IS_LOADGAME DoVariable:is_loading_game
CarCurrentTown = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_CAR_CURRENT_TOWN DoVariable:car_current_town
CarGiveToParty = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_GIVE_CAR_TO_PARTY DoVariable:car_give_to_party
CarGiveGas = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_GIVE_CAR_GAS DoNameSet:car_give_gas DoArgumentsErase:0
IsSkillTagged = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_SKILL_CHECK_TAG DoNameSet:is_skill_tagged DoArgumentsErase:0
ObjDropEverything = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_DROP_ALL_INVEN DoNameSet:obj_drop_everything DoArgumentsErase:0
InvenUnwield = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_INVEN_UNWIELD_WHO DoNameSet:inven_unwield DoArgumentsErase:0
WorldmapXpos = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_GET_WORLDMAP_XPOS DoVariable:worldmap_xpos
WorldmapYpos = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_GET_WORLDMAP_YPOS DoVariable:worldmap_ypos
CurTown = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_CURRENT_TOWN DoVariable:cur_town
LanguageFilterIsOn = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_LANGUAGE_FILTER DoVariable:language_filter_is_on
ViolenceFilterSetting = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_VIOLENCE_FILTER DoVariable:violence_filter_setting
WeaponDmgType = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_W_DAMAGE_TYPE DoNameSet:weapon_dmg_type DoArgumentsErase:0
CritterCanBarter = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_CRITTER_BARTERS DoNameSet:critter_can_barter DoArgumentsErase:0
CritterKillType = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_CRITTER_KILL_TYPE DoNameSet:critter_kill_type DoArgumentsErase:0
SetCarCarryAmount = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_SET_CAR_CARRY_AMOUNT DoNameSet:set_car_carry_amount DoArgumentsErase:0
CarCarryAmount = RunAfter:10 IfFunction:metarule IfArgumentIs:0,METARULE_GET_CAR_CARRY_AMOUNT DoVariable:car_carry_amount
RmFixedTimerEvent = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_CLR_FIXED_TIMED_EVENTS IfArgumentValue:3,0 DoNameSet:rm_fixed_timer_event DoArgumentsErase:0 DoArgumentsResize:2
MarkWorldSubtileVisited = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_MARK_SUBTILE DoNameSet:mark_world_subtile_visited DoArgumentsErase:0
#SetWorldmapMusic = ...
PlayerKillCount = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_GET_KILL_COUNT IfArgumentValue:2,0 IfArgumentValue:3,0 DoNameSet:player_kill_count DoArgumentsErase:0 DoArgumentsResize:1
MarkMapEntranceState = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_MARK_MAP_ENTRANCE IfArgumentValue:3,-1 DoNameSet:mark_map_entrance_state DoArgumentsErase:0 DoArgumentsResize:2
MarkMapEntranceElevState = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_MARK_MAP_ENTRANCE !IfArgumentValue:3,-1 DoNameSet:mark_map_entrance_elev_state DoArgumentsErase:0
WmGetSubtileState = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_WM_SUBTILE_STATE IfArgumentValue:3,0 DoNameSet:wm_get_subtile_state DoArgumentsErase:0 DoArgumentsResize:2
TileGetNextCritter = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_TILE_GET_NEXT_CRITTER DoNameSet:tile_get_next_critter DoArgumentsErase:0
ArtChangeFidNum = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_ART_SET_BASE_FID_NUM IfArgumentValue:3,0 DoNameSet:art_change_fid_num DoArgumentsErase:0 DoArgumentsResize:2
TileSetCenter = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_TILE_SET_CENTER IfArgumentValue:2,0 IfArgumentValue:3,0 DoNameSet:tile_set_center DoArgumentsErase:0 DoArgumentsResize:1
ChemUseLevel = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_CHEM_USE_LEVEL IfArgumentValue:2,0 IfArgumentValue:3,0 DoNameSet:chem_use_level DoArgumentsErase:0 DoArgumentsResize:1
CarOutOfFuel = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_CAR_OUT_OF_FUEL IfArgumentValue:1,0 IfArgumentValue:2,0 IfArgumentValue:3,0 DoVariable:car_out_of_fuel
MapGetLoadArea = RunAfter:10 IfFunction:metarule3 IfArgumentIs:0,METARULE3_MAP_GET_LOAD_AREA IfArgumentValue:1,0 IfArgumentValue:2,0 IfArgumentValue:3,0 DoVariable:map_get_load_area
##### MINIMIZE #####
# one-liners
[Script:DefineLite:Minimize]
AttackComplex = RunAfter IfFunction:attack_complex IfArgumentValue:1,0 IfArgumentValue:2,1 IfArgumentValue:3,0 IfArgumentValue:4,0 IfArgumentValue:5,30000 IfArgumentValue:6,0 IfArgumentValue:7,0 DoNameSet:attack DoArgumentsResize:1
CreateObject = RunAfter IfFunction:create_object_sid IfArgumentValue:3,-1 DoNameSet:create_object DoArgumentsResize:3
CritterDamage = RunAfter IfFunction:critter_dmg IfArgumentIs:2,DMG_normal_dam DoNameSet:critter_damage DoArgumentsResize:2
DudeElevation = RunAfter IfFunction:elevation IfArgumentValue:0,dude_obj DoVariable:dude_elevation
DudeSkill = RunAfter IfFunction:has_skill IfArgumentValue:0,dude_obj DoNameSet:dude_skill DoArgumentsErase:0
DudeTile = RunAfter IfFunction:tile_num IfArgumentValue:0,dude_obj DoVariable:dude_tile
FadeIn = RunAfter IfFunction:gfade_in IfArgumentValue:0,1 DoVariable:fade_in
FadeOut = RunAfter IfFunction:gfade_out IfArgumentValue:0,1 DoVariable:fade_out
FloatMsgClear = RunAfter IfFunction:float_msg IfArgumentValue:1,0 IfArgumentIs:2,FLOAT_MSG_NORMAL DoNameSet:float_msg_clear DoArgumentsResize:1
GDialogBarter = RunAfter IfFunction:gdialog_mod_barter IfArgumentValue:0,0 DoVariable:gdialog_barter
GSayReply = RunAfter IfFunction:gsay_reply IfArgumentValue:0,NAME DoNameSet:Reply DoArgumentsErase:0
InvenCount = RunAfter IfFunction:critter_inven_obj IfArgumentIs:1,INVEN_TYPE_INV_COUNT DoNameSet:inven_count DoArgumentsResize:1
InvenPtr = RunAfter IfFunction:inven_cmds IfArgumentIs:1,INVEN_CMD_INDEX_PTR DoNameSet:inven_ptr DoArgumentsErase:1
StartDialogue = RunAfter IfFunction:start_gdialog IfArgumentValue:0,-1 IfArgumentValue:3,-1 IfArgumentValue:4,-1 DoNameSet:start_dialogue DoArgumentsMoveBack:0 DoArgumentsResize:2
WieldObj = RunAfter IfFunction:wield_obj_critter IfArgumentValue:0,self_obj DoNameSet:wield_obj DoArgumentsErase:0
[Script:DefineLite:GetCritterStat]
DudeGender = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_gender DoVariable:dude_gender DoRestart
DudeStrength = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_st DoVariable:dude_strength DoRestart
DudePerception = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_pe DoVariable:dude_perception DoRestart
DudeEndurance = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_en DoVariable:dude_endurance DoRestart
DudeCharisma = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_ch DoVariable:dude_charisma DoRestart
DudeIQ = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_iq DoVariable:dude_iq DoRestart
DudeAgility = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_gender DoVariable:dude_agility DoRestart
DudeLuck = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_lu DoVariable:dude_luck DoRestart
DudeAge = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,dude_obj IfArgumentIs:1,STAT_age DoVariable:dude_age DoRestart
DudeIsStupid = RunAfter IfVariable:dude_iq IfOperatorName:LowerEquals IfOperatorValue:3 DoNameSet:dude_is_stupid DoOperatorClear
SelfGender = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,self_obj IfArgumentIs:1,STAT_gender DoVariable:self_gender DoRestart
SelfStrength = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,self_obj IfArgumentIs:1,STAT_st DoVariable:self_strength DoRestart
SelfPerception = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,self_obj IfArgumentIs:1,STAT_pe DoVariable:self_perception DoRestart
SelfEndurance = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,self_obj IfArgumentIs:1,STAT_en DoVariable:self_endurance DoRestart
SelfCharisma = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,self_obj IfArgumentIs:1,STAT_ch DoVariable:self_charisma DoRestart
SelfIQ = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,self_obj IfArgumentIs:1,STAT_iq DoVariable:self_iq DoRestart
SelfAgility = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,self_obj IfArgumentIs:1,STAT_gender DoVariable:self_agility DoRestart
SelfLuck = RunAfter IfFunction:get_critter_stat IfArgumentValue:0,self_obj IfArgumentIs:1,STAT_lu DoVariable:self_luck DoRestart
[Script:DefineLite:HasTrait]
ObjGetRot = RunAfter IfFunction:has_trait IfArgumentIs:0,TRAIT_OBJECT IfArgumentIs:2,OBJECT_CUR_ROT DoNameSet:obj_get_rot DoArgumentsErase:0 DoArgumentsResize:1
ObjIsVisibleFlag = RunAfter IfFunction:has_trait IfArgumentIs:0,TRAIT_OBJECT IfArgumentIs:2,OBJECT_VISIBILITY DoNameSet:obj_is_visible_flag DoArgumentsErase:0 DoArgumentsResize:1
[Script:DefineLite:PartyMemberObj]
ObjInParty = RunAfter IfFunction:party_member_obj IfOperator:NotEquals IfOperatorValue:0 IfArgumentCondition:0,DefineLite:PartyMemberObj,ObjInParty.Helper DoArgumentResult:0,DefineLite:PartyMemberObj,ObjInParty.Helper DoNameSet:obj_in_party DoArgumentSetCached:0,arg0 DoOperatorClear
ObjInParty.Helper = RunOnDemand IfFunction:obj_pid !IfOperator DoArgumentCache:0,arg0
[Script:MapsH]
CurMapName = DEBUG RunAfter IfVariable:cur_map_index IfOperatorName:Equals IfReturnType:MAP DoOperatorValueCache:map DoOperatorClear DoNameSetCached:map DoNameSetPrefix:CUR_
[Script:DefineLite:MessageStr]
Mstr = RunAfter IfFunction:message_str IfArgumentValue:0,NAME DoNameSet:mstr DoArgumentsErase:0 DoRestart
GMstr = RunAfter IfFunction:message_str IfArgumentIs:0,SCRIPT_GENERIC DoNameSet:g_mstr DoArgumentsErase:0
DisplayMstr = RunAfter IfFunction:display_msg IfArgumentCondition:0,DefineLite:MessageStr,DisplayMstr.Helper DoArgumentResult:0,DefineLite:MessageStr,DisplayMstr.Helper DoNameSet:display_mstr DoArgumentSetCached:0,arg0
DisplayMstr.Helper = RunOnDemand IfFunction:mstr !IfOperator DoArgumentCache:0,arg0
[Script:CommandLite:ObjName]
#
# dude_name/self_name
#
DudeName = RunAfter IfFunction:obj_name IfArgumentValue:0,dude_obj DoVariable:dude_name
SelfName = RunAfter IfFunction:obj_name IfArgumentValue:0,self_obj DoVariable:self_name
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
[Script:AutoFix]
PointlessRandom = RunAfter:9999 IfFunction:random IfArgumentsEqual:0,1 DoArgumentCache:0,arg DoVariable DoNameSetCached:arg DoRestart
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
[Script:TODO:GSayOption]
#
# in this case, gsay_option(...) is changed into giq_option(1, ...), which later is changed into *Option(...)
#
GiqOption = RunAfter:90 IfFunction:gsay_option DoNameSet:giq_option DoArgumentsPushFront:1