Skip to content

Commit

Permalink
Use def_* macros for automatic map event counts
Browse files Browse the repository at this point in the history
Resolves #742
  • Loading branch information
Rangi42 committed Jul 24, 2020
1 parent 89c47f2 commit dcb24bc
Show file tree
Hide file tree
Showing 392 changed files with 2,750 additions and 2,695 deletions.
14 changes: 7 additions & 7 deletions docs/map_event_scripts.md
Expand Up @@ -24,7 +24,7 @@
## Object constants

<pre>
object_const_def ; object_event constants
object_const_def
const <i>MAPNAME</i>_<i>OBJECTNAME</i>
</pre>

Expand All @@ -39,15 +39,15 @@
### Scene scripts

<pre>
db <i>N</i> ; scene scripts
def_scene_scripts
scene_script <i>script</i>
</pre>


### Callbacks

<pre>
db <i>N</i> ; callbacks
def_callbacks
callback <i>type</i>, <i>script</i>
</pre>

Expand Down Expand Up @@ -105,23 +105,23 @@
### Warp events

<pre>
db <i>N</i> ; warp events
def_warp_events
warp_event <i>x</i>, <i>y</i>, <i>map</i>, <i>warp_id</i>
</pre>


### Coord events

<pre>
db <i>N</i> ; coord events
def_coord_events
coord_event <i>x</i>, <i>y</i>, <i>scene_id</i>, <i>script</i>
</pre>


### BG events

<pre>
db <i>N</i> ; bg events
def_bg_events
bg_event <i>x</i>, <i>y</i>, <i>type</i>, <i>script</i>
</pre>

Expand All @@ -148,7 +148,7 @@
### Object events

<pre>
db <i>N</i> ; object events
def_object_events
object_event <i>x</i>, <i>y</i>, <i>sprite</i>, <i>movement</i>, <i>rx</i>, <i>ry</i>, <i>h1</i>, <i>h2</i>, <i>palette</i>, <i>type</i>, <i>range</i>, <i>script</i>, <i>event_flag</i>
</pre>

Expand Down
1 change: 1 addition & 0 deletions engine/overworld/player_object.asm
Expand Up @@ -55,6 +55,7 @@ PlayerObjectTemplate:
; A dummy map object used to initialize the player object.
; Shorter than the actual amount copied by two bytes.
; Said bytes seem to be unused.
_NUM_OBJECT_EVENTS = 0
object_event -4, -4, SPRITE_CHRIS, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, 0, -1

CopyDECoordsToMapObject::
Expand Down
18 changes: 6 additions & 12 deletions macros/legacy.asm
Expand Up @@ -223,18 +223,12 @@ signpost: MACRO
ENDM

person_event: MACRO
; object_event \3, \2, \1, \4, \5, \6, \7, \8, \9, \10, \11, \12, \13
db \1, \2 + 4, \3 + 4, \4
dn \6, \5
db \7, \8
shift
dn \8, \9
shift
db \9
shift
dw \9
shift
dw \9
_s = \1
_y = \2
_x = \3
_m = \4
shift 4
object_event _x, _y, _s, _m, \1, \2, \3, \4, \5, \6, \7, \8, \9
ENDM

PERSONTYPE_SCRIPT EQUS "OBJECTTYPE_SCRIPT"
Expand Down
60 changes: 60 additions & 0 deletions macros/scripts/maps.asm
Expand Up @@ -5,16 +5,45 @@ ENDM

object_const_def EQUS "const_def 2"

def_scene_scripts: MACRO
if DEF(_NUM_SCENE_SCRIPTS)
PURGE _NUM_SCENE_SCRIPTS
endc
_NUM_SCENE_SCRIPTS EQUS "_NUM_SCENE_SCRIPTS_\@"
db _NUM_SCENE_SCRIPTS
_NUM_SCENE_SCRIPTS = 0
ENDM

scene_script: MACRO
;\1: script pointer
dw \1
dw 0 ; filler
_NUM_SCENE_SCRIPTS = _NUM_SCENE_SCRIPTS + 1
ENDM

def_callbacks: MACRO
if DEF(_NUM_CALLBACKS)
PURGE _NUM_CALLBACKS
endc
_NUM_CALLBACKS EQUS "_NUM_CALLBACKS_\@"
db _NUM_CALLBACKS
_NUM_CALLBACKS = 0
ENDM

callback: MACRO
;\1: type: a MAPCALLBACK_* constant
;\2: script pointer
dbw \1, \2
_NUM_CALLBACKS = _NUM_CALLBACKS + 1
ENDM

