devSin Posted March 13, 2005 Share Posted March 13, 2005 Sim responded favorably both times I mentioned this, so: COPY_EXISTING_REGEXP GLOB ~^AR.+\.ARE$~ ~temp~  READ_LONG 0x5c ~triggersOffset~ ELSE 0x011c  FOR (READ_SHORT 0x5a numberOfTriggers ELSE 0x00; numberOfTriggers > 0x00; numberOfTriggers = numberOfTriggers - 0x01) BEGIN   READ_SHORT ~%triggersOffset%~ + 0x20 ~triggerType~ ELSE 0x00   PATCH_IF (~%triggerType%~ = 0x02) BEGIN    READ_ASCII ~%triggersOffset%~ + 0x38 ~destinationArea~ ELSE ~~    READ_BYTE ~%triggersOffset%~ + 0x61 ~triggerFlags~ ELSE 0x00    INNER_PATCH_FILE ~%destinationArea%.ARE~ BEGIN     READ_LONG 0x5c ~innerTriggersOffset~ ELSE 0x011c     FOR (READ_SHORT 0x5a innerNumberOfTriggers ELSE 0x00; innerNumberOfTriggers > 0x00; innerNumberOfTriggers = innerNumberOfTriggers - 0x01) BEGIN      READ_SHORT ~%innerTriggersOffset%~ + 0x20 ~innerTriggerType~ ELSE 0x00      PATCH_IF (~%innerTriggerType%~ = 0x02) BEGIN       READ_ASCII ~%innerTriggersOffset%~ + 0x38 ~innerDestinationArea~ ELSE ~~       PATCH_IF NOT (~%innerDestinationArea%~ STRING_COMPARE_CASE ~%SOURCE_RES%~) BEGIN        READ_BYTE ~%innerTriggersOffset%~ + 0x61 ~innerTriggerFlags~ ELSE 0x00        SET ~isUnpassableByNpc~ = ((~%innerTriggerFlags%~ BOR 0xfd) = 0xff) ? 0x01 : 0x00        SET ~wasUnpassableByNpc~ = ((~%triggerFlags%~ BOR 0xfd) = 0xff) ? 0x01 : 0x00        PATCH_IF (~%isUnpassableByNpc%~) AND NOT (~%wasUnpassableByNpc%~) BEGIN         PATCH_PRINT ~[%SOURCE_FILE%]: Non-matching transition flags for transition to %destinationArea%.ARE~      END END END      SET ~innerTriggersOffset~ = ~%innerTriggersOffset%~ + 0xc4   END END END   SET ~triggersOffset~ = ~%triggersOffset%~ + 0xc4  END BUT_ONLY_IF_IT_CHANGES /* [AR0015.ARE]: Non-matching transition flags for transition to AR0018.ARE [AR0021.ARE]: Non-matching transition flags for transition to AR0020.ARE [AR0022.ARE]: Non-matching transition flags for transition to AR0021.ARE [AR0300.ARE]: Non-matching transition flags for transition to AR0308.ARE [AR0305.ARE]: Non-matching transition flags for transition to AR0300.ARE [AR0306.ARE]: Non-matching transition flags for transition to AR0300.ARE [AR0307.ARE]: Non-matching transition flags for transition to AR0300.ARE [AR0400.ARE]: Non-matching transition flags for transition to AR0311.ARE [AR0407.ARE]: Non-matching transition flags for transition to AR0300.ARE [AR0410.ARE]: Non-matching transition flags for transition to AR0411.ARE [AR0413.ARE]: Non-matching transition flags for transition to AR0412.ARE [AR0414.ARE]: Non-matching transition flags for transition to AR0411.ARE [AR0415.ARE]: Non-matching transition flags for transition to AR0300.ARE [AR0415.ARE]: Non-matching transition flags for transition to AR0416.ARE [AR0601.ARE]: Non-matching transition flags for transition to AR0602.ARE [AR0605.ARE]: Non-matching transition flags for transition to AR0606.ARE [AR0800.ARE]: Non-matching transition flags for transition to AR0801.ARE [AR0801.ARE]: Non-matching transition flags for transition to AR0802.ARE [AR0801.ARE]: Non-matching transition flags for transition to AR0800.ARE [AR1100.ARE]: Non-matching transition flags for transition to AR1104.ARE [AR1106.ARE]: Non-matching transition flags for transition to AR1100.ARE [AR1200.ARE]: Non-matching transition flags for transition to AR1201.ARE [AR1302.ARE]: Non-matching transition flags for transition to AR1300.ARE [AR1400.ARE]: Non-matching transition flags for transition to AR1402.ARE [AR1400.ARE]: Non-matching transition flags for transition to AR1401.ARE [AR1400.ARE]: Non-matching transition flags for transition to AR1403.ARE [AR1512.ARE]: Non-matching transition flags for transition to AR1514.ARE [AR1512.ARE]: Non-matching transition flags for transition to AR1513.ARE [AR1514.ARE]: Non-matching transition flags for transition to AR1507.ARE [AR1515.ARE]: Non-matching transition flags for transition to AR1500.ARE [AR1900.ARE]: Non-matching transition flags for transition to AR1902.ARE [AR2206.ARE]: Non-matching transition flags for transition to AR2200.ARE [AR2207.ARE]: Non-matching transition flags for transition to AR2200.ARE [AR2210.ARE]: Non-matching transition flags for transition to AR2200.ARE [AR2600.ARE]: Non-matching transition flags for transition to AR2603.ARE [AR2800.ARE]: Non-matching transition flags for transition to AR2807.ARE [AR5000.ARE]: Non-matching transition flags for transition to AR5002.ARE [AR5001.ARE]: Non-matching transition flags for transition to AR5000.ARE [AR5001.ARE]: Non-matching transition flags for transition to AR5002.ARE [AR5007.ARE]: Non-matching transition flags for transition to AR5006.ARE [AR5013.ARE]: Non-matching transition flags for transition to AR5000.ARE [AR5015.ARE]: Non-matching transition flags for transition to AR5016.ARE [AR5200.ARE]: Non-matching transition flags for transition to AR5201.ARE [AR5503.ARE]: Non-matching transition flags for transition to AR5500.ARE [AR5504.ARE]: Non-matching transition flags for transition to AR5500.ARE [AR5507.ARE]: Non-matching transition flags for transition to AR5500.ARE [AR6101.ARE]: Non-matching transition flags for transition to AR6100.ARE [AR6107.ARE]: Non-matching transition flags for transition to AR6108.ARE */ This is after my fixpack has already been installed (I already match up the flags in the most egregious cases. A similar check for the party-required flag should probably be done (and now there's no excuse not to, since you have my juicy code already). This only checks for the "Cannot be passed by NPC" flag (bit 9 or somesuch). I would also suggest marking the entrance to (but not exit from) secret areas as unpassable by NPCs (it's always silly to see them disappear into a wall in areas like the Crooked Crane and Sea's Bounty). EDIT: and these are non-matching party-required transitions: /* [AR0300.ARE]: Non-matching transition flags for transition to AR0328.ARE [AR0400.ARE]: Non-matching transition flags for transition to AR0402.ARE [AR0500.ARE]: Non-matching transition flags for transition to AR0505.ARE [AR0504.ARE]: Non-matching transition flags for transition to AR0500.ARE [AR0505.ARE]: Non-matching transition flags for transition to AR0500.ARE [AR2000.ARE]: Non-matching transition flags for transition to AR2008.ARE [AR2008.ARE]: Non-matching transition flags for transition to AR2000.ARE [AR2207.ARE]: Non-matching transition flags for transition to AR2200.ARE */ Link to comment
devSin Posted March 14, 2005 Author Share Posted March 14, 2005 This is about the best I'm willing to whip up. I still don't like it. COPY_EXISTING_REGEXP GLOB ~^AR.+\.ARE$~ ~OVERRIDE~  READ_LONG 0x5c ~triggersOffset~ ELSE 0x011c  FOR (READ_SHORT 0x5a numberOfTriggers ELSE 0x00; numberOfTriggers > 0x00; numberOfTriggers = numberOfTriggers - 0x01) BEGIN   READ_SHORT ~%triggersOffset%~ + 0x20 ~triggerType~ ELSE 0x00   PATCH_IF (~%triggerType%~ = 0x02) BEGIN    READ_ASCII ~%triggersOffset%~ + 0x38 ~destinationArea~ ELSE ~~    READ_BYTE ~%triggersOffset%~ + 0x60 ~partyRequiredFlag~ ELSE 0x00    READ_BYTE ~%triggersOffset%~ + 0x61 ~notPassableByNpcFlag~ ELSE 0x00    SET ~partyRequired~ = 0x00    SET ~notPassableByNpc~ = 0x00    INNER_PATCH_FILE ~%destinationArea%.ARE~ BEGIN     READ_LONG 0x5c ~innerTriggersOffset~ ELSE 0x011c     FOR (READ_SHORT 0x5a innerNumberOfTriggers; innerNumberOfTriggers > 0x00; innerNumberOfTriggers = innerNumberOfTriggers - 0x01) BEGIN      READ_SHORT ~%innerTriggersOffset%~ + 0x20 ~innerTriggerType~ ELSE 0x00      PATCH_IF (~%innerTriggerType%~ = 0x02) BEGIN       READ_ASCII ~%innerTriggersOffset%~ + 0x38 ~innerDestinationArea~ ELSE ~~       PATCH_IF NOT (~%innerDestinationArea%~ STRING_COMPARE_CASE ~%SOURCE_RES%~) BEGIN        READ_BYTE ~%innerTriggersOffset%~ + 0x60 ~innerPartyRequiredFlag~ ELSE 0x00        READ_BYTE ~%innerTriggersOffset%~ + 0x61 ~innerNotPassableByNpcFlag~ ELSE 0x00        SET ~partyRequired~ = (((~%innerPartyRequiredFlag%~ BAND 0x04) = 0x04) AND ((~%partyRequiredFlag%~ BAND 0x04) != 0x04)) ? 0x01 : ~%partyRequired%~        SET ~notPassableByNpc~ = (((~%innerNotPassableByNpcFlag%~ BAND 0x02) = 0x02) AND ((~%notPassableByNpcFlag%~ BAND 0x02) != 0x02)) ? 0x01 : ~%notPassableByNpc%~       END      END      SET ~innerTriggersOffset~ = ~%innerTriggersOffset%~ + 0xc4     END    END    WRITE_BYTE ~%triggersOffset%~ + 0x60 (~%partyRequired%~ = 0x01) ? ~%partyRequiredFlag%~ BOR 0x04 : ~%partyRequiredFlag%~    WRITE_BYTE ~%triggersOffset%~ + 0x61 (~%notPassableByNpc%~ = 0x01) ? ~%notPassableByNpcFlag%~ BOR 0x02 : ~%notPassableByNpcFlag%~   END   SET ~triggersOffset~ = ~%triggersOffset%~ + 0xc4  END BUT_ONLY_IF_IT_CHANGES I was hoping to be able to match up transitions to their specific counterpart but, without any direct connection between exits and triggers, it would be more trouble than it's worth (maybe if BioWare had been consistent in their naming of transitions). Note that the above will not totally fix AR1300/AR1302 - these areas have multiple transitions to each other, but not all of them have matching flags. I had two options - either iterate through the destination ARE triggers until the first match was found, or iterate through all the triggers and hope I didn't fuck it up too much. I chose the second method. The first wouldn't be much better, as there are very few transitions that actually have both flags marked (and don't match). Link to comment
CamDawg Posted February 7, 2006 Share Posted February 7, 2006 Cheers. I got the same list of transition issues when runnig your checks locally so I guess we've stolen incorporated enough of your area fixes. While not nearly as spiffy, I re-worked the patch code so I would be better able to tell at a glance which files and transitions are being affected. I also incorporated previous flag fixes into these for maintainability. // transitions which need 'party required' flags COPY_EXISTING ~ar0300.are~ ~override~ ~ar0400.are~ ~override~ ~ar0415.are~ ~override~ ~ar0500.are~ ~override~ ~ar0504.are~ ~override~ ~ar0505.are~ ~override~ ~ar2000.are~ ~override~ ~ar2008.are~ ~override~ ~ar2207.are~ ~override~ ~ar2600.are~ ~override~ ~ar2902.are~ ~override~ READ_SHORT 0x5A "info_num" READ_LONG 0x5C "info_off" FOR (index = 0; index < info_num; index = index + 1) BEGIN READ_ASCII ("%info_off%" + 0x38 + (0xC4 * "%index%")) "area" PATCH_IF ((("ar0300" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0328" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0400" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0402" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0415" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0300" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0500" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0505" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0504" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0500" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0505" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0500" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2000" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2002" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2000" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2008" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2008" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2000" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2207" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2200" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2600" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2603" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2902" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2900" STRING_COMPARE_CASE "%area%" = 0))) BEGIN READ_BYTE ("%info_off%" + 0x60 + (0xC4 * "%index%")) "flags" WRITE_BYTE ("%info_off%" + 0x60 + (0xC4 * "%index%")) ("%flags%" BOR 0b00000100) END END BUT_ONLY_IF_IT_CHANGES // transitions which need 'can not be passed by NPC' flags COPY_EXISTING ~ar0015.are~ ~override~ ~ar0021.are~ ~override~ ~ar0022.are~ ~override~ ~ar0082.are~ ~override~ ~ar0300.are~ ~override~ ~ar0305.are~ ~override~ ~ar0306.are~ ~override~ ~ar0307.are~ ~override~ ~ar0308.are~ ~override~ ~ar0400.are~ ~override~ ~ar0407.are~ ~override~ ~ar0410.are~ ~override~ ~ar0413.are~ ~override~ ~ar0414.are~ ~override~ ~ar0415.are~ ~override~ ~ar0601.are~ ~override~ ~ar0605.are~ ~override~ ~ar0800.are~ ~override~ ~ar0801.are~ ~override~ ~ar1100.are~ ~override~ ~ar1106.are~ ~override~ ~ar1200.are~ ~override~ ~ar1202.are~ ~override~ ~ar1300.are~ ~override~ ~ar1302.are~ ~override~ ~ar1400.are~ ~override~ ~ar1512.are~ ~override~ ~ar1514.are~ ~override~ ~ar1515.are~ ~override~ ~ar1900.are~ ~override~ ~ar2000.are~ ~override~ ~ar2200.are~ ~override~ ~ar2206.are~ ~override~ ~ar2207.are~ ~override~ ~ar2210.are~ ~override~ ~ar2600.are~ ~override~ ~ar2800.are~ ~override~ ~ar5000.are~ ~override~ ~ar5001.are~ ~override~ ~ar5007.are~ ~override~ ~ar5013.are~ ~override~ ~ar5015.are~ ~override~ ~ar5200.are~ ~override~ ~ar5503.are~ ~override~ ~ar5504.are~ ~override~ ~ar5507.are~ ~override~ ~ar6101.are~ ~override~ ~ar6107.are~ ~override~ READ_SHORT 0x5A "info_num" ELSE 0 READ_LONG 0x5C "info_off" ELSE 0 FOR (index = 0; index < info_num; index = index + 1) BEGIN READ_ASCII ("%info_off%" + 0x38 + (0xC4 * "%index%")) "area" PATCH_IF ((("ar0015" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0018" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0021" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0020" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0021" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0082" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0022" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0021" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0082" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0021" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0300" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0301" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0300" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0302" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0300" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0303" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0300" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0304" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0300" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0308" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0300" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0309" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0305" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0300" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0306" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0300" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0307" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0300" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0308" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0300" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0308" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0309" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0400" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0311" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0407" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0300" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0410" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0411" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0413" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0412" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0414" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0411" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0415" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0300" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0415" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0416" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0601" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0602" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0605" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0606" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0800" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0801" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0801" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0800" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar0801" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar0802" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1100" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1104" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1106" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1100" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1200" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1201" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1202" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1201" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1300" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1302" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1302" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1300" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1400" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1401" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1400" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1402" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1400" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1403" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1512" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1513" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1512" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1514" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1514" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1507" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1515" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1500" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar1900" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar1902" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2000" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2008" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2200" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2206" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2200" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2207" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2200" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2210" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2206" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2200" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2207" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2200" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2210" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2200" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2600" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2603" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar2800" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar2807" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5000" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5002" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5001" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5000" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5001" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5002" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5007" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5006" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5013" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5000" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5015" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5016" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5200" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5201" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5503" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5500" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5504" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5500" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar5507" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar5500" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar6101" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar6100" STRING_COMPARE_CASE "%area%" = 0)) OR (("ar6107" STRING_COMPARE_CASE ~%SOURCE_RES%~ = 0) AND ("ar6108" STRING_COMPARE_CASE "%area%" = 0))) BEGIN READ_BYTE ("%info_off%" + 0x61 + (0xC4 * "%index%")) "flags" WRITE_BYTE ("%info_off%" + 0x61 + (0xC4 * "%index%")) ("%flags%" BOR 0b00000010) END END BUT_ONLY_IF_IT_CHANGES Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.