-
Notifications
You must be signed in to change notification settings - Fork 28
/
dorns_sword.tph
59 lines (59 loc) · 2.54 KB
/
dorns_sword.tph
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
DEFINE_ACTION_FUNCTION "DORNS_SWORD"
BEGIN
<<<<<<<< .../cdtweaks-inlined/empty
>>>>>>>>
// update weapon
COPY_EXISTING "sw2hd1.itm" "override" // Rancor +1
LPF "DELETE_EFFECT" INT_VAR "match_opcode" = 232 STR_VAR "match_resource" = "ohdsw2" END // not needed
BUT_ONLY
// update main SPL file
COPY_EXISTING "ohdsw1.spl" "override"
LPF "ADD_SPELL_EFFECT" INT_VAR "insert_point" = 0 "opcode" = 402 "target" = 1 STR_VAR "resource" = "GTDRNSW2" END // Invoke lua
LPF "ALTER_EFFECT" INT_VAR "silent" = 1 "match_opcode" = 221 "opcode" = 321 "parameter1" = 0 "parameter2" = 0 STR_VAR "resource" = "%DEST_RES%" END // Remove effects by resource
BUT_ONLY
// update scripts
COPY_EXISTING "dorn.bcs" "override"
"dorn25.bcs" "override"
DECOMPILE_AND_PATCH BEGIN
SET "found" = INDEX_BUFFER (CASE_INSENSITIVE EXACT_MATCH ~!HasItemEquipedReal("sw2hd1",Myself)~)
PATCH_IF ("%found%" >= 0) BEGIN
SET "start" = RINDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^IF$" "%found%")
SET "end" = INDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^END$" "%found%") + STRING_LENGTH "END"
DELETE_BYTES "%start%" ("%end%" - "%start%")
END
SET "found" = INDEX_BUFFER (CASE_INSENSITIVE EXACT_MATCH ~ApplySpellRES("ohdsw3",Myself)~)
PATCH_IF ("%found%" >= 0) BEGIN
SET "start" = RINDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^IF$" "%found%")
SET "end" = INDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^END$" "%found%") + STRING_LENGTH "END"
DELETE_BYTES "%start%" ("%end%" - "%start%")
END
END
BUT_ONLY IF_EXISTS
// update CREs
COPY_EXISTING "dorn.cre" "override"
"dorn2.cre" "override"
"dorn4.cre" "override"
"dorn6.cre" "override"
"dorn7.cre" "override"
//
"dorn8.cre" "override"
"dorn9.cre" "override"
"dorn10.cre" "override"
"dorn12.cre" "override"
"dorn14.cre" "override"
"ohb2dorn.cre" "override"
LPF "DELETE_EFFECT" INT_VAR "match_opcode" = 206 STR_VAR "match_resource" = "ohdsw2" END
LPF "ADD_CRE_EFFECT" INT_VAR "opcode" = 402 "target" = 1 "timing" = 9 STR_VAR "resource" = "GTDRNSW1" END // Invoke lua
BUT_ONLY IF_EXISTS
// lua magic
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gt#402.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gt#402.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Functions to be invoked via op402 --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Functions to be invoked via op402 --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gt#402.lua" "override"
APPEND_FILE TEXT "cdtweaks\luke\lua\dorns_sword.lua"
BUT_ONLY UNLESS "^function GTDRNSW[1-2]"
END