Introduce callback, hiddenitem, conditional_event, and cmdqueue macros for map scripts

This commit is contained in:
Remy Oukaour 2018-01-13 00:47:38 -05:00
parent d054116458
commit 5a3822fe86
127 changed files with 245 additions and 209 deletions

View File

@ -16,7 +16,7 @@
## `.MapCallbacks: db` *N*
- **`dbw` *type*, *script***
- **`callback` *type*, *script***
Callback types:
@ -30,11 +30,21 @@ Callback types:
- **`MAPCALLBACK_CMDQUEUE`**
**`dbw CMDQUEUE_STONETABLE,` *table_pointer***
**`stonetable` *warp_id*, *person*, *script***
**`db -1 ; end`**
<!-- need pre tags here; can't use inline bold/italic formatting in Markdown code blocks -->
<pre>
callback MAPCALLBACK_CMDQUEUE, .Boulders
.Boulders:
writecmdqueue .BoulderCmdQueue
return
.BoulderCmdQueue:
cmdqueue CMDQUEUE_STONETABLE, .BoulderTable
.BoulderTable:
stonetable <i>warp_id</i>, <i>person</i>, <i>script</i>
db -1 ; end
</pre>
## Event scripts
@ -54,8 +64,10 @@ Callback types:
## `MapName_MapEventHeader:`
```asm
; filler
db 0, 0
```
## `.Warps: db` *N*
@ -80,11 +92,11 @@ BG event types:
- **`BGEVENT_IFSET/IFNOTSET`**
**`dw` *event_flag*, *script***
**`conditional_event` *event_flag*, *script***
- **`BGEVENT_ITEM`**
**`dwb` *event_flag*, *item_id***
**`hiddenitem` *event_flag*, *item_id***
- **`BGEVENT_COPY`**

View File

@ -9,6 +9,12 @@ scene_script: MACRO
dw \1, 0
ENDM
callback: MACRO
;\1: type: a MAPCALLBACK_* constant
;\2: script pointer
dbw \1, \2
ENDM
warp_def: MACRO
;\1: x: left to right, starts at 0
;\2: y: top to bottom, starts at 0
@ -23,9 +29,10 @@ coord_event: MACRO
;\2: y: top to bottom, starts at 0
;\3: scene id: controlled by setscene/setmapscene
;\4: script pointer
db \3, \2, \1, $0
db \3, \2, \1
db 0 ; filler
dw \4
db $0, $0
db 0, 0 ; filler
ENDM
bg_event: MACRO
@ -91,6 +98,12 @@ else
endc
ENDM
hiddenitem: MACRO
;\1: flag: an EVENT_* constant
;\2: item: from constants/item_constants.asm
dwb \1, \2
ENDM
elevfloor: MACRO
;\1: floor: a FLOOR_* constant
;\2: warp destination: starts at 1
@ -99,10 +112,22 @@ elevfloor: MACRO
map \3
ENDM
conditional_event: MACRO
;\1: flag: an EVENT_* constant
;\2: script pointer
dw \1, \2
ENDM
cmdqueue: MACRO
;\1: type: a CMDQUEUE_* constant
;\2: data pointer
dbw \1, \2
dw 0 ; filler
ENDM
stonetable: MACRO
;\1: warp id
;\2: object_event id
;\3: script pointer
db \1, \2
dw \3
dbbw \1, \2, \3
ENDM

View File

@ -21,7 +21,7 @@ AzaleaTown_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_NEWMAP, .Flypoint
callback MAPCALLBACK_NEWMAP, .Flypoint
.DummyScene0:
end
@ -211,7 +211,7 @@ WhiteApricornTree:
fruittree FRUITTREE_AZALEA_TOWN
AzaleaTownHiddenFullHeal:
dwb EVENT_AZALEA_TOWN_HIDDEN_FULL_HEAL, FULL_HEAL
hiddenitem EVENT_AZALEA_TOWN_HIDDEN_FULL_HEAL, FULL_HEAL
AzaleaTownRivalBattleApproachMovement1:
step LEFT

View File

