diff options
Diffstat (limited to 'wram.asm')
-rwxr-xr-x | wram.asm | 402 |
1 files changed, 253 insertions, 149 deletions
@@ -50,6 +50,7 @@ battle_struct: MACRO \1Moves:: ds NUM_MOVES \1DVs:: ds 2 \1Level:: db +\1Stats:: \1MaxHP:: dw \1Attack:: dw \1Defense:: dw @@ -228,7 +229,39 @@ wSpriteStateData1:: ; c100 ; C1xD ; C1xE ; C1xF - ds $10 * $10 +spritestatedata1: MACRO +\1SpriteStateData1:: +\1PictureID:: db +\1MovementStatus:: db +\1SpriteImageIdx:: db +\1YStepVector:: db +\1YPixels:: db +\1XStepVector:: db +\1XPixels:: db +\1IntraAnimFrameCounter:: db +\1AnimFrameCounter:: db +\1FacingDirection:: db + ds 6 +\1SpriteStateData1End:: +endm + + spritestatedata1 Player + spritestatedata1 Sprite01 + spritestatedata1 Sprite02 + spritestatedata1 Sprite03 + spritestatedata1 Sprite04 + spritestatedata1 Sprite05 + spritestatedata1 Sprite06 + spritestatedata1 Sprite07 + spritestatedata1 Sprite08 + spritestatedata1 Sprite09 + spritestatedata1 Sprite10 + spritestatedata1 Sprite11 + spritestatedata1 Sprite12 + spritestatedata1 Sprite13 + spritestatedata1 Sprite14 + spritestatedata1 Sprite15 + ; ds $10 * $10 ;SECTION "Sprite State Data 2", WRAM0[$c200] @@ -253,7 +286,40 @@ wSpriteStateData2:: ; c200 ; C2xD ; C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2) ; C2xF - ds $10 * $10 +spritestatedata2: MACRO +\1SpriteStateData2:: +\1WalkAnimationCounter:: db + ds 1 +\1YDisplacement:: db +\1XDisplacement:: db +\1MapY:: db +\1MapX:: db +\1MovementByte1:: db +\1GrassPriority:: db +\1MovementDelay:: db + ds 5 +\1SpriteImageBaseOffset:: db + ds 1 +\1SpriteStateData2End:: +endm + + spritestatedata2 Player + spritestatedata2 Sprite01 + spritestatedata2 Sprite02 + spritestatedata2 Sprite03 + spritestatedata2 Sprite04 + spritestatedata2 Sprite05 + spritestatedata2 Sprite06 + spritestatedata2 Sprite07 + spritestatedata2 Sprite08 + spritestatedata2 Sprite09 + spritestatedata2 Sprite10 + spritestatedata2 Sprite11 + spritestatedata2 Sprite12 + spritestatedata2 Sprite13 + spritestatedata2 Sprite14 + spritestatedata2 Sprite15 + ; ds $10 * $10 wSpriteDataEnd:: @@ -1854,7 +1920,7 @@ wPlayerNumAttacksLeft:: ; when the player is attacking multiple times, the number of attacks left ds 1 -W_PLAYERCONFUSEDCOUNTER:: ; d06b +wPlayerConfusedCounter:: ; d06b ds 1 wPlayerToxicCounter:: ; d06c @@ -1870,7 +1936,7 @@ wEnemyNumAttacksLeft:: ; d06f ; when the enemy is attacking multiple times, the number of attacks left ds 1 -W_ENEMYCONFUSEDCOUNTER:: ; d070 +wEnemyConfusedCounter:: ; d070 ds 1 wEnemyToxicCounter:: ; d071 @@ -1908,6 +1974,11 @@ wObjectToShow:: ; d07a ds 1 +wDefaultMap:: ; d07c +; the map you will start at when the debug bit is set + +wMenuItemOffset:: ; d07c + wAnimationID:: ; d07c ; ID number of the current battle animation ds 1 @@ -2078,50 +2149,50 @@ wSlideMonUpBottomRowLeftTile:: ; d09f wDisableVBlankWYUpdate:: ds 1 ; if non-zero, don't update WY during V-blank -W_SPRITECURPOSX:: ; d0a1 +wSpriteCurPosX:: ; d0a1 ds 1 -W_SPRITECURPOSY:: ; d0a2 +wSpriteCurPosY:: ; d0a2 ds 1 -W_SPRITEWITDH:: ; d0a3 +wSpriteWidth:: ; d0a3 ds 1 -W_SPRITEHEIGHT:: ; d0a4 +wSpriteHeight:: ; d0a4 ds 1 -W_SPRITEINPUTCURBYTE:: ; d0a5 +wSpriteInputCurByte:: ; d0a5 ; current input byte ds 1 -W_SPRITEINPUTBITCOUNTER:: ; d0a6 +wSpriteInputBitCounter:: ; d0a6 ; bit offset of last read input bit ds 1 -W_SPRITEOUTPUTBITOFFSET:: ; d0a7; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data) +wSpriteOutputBitOffset:: ; d0a7; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data) ; 3 -> XX000000 1st column ; 2 -> 00XX0000 2nd column ; 1 -> 0000XX00 3rd column ; 0 -> 000000XX 4th column ds 1 -W_SPRITELOADFLAGS:: ; d0a8 +wSpriteLoadFlags:: ; d0a8 ; bit 0 determines used buffer (0 -> $a188, 1 -> $a310) ; bit 1 loading last sprite chunk? (there are at most 2 chunks per load operation) ds 1 -W_SPRITEUNPACKMODE:: ; d0a9 +wSpriteUnpackMode:: ; d0a9 ds 1 wSpriteFlipped:: ; d0aa ds 1 -W_SPRITEINPUTPTR:: ; d0ab +wSpriteInputPtr:: ; d0ab ; pointer to next input byte ds 2 -W_SPRITEOUTPUTPTR:: ; d0ad +wSpriteOutputPtr:: ; d0ad ; pointer to current output byte ds 2 -W_SPRITEOUTPUTPTRCACHED:: ; d0af +wSpriteOutputPtrCached:: ; d0af ; used to revert pointer for different bit offsets ds 2 -W_SPRITEDECODETABLE0PTR:: ; d0b1 +wSpriteDecodeTable0Ptr:: ; d0b1 ; pointer to differential decoding table (assuming initial value 0) ds 2 -W_SPRITEDECODETABLE1PTR:: ; d0b3 +wSpriteDecodeTable1Ptr:: ; d0b3 ; pointer to differential decoding table (assuming initial value 1) ds 2 @@ -2141,7 +2212,7 @@ wMonHIndex:: ; d0b8 ds 1 wMonHBaseStats:: ; d0b9 -W_MONHBASEHP:: ; d0b9 +wMonHBaseHP:: ; d0b9 ds 1 wMonHBaseAttack:: ; d0ba ds 1 @@ -2227,6 +2298,8 @@ wFirstMonsNotOutYet:: ; d11d ; which will be the first mon sent out. ds 1 +wPokeBallCaptureCalcTemp:: ; d11e + ; lower nybble: number of shakes ; upper nybble: number of animations to play wPokeBallAnimData:: ; d11e @@ -2270,7 +2343,7 @@ wIsKeyItem:: ; d124 wTextBoxID:: ; d125 ds 1 -wd126:: ds 1 ; not exactly sure what this is used for, but it seems to be used as a multipurpose temp flag value +wCurrentMapScriptFlags:: ds 1 ; not exactly sure what this is used for, but it seems to be used as a multipurpose temp flag value wCurEnemyLVL:: ; d127 ds 1 @@ -2438,7 +2511,7 @@ wNumBagItems:: ; d31d ds 1 wBagItems:: ; d31e ; item, quantity - ds 20 * 2 + ds BAG_ITEM_CAPACITY * 2 ds 1 ; end wPlayerMoney:: ; d347 @@ -2461,7 +2534,7 @@ wOptions:: ; d355 ds 1 wObtainedBadges:: ; d356 - ds 1 + flag_array 8 ds 1 @@ -2524,20 +2597,20 @@ wCurMapWidth:: ; d369 ; blocks ds 1 -W_MAPDATAPTR:: ; d36a +wMapDataPtr:: ; d36a ds 2 wMapTextPtr:: ; d36c ds 2 -W_MAPSCRIPTPTR:: ; d36e +wMapScriptPtr:: ; d36e ds 2 -W_MAPCONNECTIONS:: ; d370 +wMapConnections:: ; d370 ; connection byte ds 1 -W_MAPCONN1PTR:: ; d371 +wMapConn1Ptr:: ; d371 ds 1 wNorthConnectionStripSrc:: ; d372 @@ -2561,7 +2634,7 @@ wNorthConnectedMapXAlignment:: ; d379 wNorthConnectedMapViewPointer:: ; d37a ds 2 -W_MAPCONN2PTR:: ; d37c +wMapConn2Ptr:: ; d37c ds 1 wSouthConnectionStripSrc:: ; d37d @@ -2585,7 +2658,7 @@ wSouthConnectedMapXAlignment:: ; d384 wSouthConnectedMapViewPointer:: ; d385 ds 2 -W_MAPCONN3PTR:: ; d387 +wMapConn3Ptr:: ; d387 ds 1 wWestConnectionStripSrc:: ; d388 @@ -2609,7 +2682,7 @@ wWestConnectedMapXAlignment:: ; d38f wWestConnectedMapViewPointer:: ; d390 ds 2 -W_MAPCONN4PTR:: ; d392 +wMapConn4Ptr:: ; d392 ds 1 wEastConnectionStripSrc:: ; d393 @@ -2793,7 +2866,7 @@ wPlayerDirection:: ; d52a wTilesetBank:: ; d52b ds 1 -W_TILESETBLOCKSPTR:: ; d52c +wTileSetBlocksPtr:: ; d52c ; maps blocks (4x4 tiles) to tiles ds 2 @@ -2804,7 +2877,7 @@ wTilesetCollisionPtr:: ; d530 ; list of all walkable tiles ds 2 -W_TILESETTALKINGOVERTILES:: ; d532 +wTileSetTalkingOverTiles:: ; d532 ds 3 wGrassTile:: ; d535 @@ -2816,7 +2889,7 @@ wNumBoxItems:: ; d53a ds 1 wBoxItems:: ; d53b ; item, quantity - ds 50 * 2 + ds PC_ITEM_CAPACITY * 2 ds 1 ; end wCurrentBoxNum:: ; d5a0 @@ -2853,217 +2926,217 @@ wMissableObjectList:: ; d5ce wGameProgressFlags:: ; d5e9 ; $c8 bytes -W_OAKSLABCURSCRIPT:: ; d5e9 +wOaksLabCurScript:: ; d5e9 ds 1 -W_PALLETTOWNCURSCRIPT:: ; d5f0 +wPalletTownCurScript:: ; d5f0 ds 1 ds 1 -W_BLUESHOUSECURSCRIPT:: ; d5f2 +wBluesHouseCurScript:: ; d5f2 ds 1 -W_VIRIDIANCITYCURSCRIPT:: ; d5f3 +wViridianCityCurScript:: ; d5f3 ds 1 ds 2 -W_PEWTERCITYCURSCRIPT:: ; d5f6 +wPewterCityCurScript:: ; d5f6 ds 1 -W_ROUTE3CURSCRIPT:: ; d5f7 +wRoute3CurScript:: ; d5f7 ds 1 -W_ROUTE4CURSCRIPT:: ; d5f8 +wRoute4CurScript:: ; d5f8 ds 1 -W_FANCLUBCURSCRIPT:: ; d5f9 +wFanClubCurScript:: ; d5f9 ds 1 -W_VIRIDIANGYMCURSCRIPT:: ; d5fa +wViridianGymCurScript:: ; d5fa ds 1 -W_PEWTERGYMCURSCRIPT:: ; d5fb +wPewterGymCurScript:: ; d5fb ds 1 -W_CERULEANGYMCURSCRIPT:: ; d5fc +wCeruleanGymCurScript:: ; d5fc ds 1 -W_VERMILIONGYMCURSCRIPT:: ; d5fd +wVermilionGymCurScript:: ; d5fd ds 1 -W_CELADONGYMCURSCRIPT:: ; d5fe +wCeladonGymCurScript:: ; d5fe ds 1 -W_ROUTE6CURSCRIPT:: ; d5ff +wRoute6CurScript:: ; d5ff ds 1 -W_ROUTE8CURSCRIPT:: ; d600 +wRoute8CurScript:: ; d600 ds 1 -W_ROUTE24CURSCRIPT:: ; d601 +wRoute24CurScript:: ; d601 ds 1 -W_ROUTE25CURSCRIPT:: ; d602 +wRoute25CurScript:: ; d602 ds 1 -W_ROUTE9CURSCRIPT:: ; d603 +wRoute9CurScript:: ; d603 ds 1 -W_ROUTE10CURSCRIPT:: ; d604 +wRoute10CurScript:: ; d604 ds 1 -W_MTMOON1CURSCRIPT:: ; d605 +wMtMoon1CurScript:: ; d605 ds 1 -W_MTMOON3CURSCRIPT:: ; d606 +wMtMoon3CurScript:: ; d606 ds 1 -W_SSANNE8CURSCRIPT:: ; d607 +wSSAnne8CurScript:: ; d607 ds 1 -W_SSANNE9CURSCRIPT:: ; d608 +wSSAnne9CurScript:: ; d608 ds 1 -W_ROUTE22CURSCRIPT:: ; d609 +wRoute22CurScript:: ; d609 ds 1 ds 1 -W_REDSHOUSE2CURSCRIPT:: ; d60b +wRedsHouse2CurScript:: ; d60b ds 1 -W_VIRIDIANMARKETCURSCRIPT:: ; d60c +wViridianMarketCurScript:: ; d60c ds 1 -W_ROUTE22GATECURSCRIPT:: ; d60d +wRoute22GateCurScript:: ; d60d ds 1 -W_CERULEANCITYCURSCRIPT:: ; d60e +wCeruleanCityCurScript:: ; d60e ds 1 ds 7 -W_SSANNE5CURSCRIPT:: ; d616 +wSSAnne5CurScript:: ; d616 ds 1 -W_VIRIDIANFORESTCURSCRIPT:: ; d617 +wViridianForestCurScript:: ; d617 ds 1 -W_MUSEUM1FCURSCRIPT:: ; d618 +wMuseum1FCurScript:: ; d618 ds 1 -W_ROUTE13CURSCRIPT:: ; d619 +wRoute13CurScript:: ; d619 ds 1 -W_ROUTE14CURSCRIPT:: ; d61a +wRoute14CurScript:: ; d61a ds 1 -W_ROUTE17CURSCRIPT:: ; d61b +wRoute17CurScript:: ; d61b ds 1 -W_ROUTE19CURSCRIPT:: ; d61c +wRoute19CurScript:: ; d61c ds 1 -W_ROUTE21CURSCRIPT:: ; d61d +wRoute21CurScript:: ; d61d ds 1 wSafariZoneEntranceCurScript:: ; d61e ds 1 -W_ROCKTUNNEL2CURSCRIPT:: ; d61f +wRockTunnel2CurScript:: ; d61f ds 1 -W_ROCKTUNNEL1CURSCRIPT:: ; d620 +wRockTunnel1CurScript:: ; d620 ds 1 ds 1 -W_ROUTE11CURSCRIPT:: ; d622 +wRoute11CurScript:: ; d622 ds 1 -W_ROUTE12CURSCRIPT:: ; d623 +wRoute12CurScript:: ; d623 ds 1 -W_ROUTE15CURSCRIPT:: ; d624 +wRoute15CurScript:: ; d624 ds 1 -W_ROUTE16CURSCRIPT:: ; d625 +wRoute16CurScript:: ; d625 ds 1 -W_ROUTE18CURSCRIPT:: ; d626 +wRoute18CurScript:: ; d626 ds 1 -W_ROUTE20CURSCRIPT:: ; d627 +wRoute20CurScript:: ; d627 ds 1 -W_SSANNE10CURSCRIPT:: ; d628 +wSSAnne10CurScript:: ; d628 ds 1 -W_VERMILIONCITYCURSCRIPT:: ; d629 +wVermilionCityCurScript:: ; d629 ds 1 -W_POKEMONTOWER2CURSCRIPT:: ; d62a +wPokemonTower2CurScript:: ; d62a ds 1 -W_POKEMONTOWER3CURSCRIPT:: ; d62b +wPokemonTower3CurScript:: ; d62b ds 1 -W_POKEMONTOWER4CURSCRIPT:: ; d62c +wPokemonTower4CurScript:: ; d62c ds 1 -W_POKEMONTOWER5CURSCRIPT:: ; d62d +wPokemonTower5CurScript:: ; d62d ds 1 -W_POKEMONTOWER6CURSCRIPT:: ; d62e +wPokemonTower6CurScript:: ; d62e ds 1 -W_POKEMONTOWER7CURSCRIPT:: ; d62f +wPokemonTower7CurScript:: ; d62f ds 1 -W_ROCKETHIDEOUT1CURSCRIPT:: ; d630 +wRocketHideout1CurScript:: ; d630 ds 1 -W_ROCKETHIDEOUT2CURSCRIPT:: ; d631 +wRocketHideout2CurScript:: ; d631 ds 1 -W_ROCKETHIDEOUT3CURSCRIPT:: ; d632 +wRocketHideout3CurScript:: ; d632 ds 1 -W_ROCKETHIDEOUT4CURSCRIPT:: ; d633 +wRocketHideout4CurScript:: ; d633 ds 2 -W_ROUTE6GATECURSCRIPT:: ; d635 +wRoute6GateCurScript:: ; d635 ds 1 -W_ROUTE8GATECURSCRIPT:: ; d636 +wRoute8GateCurScript:: ; d636 ds 2 -W_CINNABARISLANDCURSCRIPT:: ; d638 +wCinnabarIslandCurScript:: ; d638 ds 1 -W_MANSION1CURSCRIPT:: ; d639 +wMansion1CurScript:: ; d639 ds 2 -W_MANSION2CURSCRIPT:: ; d63b +wMansion2CurScript:: ; d63b ds 1 -W_MANSION3CURSCRIPT:: ; d63c +wMansion3CurScript:: ; d63c ds 1 -W_MANSION4CURSCRIPT:: ; d63d +wMansion4CurScript:: ; d63d ds 1 -W_VICTORYROAD2CURSCRIPT:: ; d63e +wVictoryRoad2CurScript:: ; d63e ds 1 -W_VICTORYROAD3CURSCRIPT:: ; d63f +wVictoryRoad3CurScript:: ; d63f ds 1 -W_CELADONCITYCURSCRIPT:: ; d640 +wCeladonCityCurScript:: ; d640 ds 1 -W_FIGHTINGDOJOCURSCRIPT:: ; d641 +wFightingDojoCurScript:: ; d641 ds 1 -W_SILPHCO2CURSCRIPT:: ; d642 +wSilphCo2CurScript:: ; d642 ds 1 -W_SILPHCO3CURSCRIPT:: ; d643 +wSilphCo3CurScript:: ; d643 ds 1 -W_SILPHCO4CURSCRIPT:: ; d644 +wSilphCo4CurScript:: ; d644 ds 1 -W_SILPHCO5CURSCRIPT:: ; d645 +wSilphCo5CurScript:: ; d645 ds 1 -W_SILPHCO6CURSCRIPT:: ; d646 +wSilphCo6CurScript:: ; d646 ds 1 -W_SILPHCO7CURSCRIPT:: ; d647 +wSilphCo7CurScript:: ; d647 ds 1 -W_SILPHCO8CURSCRIPT:: ; d648 +wSilphCo8CurScript:: ; d648 ds 1 -W_SILPHCO9CURSCRIPT:: ; d649 +wSilphCo9CurScript:: ; d649 ds 1 -W_HALLOFFAMEROOMCURSCRIPT:: ; d64a +wHallOfFameRoomCurScript:: ; d64a ds 1 -W_GARYCURSCRIPT:: ; d64b +wGaryCurScript:: ; d64b ds 1 -W_LORELEICURSCRIPT:: ; d64c +wLoreleiCurScript:: ; d64c ds 1 -W_BRUNOCURSCRIPT:: ; d64d +wBrunoCurScript:: ; d64d ds 1 -W_AGATHACURSCRIPT:: ; d64e +wAgathaCurScript:: ; d64e ds 1 -W_UNKNOWNDUNGEON3CURSCRIPT:: ; d64f +wUnknownDungeon3CurScript:: ; d64f ds 1 -W_VICTORYROAD1CURSCRIPT:: ; d650 +wVictoryRoad1CurScript:: ; d650 ds 1 ds 1 -W_LANCECURSCRIPT:: ; d652 +wLanceCurScript:: ; d652 ds 1 ds 4 -W_SILPHCO10CURSCRIPT:: ; d657 +wSilphCo10CurScript:: ; d657 ds 1 -W_SILPHCO11CURSCRIPT:: ; d658 +wSilphCo11CurScript:: ; d658 ds 1 ds 1 -W_FUCHSIAGYMCURSCRIPT:: ; d65a +wFuchsiaGymCurScript:: ; d65a ds 1 -W_SAFFRONGYMCURSCRIPT:: ; d65b +wSaffronGymCurScript:: ; d65b ds 1 ds 1 -W_CINNABARGYMCURSCRIPT:: ; d65d +wCinnabarGymCurScript:: ; d65d ds 1 -W_CELADONGAMECORNERCURSCRIPT:: ; d65e +wCeladonGameCornerCurScript:: ; d65e ds 1 -W_ROUTE16GATECURSCRIPT:: ; d65f +wRoute16GateCurScript:: ; d65f ds 1 -W_BILLSHOUSECURSCRIPT:: ; d660 +wBillsHouseCurScript:: ; d660 ds 1 -W_ROUTE5GATECURSCRIPT:: ; d661 +wRoute5GateCurScript:: ; d661 ds 1 -W_POWERPLANTCURSCRIPT:: ; d662 +wPowerPlantCurScript:: ; d662 ; overload ds 0 -W_ROUTE7GATECURSCRIPT:: ; d662 +wRoute7GateCurScript:: ; d662 ; overload ds 1 ds 1 -W_SSANNE2CURSCRIPT:: ; d664 +wSSAnne2CurScript:: ; d664 ds 1 wSeafoamIslands4CurScript:: ; d665 ds 1 -W_ROUTE23CURSCRIPT:: ; d666 +wRoute23CurScript:: ; d666 ds 1 wSeafoamIslands5CurScript:: ; d667 ds 1 -W_ROUTE18GATECURSCRIPT:: ; d668 +wRoute18GateCurScript:: ; d668 ds 1 ds 78 @@ -3092,29 +3165,29 @@ wSafariSteps:: ; d70d ; starts at 502 ds 2 -W_FOSSILITEM:: ; d70f +wFossilItem:: ; d70f ; item given to cinnabar lab ds 1 -W_FOSSILMON:: ; d710 +wFossilMon:: ; d710 ; mon that will result from the item ds 1 ds 2 -W_ENEMYMONORTRAINERCLASS:: ; d713 +wEnemyMonOrTrainerClass:: ; d713 ; trainer classes start at 200 ds 1 wPlayerJumpingYScreenCoordsIndex:: ; d714 ds 1 -W_RIVALSTARTER:: ; d715 +wRivalStarter:: ; d715 ds 1 ds 1 -W_PLAYERSTARTER:: ; d717 +wPlayerStarter:: ; d717 ds 1 wBoulderSpriteIndex:: ; d718 @@ -3149,8 +3222,14 @@ wUnusedD71F:: ; d71f ds 8 -wd728:: +wd728:: ; d728 ; bit 0: using Strength outside of battle +; bit 1: set by IsSurfingAllowed when surfing's allowed, but the caller resets it after checking the result +; bit 3: received Old Rod +; bit 4: received Good Rod +; bit 5: received Super Rod +; bit 6: gave one of the Saffron guards a drink +; bit 7: set by ItemUseCardKey, which is leftover code from a previous implementation of the Card Key ds 1 ds 1 @@ -3164,16 +3243,36 @@ wBeatGymFlags:: ; d72a wd72c:: ; d72c ; bit 0: if not set, the 3 minimum steps between random battles have passed +; bit 1: prevent audio fade out + ds 1 + +wd72d:: ; d72d +; This variable is used for temporary flags and as the destination map when +; warping to the Trade Center or Colosseum. +; bit 0: sprite facing directions have been initialised in the Trade Center +; bit 3: do scripted warp (used to warp back to Lavender Town from the top of the pokemon tower) +; bit 4: on a dungeon warp +; bit 5: don't make NPCs face the player when spoken to +; Bits 6 and 7 are set by scripts when starting major battles in the storyline, +; but they do not appear to affect anything. Bit 6 is reset after all battles +; and bit 7 is reset after trainer battles (but it's only set before trainer +; battles anyway). + ds 1 + +wd72e:: ; d72e +; bit 0: the player has received Lapras in the Silph Co. building +; bit 1: set in various places, but doesn't appear to have an effect +; bit 2: the player has healed pokemon at a pokemon center at least once +; bit 3: the player has a received a pokemon from Prof. Oak +; bit 4: disable battles +; bit 5: set when a battle ends and when the player blacks out in the overworld due to poison +; bit 6: using the link feature +; bit 7: set if scripted NPC movement has been initialised ds 1 -wd72d:: ds 1 ; misc temp flags? (in some scripts, bit 6 and 7 set after a special battle (e.g. gym leaders) has been won) - ; also used as a start menu flag - -wd72e:: -; bit 7: set if scripted NPC movement has been initialised - ds 2 ; more temp misc flags, used with npc movement, main menu and other stuff + ds 1 -wd730:: +wd730:: ; d730 ; bit 0: NPC sprite being moved by script ; bit 5: ignore joypad input ; bit 6: print text with no delay between each letter @@ -3198,7 +3297,10 @@ wd732:: ; d732 wFlags_D733:: ; d733 ; bit 0: running a test battle -; bit 4: use variable [W_CURMAPSCRIPT] instead of the provided index for next frame's map script (used to start battle when talking to trainers) +; bit 1: prevent music from changing when entering new map +; bit 2: skip the joypad check in CheckWarpsNoCollision (used for the forced warp down the waterfall in the Seafoam Islands) +; bit 3: trainer wants to battle +; bit 4: use variable [wCurMapScript] instead of the provided index for next frame's map script (used to start battle when talking to trainers) ; bit 7: used fly out of battle ds 1 @@ -3431,17 +3533,19 @@ wOpponentAfterWrongAnswer:: ; da38 wUnusedDA38:: ; da38 ds 1 -W_CURMAPSCRIPT:: ; da39 +wCurMapScript:: ; da39 ; index of current map script, mostly used as index for function pointer array ; mostly copied from map-specific map script pointer and wirtten back later ds 1 - ds 6 + ds 7 -wPlayTimeHours:: ; da40 - ds 2 -wPlayTimeMinutes:: ; da42 - ds 2 +wPlayTimeHours:: ; da41 + ds 1 +wPlayTimeMaxed:: ; da42 + ds 1 +wPlayTimeMinutes:: ; da43 + ds 1 wPlayTimeSeconds:: ; da44 ds 1 wPlayTimeFrames:: ; da45 |