def_warp_events: MACRO
if DEF(_NUM_WARP_EVENTS)
PURGE _NUM_WARP_EVENTS
endc
_NUM_WARP_EVENTS EQUS "_NUM_WARP_EVENTS_\@"
db _NUM_WARP_EVENTS
_NUM_WARP_EVENTS = 0
ENDM

warp_event: MACRO
Expand All @@ -24,6 +53,16 @@ warp_event: MACRO
;\4: warp destination: starts at 1
db \2, \1, \4
map_id \3
_NUM_WARP_EVENTS = _NUM_WARP_EVENTS + 1
ENDM

def_coord_events: MACRO
if DEF(_NUM_COORD_EVENTS)
PURGE _NUM_COORD_EVENTS
endc
_NUM_COORD_EVENTS EQUS "_NUM_COORD_EVENTS_\@"
db _NUM_COORD_EVENTS
_NUM_COORD_EVENTS = 0
ENDM

coord_event: MACRO
Expand All @@ -35,6 +74,16 @@ coord_event: MACRO
db 0 ; filler
dw \4
dw 0 ; filler
_NUM_COORD_EVENTS = _NUM_COORD_EVENTS + 1
ENDM

def_bg_events: MACRO
if DEF(_NUM_BG_EVENTS)
PURGE _NUM_BG_EVENTS
endc
_NUM_BG_EVENTS EQUS "_NUM_BG_EVENTS_\@"
db _NUM_BG_EVENTS
_NUM_BG_EVENTS = 0
ENDM

bg_event: MACRO
Expand All @@ -44,6 +93,16 @@ bg_event: MACRO
;\4: script pointer
db \2, \1, \3
dw \4
_NUM_BG_EVENTS = _NUM_BG_EVENTS + 1
ENDM

def_object_events: MACRO
if DEF(_NUM_OBJECT_EVENTS)
PURGE _NUM_OBJECT_EVENTS
endc
_NUM_OBJECT_EVENTS EQUS "_NUM_OBJECT_EVENTS_\@"
db _NUM_OBJECT_EVENTS
_NUM_OBJECT_EVENTS = 0
ENDM

object_event: MACRO
Expand Down Expand Up @@ -74,6 +133,7 @@ object_event: MACRO
dw \9
shift
dw \9
_NUM_OBJECT_EVENTS = _NUM_OBJECT_EVENTS + 1
ENDM

trainer: MACRO
Expand Down
14 changes: 7 additions & 7 deletions maps/AzaleaGym.asm
@@ -1,4 +1,4 @@
object_const_def ; object_event constants
object_const_def
const AZALEAGYM_BUGSY
const AZALEAGYM_BUG_CATCHER1
const AZALEAGYM_BUG_CATCHER2
Expand All @@ -8,9 +8,9 @@
const AZALEAGYM_GYM_GUIDE

AzaleaGym_MapScripts:
db 0 ; scene scripts
def_scene_scripts

db 0 ; callbacks
def_callbacks

AzaleaGymBugsyScript:
faceplayer
Expand Down Expand Up @@ -362,17 +362,17 @@ AzaleaGymGuideWinText:
AzaleaGym_MapEvents:
db 0, 0 ; filler

db 2 ; warp events
def_warp_events
warp_event 4, 15, AZALEA_TOWN, 5
warp_event 5, 15, AZALEA_TOWN, 5

db 0 ; coord events
def_coord_events

db 2 ; bg events
def_bg_events
bg_event 3, 13, BGEVENT_READ, AzaleaGymStatue
bg_event 6, 13, BGEVENT_READ, AzaleaGymStatue

db 7 ; object events
def_object_events
object_event 5, 7, SPRITE_BUGSY, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, AzaleaGymBugsyScript, -1
object_event 5, 3, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerBugCatcherBenny, -1
object_event 8, 8, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 3, TrainerBugCatcherAl, -1
Expand Down
14 changes: 7 additions & 7 deletions maps/AzaleaMart.asm
@@ -1,12 +1,12 @@
object_const_def ; object_event constants
object_const_def
const AZALEAMART_CLERK
const AZALEAMART_COOLTRAINER_M
const AZALEAMART_BUG_CATCHER

AzaleaMart_MapScripts:
db 0 ; scene scripts
def_scene_scripts

db 0 ; callbacks
def_callbacks

AzaleaMartClerkScript:
opentext
Expand Down Expand Up @@ -46,15 +46,15 @@ AzaleaMartBugCatcherText:
AzaleaMart_MapEvents:
db 0, 0 ; filler

db 2 ; warp events
def_warp_events
warp_event 2, 7, AZALEA_TOWN, 3
warp_event 3, 7, AZALEA_TOWN, 3

db 0 ; coord events
def_coord_events

db 0 ; bg events
def_bg_events