@ -10,8 +10,8 @@ BattleTowerOutside_MapScriptHeader:
.MapCallbacks:
db 2
dbw MAPCALLBACK_TILES, .Callback1
dbw MAPCALLBACK_OBJECTS, .Callback2
callback MAPCALLBACK_TILES, .Callback1
callback MAPCALLBACK_OBJECTS, .Callback2
.Callback1:
return

View File

@ -15,8 +15,8 @@ BlackthornCity_MapScriptHeader:
.MapCallbacks:
db 2
dbw MAPCALLBACK_NEWMAP, .FlyPoint
dbw MAPCALLBACK_OBJECTS, .Santos
callback MAPCALLBACK_NEWMAP, .FlyPoint
callback MAPCALLBACK_OBJECTS, .Santos
.FlyPoint:
setflag ENGINE_FLYPOINT_BLACKTHORN

View File

@ -11,7 +11,7 @@ BlackthornGym1F_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_TILES, .Boulders
callback MAPCALLBACK_TILES, .Boulders
.Boulders:
checkevent EVENT_BOULDER_IN_BLACKTHORN_GYM_1

View File

@ -14,15 +14,14 @@ BlackthornGym2F_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_CMDQUEUE, .Boulders
callback MAPCALLBACK_CMDQUEUE, .Boulders
.Boulders:
writecmdqueue .BoulderCmdQueue
return
.BoulderCmdQueue:
dbw CMDQUEUE_STONETABLE, .BoulderTable ; check if any stones are sitting on a warp
dw 0 ; filler
cmdqueue CMDQUEUE_STONETABLE, .BoulderTable ; check if any stones are sitting on a warp
.BoulderTable:
stonetable 5, BLACKTHORNGYM2F_BOULDER1, .Disappear4

View File

@ -9,7 +9,7 @@ BrunosRoom_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_TILES, .BrunosRoomDoors
callback MAPCALLBACK_TILES, .BrunosRoomDoors
.LockDoor:
priorityjump .BrunosDoorLocksBehindYou

View File

@ -14,7 +14,7 @@ BurnedTower1F_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_TILES, .HoleAndLadder
callback MAPCALLBACK_TILES, .HoleAndLadder
.EusineScene:
priorityjump .MeetEusine
@ -131,10 +131,10 @@ BurnedTower1FRock:
jumpstd smashrock
BurnedTower1FHiddenEther:
dwb EVENT_BURNED_TOWER_1F_HIDDEN_ETHER, ETHER
hiddenitem EVENT_BURNED_TOWER_1F_HIDDEN_ETHER, ETHER
BurnedTower1FHiddenUltraBall:
dwb EVENT_BURNED_TOWER_1F_HIDDEN_ULTRA_BALL, ULTRA_BALL
hiddenitem EVENT_BURNED_TOWER_1F_HIDDEN_ULTRA_BALL, ULTRA_BALL
BurnedTower1FHPUp:
itemball HP_UP

View File

@ -17,7 +17,7 @@ BurnedTowerB1F_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_TILES, .LadderCallback
callback MAPCALLBACK_TILES, .LadderCallback
.DummyScene0:
end

View File

@ -15,7 +15,7 @@ CeladonCity_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_NEWMAP, .FlyPoint
callback MAPCALLBACK_NEWMAP, .FlyPoint
.FlyPoint:
setflag ENGINE_FLYPOINT_CELADON
@ -75,7 +75,7 @@ CeladonCityPokecenterSign:
jumpstd pokecentersign
CeladonCityHiddenPpUp:
dwb EVENT_CELADON_CITY_HIDDEN_PP_UP, PP_UP
hiddenitem EVENT_CELADON_CITY_HIDDEN_PP_UP, PP_UP
CeladonCityFisherText:
text "This POLIWRATH is"

View File

@ -8,7 +8,7 @@ CeladonDeptStore6F_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_TILES, .Callback
callback MAPCALLBACK_TILES, .Callback
.Callback:
changeblock 12, 0, $03

View File

