cmorgan Posted August 6, 2015 Share Posted August 6, 2015 ...I fail at life Ok. I have a Failure To Understand. I am messing about with getting an area list with what each area is flagged. I understand I canREAD_BYTE "0x48" "flags" // AREATYPE.IDSI understand that it is a 2 (word) byte.I understand that with only the OUTDOOR value set, the binary number written to it is 0b00000001I understand that with both the OUTDOOR value set and the FOREST value set, the binary number written to it is 0b00010001Now we get to the part where I am missing something blindingly obvious to real programmers, and completely arcane to hack like me who has learned what they know from Blunt Code Trauma - copying, adjusting, failing, reading, adjusting, failing, swearing, taking a drink of scotch, re-reading, re-researching, sighing, GOTO LINE1 I know from my dialogue modding that + ~AreaType(1)~ + ~[PC] This area is flagged as OUTDOOR. Look! A bird!~ + c-lighttestpanel + ~AreaType(2)~ + ~[PC] This area is flagged as DAYNIGHT. It couldn't make up its mind.~ + c-lighttestpanel + ~AreaType(4)~ + ~[PC] This area is flagged as WEATHER. I bet that means it has some.~ + c-lighttestpanel + ~AreaType(8)~ + ~[PC] This area is flagged as CITY. Even though it might just be a hamlet.~ + c-lighttestpanel + ~AreaType(16)~ + ~[PC] This area is flagged as FOREST. See it, AND the trees.~ + c-lighttestpanel + ~AreaType(32)~ + ~[PC] This area is flagged as DUNGEON. No, this is not *that* type of game...~ + c-lighttestpanel + ~AreaType(64)~ + ~[PC] This area is flagged as EXTENDEDNIGHT. Apparently, Bhaal won. Or Shar.~ + c-lighttestpanel + ~AreaType(128)~ + ~[PC] This area is flagged as CANRESTOTHER. It's always nice to have a catch-all.~ + c-lighttestpanel But I also know that the numerical values listed are not actually what the engine can read - this it can read OUTDOOR and FOREST, which I think in my feeble little mind is 1 + 16, or 17. (I think this is where I go off the rails - something tells me I am missing how bitwise operations equate to numbers).So, when I do this: BEGIN ~Area Checker~ NO_LOG_RECORD // so it can be used as much as wanted COPY ~test/blank.log~ ~override/debugger.log~ APPEND ~debugger.log~ "///// Area Type Checker - Begin Log \\\\\" ACTION_IF FILE_EXISTS_IN_GAME ~xr2400.are~ THEN BEGIN // ensures are regexp search doesn't die COPY_EXISTING ~ar0087.are~ ~override/xr2400.are~ ~ar0087.are~ ~override/xr2600.are~ END // area checker COPY_EXISTING_REGEXP GLOB ~^%prefix%.+\.are$~ ~override~ PATCH_IF (SOURCE_SIZE < 0x11c) BEGIN // if invalid file PATCH_PRINT "%SOURCE_FILE% error: Corrupt file, below minimum file size" INNER_ACTION BEGIN APPEND ~debugger.log~ "%SOURCE_FILE% error: Corrupt file, below minimum file size" END END ELSE BEGIN READ_BYTE "0x48" "flags" PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN PATCH_PRINT "%SOURCE_FILE% has area set as %flags%" INNER_ACTION BEGIN APPEND ~debugger.log~ "%SOURCE_FILE% has area set as %flags%" END END APPEND ~debugger.log~ "///// Area Type Checker - End Log \\\\\" COPY ~override/debugger.log~ ~test/debugger_area_list.log~ This gets me to a nice list of area files with numbers... which means I am getting a numerical summary of the bits set, but not in binary.AR0011.ARE has area set as 0 // true - it has nothing set on that byte at allAR0015.ARE has area set as 128 // true - it has only Can Rest...AR0020.ARE has area set as 79 // heh - it has OUTDOOR, DAYNIGHT, WEATHER, CITY, EXTENDED NIGHTSo actually, the numbers ARE being returned as additive values.WONDERFUL!Except... what I set about to do was to be able to list the bits set individually, not try to create a puzzle that I then have to figure out...Can someone give me guidance as to how to either get %flags% to return the binary value and PATCH_PRINT it (which would be an easy read for which bits are set)where APPEND ~debugger.log~ "%SOURCE_FILE% has area set as %flags%"evaluates to ~AR####.ARE has area set as 0b00010001~or some way of sequetially interpreting whether the bit at position 0 (far right) is 1, the bit at position 2 is 1 (or not), etc. - even hacks like me can iterate through a pattern and get a value set and printed, if we know how to get to the blasted info in the first place edit 1:(yes, i know that I could just open NI or DLTCEP and make a manual list of each flag placed on each file - but #1 I want to know *how* to do this, and #2 I think it would be a helluva long tedious haul to do the long form research when I just *know* this is much easier than i am making it.) edit 2: found conversion charts and calculators, so I can manually work this out - but I still want to know how to build the code Link to comment
Lollorian Posted August 6, 2015 Share Posted August 6, 2015 %flags% && 0b01 gives true if bit1 is set %flags% && 0b10 gives true if bit2 is set ... and so on You can use this to sequentially check which bit is set Link to comment
cmorgan Posted August 6, 2015 Author Share Posted August 6, 2015 Cheers! I knew it had to be something simple - thank you! Link to comment
cmorgan Posted August 6, 2015 Author Share Posted August 6, 2015 ...and it seems I am even more hacky/noob than I thought. I figured that END ELSE BEGIN SPRINT b3 ~.~ READ_BYTE "0x48" "flags" PATCH_IF (%flags% && 0b11) = 1 BEGIN SPRINT b3 ~City~ END PATCH_PRINT "%SOURCE_FILE% has %b3% set" etc etc would be a rough swing through the roses... and it is definitely not working as intended Setting (%flags% && 0b11) = 0 doesn't set on the correct value, nor does ((%flags% && 0b11) = 0) , values either 0 or 1. Hmmm... Should i be looking at %flags% as a bitwise operator, and doing something like BAND? Link to comment
Mike1072 Posted August 6, 2015 Share Posted August 6, 2015 READ_BYTE "0x48" "flags" // AREATYPE.IDS I understand that it is a 2 (word) byte. Since it is 2 bytes, using READ_BYTE instead of READ_SHORT means that you are only fetching half of the field. In this case, it doesn't matter, because the other bits aren't used in BG, but it's something to keep in mind. PATCH_IF (%flags% && 0b11) = 1 BEGIN SPRINT b3 ~City~ END Note that 0b11 is not checking the value of bit 3, it is checking the value of bits 0 and 1. Bit 3 is located v here. 0b1000 You do want to be using binary and (BAND/&) instead of logical and (AND/&&). (flags & 0b00000001) == 0b00000001 will return true if bit 0 is set (flags & 0b00000010) == 0b00000010 will return true if bit 1 is set (flags & 0b00000100) == 0b00000100 will return true if bit 2 is set etc. I added a comparison here, to make it clear that the value returned from the first part is actually 1, 2, 4, etc. depending on which bit is checked. Without the comparison, those values would all still resolve to true, but they wouldn't all equal 1. You mentioned wanting the ability to display a number in binary format. I coded up a function to do that, mostly for fun. You give it a number (the decimal parameter) and optionally a number of bits and it will return a variable containing the binary representation of that number in the specified number of bits, prefixed by '0b'. Function: DEFINE_PATCH_FUNCTION ~TO_BINARY~ INT_VAR decimal = 0 // the decimal number to convert to binary bits = 0 // optional: the number of bits to use (if unspecified or too small, it will default to the smallest out of 8, 16, and 32 that fits) RET binary_string // the binary string representation of the given number, prefixed by '0b' BEGIN // for negative numbers, flip the bits so we can perform our conversion (we'll flip them back after) SET negative = 0 PATCH_IF (decimal < 0) BEGIN SET negative = 1 SET decimal = BNOT decimal END // determine how many bits will be used to represent the number PATCH_IF (bits <= 0 || (bits < 32 && decimal >= (1 BLSL bits))) BEGIN // if the number requires more bits than were specified // determine the minimum number of bits required PATCH_IF (decimal < (1 BLSL 8)) BEGIN SET bits = 8 END ELSE PATCH_IF (decimal < (1 BLSL 16)) BEGIN SET bits = 16 END ELSE BEGIN SET bits = 32 END END // convert to binary using division and modulo TEXT_SPRINT binary_string ~~ WHILE (decimal > 0) BEGIN SET bit = decimal - (decimal / 2) * 2 // decimal % 2 TEXT_SPRINT binary_string ~%bit%%binary_string%~ SET decimal /= 2 END // pad left with zeroes WHILE (STRING_LENGTH ~%binary_string%~ < bits) BEGIN TEXT_SPRINT binary_string ~0%binary_string%~ END // if the number was negative, we need to flip the 0s and 1s back PATCH_IF (negative) BEGIN INNER_PATCH_SAVE binary_string ~%binary_string%~ BEGIN REPLACE_TEXTUALLY ~0~ ~5~ REPLACE_TEXTUALLY ~1~ ~0~ REPLACE_TEXTUALLY ~5~ ~1~ END END // prefix the result with '0b' TEXT_SPRINT binary_string ~0b%binary_string%~ END Usage: SET number = 5 LPF ~TO_BINARY~ INT_VAR decimal = number RET binary = binary_string END PATCH_PRINT ~decimal value is %number%, binary value is %binary%~ SET number = (0 - 5) LPF ~TO_BINARY~ INT_VAR decimal = number bits = 10 RET binary = binary_string END PATCH_PRINT ~decimal value is %number%, binary value is %binary%~ Output: decimal value is 5, binary value is 0b00000101 decimal value is -5, binary value is 0b1111111011 Link to comment
cmorgan Posted August 6, 2015 Author Share Posted August 6, 2015 Since it is 2 bytes, using READ_BYTE instead of READ_SHORT means that you are only fetching half of the field. In this case, it doesn't matter, because the other bits aren't used in BG, but it's something to keep in mind. Got it - in this case, only the first byte is used; the older discussion about FL_INN and FL_STRONGHOLDS was predicated on using the additional 8 possible on the second byte, right? So looking at the second byte would be needed to detect FL_INN or such. I think. Note that 0b11 is not checking the value of bit 3, it is checking the value of bits 0 and 1. Bit 3 is located at 0b1000I am not sure I understand... I thought the usage looked like 0b00 0b01 0b11 0b100 (decimals 0 1 2 3) and that the operation was looking inside %flags% to find those numbered bits. (Taking that year off really messed me up on this stuff.) You do want to be using binary and (BAND/&) instead of logical and (AND/&&). (flags & 0b00000001) == 0b00000001 will return true if bit 0 is set (flags & 0b00000010) == 0b00000010 will return true if bit 1 is set (flags & 0b00000100) == 0b00000100 will return true if bit 2 is set etc. I added a comparison here, to make it clear that the value returned from the first part is actually 1, 2, 4, etc. depending on which bit is checked. Without the comparison, those values would all still resolve to true, but they wouldn't all equal 1. Ah, so comparison values as binary, and working with binary, because I want to get at information stored within a byte (yes, that sounds dumb, but remember I am a dialogue hack person. I still instinctively think of READ_BYTE WRITE_BYTE the same way I think about doing STRING_COMPARE_CASE - to me the finding at offset X is a "block of information" to be manipulated rather than "numbers" to be manipulated. I know that is crazy; the closest analogy I can think of is a person who codes by taking other building blocks that work to do X and stacking them in different orders to do Y - and is not sure what really is inside each of the building blocks. Only now, I kinda need to get inside there.) So the (%flags% & 0b00000001) == 0b00000001 will return true if bit 0 is set (%flags% & 0b00000010) == 0b00000010 will return true if bit 1 is set (%flags% & 0b00000100) == 0b00000100 will return true if bit 2 is set is stated like if x (value read in at 0x48 stated in binary) at bit y (0b00000001) is the same as 0b00000001 then it is true and bit 0 is not a 0, it is a 1 ? Am I close? You mentioned wanting the ability to display a number in binary format. I coded up a function to do that, mostly for fun. You give it a number (the decimal parameter) and optionally a number of bits and it will return a variable containing the binary representation of that number in the specified number of bits, prefixed by '0b'. Way, way cool! So if I add this function, I can create a string that outputs something like the following - PATCH_PRINT ~%SOURCE_RES% is ~flagged %b0% %b1% %b2% %b3$ %b4% %b5% %b6% %b7%, binary value is %binary%~ and that would give both the .ids entries that match the areatype flags on the first byte and also the full value expressed as a binary number. Edit: wait a sec - on the single byte field, we couldn't have that -5 converted, right? there are only 8 bits there, and the number has 10 places... Link to comment
lynx Posted August 6, 2015 Share Posted August 6, 2015 I thought the usage looked like 0b00 0b01 0b11 0b100 (decimals 0 1 2 3) that's 0 1 3 4, 2 is 0b10. if x (value read in at 0x48 stated in binary) at bit y (0b00000001) is the same as 0b00000001 then it is true and bit 0 is set ? Am I close? It's true if *only* bit 0 is set. That's what the note on the extra comparisons was about. If you want to check if any value has bit 0 set among others, just do (%flags% & 0b00000001). Link to comment
cmorgan Posted August 6, 2015 Author Share Posted August 6, 2015 Ahhhh that makes sense.ok, bear with me, here - So the comparison is an "if only this bit among the 8 bits is set". It would fail to be true if I had 0b01000001. So in this case, I am looking at 0x48 and trying to determine if one value among many values are set. I can have any and all of the following values: bit0 (0,1) bit1 (0,1) bit2 (0,1) bit3 (0,1) bit4 (0,1) bit5 (0,1) bit6 (0,1) bit7 (0,1) If I want to determine if among all the potential values within that READ_BYTE value [looking at this like a set of switches on/off, not a number] { 0b00000001 to 0b11111111 } inclusive then what I want is for 0b00000001 and 0b00000101 (and all the others) to return true. I want any area that has any value that has bit0 set to 1. So I should use (%flags% & 0b00000001) without the comparison. Link to comment
lynx Posted August 6, 2015 Share Posted August 6, 2015 yes. Should work with just "& 1" too, unless weidu enforces otherwise. Link to comment
cmorgan Posted August 6, 2015 Author Share Posted August 6, 2015 Now this was seriously fun, and I learned a good bit (no pun intended) both about what I know and what I still need to learn. Thanks to you folks help, the following test.tp2 BACKUP ~test/backup~ // location to store files for uninstall purposes AUTHOR ~clueless_cmorgan_and_helpful_friends~ // email address displayed if install fails VERSION ~1~ ALWAYS OUTER_SPRINT "prefix" "" // sets up var %prefix% for COPY_EXISTING_REGEXP END /* AreaType() Checker */ BEGIN ~AreaType() Checker~ NO_LOG_RECORD // so it can be used as much as wanted COPY ~test/blank.log~ ~override/debugger.log~ APPEND ~debugger.log~ "///// AreaType() Checker - Begin Log \\\\\" ACTION_IF NOT FILE_EXISTS_IN_GAME ~xr2400.are~ THEN BEGIN // regexp seems to choke on those - Camdawg's notes indicate files in chitin but not actually in game? // ensures are regexp search doesn't die COPY_EXISTING ~ar0087.are~ ~override/xr2400.are~ ~ar0087.are~ ~override/xr2600.are~ END /* Mike1701's binary conversion function */ DEFINE_PATCH_FUNCTION ~TO_BINARY~ INT_VAR decimal = 0 // the decimal number to convert to binary bits = 0 // optional: the number of bits to use (if unspecified or too small, it will default to the smallest out of 8, 16, and 32 that fits) RET binary_string // the binary string representation of the given number, prefixed by '0b' BEGIN // for negative numbers, flip the bits so we can perform our conversion (we'll flip them back after) SET negative = 0 PATCH_IF (decimal < 0) BEGIN SET negative = 1 SET decimal = BNOT decimal END // determine how many bits will be used to represent the number PATCH_IF (bits <= 0 || (bits < 32 && decimal >= (1 BLSL bits))) BEGIN // if the number requires more bits than were specified // determine the minimum number of bits required PATCH_IF (decimal < (1 BLSL 8)) BEGIN SET bits = 8 END ELSE PATCH_IF (decimal < (1 BLSL 16)) BEGIN SET bits = 16 END ELSE BEGIN SET bits = 32 END END // convert to binary using division and modulo TEXT_SPRINT binary_string ~~ WHILE (decimal > 0) BEGIN SET bit = decimal - (decimal / 2) * 2 // decimal % 2 TEXT_SPRINT binary_string ~%bit%%binary_string%~ SET decimal /= 2 END // pad left with zeroes WHILE (STRING_LENGTH ~%binary_string%~ < bits) BEGIN TEXT_SPRINT binary_string ~0%binary_string%~ END // if the number was negative, we need to flip the 0s and 1s back PATCH_IF (negative) BEGIN INNER_PATCH_SAVE binary_string ~%binary_string%~ BEGIN REPLACE_TEXTUALLY ~0~ ~5~ REPLACE_TEXTUALLY ~1~ ~0~ REPLACE_TEXTUALLY ~5~ ~1~ END END // prefix the result with '0b' TEXT_SPRINT binary_string ~0b%binary_string%~ END // area checker COPY_EXISTING_REGEXP GLOB ~^%prefix%.+\.are$~ ~override~ PATCH_IF (SOURCE_SIZE < 0x11c) BEGIN // if invalid file PATCH_PRINT "%SOURCE_FILE% error: Corrupt file, below minimum file size" INNER_ACTION BEGIN APPEND ~debugger.log~ "%SOURCE_FILE% error: Corrupt file, below minimum file size" END END ELSE BEGIN SPRINT b0 ~[ 0 ]~ SPRINT b1 ~[ 0 ]~ SPRINT b2 ~[ 0 ]~ SPRINT b3 ~[ 0 ]~ SPRINT b4 ~[ 0 ]~ SPRINT b5 ~[ 0 ]~ SPRINT b6 ~[ 0 ]~ SPRINT b7 ~[ 0 ]~ READ_BYTE "0x48" "flags" SET number = %flags% LPF ~TO_BINARY~ INT_VAR decimal = number RET binary = binary_string END PATCH_IF (%flags% & 0b00000001) BEGIN SPRINT b0 ~[OUTDOOR]~ END PATCH_IF (%flags% & 0b00000010) BEGIN SPRINT b1 ~[DAYNIGHT]~ END PATCH_IF (%flags% & 0b00000100) BEGIN SPRINT b2 ~[WEATHER]~ END PATCH_IF (%flags% & 0b00001000) BEGIN SPRINT b3 ~[CITY]~ END PATCH_IF (%flags% & 0b00010000) BEGIN SPRINT b4 ~[FOREST]~ END PATCH_IF (%flags% & 0b00100000) BEGIN SPRINT b5 ~[DUNGEON]~ END PATCH_IF (%flags% & 0b01000000) BEGIN SPRINT b6 ~[EXTENDEDNIGHT]~ END PATCH_IF (%flags% & 0b10000000) BEGIN SPRINT b7 ~[CANRESTOTHER]~ END PATCH_PRINT "%SOURCE_FILE% is flagged %binary% (%number%) ; %b0% %b1% %b2% %b3% %b4% %b5% %b6% %b7%" INNER_ACTION BEGIN APPEND ~debugger.log~ "%SOURCE_FILE% is flagged %binary% (%number%); %b0% %b1% %b2% %b3% %b4% %b5% %b6% %b7%" END END APPEND ~debugger.log~ "///// Area Type Checker - End Log \\\\\" COPY ~override/debugger.log~ ~test/debugger_area_list.log~ works nicely - the resulting .log gives a good mass rundown of what is currently flagged on an install. From vanilla BG2:EE, ///// AreaType() Checker - Begin Log \\\\\ AR0011.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0012.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0013.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0014.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0015.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0016.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0017.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0018.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] AR0020.ARE is flagged 0b01001111 (79); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0021.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0022.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0028.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0041.ARE is flagged 0b01001011 (75); [OUTDOOR] [DAYNIGHT] [ 0 ] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0042.ARE is flagged 0b00010011 (19); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR0043.ARE is flagged 0b00000011 (3); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0044.ARE is flagged 0b00000011 (3); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0045.ARE is flagged 0b01001011 (75); [OUTDOOR] [DAYNIGHT] [ 0 ] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0046.ARE is flagged 0b01001011 (75); [OUTDOOR] [DAYNIGHT] [ 0 ] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0069.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0070.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0071.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0072.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0082.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0083.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0084.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0085.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0086.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0087.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0201.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0202.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0203.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0204.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0205.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0206.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0300.ARE is flagged 0b01001111 (79); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0301.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0302.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0303.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0304.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0305.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0306.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0307.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0308.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0309.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0310.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0311.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0312.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0313.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0314.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0315.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0316.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0317.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0318.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0319.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0321.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0322.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0323.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0324.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0325.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0326.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0327.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0328.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0329.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0330.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0331.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0332.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0333.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0334.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0335.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0400.ARE is flagged 0b01001111 (79); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0401.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0402.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0403.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0404.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0405.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0406.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0407.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0408.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0409.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0410.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0411.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0412.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0413.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0414.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0415.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0416.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0417.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0418.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0419.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0420.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0500.ARE is flagged 0b01001111 (79); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0501.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0502.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0503.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0504.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0505.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0506.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0507.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0508.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0509.ARE is flagged 0b00001000 (8); [ 0 ] [ 0 ] [ 0 ] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0510.ARE is flagged 0b00001000 (8); [ 0 ] [ 0 ] [ 0 ] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0511.ARE is flagged 0b00001000 (8); [ 0 ] [ 0 ] [ 0 ] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0512.ARE is flagged 0b00001000 (8); [ 0 ] [ 0 ] [ 0 ] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0513.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0514.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0515.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0516.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0517.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0518.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0519.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0520.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0521.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0522.ARE is flagged 0b10001000 (136); [ 0 ] [ 0 ] [ 0 ] [CITY] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0523.ARE is flagged 0b00001000 (8); [ 0 ] [ 0 ] [ 0 ] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0525.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0526.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0527.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0528.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0529.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0530.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0531.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0600.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0601.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0602.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0603.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0604.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0605.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0606.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0607.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0700.ARE is flagged 0b01001011 (75); [OUTDOOR] [DAYNIGHT] [ 0 ] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0701.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0702.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0703.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0704.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0705.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0706.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0707.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0708.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0709.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0710.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0711.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] AR0712.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0713.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0714.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0800.ARE is flagged 0b00001111 (15); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0801.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0802.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0803.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0804.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0805.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0806.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0807.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0808.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0809.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0810.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0811.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR0812.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0813.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0900.ARE is flagged 0b01001111 (79); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR0901.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0902.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0903.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0904.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR0905.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0906.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR0907.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR1000.ARE is flagged 0b01001111 (79); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR1001.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1002.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1003.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1004.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1005.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1006.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1007.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1008.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1009.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1010.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1100.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR1101.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1102.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1103.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1104.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1105.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1106.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1107.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR1200.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR1201.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1202.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1203.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1204.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR1300.ARE is flagged 0b00000111 (7); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1301.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1302.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1303.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1304.ARE is flagged 0b00000111 (7); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1305.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR1306.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR1307.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR1400.ARE is flagged 0b01010111 (87); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR1401.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1402.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1403.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1404.ARE is flagged 0b00010101 (21); [OUTDOOR] [ 0 ] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR1500.ARE is flagged 0b00000011 (3); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1501.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1502.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1503.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1504.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1505.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1506.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1507.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1508.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1509.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1510.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1511.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1512.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1513.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1514.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1515.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] AR1516.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1600.ARE is flagged 0b00001111 (15); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1601.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1602.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1603.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1604.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1605.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1606.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1607.ARE is flagged 0b00000101 (5); [OUTDOOR] [ 0 ] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1608.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1609.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1610.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR1611.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1612.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1613.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1700.ARE is flagged 0b00000111 (7); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1800.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR1900.ARE is flagged 0b00000111 (7); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1901.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR1902.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1904.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR1905.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2000.ARE is flagged 0b01001111 (79); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR2001.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2002.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2006.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2007.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2008.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2009.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2010.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2011.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2012.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2013.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2014.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2015.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2016.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2017.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2018.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2100.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2101.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2102.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2200.ARE is flagged 0b00001000 (8); [ 0 ] [ 0 ] [ 0 ] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2201.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2202.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2203.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2204.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2205.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2206.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2207.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2208.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2209.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2210.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2300.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2400.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2401.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2402.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2500.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR2600.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR2601.ARE is flagged 0b00010011 (19); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR2602.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2603.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2700.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR2800.ARE is flagged 0b01001011 (75); [OUTDOOR] [DAYNIGHT] [ 0 ] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR2801.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2802.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2803.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2804.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2805.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2806.ARE is flagged 0b00000010 (2); [ 0 ] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2807.ARE is flagged 0b01000011 (67); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] AR2808.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2809.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR2810.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2811.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2812.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR2900.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2901.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2902.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2903.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2904.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR2905.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3000.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR3001.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3003.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3004.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3005.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3006.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3007.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3008.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3009.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3010.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3011.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3012.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3013.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3014.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3015.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3016.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3017.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3018.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3019.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3020.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3021.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3022.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3023.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3024.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3025.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3026.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR3027.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR4000.ARE is flagged 0b00010101 (21); [OUTDOOR] [ 0 ] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR4500.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR5000.ARE is flagged 0b00001111 (15); [OUTDOOR] [DAYNIGHT] [WEATHER] [CITY] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5001.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5002.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5003.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5004.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5005.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5006.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR5007.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR5008.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5009.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5010.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5011.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5012.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5013.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR5014.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5015.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5016.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5200.ARE is flagged 0b00000101 (5); [OUTDOOR] [ 0 ] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5201.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR5202.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR5203.ARE is flagged 0b00000111 (7); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5204.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR5500.ARE is flagged 0b00000011 (3); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5501.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5502.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5503.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5504.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5505.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5506.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5507.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR5508.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR5509.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] AR6000.ARE is flagged 0b00000111 (7); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR6001.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6002.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6003.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6004.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6005.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6008.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6011.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6012.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR6100.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] AR6101.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6102.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6103.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6104.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6105.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6106.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6107.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6108.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR6109.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] AR6110.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] AR6111.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] AR6200.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR6300.ARE is flagged 0b00000111 (7); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] AR6400.ARE is flagged 0b00000111 (7); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH4000.ARE is flagged 0b01010111 (87); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH4010.ARE is flagged 0b00010111 (23); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] OH4100.ARE is flagged 0b01000011 (67); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH4101.ARE is flagged 0b01000010 (66); [ 0 ] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH4200.ARE is flagged 0b01010111 (87); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH4210.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] OH4220.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] OH4230.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] OH4290.ARE is flagged 0b00010011 (19); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] OH5000.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH5100.ARE is flagged 0b11010111 (215); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [CANRESTOTHER] OH5110.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] OH5120.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH5200.ARE is flagged 0b11010111 (215); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [CANRESTOTHER] OH5300.ARE is flagged 0b11010011 (211); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [CANRESTOTHER] OH5400.ARE is flagged 0b00010101 (21); [OUTDOOR] [ 0 ] [WEATHER] [ 0 ] [FOREST] [ 0 ] [ 0 ] [ 0 ] OH5500.ARE is flagged 0b00000001 (1); [OUTDOOR] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH6000.ARE is flagged 0b01010111 (87); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH6010.ARE is flagged 0b01001011 (75); [OUTDOOR] [DAYNIGHT] [ 0 ] [CITY] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH6100.ARE is flagged 0b01010111 (87); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH6200.ARE is flagged 0b01010111 (87); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [FOREST] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH6300.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH6400.ARE is flagged 0b11000011 (195); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [CANRESTOTHER] OH6450.ARE is flagged 0b01000011 (67); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH6460.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH6500.ARE is flagged 0b01000010 (66); [ 0 ] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH7000.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] OH7100.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] OH7200.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] OH7300.ARE is flagged 0b10100000 (160); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [CANRESTOTHER] OH7310.ARE is flagged 0b00000001 (1); [OUTDOOR] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH8000.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH8100.ARE is flagged 0b00000000 (0); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] OH8200.ARE is flagged 0b01000011 (67); [OUTDOOR] [DAYNIGHT] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH8300.ARE is flagged 0b01000111 (71); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH8400.ARE is flagged 0b01000111 (71); [OUTDOOR] [DAYNIGHT] [WEATHER] [ 0 ] [ 0 ] [ 0 ] [EXTENDEDNIGHT] [ 0 ] OH9000.ARE is flagged 0b10000000 (128); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [CANRESTOTHER] OH9100.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] XR2400.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] XR2600.ARE is flagged 0b00100000 (32); [ 0 ] [ 0 ] [ 0 ] [ 0 ] [ 0 ] [DUNGEON] [ 0 ] [ 0 ] ///// Area Type Checker - End Log \\\\\ I know real programmers will find the extra [ 0 ] data silly, but since a non-programmer can easily think of each bit as a lightswitch, I might as well leave to [ 0 ] as a reminder that there are eight switches, and we are just looking for what ones are "on". Thank you all very much! Link to comment
Avenger Posted August 6, 2015 Share Posted August 6, 2015 This reminds me of a joke: there are 10 different people, those who understand binary and those who don't. Link to comment
lynx Posted August 6, 2015 Share Posted August 6, 2015 Oh, this is just for dumping the flags in all areas? ieshell can do that very easily and automatically uses a mask to split bits into meaningful labels. Link to comment
Mike1072 Posted August 6, 2015 Share Posted August 6, 2015 Since it is 2 bytes, using READ_BYTE instead of READ_SHORT means that you are only fetching half of the field. In this case, it doesn't matter, because the other bits aren't used in BG, but it's something to keep in mind. Got it - in this case, only the first byte is used; the older discussion about FL_INN and FL_STRONGHOLDS was predicated on using the additional 8 possible on the second byte, right? So looking at the second byte would be needed to detect FL_INN or such. I think. Yes. I guess what I was trying to convey is there's no harm in using READ_SHORT here, unless you are deliberately trying not to read the 2nd byte. Note that 0b11 is not checking the value of bit 3, it is checking the value of bits 0 and 1. Bit 3 is located at 0b1000I am not sure I understand... I thought the usage looked like 0b00 0b01 0b11 0b100 (decimals 0 1 2 3) and that the operation was looking inside %flags% to find those numbered bits. (Taking that year off really messed me up on this stuff.) Bit 0, bit 1, bit 2, etc. refer to the different positions in the string, from right to left. They are equivalent to digits. The binary value 0b1101 has 4 bits. The value of bit 0 is 1, the value of bit 1 is 0, the value of bit 2 is 1, and the value of bit 3 is 1. You do want to be using binary and (BAND/&) instead of logical and (AND/&&). (flags & 0b00000001) == 0b00000001 will return true if bit 0 is set (flags & 0b00000010) == 0b00000010 will return true if bit 1 is set (flags & 0b00000100) == 0b00000100 will return true if bit 2 is set etc. I added a comparison here, to make it clear that the value returned from the first part is actually 1, 2, 4, etc. depending on which bit is checked. Without the comparison, those values would all still resolve to true, but they wouldn't all equal 1. Ah, so comparison values as binary, and working with binary, because I want to get at information stored within a byte We're using bitwise operations and comparing against binary values because the information in that byte is stored bitwise. If we were reading, say, the target field from a spell's feature block, there wouldn't be a need for that. So the (%flags% & 0b00000001) == 0b00000001 will return true if bit 0 is set (%flags% & 0b00000010) == 0b00000010 will return true if bit 1 is set (%flags% & 0b00000100) == 0b00000100 will return true if bit 2 is set is stated like if x (value read in at 0x48 stated in binary) at bit y (0b00000001) is the same as 0b00000001 then it is true and bit 0 is not a 0, it is a 1 ? Am I close? Let's run through a quick example. Suppose flags has a value of 0b01001011 (which means Outdoor, Day/Night, City, and Extended Night are set, and Weather, Forest, Dungeon, and Can Rest are unset). Ex. 1 - Check Outdoor: (flags & 0b00000001) 0b01001011 0b00000001 ---------- 0b00000001 = 1Ex. 2 - Check Day/Night: (flags & 0b00000010): 0b01001011 0b00000010 ---------- 0b00000010 = 2Ex. 3 - Check Weather: (flags & 0b00000100): 0b01001011 0b00000100 ---------- 0b00000000 = 0The effect of performing (flags & 0b00000010) is to mask out all of the other bits except the ones we are interested in. The return value for these cases is either 0 or 2^x, where x is the bit we are checking. Since PATCH_IF treats every value that's not 0 as true, you can use this as-is, but I prefer to add an extra comparison: (flags & 0b00000010) == 0b00000010. This will return either 0 or 1 (and it's a good habit in case you are using a programming language that uses actual boolean values for its conditionals). Let's take a look at a more advanced example to see how the extra comparison comes in handy. Suppose we wanted to check something like whether the area is a city that is not outdoors. Ex. 4 - Check Outdoor, City: (flags & 0b00001001) 0b01001011 0b00001001 ---------- 0b00001001 = 9 If we check (flags & 0b00001001) == 0b00001001, we can determine if the area is a city that is outdoors.If we check (flags & 0b00001001) == 0b00001000, we can determine if the area is a city that is not outdoors. If we check (flags & 0b00001001) == 0b00000001, we can determine if the area is not a city but is outdoors. If we check (flags & 0b00001001) == 0b00000000, we can determine if the area is not a city and is not outdoors. Edit: wait a sec - on the single byte field, we couldn't have that -5 converted, right? there are only 8 bits there, and the number has 10 places... I was testing out the bits parameter, so that output is from when I told it to use 10 bits. The value -5 requires 4 bits to represent (0b1011), so it can fit into an 8-bit field (0b11111011), 16-bit field (0b1111111111111011), or 32-bit field (0b11111111111111111111111111111011). The value 5 behaves the same, requiring 4 bits (0b0101), but fitting in 8 bits (0b00000101), 16 bits (0b0000000000000101), or 32 bits (0b00000000000000000000000000000101). Adding additional 0s (for positive numbers) or 1s (for negative numbers) to the left is equivalent to adding extra 0s to pad out a decimal number (12 vs. 0012 vs. 000000000000000012). If you had the value -300, you wouldn't be able to fit that into a single byte, since it requires 10 bits (0b1011010100). Link to comment
lynx Posted August 6, 2015 Share Posted August 6, 2015 Right, I was wrong with the /only/ bit. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.