db 3 ; object events
def_object_events
object_event 1, 3, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, AzaleaMartClerkScript, -1
object_event 2, 5, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, AzaleaMartCooltrainerMScript, -1
object_event 7, 2, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, AzaleaMartBugCatcherScript, -1
14 changes: 7 additions & 7 deletions maps/AzaleaPokecenter1F.asm
@@ -1,14 +1,14 @@
object_const_def ; object_event constants
object_const_def
const AZALEAPOKECENTER1F_NURSE
const AZALEAPOKECENTER1F_GENTLEMAN
const AZALEAPOKECENTER1F_FISHING_GURU
const AZALEAPOKECENTER1F_POKEFAN_F

AzaleaPokecenter1F_MapScripts:
db 1 ; scene scripts
def_scene_scripts
scene_script .DummyScene

db 0 ; callbacks
def_callbacks

.DummyScene:
end
Expand Down Expand Up @@ -78,16 +78,16 @@ AzaleaPokecenter1FPokefanFText:
AzaleaPokecenter1F_MapEvents:
db 0, 0 ; filler

db 3 ; warp events
def_warp_events
warp_event 3, 7, AZALEA_TOWN, 1
warp_event 4, 7, AZALEA_TOWN, 1
warp_event 0, 7, POKECENTER_2F, 1

db 0 ; coord events
def_coord_events

db 0 ; bg events
def_bg_events

db 4 ; object events
def_object_events
object_event 3, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, AzaleaPokecenter1FNurseScript, -1
object_event 9, 6, SPRITE_GENTLEMAN, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, AzaleaPokecenter1FGentlemanScript, -1
object_event 6, 1, SPRITE_FISHING_GURU, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, AzaleaPokecenter1FFishingGuruScript, -1
Expand Down
14 changes: 7 additions & 7 deletions maps/AzaleaTown.asm
@@ -1,4 +1,4 @@
object_const_def ; object_event constants
object_const_def
const AZALEATOWN_AZALEA_ROCKET1
const AZALEATOWN_GRAMPS
const AZALEATOWN_TEACHER
Expand All @@ -13,12 +13,12 @@
const AZALEATOWN_KURT_OUTSIDE

AzaleaTown_MapScripts:
db 3 ; scene scripts
def_scene_scripts
scene_script .DummyScene0 ; SCENE_AZALEATOWN_NOTHING
scene_script .DummyScene1 ; SCENE_AZALEATOWN_RIVAL_BATTLE
scene_script .DummyScene2 ; SCENE_AZALEATOWN_KURT_RETURNS_GS_BALL

db 1 ; callbacks
def_callbacks
callback MAPCALLBACK_NEWMAP, .Flypoint

.DummyScene0:
Expand Down Expand Up @@ -456,7 +456,7 @@ AzaleaTownIlexForestSignText:
AzaleaTown_MapEvents:
db 0, 0 ; filler

db 8 ; warp events
def_warp_events
warp_event 15, 9, AZALEA_POKECENTER_1F, 1
warp_event 21, 13, CHARCOAL_KILN, 1
warp_event 21, 5, AZALEA_MART, 2
Expand All @@ -466,12 +466,12 @@ AzaleaTown_MapEvents:
warp_event 2, 10, ILEX_FOREST_AZALEA_GATE, 3
warp_event 2, 11, ILEX_FOREST_AZALEA_GATE, 4

db 3 ; coord events
def_coord_events
coord_event 5, 10, SCENE_AZALEATOWN_RIVAL_BATTLE, AzaleaTownRivalBattleScene1
coord_event 5, 11, SCENE_AZALEATOWN_RIVAL_BATTLE, AzaleaTownRivalBattleScene2
coord_event 9, 6, SCENE_AZALEATOWN_KURT_RETURNS_GS_BALL, AzaleaTownCelebiScene

db 9 ; bg events
def_bg_events
bg_event 19, 9, BGEVENT_READ, AzaleaTownSign
bg_event 10, 9, BGEVENT_READ, KurtsHouseSign
bg_event 14, 15, BGEVENT_READ, AzaleaGymSign
Expand All @@ -482,7 +482,7 @@ AzaleaTown_MapEvents:
bg_event 3, 9, BGEVENT_READ, AzaleaTownIlextForestSign
bg_event 31, 6, BGEVENT_ITEM, AzaleaTownHiddenFullHeal

db 12 ; object events
def_object_events
object_event 31, 9, SPRITE_AZALEA_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, AzaleaTownRocket1Script, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
object_event 21, 9, SPRITE_GRAMPS, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, AzaleaTownGrampsScript, -1
object_event 15, 13, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 2, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, AzaleaTownTeacherScript, -1
Expand Down

0 comments on commit dcb24bc

Please sign in to comment.