// More types of inventory BAMs with no unique animations // FWIW ACTION_FOR_EACH paperdoll IN ~WPHF0OIN~ ~WPHF1OIN~ ~WPHF3OIN~ ~WPHM2OIN~ ~WPHS0OIN~ ~WPLBSINV~ ~WPLF0INV~ ~WPLF0OIN~ ~WPLF1INV~ ~WPLF1OIN~ ~WPLF3INV~ ~WPLF3OIN~ ~WPLM2INV~ ~WPLM2OIN~ ~WPLQ2INV~ ~WPLQ3INV~ ~WPLQ4INV~ ~WPLS0INV~ ~WPLS0OIN~ ~WPMBSINV~ ~WPMF0INV~ ~WPMF0OIN~ ~WPMF1INV~ ~WPMF1OIN~ ~WPMF2INV~ ~WPMF2OIN~ ~WPMF3INV~ ~WPMF3OIN~ ~WPMM2INV~ ~WPMM2OIN~ ~WPMQ2INV~ ~WPMQ3INV~ ~WPMQ4INV~ ~WPMS0INV~ ~WPMS0OIN~ ~WPNBSINV~ ~WPNF0INV~ ~WPNF0OIN~ ~WPNF1INV~ ~WPNF1OIN~ ~WPNF3INV~ ~WPNF3OIN~ ~WPNM2INV~ ~WPNM2OIN~ ~WPNQ2INV~ ~WPNQ3INV~ ~WPNQ4INV~ ~WPNS0INV~ ~WPNS0OIN~ ~WPSBSINV~ ~WPSF0INV~ ~WPSF0OIN~ ~WPSF1INV~ ~WPSF1OIN~ ~WPSF3INV~ ~WPSF3OIN~ ~WPSM2INV~ ~WPSM2OIN~ ~WPSQ2INV~ ~WPSQ3INV~ ~WPSQ4INV~ ~WPSS0INV~ ~WPSS0OIN~ BEGIN COPY ~1pp/additions/obj_1pp/%paperdoll%.bam~ ~override~ END PRINT ~Creating mirror animations...~ ACTION_FOR_EACH set IN ~F0~ ~F1~ ~F3~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~N~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A1~ ~A3~ ~A5~ ~A7~ ~A8~ ~A9~ ~G1~ ~OA7~ ~OA8~ ~OA9~ ~OG1~ BEGIN COPY_EXISTING ~WQ%category%FL%sequence%.BAM~ ~override/WQ%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~F0~ ~F1~ ~F3~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A1~ ~A1E~ ~A3~ ~A3E~ ~G1~ ~G1E~ ~W2~ ~W2E~ BEGIN COPY_EXISTING ~WP%category%FL%sequence%.BAM~ ~override/WP%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~M2~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~N~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A1~ ~A3~ ~A5~ ~A7~ ~A8~ ~A9~ ~G1~ ~OA7~ ~OA8~ ~OA9~ ~OG1~ BEGIN COPY_EXISTING ~WQ%category%MC%sequence%.BAM~ ~override/WQ%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~M2~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A1~ ~A1E~ ~A3~ ~A3E~ ~G1~ ~G1E~ ~W2~ ~W2E~ BEGIN COPY_EXISTING ~WP%category%MC%sequence%.BAM~ ~override/WP%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~Q2~ ~Q3~ ~Q4~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~N~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A2~ ~A4~ ~A6~ ~G1~ BEGIN COPY_EXISTING ~WQ%category%QS%sequence%.BAM~ ~override/WQ%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~Q2~ ~Q3~ ~Q4~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A2~ ~A2E~ ~A4~ ~A4E~ ~A6~ ~A6E~ ~G1~ ~G1E~ ~W2~ ~W2E~ BEGIN COPY_EXISTING ~WP%category%QS%sequence%.BAM~ ~override/WP%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~S0~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~N~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A1~ ~A3~ ~A5~ ~A7~ ~A8~ ~A9~ ~G1~ ~OA7~ ~OA8~ ~OA9~ ~OG1~ BEGIN COPY_EXISTING ~WQ%category%S1%sequence%.BAM~ ~override/WQ%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~S0~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A1~ ~A1E~ ~A3~ ~A3E~ ~A5~ ~A5E~ ~G1~ ~G1E~ ~W2~ ~W2E~ BEGIN COPY_EXISTING ~WP%category%S1%sequence%.BAM~ ~override/WP%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~BS~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~N~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~SA~ ~G1~ BEGIN COPY_EXISTING ~WQ%category%BW%sequence%.BAM~ ~override/WQ%category%%set%%sequence%.BAM~ END END END ACTION_FOR_EACH set IN ~BS~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~SA~ ~SAE~ ~G1~ ~G1E~ ~W2~ ~W2E~ BEGIN COPY_EXISTING ~WP%category%BW%sequence%.BAM~ ~override/WP%category%%set%%sequence%.BAM~ END END END // harmonising morning stars ACTION_FOR_EACH set IN ~MS~ BEGIN ACTION_FOR_EACH category IN ~L~ ~M~ ~N~ ~S~ BEGIN ACTION_FOR_EACH sequence IN ~A1~ ~A3~ ~A5~ ~A7~ ~A8~ ~A9~ ~G1~ ~OA7~ ~OA8~ ~OA9~ ~OG1~ BEGIN COPY_EXISTING ~WQ%category%MC%sequence%.BAM~ ~override/WQ%category%%set%%sequence%.BAM~ END END END PRINT ~Patching creatures for weapon overlays~ ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h01.itm~) THEN BEGIN COPY_EXISTING ~sw1h01.itm~ ~override/comps01.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x28 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~_sw1h01.itm~) THEN BEGIN COPY_EXISTING ~_sw1h01.itm~ ~override/_comps01.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h02.itm~) THEN BEGIN COPY_EXISTING ~sw1h02.itm~ ~override/comps02.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~_sw1h02.itm~) THEN BEGIN COPY_EXISTING ~_sw1h02.itm~ ~override/_comps02.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h03.itm~) THEN BEGIN COPY_EXISTING ~sw1h03.itm~ ~override/comps03.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x0368 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~_sw1h03.itm~) THEN BEGIN COPY_EXISTING ~_sw1h03.itm~ ~override/_comps03.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x0368 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h18.itm~) THEN BEGIN COPY_EXISTING ~sw1h18.itm~ ~override/comps18.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x0269 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~_sw1h18.itm~) THEN BEGIN COPY_EXISTING ~_sw1h18.itm~ ~override/_comps18.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x0269 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h34.itm~) THEN BEGIN COPY_EXISTING ~sw1h34.itm~ ~override/comps34.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x0168 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h37.itm~) THEN BEGIN COPY_EXISTING ~sw1h37.itm~ ~override/comps37.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h38.itm~) THEN BEGIN COPY_EXISTING ~sw1h38.itm~ ~override/comps38.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h39.itm~) THEN BEGIN COPY_EXISTING ~sw1h39.itm~ ~override/comps39.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h42.itm~) THEN BEGIN COPY_EXISTING ~sw1h42.itm~ ~override/comps42.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h62.itm~) THEN BEGIN COPY_EXISTING ~sw1h62.itm~ ~override/comps62.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h63.itm~) THEN BEGIN COPY_EXISTING ~sw1h63.itm~ ~override/comps63.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h64.itm~) THEN BEGIN COPY_EXISTING ~sw1h64.itm~ ~override/comps64.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h65.itm~) THEN BEGIN COPY_EXISTING ~sw1h65.itm~ ~override/comps65.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~sw1h72.itm~) THEN BEGIN COPY_EXISTING ~sw1h72.itm~ ~override/comps72.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0x68 END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow05.itm~) THEN BEGIN COPY_EXISTING ~bow05.itm~ ~override/compb05.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xaa END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~_bow05.itm~) THEN BEGIN COPY_EXISTING ~_bow05.itm~ ~override/_compb05.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xaa END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow06.itm~) THEN BEGIN COPY_EXISTING ~bow06.itm~ ~override/compb06.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~_bow06.itm~) THEN BEGIN COPY_EXISTING ~_bow06.itm~ ~override/_compb06.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow08.itm~) THEN BEGIN COPY_EXISTING ~bow08.itm~ ~override/compb08.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~_bow08.itm~) THEN BEGIN COPY_EXISTING ~_bow08.itm~ ~override/_compb08.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow14.itm~) THEN BEGIN COPY_EXISTING ~bow14.itm~ ~override/compb14.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow15.itm~) THEN BEGIN COPY_EXISTING ~bow15.itm~ ~override/compb15.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow18.itm~) THEN BEGIN COPY_EXISTING ~bow18.itm~ ~override/compb18.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow19.itm~) THEN BEGIN COPY_EXISTING ~bow19.itm~ ~override/compb19.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow20.itm~) THEN BEGIN COPY_EXISTING ~bow20.itm~ ~override/compb20.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow21.itm~) THEN BEGIN COPY_EXISTING ~bow21.itm~ ~override/compb21.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (FILE_EXISTS_IN_GAME ~bow26.itm~) THEN BEGIN COPY_EXISTING ~bow26.itm~ ~override/compb26.itm~ PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files WRITE_LONG 0x18 0xea END BUT_ONLY_IF_IT_CHANGES END ACTION_IF (GAME_IS ~bg2 tob tutu tutu_totsc ca~) THEN BEGIN OUTER_SET itemslot = 0x02b8 OUTER_SET itemstart = 0x02bc OUTER_SET wepone = 0x12 OUTER_SET weptwo = 0x14 END ACTION_IF (GAME_IS ~totlm how~) THEN BEGIN OUTER_SET itemslot = 0x0320 OUTER_SET itemstart = 0x324 OUTER_SET wepone = 0x12 OUTER_SET weptwo = 0x14 END ACTION_IF (GAME_IS ~iwd2~) THEN BEGIN OUTER_SET itemslot = 0x0612 OUTER_SET itemstart = 0x616 OUTER_SET wepone = 0x12 OUTER_SET weptwo = 0x16 END PRINT ~Patching cre files~ COPY_EXISTING_REGEXP GLOB ~^.+\.cre$~ ~override~ READ_SHORT %itemslot% "ritemslot" READ_SHORT %itemstart% "ritemstart" READ_SHORT 0x28 "animtype" ELSE 0 PATCH_IF ("%animtype%" = 0x8100 || "%animtype%" = 0x8000 || "%animtype%" = 0x2200 || "%animtype%" = 0x8200 || "%animtype%" = 0x2000) BEGIN // PATCH_PRINT ~found %animtype%~ READ_SHORT (%ritemslot% + %wepone%) "primaryw" PATCH_IF ("%primaryw%" != 0xffff) BEGIN // PATCH_PRINT ~found %primaryw% at %ritemslot% + %wepone%~ READ_ASCII (%ritemstart% + (0x14 * %primaryw%)) "primitem" PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h01" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps01~ #8 ADD_CRE_ITEM ~sw1h01~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_sw1h01" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~_comps01~ #8 ADD_CRE_ITEM ~_sw1h01~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h02" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps02~ #8 ADD_CRE_ITEM ~sw1h02~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_sw1h02" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~_comps02~ #8 ADD_CRE_ITEM ~_sw1h02~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h03" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps03~ #8 ADD_CRE_ITEM ~sw1h03~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_sw1h03" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~_comps03~ #8 ADD_CRE_ITEM ~_sw1h03~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h18" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps18~ #8 ADD_CRE_ITEM ~sw1h18~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h34" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps34~ #8 ADD_CRE_ITEM ~sw1h34~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h37" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps37~ #8 ADD_CRE_ITEM ~sw1h37~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h38" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps38~ #8 ADD_CRE_ITEM ~sw1h38~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h39" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps39~ #8 ADD_CRE_ITEM ~sw1h39~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h42" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps42~ #8 ADD_CRE_ITEM ~sw1h42~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h62" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps62~ #8 ADD_CRE_ITEM ~sw1h62~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h63" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps63~ #8 ADD_CRE_ITEM ~sw1h63~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h64" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps64~ #8 ADD_CRE_ITEM ~sw1h64~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h65" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps65~ #8 ADD_CRE_ITEM ~sw1h65~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h72" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~comps72~ #8 ADD_CRE_ITEM ~sw1h72~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow05" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb05~ #8 ADD_CRE_ITEM ~bow05~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_bow05" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~_compb05~ #8 ADD_CRE_ITEM ~_bow05~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow06" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb06~ #8 ADD_CRE_ITEM ~bow06~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_bow06" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~_compb06~ #8 ADD_CRE_ITEM ~_bow06~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow08" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb08~ #8 ADD_CRE_ITEM ~bow08~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_bow08" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~_compb08~ #8 ADD_CRE_ITEM ~_bow08~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow14" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb14~ #8 ADD_CRE_ITEM ~bow14~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow15" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb15~ #8 ADD_CRE_ITEM ~bow15~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow18" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb18~ #8 ADD_CRE_ITEM ~bow18~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow19" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb19~ #8 ADD_CRE_ITEM ~bow19~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow20" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb20~ #8 ADD_CRE_ITEM ~bow20~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow21" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb21~ #8 ADD_CRE_ITEM ~bow21~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow26" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %primaryw%)) ~compb26~ #8 ADD_CRE_ITEM ~bow26~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING_REGEXP GLOB ~^.+\.cre$~ ~override~ READ_SHORT %itemslot% "ritemslot" READ_SHORT %itemstart% "ritemstart" READ_SHORT 0x28 "animtype" ELSE 0 PATCH_IF ("%animtype%" = 0x8100 || "%animtype%" = 0x8000 || "%animtype%" = 0x2200 || "%animtype%" = 0x8200 || "%animtype%" = 0x2000) BEGIN // PATCH_PRINT ~found %animtype%~ READ_SHORT (%ritemslot% + %weptwo%) "secondaryw" PATCH_IF ("%secondaryw%" != 0xffff) BEGIN // PATCH_PRINT ~found %secondaryw% at %ritemslot% + %weptwo% on %SOURCE_FILE%~ READ_ASCII (%ritemstart% + (0x14 * %secondaryw%)) "primitem" // PATCH_PRINT ~found %primitem%~ PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h01" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps01~ #8 ADD_CRE_ITEM ~sw1h01~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_sw1h01" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~_comps01~ #8 ADD_CRE_ITEM ~_sw1h01~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h02" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps02~ #8 ADD_CRE_ITEM ~sw1h02~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_sw1h02" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~_comps02~ #8 ADD_CRE_ITEM ~_sw1h02~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h03" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps03~ #8 ADD_CRE_ITEM ~sw1h03~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_sw1h03" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~_comps03~ #8 ADD_CRE_ITEM ~_sw1h03~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h18" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps18~ #8 ADD_CRE_ITEM ~sw1h18~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h34" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps34~ #8 ADD_CRE_ITEM ~sw1h34~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h37" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps37~ #8 ADD_CRE_ITEM ~sw1h37~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h38" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps38~ #8 ADD_CRE_ITEM ~sw1h38~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h39" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps39~ #8 ADD_CRE_ITEM ~sw1h39~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h42" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps42~ #8 ADD_CRE_ITEM ~sw1h42~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h62" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps62~ #8 ADD_CRE_ITEM ~sw1h62~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h63" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps63~ #8 ADD_CRE_ITEM ~sw1h63~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h64" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps64~ #8 ADD_CRE_ITEM ~sw1h64~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h65" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps65~ #8 ADD_CRE_ITEM ~sw1h65~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "sw1h72" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~comps72~ #8 ADD_CRE_ITEM ~sw1h72~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow05" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb05~ #8 ADD_CRE_ITEM ~bow05~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_bow05" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~_compb05~ #8 ADD_CRE_ITEM ~_bow05~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow06" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb06~ #8 ADD_CRE_ITEM ~bow06~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_bow06" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~_compb06~ #8 ADD_CRE_ITEM ~_bow06~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow08" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb08~ #8 ADD_CRE_ITEM ~bow08~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "_bow08" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~_compb08~ #8 ADD_CRE_ITEM ~_bow08~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow14" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb14~ #8 ADD_CRE_ITEM ~bow14~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow15" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb15~ #8 ADD_CRE_ITEM ~bow15~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow18" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb18~ #8 ADD_CRE_ITEM ~bow18~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow19" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb19~ #8 ADD_CRE_ITEM ~bow19~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow20" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb20~ #8 ADD_CRE_ITEM ~bow20~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow21" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb21~ #8 ADD_CRE_ITEM ~bow21~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END PATCH_IF ("%primitem%" STRING_COMPARE_CASE "bow26" = 0) BEGIN WRITE_ASCII (%ritemstart% + (0x14 * %secondaryw%)) ~compb26~ #8 ADD_CRE_ITEM ~bow26~ #0 #0 #0 ~UNSTEALABLE~ ~inv~ END END END BUT_ONLY_IF_IT_CHANGES