@ -12,7 +12,7 @@ CeruleanCity_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_NEWMAP, .FlyPoint
callback MAPCALLBACK_NEWMAP, .FlyPoint
.FlyPoint:
setflag ENGINE_FLYPOINT_CERULEAN
@ -147,7 +147,7 @@ CeruleanCityMartSign:
jumpstd martsign
CeruleanCityHiddenBerserkGene:
dwb EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY, BERSERK_GENE
hiddenitem EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY, BERSERK_GENE
CeruleanCityCooltrainerMText1:
text "KANTO's POWER"

View File

@ -135,7 +135,7 @@ CeruleanGymGuyScript:
end
CeruleanGymHiddenMachinePart:
dwb EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM, MACHINE_PART
hiddenitem EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM, MACHINE_PART
CeruleanGymStatue1:
checkevent EVENT_TRAINERS_IN_CERULEAN_GYM

View File

@ -13,7 +13,7 @@ CherrygroveCity_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_NEWMAP, .FlyPoint
callback MAPCALLBACK_NEWMAP, .FlyPoint
.DummyScene0:
end

View File

@ -20,7 +20,7 @@ CianwoodCity_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_NEWMAP, .FlyPointAndSuicune
callback MAPCALLBACK_NEWMAP, .FlyPointAndSuicune
.DummyScene0:
end
@ -145,10 +145,10 @@ CianwoodCityRock:
jumpstd smashrock
CianwoodCityHiddenRevive:
dwb EVENT_CIANWOOD_CITY_HIDDEN_REVIVE, REVIVE
hiddenitem EVENT_CIANWOOD_CITY_HIDDEN_REVIVE, REVIVE
CianwoodCityHiddenMaxEther:
dwb EVENT_CIANWOOD_CITY_HIDDEN_MAX_ETHER, MAX_ETHER
hiddenitem EVENT_CIANWOOD_CITY_HIDDEN_MAX_ETHER, MAX_ETHER
MovementData_0x1a00da:
set_sliding

View File

@ -7,7 +7,7 @@ CinnabarIsland_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_NEWMAP, .FlyPoint
callback MAPCALLBACK_NEWMAP, .FlyPoint
.FlyPoint:
setflag ENGINE_FLYPOINT_CINNABAR
@ -35,7 +35,7 @@ CinnabarIslandPokecenterSign:
jumpstd pokecentersign
CinnabarIslandHiddenRareCandy:
dwb EVENT_CINNABAR_ISLAND_HIDDEN_RARE_CANDY, RARE_CANDY
hiddenitem EVENT_CINNABAR_ISLAND_HIDDEN_RARE_CANDY, RARE_CANDY
CinnabarIslandBlueTeleport:
teleport_from

View File

@ -11,8 +11,8 @@ Colosseum_MapScriptHeader:
.MapCallbacks:
db 2
dbw MAPCALLBACK_OBJECTS, .SetWhichChris
dbw MAPCALLBACK_NEWMAP, .PreparePokecenter2F
callback MAPCALLBACK_OBJECTS, .SetWhichChris
callback MAPCALLBACK_NEWMAP, .PreparePokecenter2F
.InitializeColosseum:
priorityjump .InitializeAndPreparePokecenter2F

View File

@ -12,7 +12,7 @@ CopycatsHouse2F_MapScriptHeader:
.MapCallbacks:
db 1
dbw MAPCALLBACK_OBJECTS, .Callback
callback MAPCALLBACK_OBJECTS, .Callback
.Callback:
checkflag ENGINE_PLAYER_IS_FEMALE

View File

@ -31,7 +31,7 @@ DarkCaveVioletEntranceRock:
jumpstd smashrock
DarkCaveVioletEntranceHiddenElixer:
dwb EVENT_DARK_CAVE_VIOLET_ENTRANCE_HIDDEN_ELIXER, ELIXER
hiddenitem EVENT_DARK_CAVE_VIOLET_ENTRANCE_HIDDEN_ELIXER, ELIXER
DarkCaveVioletEntrance_MapEventHeader:
; filler

Some files were not shown because too many files have changed in this diff Show More