ref: 82f1534925c5fe1f0d876ea88119b0121cfa65a6
parent: 7aef59841489ea449b9a34d424c681a4b48b88ab
author: pikalaxalt <[email protected]>
date: Sat Apr 30 17:20:12 EDT 2016
Copycat labels; macro for the Crystal-only Unown chamber unlock words
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -6048,7 +6048,7 @@
jr .loop
.done
- and a
+ and a ; This is probably a bug, and will result in a move with PP Up confusing the game.
ret nz
.force_struggle
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -1541,11 +1541,6 @@
and a
jr z, CheckTypeMatchup
ld hl, BattleMonType1
-
- ; fallthrough
-; 347d3
-
-
CheckTypeMatchup: ; 347d3
push hl
push de
--- a/engine/map_object_action.asm
+++ b/engine/map_object_action.asm
@@ -274,12 +274,12 @@
Function45c5: ; 45c5
ld a, [VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS]
- ld d, FACING_17
+ ld d, FACING_17 ; symmetric
cp SPRITE_BIG_SNORLAX
jr z, .ok
cp SPRITE_BIG_LAPRAS
jr z, .ok
- ld d, FACING_16
+ ld d, FACING_16 ; asymmetric
.ok
ld hl, OBJECT_FACING_STEP
--- a/engine/overworld.asm
+++ b/engine/overworld.asm
@@ -23,7 +23,7 @@
push af
res 7, [hl]
set 6, [hl]
- call RunCallback_04
+ call MapCallbackSprites_LoadUsedSpritesGFX
pop af
ld [wSpriteFlags], a
ret
@@ -35,7 +35,7 @@
push af
set 7, [hl]
res 6, [hl]
- call RunCallback_04
+ call MapCallbackSprites_LoadUsedSpritesGFX
pop af
ld [wSpriteFlags], a
ret
@@ -43,7 +43,7 @@
RefreshSprites:: ; 14168
call .Refresh
- call RunCallback_04
+ call MapCallbackSprites_LoadUsedSpritesGFX
ret
; 1416f
@@ -165,7 +165,7 @@
; 14209
-RunCallback_04: ; 14209
+MapCallbackSprites_LoadUsedSpritesGFX: ; 14209
ld a, MAPCALLBACK_SPRITES
call RunMapCallback
call GetUsedSprites
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -114,7 +114,7 @@
add_special RandomPhoneRareWildMon
add_special RandomPhoneWildMon
add_special RandomPhoneMon
- add_special RunCallback_04
+ add_special MapCallbackSprites_LoadUsedSpritesGFX
add_special PlaySlowCry
add_special SpecialSnorlaxAwake
add_special Special_YoungerHaircutBrother
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -341,7 +341,7 @@
push hl
ld a, [hl]
ld hl, wCurrSpriteAddSubFlags
- bit 5, [hl]
+ bit 5, [hl] ; x flip
jr z, .ok
; 8 - a
add $8
@@ -573,7 +573,7 @@
db SPRITE_ANIM_FRAMESET_18, SPRITE_ANIM_SEQ_12, $00 ; 12
db SPRITE_ANIM_FRAMESET_19, SPRITE_ANIM_SEQ_13, $00 ; 13
db SPRITE_ANIM_FRAMESET_1A, SPRITE_ANIM_SEQ_14, $00 ; 14 radio tuning knob
- db SPRITE_ANIM_FRAMESET_1B, SPRITE_ANIM_SEQ_NULL, $00 ; 15
+ db SPRITE_ANIM_FRAMESET_1B, SPRITE_ANIM_SEQ_NULL, $00 ; 15 chris on magnet train
db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_15, $00 ; 16 leaves when cutting down a tree
db SPRITE_ANIM_FRAMESET_1E, SPRITE_ANIM_SEQ_NULL, $00 ; 17
db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_FLY_LEAF, $00 ; 18 flying leaves
@@ -583,7 +583,7 @@
db SPRITE_ANIM_FRAMESET_20, SPRITE_ANIM_SEQ_13, $00 ; 1c
db SPRITE_ANIM_FRAMESET_26, SPRITE_ANIM_SEQ_1A, $00 ; 1d
db SPRITE_ANIM_FRAMESET_2D, SPRITE_ANIM_SEQ_NULL, $00 ; 1e
- db SPRITE_ANIM_FRAMESET_2E, SPRITE_ANIM_SEQ_NULL, $00 ; 1f
+ db SPRITE_ANIM_FRAMESET_2E, SPRITE_ANIM_SEQ_NULL, $00 ; 1f kris on magnet train
db SPRITE_ANIM_FRAMESET_2F, SPRITE_ANIM_SEQ_NULL, $00 ; 20
db SPRITE_ANIM_FRAMESET_30, SPRITE_ANIM_SEQ_NULL, $00 ; 21
db SPRITE_ANIM_FRAMESET_31, SPRITE_ANIM_SEQ_NULL, $00 ; 22
--- a/event/unown.asm
+++ b/event/unown.asm
@@ -107,18 +107,18 @@
Special_DisplayUnownWords: ; 8ae68
ld a, [ScriptVar]
- ld hl, MenuDataHeader_0x8aed5
+ ld hl, .MenuDataHeader_Escape
and a
- jr z, .asm_8ae79
+ jr z, .load
ld d, $0
ld e, $5
-.asm_8ae75
+.loop
add hl, de
dec a
- jr nz, .asm_8ae75
+ jr nz, .loop
-.asm_8ae79
+.load
call LoadMenuDataHeader
xor a
ld [hBGMapMode], a
@@ -127,29 +127,27 @@
call ApplyTilemap
call MenuBoxCoord2Tile
inc hl
- ld d, $0
- ld e, $14
-rept 2
+ ld d, 0
+ ld e, SCREEN_WIDTH
add hl, de
-endr
+ add hl, de
ld a, [ScriptVar]
ld c, a
- ld de, Unknown_8aebc
+ ld de, .UnownText
and a
- jr z, .asm_8aea5
-.asm_8ae9c
+ jr z, .copy
+.loop2
ld a, [de]
inc de
cp $ff
- jr nz, .asm_8ae9c
+ jr nz, .loop2
dec c
- jr nz, .asm_8ae9c
-
-.asm_8aea5
- call Function8af09
+ jr nz, .loop2
+.copy
+ call .CopyWord
ld bc, AttrMap - TileMap
add hl, bc
- call Function8aee9
+ call .FillAttr
call WaitBGMap2
call JoyWaitAorB
call PlayClickSFX
@@ -157,59 +155,91 @@
ret
; 8aebc
-Unknown_8aebc: ; 8aebc
- db $08, $44, $04, $00, $2e, $08, $ff
- db $26, $20, $0c, $0e, $46, $ff
- db $4c, $00, $46, $08, $42, $ff
- db $0e, $2c, $64, $2c, $0e, $ff
+.UnownText: ; 8aebc
+
+unownwall: MACRO
+rept _NARG
+if \1 == "-"
+x = $64
+else
+if \1 >= "Y"
+x = 2 * (\1 - "Y") + $60
+else
+if \1 >= "Q"
+x = 2 * (\1 - "Q") + $40
+else
+if \1 >= "I"
+x = 2 * (\1 - "I") + $20
+else
+x = 2 * (\1 - "A")
+endc
+endc
+endc
+endc
+ db x
+shift
+endr
+ db $ff
+endm
+
+.UnownText_Escape:
+ ; db $08, $44, $04, $00, $2e, $08, $ff
+ unownwall "E", "S", "C", "A", "P", "E"
+.UnownText_Light:
+ ; db $26, $20, $0c, $0e, $46, $ff
+ unownwall "L", "I", "G", "H", "T"
+.UnownText_Water:
+ ; db $4c, $00, $46, $08, $42, $ff
+ unownwall "W", "A", "T", "E", "R"
+.UnownText_Ho_Oh:
+ ; db $0e, $2c, $64, $2c, $0e, $ff
+ unownwall "H", "O", "-", "O", "H"
; 8aed5
-MenuDataHeader_0x8aed5: ; 0x8aed5
+.MenuDataHeader_Escape: ; 0x8aed5
db $40 ; flags
db 04, 03 ; start coords
db 09, 16 ; end coords
-MenuDataHeader_0x8aeda: ; 0x8aeda
+.MenuDataHeader_Light: ; 0x8aeda
db $40 ; flags
db 04, 04 ; start coords
db 09, 15 ; end coords
-MenuDataHeader_0x8aedf: ; 0x8aedf
+.MenuDataHeader_Water: ; 0x8aedf
db $40 ; flags
db 04, 04 ; start coords
db 09, 15 ; end coords
-MenuDataHeader_0x8aee4: ; 0x8aee4
+.MenuDataHeader_Ho_Oh: ; 0x8aee4
db $40 ; flags
db 04, 04 ; start coords
db 09, 15 ; end coords
; 8aee9
-Function8aee9: ; 8aee9
-.asm_8aee9
+.FillAttr: ; 8aee9
ld a, [de]
cp $ff
ret z
cp $60
- ld a, $d
- jr c, .asm_8aef5
- ld a, $5
+ ld a, (1 << 3) | PAL_BG_BROWN
+ jr c, .got_pal
+ ld a, PAL_BG_BROWN
-.asm_8aef5
- call Function8aefd
-rept 2
+.got_pal
+ call .PlaceSquare
inc hl
-endr
+ inc hl
inc de
- jr .asm_8aee9
+ jr .FillAttr
; 8aefd
-Function8aefd: ; 8aefd
+.PlaceSquare: ; 8aefd
push hl
ld [hli], a
ld [hld], a
- ld b, $0
- ld c, $14
+ ld b, 0
+ ld c, SCREEN_WIDTH
add hl, bc
ld [hli], a
ld [hl], a
@@ -217,42 +247,41 @@
ret
; 8af09
-Function8af09: ; 8af09
+.CopyWord: ; 8af09
push hl
push de
-.asm_8af0b
+.word_loop
ld a, [de]
cp $ff
- jr z, .asm_8af19
+ jr z, .word_done
ld c, a
- call Function8af1c
-rept 2
+ call .ConvertChar
inc hl
-endr
+ inc hl
inc de
- jr .asm_8af0b
+ jr .word_loop
-.asm_8af19
+.word_done
pop de
pop hl
ret
; 8af1c
-Function8af1c: ; 8af1c
+.ConvertChar: ; 8af1c
push hl
ld a, c
cp $60
- jr z, .asm_8af3b
+ jr z, .Tile60
cp $62
- jr z, .asm_8af4b
+ jr z, .Tile62
cp $64
- jr z, .asm_8af5b
+ jr z, .Tile64
ld [hli], a
inc a
ld [hld], a
dec a
- ld b, $0
- ld c, $14
+ ld b, 0
+ ld c, SCREEN_WIDTH
add hl, bc
ld c, $10
add c
@@ -262,11 +291,11 @@
pop hl
ret
-.asm_8af3b
+.Tile60:
ld [hl], $5b
inc hl
ld [hl], $5c
- ld bc, $0013
+ ld bc, SCREEN_WIDTH - 1
add hl, bc
ld [hl], $4d
inc hl
@@ -274,11 +303,11 @@
pop hl
ret
-.asm_8af4b
+.Tile62:
ld [hl], $4e
inc hl
ld [hl], $4f
- ld bc, $0013
+ ld bc, SCREEN_WIDTH - 1
add hl, bc
ld [hl], $5e
inc hl
@@ -286,11 +315,11 @@
pop hl
ret
-.asm_8af5b
+.Tile64:
ld [hl], $2
inc hl
ld [hl], $3
- ld bc, $0013
+ ld bc, SCREEN_WIDTH - 1
add hl, bc
ld [hl], $3
inc hl
--- a/hram.asm
+++ b/hram.asm
@@ -1,5 +1,5 @@
HRAM_START EQU $ff80
-hPushOAM EQU $ff80
+hPushOAM EQU $ff80 ; 10 bytes
hROMBankBackup EQU $ff8a
hBuffer EQU $ff8b
--- a/macros/wram.asm
+++ b/macros/wram.asm
@@ -199,6 +199,21 @@
\1End::
endm
+roam_struct: MACRO
+\1Species:: db
+\1Level:: db
+\1MapGroup:: db
+\1MapNumber:: db
+\1HP:: ds 1
+\1DVs:: ds 2
+ENDM
+
+bugcontestwinner: macro
+\1PersonID:: ds 1
+\1Mon:: ds 1
+\1Score:: ds 2
+endm
+
hall_of_fame: MACRO
\1::
\1WinCount:: ds 1
@@ -248,4 +263,113 @@
\1Slot0d:: ds 1
\1Slot0e:: ds 1
\1Slot0f:: ds 1
-endm
\ No newline at end of file
+endm
+
+object_struct: MACRO
+\1Struct::
+\1Sprite:: ds 1
+\1MapObjectIndex:: ds 1
+\1SpriteTile:: ds 1
+\1MovementType:: ds 1
+\1Flags:: ds 2
+\1Palette:: ds 1
+\1Walking:: ds 1
+\1Direction:: ds 1
+\1StepType:: ds 1
+\1StepDuration:: ds 1
+\1Action:: ds 1
+\1ObjectStepFrame:: ds 1
+\1Facing:: ds 1
+\1StandingTile:: ds 1 ; collision
+\1LastTile:: ds 1 ; collision
+\1StandingMapX:: ds 1
+\1StandingMapY:: ds 1
+\1LastMapX:: ds 1
+\1LastMapY:: ds 1
+\1ObjectInitX:: ds 1
+\1ObjectInitY:: ds 1
+\1Radius:: ds 1
+\1SpriteX:: ds 1
+\1SpriteY:: ds 1
+\1SpriteXOffset:: ds 1
+\1SpriteYOffset:: ds 1
+\1MovementByteIndex:: ds 1
+\1Object28:: ds 1
+\1Object29:: ds 1
+\1Object30:: ds 1
+\1Object31:: ds 1
+\1Range:: ds 1
+ ds 7
+\1StructEnd::
+ENDM
+
+map_object: MACRO
+\1Object::
+\1ObjectStructID:: ds 1
+\1ObjectSprite:: ds 1
+\1ObjectYCoord:: ds 1
+\1ObjectXCoord:: ds 1
+\1ObjectMovement:: ds 1
+\1ObjectRadius:: ds 1
+\1ObjectHour:: ds 1
+\1ObjectTimeOfDay:: ds 1
+\1ObjectColor:: ds 1
+\1ObjectRange:: ds 1
+\1ObjectScript:: ds 2
+\1ObjectEventFlag:: ds 2
+ ds 2
+endm
+
+sprite_anim_struct: MACRO
+\1Index:: ds 1 ; 0
+\1FramesetID:: ds 1 ; 1
+\1AnimSeqID:: ds 1 ; 2
+\1TileID:: ds 1 ; 3
+\1XCoord:: ds 1 ; 4
+\1YCoord:: ds 1 ; 5
+\1XOffset:: ds 1 ; 6
+\1YOffset:: ds 1 ; 7
+\1Duration:: ds 1 ; 8
+\1DurationOffset:: ds 1 ; 9
+\1FrameIndex:: ds 1 ; a
+\1Sprite0b:: ds 1
+\1Sprite0c:: ds 1
+\1Sprite0d:: ds 1
+\1Sprite0e:: ds 1
+\1Sprite0f:: ds 1
+ENDM
+
+battle_anim_struct: MACRO
+; Placeholder until we can figure out what it all means
+\1_Index:: ds 1
+\1_Anim01:: ds 1
+\1_Anim02:: ds 1
+\1_FramesetIndex:: ds 1
+\1_FunctionIndex:: ds 1
+\1_Anim05:: ds 1
+\1_TileID:: ds 1
+\1_XCoord:: ds 1
+\1_YCoord:: ds 1
+\1_XOffset:: ds 1
+\1_YOffset:: ds 1
+\1_Anim0b:: ds 1
+\1_Anim0c:: ds 1
+\1_Anim0d:: ds 1
+\1_AnonJumptableIndex:: ds 1
+\1_Anim0f:: ds 1
+\1_Anim10:: ds 1
+\1_Anim11:: ds 1
+\1_Anim12:: ds 1
+\1_Anim13:: ds 1
+\1_Anim14:: ds 1
+\1_Anim15:: ds 1
+\1_Anim16:: ds 1
+\1_Anim17:: ds 1
+endm
+
+battle_bg_effect: MACRO
+\1_Function:: ds 1
+\1_01:: ds 1
+\1_02:: ds 1
+\1_03:: ds 1
+endm
--- a/main.asm
+++ b/main.asm
@@ -42,7 +42,7 @@
PushOAM: ; 403f
ld a, Sprites / $100
ld [rDMA], a
- ld a, 40
+ ld a, (SpritesEnd - Sprites) / 4 ; 40
.loop
dec a
jr nz, .loop
--- a/maps/CopycatsHouse2F.asm
+++ b/maps/CopycatsHouse2F.asm
@@ -1,10 +1,10 @@
const_value set 2
- const COPYCATSHOUSE2F_COPYCAT1
+ const COPYCATSHOUSE2F_COPYCAT1 ; if player is male
const COPYCATSHOUSE2F_DODRIO
- const COPYCATSHOUSE2F_FAIRYDOLL
+ const COPYCATSHOUSE2F_FAIRYDOLL ; lost item
const COPYCATSHOUSE2F_MONSTERDOLL
const COPYCATSHOUSE2F_BIRDDOLL
- const COPYCATSHOUSE2F_COPYCAT2
+ const COPYCATSHOUSE2F_COPYCAT2 ; if player is female
CopycatsHouse2F_MapScriptHeader:
.MapTriggers:
@@ -15,15 +15,15 @@
; callbacks
- dbw MAPCALLBACK_OBJECTS, CopycatsHouse2FCallback
+ dbw MAPCALLBACK_OBJECTS, .Callback
-CopycatsHouse2FCallback:
+.Callback:
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part1
+ iftrue .Female
disappear COPYCATSHOUSE2F_COPYCAT2
appear COPYCATSHOUSE2F_COPYCAT1
jump .Done
-.Part1:
+.Female:
disappear COPYCATSHOUSE2F_COPYCAT1
appear COPYCATSHOUSE2F_COPYCAT2
.Done:
@@ -32,146 +32,146 @@
Copycat:
faceplayer
checkevent EVENT_GOT_PASS_FROM_COPYCAT
- iftrue .Part15
+ iftrue .GotPass
checkevent EVENT_RETURNED_LOST_ITEM_TO_COPYCAT
- iftrue .Part13
+ iftrue .TryGivePassAgain
checkitem LOST_ITEM
- iftrue .Part12
+ iftrue .ReturnLostItem
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part1
- applymovement COPYCATSHOUSE2F_COPYCAT1, MovementData_0x18afd0
+ iftrue .Default_Female_1
+ applymovement COPYCATSHOUSE2F_COPYCAT1, CopycatSpinAroundMovementData
faceplayer
variablesprite SPRITE_COPYCAT, SPRITE_CHRIS
- jump .Part2
+ jump .Default_Merge_1
-.Part1:
- applymovement COPYCATSHOUSE2F_COPYCAT2, MovementData_0x18afd0
+.Default_Female_1:
+ applymovement COPYCATSHOUSE2F_COPYCAT2, CopycatSpinAroundMovementData
faceplayer
variablesprite SPRITE_COPYCAT, SPRITE_KRIS
-.Part2:
- special RunCallback_04
+.Default_Merge_1:
+ special MapCallbackSprites_LoadUsedSpritesGFX
checkevent EVENT_RETURNED_MACHINE_PART
- iftrue .Part7
+ iftrue .TalkAboutLostItem
opentext
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part3
- writetext UnknownText_0x18afda
- jump .Part4
+ iftrue .Default_Female_2a
+ writetext CopycatText_Male_1
+ jump .Default_Merge_2a
-.Part3:
- writetext UnknownText_0x18b316
-.Part4:
+.Default_Female_2a:
+ writetext CopycatText_Female_1
+.Default_Merge_2a:
waitbutton
closetext
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part5
- applymovement COPYCATSHOUSE2F_COPYCAT1, MovementData_0x18afd0
- jump .Part6
+ iftrue .Default_Female_3a
+ applymovement COPYCATSHOUSE2F_COPYCAT1, CopycatSpinAroundMovementData
+ jump .Default_Merge_3a
-.Part5:
- applymovement COPYCATSHOUSE2F_COPYCAT2, MovementData_0x18afd0
-.Part6:
+.Default_Female_3a:
+ applymovement COPYCATSHOUSE2F_COPYCAT2, CopycatSpinAroundMovementData
+.Default_Merge_3a:
faceplayer
variablesprite SPRITE_COPYCAT, SPRITE_LASS
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
opentext
- writetext UnknownText_0x18b028
+ writetext CopycatText_QuickMimicking
waitbutton
closetext
end
-.Part7:
+.TalkAboutLostItem:
opentext
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part8
- writetext UnknownText_0x18b064
- jump .Part9
+ iftrue .Default_Female_2b
+ writetext CopycatText_Male_2
+ jump .Default_Merge_2b
-.Part8:
- writetext UnknownText_0x18b366
-.Part9:
+.Default_Female_2b:
+ writetext CopycatText_Female_2
+.Default_Merge_2b:
waitbutton
closetext
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part10
- applymovement COPYCATSHOUSE2F_COPYCAT1, MovementData_0x18afd0
- jump .Part11
+ iftrue .Default_Female_3b
+ applymovement COPYCATSHOUSE2F_COPYCAT1, CopycatSpinAroundMovementData
+ jump .Default_Merge_3b
-.Part10:
- applymovement COPYCATSHOUSE2F_COPYCAT2, MovementData_0x18afd0
-.Part11:
+.Default_Female_3b:
+ applymovement COPYCATSHOUSE2F_COPYCAT2, CopycatSpinAroundMovementData
+.Default_Merge_3b:
faceplayer
variablesprite SPRITE_COPYCAT, SPRITE_LASS
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
opentext
- writetext UnknownText_0x18b116
+ writetext CopycatText_Worried
waitbutton
closetext
setevent EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM
end
-.Part12:
+.ReturnLostItem:
opentext
- writetext UnknownText_0x18b17f
+ writetext CopycatText_GiveDoll
buttonsound
takeitem LOST_ITEM
setevent EVENT_RETURNED_LOST_ITEM_TO_COPYCAT
clearevent EVENT_COPYCATS_HOUSE_2F_DOLL
- jump .Part14
+ jump .GivePass
-.Part13:
+.TryGivePassAgain:
opentext
-.Part14:
- writetext UnknownText_0x18b1e2
+.GivePass:
+ writetext CopycatText_GivePass
buttonsound
verbosegiveitem PASS
- iffalse .Part22
+ iffalse .Cancel
setevent EVENT_GOT_PASS_FROM_COPYCAT
- writetext UnknownText_0x18b214
+ writetext CopycatText_ExplainPass
waitbutton
closetext
end
-.Part15:
+.GotPass:
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part16
- applymovement COPYCATSHOUSE2F_COPYCAT1, MovementData_0x18afd0
+ iftrue .GotPass_Female_1
+ applymovement COPYCATSHOUSE2F_COPYCAT1, CopycatSpinAroundMovementData
faceplayer
variablesprite SPRITE_COPYCAT, SPRITE_CHRIS
- jump .Part17
+ jump .GotPass_Merge_1
-.Part16:
- applymovement COPYCATSHOUSE2F_COPYCAT2, MovementData_0x18afd0
+.GotPass_Female_1:
+ applymovement COPYCATSHOUSE2F_COPYCAT2, CopycatSpinAroundMovementData
faceplayer
variablesprite SPRITE_COPYCAT, SPRITE_KRIS
-.Part17:
- special RunCallback_04
+.GotPass_Merge_1:
+ special MapCallbackSprites_LoadUsedSpritesGFX
opentext
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part18
- writetext UnknownText_0x18b298
- jump .Part19
+ iftrue .GotPass_Female_2
+ writetext CopycatText_Male_3
+ jump .GotPass_Merge_2
-.Part18:
- writetext UnknownText_0x18b415
-.Part19:
+.GotPass_Female_2:
+ writetext CopycatText_Female_3
+.GotPass_Merge_2:
waitbutton
closetext
checkflag ENGINE_PLAYER_IS_FEMALE
- iftrue .Part20
- applymovement COPYCATSHOUSE2F_COPYCAT1, MovementData_0x18afd0
- jump .Part21
+ iftrue .GotPass_Female_3
+ applymovement COPYCATSHOUSE2F_COPYCAT1, CopycatSpinAroundMovementData
+ jump .GotPass_Merge_3
-.Part20:
- applymovement COPYCATSHOUSE2F_COPYCAT2, MovementData_0x18afd0
-.Part21:
+.GotPass_Female_3:
+ applymovement COPYCATSHOUSE2F_COPYCAT2, CopycatSpinAroundMovementData
+.GotPass_Merge_3:
faceplayer
variablesprite SPRITE_COPYCAT, SPRITE_LASS
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
opentext
- writetext UnknownText_0x18b2f5
+ writetext CopycatText_ItsAScream
waitbutton
-.Part22:
+.Cancel:
closetext
end
@@ -191,7 +191,7 @@
CopycatsHouse2FBookshelf:
jumpstd picturebookshelf
-MovementData_0x18afd0:
+CopycatSpinAroundMovementData:
turn_head_down
turn_head_left
turn_head_up
@@ -203,7 +203,7 @@
turn_head_down
step_end
-UnknownText_0x18afda:
+CopycatText_Male_1:
text "<PLAYER>: Hi! Do"
line "you like #MON?"
@@ -214,7 +214,7 @@
line "You're strange!"
done
-UnknownText_0x18b028:
+CopycatText_QuickMimicking:
text "COPYCAT: Hmm?"
line "Quit mimicking?"
@@ -222,7 +222,7 @@
line "favorite hobby!"
done
-UnknownText_0x18b064:
+CopycatText_Male_2:
text "<PLAYER>: Hi!"
line "I heard that you"
@@ -241,7 +241,7 @@
cont "to VERMILION CITY?"
done
-UnknownText_0x18b116:
+CopycatText_Worried:
text "COPYCAT: Pardon?"
para "I shouldn't decide"
@@ -253,7 +253,7 @@
cont "someone finds it?"
done
-UnknownText_0x18b17f:
+CopycatText_GiveDoll:
text "COPYCAT: Yay!"
line "That's my CLEFAIRY"
cont "# DOLL!"
@@ -265,13 +265,13 @@
line "proof!"
done
-UnknownText_0x18b1e2:
+CopycatText_GivePass:
text "OK. Here's the"
line "MAGNET TRAIN PASS"
cont "like I promised!"
done
-UnknownText_0x18b214:
+CopycatText_ExplainPass:
text "COPYCAT: That's"
line "the PASS for the"
cont "MAGNET TRAIN."
@@ -284,7 +284,7 @@
cont "for the STATION."
done
-UnknownText_0x18b298:
+CopycatText_Male_3:
text "<PLAYER>: Hi!"
line "Thanks a lot for"
cont "the rail PASS!"
@@ -296,12 +296,12 @@
cont "my every move?"
done
-UnknownText_0x18b2f5:
+CopycatText_ItsAScream:
text "COPYCAT: You bet!"
line "It's a scream!"
done
-UnknownText_0x18b316:
+CopycatText_Female_1:
text "<PLAYER>: Hi. You"
line "must like #MON."
@@ -312,7 +312,7 @@
line "You're weird!"
done
-UnknownText_0x18b366:
+CopycatText_Female_2:
text "<PLAYER>: Hi. Did"
line "you really lose"
cont "your # DOLL?"
@@ -331,7 +331,7 @@
cont "in VERMILION?"
done
-UnknownText_0x18b415:
+CopycatText_Female_3:
text "<PLAYER>: Thank you"
line "for the rail PASS!"
--- a/maps/FuchsiaGym.asm
+++ b/maps/FuchsiaGym.asm
@@ -35,7 +35,7 @@
variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_LASS
variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_LASS
variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_YOUNGSTER
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
opentext
writetext UnknownText_0x195feb
playsound SFX_GET_BADGE
@@ -65,7 +65,7 @@
applymovement FUCHSIAGYM_FUCHSIA_GYM_1, MovementData_0x195f27
faceplayer
variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_LASS
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
UnknownScript_0x195e2c:
faceplayer
opentext
@@ -99,7 +99,7 @@
applymovement FUCHSIAGYM_FUCHSIA_GYM_2, MovementData_0x195f27
faceplayer
variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_LASS
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
UnknownScript_0x195e66:
faceplayer
opentext
@@ -133,7 +133,7 @@
applymovement FUCHSIAGYM_FUCHSIA_GYM_3, MovementData_0x195f27
faceplayer
variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_LASS
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
UnknownScript_0x195ea0:
faceplayer
opentext
@@ -167,7 +167,7 @@
applymovement FUCHSIAGYM_FUCHSIA_GYM_4, MovementData_0x195f27
faceplayer
variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_YOUNGSTER
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
UnknownScript_0x195eda:
faceplayer
opentext
--- a/maps/FuchsiaPokeCenter1F.asm
+++ b/maps/FuchsiaPokeCenter1F.asm
@@ -35,7 +35,7 @@
applymovement FUCHSIAPOKECENTER1F_JANINE_IMPERSONATOR, MovementData_0x196486
faceplayer
variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_JANINE
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
opentext
writetext UnknownText_0x19654e
waitbutton
@@ -43,7 +43,7 @@
applymovement FUCHSIAPOKECENTER1F_JANINE_IMPERSONATOR, MovementData_0x196486
faceplayer
variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_LASS
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
end
MovementData_0x196486:
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -49,7 +49,7 @@
disappear OLIVINECITY_OLIVINE_RIVAL
special RestartMapMusic
variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SWIMMER_GUY
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
end
UnknownScript_0x1a886b:
@@ -73,7 +73,7 @@
dotrigger $1
special RestartMapMusic
variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SWIMMER_GUY
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
end
SailorScript_0x1a88a3:
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -99,7 +99,7 @@
applymovement ROUTE36_WEIRD_TREE, WeirdTreeMovement_Flee
disappear ROUTE36_WEIRD_TREE
variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
- special RunCallback_04
+ special MapCallbackSprites_LoadUsedSpritesGFX
special RefreshSprites
end
--- a/wram.asm
+++ b/wram.asm
@@ -242,26 +242,6 @@
wc312:: ds 1
wc313:: ds 1
wSpriteAnimationStructs::
-
-sprite_anim_struct: MACRO
-\1Index:: ds 1 ; 0
-\1FramesetID:: ds 1 ; 1
-\1AnimSeqID:: ds 1 ; 2
-\1TileID:: ds 1 ; 3
-\1XCoord:: ds 1 ; 4
-\1YCoord:: ds 1 ; 5
-\1XOffset:: ds 1 ; 6
-\1YOffset:: ds 1 ; 7
-\1Duration:: ds 1 ; 8
-\1DurationOffset:: ds 1 ; 9
-\1FrameIndex:: ds 1 ; a
-\1Sprite0b:: ds 1
-\1Sprite0c:: ds 1
-\1Sprite0d:: ds 1
-\1Sprite0e:: ds 1
-\1Sprite0f:: ds 1
-ENDM
-
; Field 0: Index
; Fields 1-3: Loaded from SpriteAnimSeqData
wc314::
@@ -1531,11 +1511,6 @@
wMonOrItemNameBuffer::
ds wBufferMonNick - @
-bugcontestwinner: macro
-\1PersonID:: ds 1
-\1Mon:: ds 1
-\1Score:: ds 2
-endm
wBugContestResults::
bugcontestwinner wBugContestFirstPlace
bugcontestwinner wBugContestSecondPlace
@@ -2351,44 +2326,6 @@
wFollowMovementQueue:: ds 5
ObjectStructs:: ; d4d6
-object_struct: MACRO
-\1Struct::
-\1Sprite:: ds 1
-\1MapObjectIndex:: ds 1
-\1SpriteTile:: ds 1
-\1MovementType:: ds 1
-\1Flags:: ds 2
-\1Palette:: ds 1
-\1Walking:: ds 1
-\1Direction:: ds 1
-\1StepType:: ds 1
-\1StepDuration:: ds 1
-\1Action:: ds 1
-\1ObjectStepFrame:: ds 1
-\1Facing:: ds 1
-\1StandingTile:: ds 1 ; collision
-\1LastTile:: ds 1 ; collision
-\1StandingMapX:: ds 1
-\1StandingMapY:: ds 1
-\1LastMapX:: ds 1
-\1LastMapY:: ds 1
-\1ObjectInitX:: ds 1
-\1ObjectInitY:: ds 1
-\1Radius:: ds 1
-\1SpriteX:: ds 1
-\1SpriteY:: ds 1
-\1SpriteXOffset:: ds 1
-\1SpriteYOffset:: ds 1
-\1MovementByteIndex:: ds 1
-\1Object28:: ds 1
-\1Object29:: ds 1
-\1Object30:: ds 1
-\1Object31:: ds 1
-\1Range:: ds 1
- ds 7
-\1StructEnd::
-ENDM
-
object_struct Player
object_struct Object1
object_struct Object2
@@ -2408,23 +2345,6 @@
ds $28
MapObjects:: ; d71e
-map_object: MACRO
-\1Object::
-\1ObjectStructID:: ds 1
-\1ObjectSprite:: ds 1
-\1ObjectYCoord:: ds 1
-\1ObjectXCoord:: ds 1
-\1ObjectMovement:: ds 1
-\1ObjectRadius:: ds 1
-\1ObjectHour:: ds 1
-\1ObjectTimeOfDay:: ds 1
-\1ObjectColor:: ds 1
-\1ObjectRange:: ds 1
-\1ObjectScript:: ds 2
-\1ObjectEventFlag:: ds 2
- ds 2
-endm
-
map_object Player
map_object Map1
map_object Map2
@@ -2921,15 +2841,6 @@
wDunsparceMapNumber:: ds 1
wFishingSwarmFlag:: ds 1
-roam_struct: MACRO
-\1Species:: db
-\1Level:: db
-\1MapGroup:: db
-\1MapNumber:: db
-\1HP:: ds 1
-\1DVs:: ds 2
-ENDM
-
wRoamMon1:: roam_struct wRoamMon1 ; dfcf
wRoamMon2:: roam_struct wRoamMon2 ; dfd6
wRoamMon3:: roam_struct wRoamMon3 ; dfdd
@@ -3064,34 +2975,6 @@
wBattleAnimTileDict:: ds 10
-battle_anim_struct: MACRO
-; Placeholder until we can figure out what it all means
-\1_Index:: ds 1
-\1_Anim01:: ds 1
-\1_Anim02:: ds 1
-\1_FramesetIndex:: ds 1
-\1_FunctionIndex:: ds 1
-\1_Anim05:: ds 1
-\1_TileID:: ds 1
-\1_XCoord:: ds 1
-\1_YCoord:: ds 1
-\1_XOffset:: ds 1
-\1_YOffset:: ds 1
-\1_Anim0b:: ds 1
-\1_Anim0c:: ds 1
-\1_Anim0d:: ds 1
-\1_AnonJumptableIndex:: ds 1
-\1_Anim0f:: ds 1
-\1_Anim10:: ds 1
-\1_Anim11:: ds 1
-\1_Anim12:: ds 1
-\1_Anim13:: ds 1
-\1_Anim14:: ds 1
-\1_Anim15:: ds 1
-\1_Anim16:: ds 1
-\1_Anim17:: ds 1
-endm
-
ActiveAnimObjects:: ; d30a
AnimObject01:: battle_anim_struct AnimObject01
AnimObject02:: battle_anim_struct AnimObject02
@@ -3104,13 +2987,6 @@
AnimObject09:: battle_anim_struct AnimObject09
AnimObject10:: battle_anim_struct AnimObject10
ActiveAnimObjectsEnd:: ; d3aa
-
-battle_bg_effect: MACRO
-\1_Function:: ds 1
-\1_01:: ds 1
-\1_02:: ds 1
-\1_03:: ds 1
-endm
ActiveBGEffects:: ; d3fa
BGEffect1:: battle_bg_effect BGEffect1