Jump to content

Transition flags


Recommended Posts

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

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

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...