Jump to content

Area flag fixes


CamDawg

Recommended Posts

Numerous incorrect area flags, again from Baldurdash.

 

Miscellaneous Area Type Flags Fixes resolves minor errors with incorrect area flags, such as dungeons being marked as non-dungeons or vice versa. This would have no effect on gameplay, but could lead to strange NPC dialog. This update also resolves the bug with the Tethir Forest cabin (Coran's?) being enterable by one player, but only exitable with all players, as Mazzy's home in Trademeet was. That fix, once separate, was merged into this archive.

 

// area flag fixes
COPY_EXISTING ~ar0041.are~ ~override~
             ~ar0042.are~ ~override~
             ~ar0044.are~ ~override~
             ~ar0045.are~ ~override~
             ~ar1607.are~ ~override~
 READ_BYTE  0x48 "flags"
 WRITE_BYTE 0x48 ("%flags%" BOR 0b10000000) // adds outdoor flag

COPY_EXISTING ~ar0321.are~ ~override~
             ~ar0322.are~ ~override~
             ~ar0323.are~ ~override~
 READ_BYTE  0x48 "flags"
 WRITE_BYTE 0x48 ("%flags%" BAND 0b01111111) // removes outdoor flag

COPY_EXISTING ~ar0303.are~ ~override~
             ~ar0305.are~ ~override~
             ~ar0307.are~ ~override~
             ~ar0308.are~ ~override~
             ~ar0309.are~ ~override~
             ~ar0311.are~ ~override~
             ~ar0312.are~ ~override~
             ~ar0315.are~ ~override~
             ~ar0316.are~ ~override~
             ~ar0317.are~ ~override~
             ~ar0501.are~ ~override~
             ~ar0504.are~ ~override~
             ~ar0505.are~ ~override~
             ~ar0506.are~ ~override~
             ~ar0507.are~ ~override~
             ~ar0508.are~ ~override~
             ~ar0512.are~ ~override~
             ~ar0706.are~ ~override~
 READ_BYTE  0x48 "flags"
 WRITE_BYTE 0x48 ("%flags%" BAND 0b11101111) // removes city flag
 
COPY_EXISTING ~ar1002.are~ ~override~
 READ_BYTE  0x48 "flags"
 WRITE_BYTE 0x48 ("%flags%" BOR 0b00010000) // adds city flag
 
COPY_EXISTING ~ar0310.are~ ~override~
             ~ar0331.are~ ~override~
             ~ar0418.are~ ~override~
             ~ar0521.are~ ~override~
             ~ar0526.are~ ~override~
             ~ar0601.are~ ~override~
             ~ar0606.are~ ~override~
             ~ar0804.are~ ~override~
             ~ar1106.are~ ~override~
             ~ar1203.are~ ~override~
             ~ar1402.are~ ~override~
             ~ar1501.are~ ~override~
             ~ar1608.are~ ~override~
             ~ar1610.are~ ~override~
             ~ar2901.are~ ~override~
             ~ar2902.are~ ~override~
             ~ar2903.are~ ~override~
             ~ar2905.are~ ~override~
 READ_BYTE  0x48 "flags"
 WRITE_BYTE 0x48 ("%flags%" BOR 0b00000100) // adds dungeon flag
 
COPY_EXISTING ~ar1101.are~ ~override~
             ~ar2603.are~ ~override~
 READ_BYTE  0x48 "flags"
 WRITE_BYTE 0x48 ("%flags%" BAND 0b11111011) // removes dungeon flag

COPY_EXISTING ~ar2002.are~ ~override~
 READ_LONG 0x5A "info_num"
 READ_LONG 0x5C "info_off"
 WHILE ("%info_num%" > 0) BEGIN
   READ_ASCII ("%info_off%" + 0x38 + (0xC4 * ("%info_num%" - 1))) "area"
   WHILE ("AR2000" STRING_COMPARE "%area%" = 0) BEGIN
     WRITE_BYTE ("%info_off%" + 0x60 + (0xC4 * ("%info_num%" - 1))) ("%flags%" BAND 0b11111011) // removes party-required flag from AR2000 transition
     SET "area" = 0
   END
   SET "info_num" = ("%info_num%" - 1)
 END

COPY_EXISTING ~ar2603.are~ ~override~
 READ_LONG 0x5A "info_num"
 READ_LONG 0x5C "info_off"
 WHILE ("%info_num%" > 0) BEGIN
   READ_ASCII ("%info_off%" + 0x38 + (0xC4 * ("%info_num%" - 1))) "area"
   WHILE ("AR2600" STRING_COMPARE "%area%" = 0) BEGIN
     WRITE_BYTE ("%info_off%" + 0x60 + (0xC4 * ("%info_num%" - 1))) ("%flags%" BAND 0b11111011) // removes party-required flag from AR2000 transition
     SET "area" = 0
   END
   SET "info_num" = ("%info_num%" - 1)
 END

Link to comment

Archived

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

×
×
  • Create New...