shithub: pokecrystal

Download patch

ref: 3cadc7b012c3d11f227d71814f729952d0f56c21
parent: 7fd20e63223e777872618b3eac7cf49f8b105fec
author: PikalaxALT <[email protected]>
date: Wed Nov 4 15:20:14 EST 2015

give/takeitem *, 1: the 1 is optional

--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -39,4 +39,8 @@
 	const ANIM_GFX_WAVE
 	const ANIM_GFX_AEROBLAST
 
+
+LEN_2BPP_TILE EQU 16
+LEN_1BPP_TILE EQU 8
+TILES_PER_FRAME EQU 6
 TILESIZE EQU $10
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -587,7 +587,10 @@
 	const EMOTE_BOLT ; 5
 	const EMOTE_SLEEP ; 6
 	const EMOTE_FISH ; 7
-	const EMOTE_ROD ; 8 - add directional constant
+	const EMOTE_08 ; 8
+	const EMOTE_09 ; 9
+	const EMOTE_0A ; 10
+	const EMOTE_0B ; 11
 EMOTE_MEM EQU -1
 
 	const_def
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -164,7 +164,3 @@
 HMENURETURN_ASM    EQU %11111111
 
 NUM_MON_SUBMENU_ITEMS EQU 8
-
-LEN_2BPP_TILE EQU 16
-LEN_1BPP_TILE EQU 8
-TILES_PER_FRAME EQU 6
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -170,6 +170,16 @@
 	const STANDING_SPRITE
 	const STILL_SPRITE
 
+; sprite header fields
+	const_def
+	const SPRITEHEADER_ADDR_LO
+	const SPRITEHEADER_ADDR_HI
+	const SPRITEHEADER_SIZE
+	const SPRITEHEADER_BANK
+	const SPRITEHEADER_TYPE
+	const SPRITEHEADER_PALETTE
+NUM_SPRITEHEADER_FIELDS EQU const_value
+
 ; sprite palettes
 	const_def
 	const PAL_OW_RED
@@ -252,3 +262,5 @@
 	const SPRITEMOVEFN_19
 	const SPRITEMOVEFN_1A
 	const SPRITEMOVEFN_1B
+
+MAX_OUTDOOR_SPRITES EQU 23
--- a/engine/fruit_trees.asm
+++ b/engine/fruit_trees.asm
@@ -15,7 +15,7 @@
 .fruit
 	writetext HeyItsFruitText
 	copybytetovar CurFruit
-	giveitem ITEM_FROM_MEM, 1
+	giveitem ITEM_FROM_MEM
 	iffalse .packisfull
 	keeptextopen
 	writetext ObtainedFruitText
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -1197,9 +1197,9 @@
 	add hl, bc
 	ld a, [hl]
 	push bc
-	call Function1836
+	call DoesSpriteHaveFacings
 	pop bc
-	jr c, .not_visible ; 0x9729c $1b
+	jr c, .not_visible ; STILL_SPRITE
 	ld hl, OBJECT_FLAGS1
 	add hl, bc
 	bit 2, [hl]
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -178,7 +178,7 @@
 	add_special Function1037eb
 	add_special Function10383c
 	add_special Mobile_HealParty
-	add_special Function14168
+	add_special RefreshSprites
 	add_special Function1037c2
 	add_special Function10630f
 	add_special Function103780
--- /dev/null
+++ b/engine/sprites.asm
@@ -1,0 +1,1480 @@
+GetEmote2bpp: ; 1412a
+	ld a, $1
+	ld [rVBK], a
+	call Get2bpp
+	xor a
+	ld [rVBK], a
+	ret
+; 14135
+
+_ReplaceKrisSprite:: ; 14135
+	call GetPlayerSprite
+	ld a, [UsedSprites]
+	ld [hUsedSpriteIndex], a
+	ld a, [UsedSprites + 1]
+	ld [hUsedSpriteTile], a
+	call Function143c8
+	ret
+; 14146
+
+Function14146: ; 14146
+	ld hl, wSpriteFlags
+	ld a, [hl]
+	push af
+	res 7, [hl]
+	set 6, [hl]
+	call RunCallback_04
+	pop af
+	ld [wSpriteFlags], a
+	ret
+; 14157
+
+Function14157: ; 14157
+	ld hl, wSpriteFlags
+	ld a, [hl]
+	push af
+	set 7, [hl]
+	res 6, [hl]
+	call RunCallback_04
+	pop af
+	ld [wSpriteFlags], a
+	ret
+; 14168
+
+RefreshSprites:: ; 14168
+	call .Refresh
+	call RunCallback_04
+	ret
+; 1416f
+
+.Refresh: ; 1416f
+	xor a
+	ld bc, UsedSpritesEnd - UsedSprites
+	ld hl, UsedSprites
+	call ByteFill
+	call GetPlayerSprite
+	call AddMapSprites
+	call LoadAndSortSprites
+	ret
+; 14183
+
+GetPlayerSprite: ; 14183
+; Get Chris or Kris's sprite.
+	ld hl, .Chris
+	ld a, [wPlayerSpriteSetupFlags]
+	bit 2, a
+	jr nz, .go
+	ld a, [PlayerGender]
+	bit 0, a
+	jr z, .go
+	ld hl, .Kris
+
+.go
+	ld a, [PlayerState]
+	ld c, a
+.loop
+	ld a, [hli]
+	cp c
+	jr z, .good
+	inc hl
+	cp $ff
+	jr nz, .loop
+
+; Any player state not in the array defaults to Chris's sprite.
+	xor a ; ld a, PLAYER_NORMAL
+	ld [PlayerState], a
+	ld a, SPRITE_CHRIS
+	jr .finish
+
+.good
+	ld a, [hl]
+
+.finish
+	ld [UsedSprites + 0], a
+	ld [PlayerSprite], a
+	ld [PlayerObjectSprite], a
+	ret
+
+.Chris
+	db PLAYER_NORMAL,    SPRITE_CHRIS
+	db PLAYER_BIKE,      SPRITE_CHRIS_BIKE
+	db PLAYER_SURF,      SPRITE_SURF
+	db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
+	db $ff
+
+.Kris
+	db PLAYER_NORMAL,    SPRITE_KRIS
+	db PLAYER_BIKE,      SPRITE_KRIS_BIKE
+	db PLAYER_SURF,      SPRITE_SURF
+	db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
+	db $ff
+; 141c9
+
+
+AddMapSprites: ; 141c9
+	call GetMapPermission
+	call CheckOutdoorMap
+	jr z, .outdoor
+	call AddIndoorSprites
+	ret
+
+.outdoor
+	call AddOutdoorSprites
+	ret
+; 141d9
+
+
+AddIndoorSprites: ; 141d9
+	ld hl, Map1ObjectSprite
+	ld a, 1
+.loop
+	push af
+	ld a, [hl]
+	call AddSpriteGFX
+	ld de, OBJECT_LENGTH
+	add hl, de
+	pop af
+	inc a
+	cp NUM_OBJECTS
+	jr nz, .loop
+	ret
+; 141ee
+
+
+AddOutdoorSprites: ; 141ee
+	ld a, [MapGroup]
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, OutdoorSprites
+rept 2
+	add hl, bc
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld c, MAX_OUTDOOR_SPRITES
+.loop
+	push bc
+	ld a, [hli]
+	call AddSpriteGFX
+	pop bc
+	dec c
+	jr nz, .loop
+	ret
+; 14209
+
+
+RunCallback_04: ; 14209
+	ld a, $4
+	call RunMapCallback
+	call Function1439b
+	call Function14215
+	ret
+; 14215
+
+Function14215: ; 14215
+	ld a, [wSpriteFlags]
+	bit 6, a
+	ret nz
+	ld c, EMOTE_08
+	callba LoadEmote
+	call GetMapPermission
+	call CheckOutdoorMap
+	ld c, EMOTE_0B
+	jr z, .outdoor
+	ld c, EMOTE_0A
+
+.outdoor
+	callba LoadEmote
+	ret
+; 14236
+
+
+
+SafeGetSprite: ; 14236
+	push hl
+	call GetSprite
+	pop hl
+	ret
+; 1423c
+
+GetSprite: ; 1423c
+	call GetMonSprite
+	ret c
+
+	ld hl, SpriteHeaders ; address
+	dec a
+	ld c, a
+	ld b, 0
+	ld a, 6
+	call AddNTimes
+	; load the address into de
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	; load the length into c
+	ld a, [hli]
+	swap a
+	ld c, a
+	; load the sprite bank into both b and h
+	ld b, [hl]
+	ld a, [hli]
+	; load the sprite type into l
+	ld l, [hl]
+	ld h, a
+	ret
+; 14259
+
+
+GetMonSprite: ; 14259
+; Return carry if a monster sprite was loaded.
+
+	cp SPRITE_POKEMON
+	jr c, .Normal
+	cp SPRITE_DAYCARE_MON_1
+	jr z, .wBreedMon1
+	cp SPRITE_DAYCARE_MON_2
+	jr z, .wBreedMon2
+	cp SPRITE_VARS
+	jr nc, .Variable
+	jr .Icon
+
+.Normal
+	and a
+	ret
+
+.Icon
+	sub SPRITE_POKEMON
+	ld e, a
+	ld d, 0
+	ld hl, SpriteMons
+	add hl, de
+	ld a, [hl]
+	jr .Mon
+
+.wBreedMon1
+	ld a, [wBreedMon1Species]
+	jr .Mon
+
+.wBreedMon2
+	ld a, [wBreedMon2Species]
+
+.Mon
+	ld e, a
+	and a
+	jr z, .NoBreedmon
+
+	callba Function8e82b
+
+	ld l, 1
+	ld h, 0
+	scf
+	ret
+
+.Variable
+	sub SPRITE_VARS
+	ld e, a
+	ld d, 0
+	ld hl, VariableSprites
+	add hl, de
+	ld a, [hl]
+	and a
+	jp nz, GetMonSprite
+
+.NoBreedmon
+	ld a, 1
+	ld l, 1
+	ld h, 0
+	and a
+	ret
+; 142a7
+
+
+_DoesSpriteHaveFacings:: ; 142a7
+; Checks to see whether we can apply a facing to a sprite.
+; Returns carry unless the sprite is a Pokemon or a Still Sprite.
+	cp SPRITE_POKEMON
+	jr nc, .only_down
+
+	push hl
+	push bc
+	ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type
+	dec a
+	ld c, a
+	ld b, 0
+	ld a, NUM_SPRITEHEADER_FIELDS
+	call AddNTimes
+	ld a, [hl]
+	pop bc
+	pop hl
+	cp STILL_SPRITE
+	jr nz, .only_down
+	scf
+	ret
+
+.only_down
+	and a
+	ret
+; 142c4
+
+
+_GetSpritePalette:: ; 142c4
+	ld a, c
+	call GetMonSprite
+	jr c, .is_pokemon
+
+	ld hl, SpriteHeaders + 5 ; palette
+	dec a
+	ld c, a
+	ld b, 0
+	ld a, 6
+	call AddNTimes
+	ld c, [hl]
+	ret
+
+.is_pokemon
+	xor a
+	ld c, a
+	ret
+; 142db
+
+
+LoadAndSortSprites: ; 142db
+	call LoadSpriteGFX
+	call SortUsedSprites
+	call ArrangeUsedSprites
+	ret
+; 142e5
+
+
+AddSpriteGFX: ; 142e5
+; Add any new sprite ids to a list of graphics to be loaded.
+; Return carry if the list is full.
+
+	push hl
+	push bc
+	ld b, a
+	ld hl, UsedSprites + 2
+	ld c, SPRITE_GFX_LIST_CAPACITY - 1
+.loop
+	ld a, [hl]
+	cp b
+	jr z, .exists
+	and a
+	jr z, .new
+rept 2
+	inc hl
+endr
+	dec c
+	jr nz, .loop
+
+	pop bc
+	pop hl
+	scf
+	ret
+
+.exists
+	pop bc
+	pop hl
+	and a
+	ret
+
+.new
+	ld [hl], b
+	pop bc
+	pop hl
+	and a
+	ret
+; 14306
+
+
+LoadSpriteGFX: ; 14306
+; Bug: b is not preserved, so
+; it's useless as a next count.
+
+	ld hl, UsedSprites
+	ld b, SPRITE_GFX_LIST_CAPACITY
+.loop
+	ld a, [hli]
+	and a
+	jr z, .done
+	push hl
+	call .LoadSprite
+	pop hl
+	ld [hli], a
+	dec b
+	jr nz, .loop
+
+.done
+	ret
+
+.LoadSprite
+	call GetSprite
+	ld a, l
+	ret
+; 1431e
+
+
+SortUsedSprites: ; 1431e
+; Bubble-sort sprites by type.
+
+; Run backwards through UsedSprites to find the last one.
+
+	ld c, SPRITE_GFX_LIST_CAPACITY
+	ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2
+.FindLastSprite
+	ld a, [de]
+	and a
+	jr nz, .FoundLastSprite
+rept 2
+	dec de
+endr
+	dec c
+	jr nz, .FindLastSprite
+.FoundLastSprite
+	dec c
+	jr z, .quit
+
+; If the length of the current sprite is
+; higher than a later one, swap them.
+
+	inc de
+	ld hl, UsedSprites + 1
+
+.CheckSprite
+	push bc
+	push de
+	push hl
+
+.CheckFollowing
+	ld a, [de]
+	cp [hl]
+	jr nc, .loop
+
+; Swap the two sprites.
+
+	ld b, a
+	ld a, [hl]
+	ld [hl], b
+	ld [de], a
+	dec de
+	dec hl
+	ld a, [de]
+	ld b, a
+	ld a, [hl]
+	ld [hl], b
+	ld [de], a
+	inc de
+	inc hl
+
+; Keep doing this until everything's in order.
+
+.loop
+rept 2
+	dec de
+endr
+	dec c
+	jr nz, .CheckFollowing
+
+	pop hl
+rept 2
+	inc hl
+endr
+	pop de
+	pop bc
+	dec c
+	jr nz, .CheckSprite
+
+.quit
+	ret
+; 14355
+
+
+ArrangeUsedSprites: ; 14355
+; Get the length of each sprite and space them out in VRAM.
+; Crystal introduces a second table in VRAM bank 0.
+
+	ld hl, UsedSprites
+	ld c, SPRITE_GFX_LIST_CAPACITY
+	ld b, 0
+.FirstTableLength
+; Keep going until the end of the list.
+	ld a, [hli]
+	and a
+	jr z, .quit
+
+	ld a, [hl]
+	call GetSpriteLength
+
+; Spill over into the second table after $80 tiles.
+	add b
+	cp $80
+	jr z, .loop
+	jr nc, .SecondTable
+
+.loop
+	ld [hl], b
+	inc hl
+	ld b, a
+
+; Assumes the next table will be reached before c hits 0.
+	dec c
+	jr nz, .FirstTableLength
+
+.SecondTable
+; The second tile table starts at tile $80.
+	ld b, $80
+	dec hl
+.SecondTableLength
+; Keep going until the end of the list.
+	ld a, [hli]
+	and a
+	jr z, .quit
+
+	ld a, [hl]
+	call GetSpriteLength
+
+; There are only two tables, so don't go any further than that.
+	add b
+	jr c, .quit
+
+	ld [hl], b
+	ld b, a
+	inc hl
+
+	dec c
+	jr nz, .SecondTableLength
+
+.quit
+	ret
+; 14386
+
+
+GetSpriteLength: ; 14386
+; Return the length of sprite type a in tiles.
+
+	cp WALKING_SPRITE
+	jr z, .AnyDirection
+	cp STANDING_SPRITE
+	jr z, .AnyDirection
+	cp STILL_SPRITE
+	jr z, .OneDirection
+
+	ld a, 12
+	ret
+
+.AnyDirection
+	ld a, 12
+	ret
+
+.OneDirection
+	ld a, 4
+	ret
+; 1439b
+
+
+Function1439b: ; 1439b
+	ld hl, UsedSprites
+	ld c, SPRITE_GFX_LIST_CAPACITY
+.loop
+	ld a, [wSpriteFlags]
+	res 5, a
+	ld [wSpriteFlags], a
+	ld a, [hli]
+	and a
+	jr z, .done
+	ld [hUsedSpriteIndex], a
+	ld a, [hli]
+	ld [hUsedSpriteTile], a
+	bit 7, a
+	jr z, .dont_set
+	ld a, [wSpriteFlags]
+	set 5, a
+	ld [wSpriteFlags], a
+
+.dont_set
+	push bc
+	push hl
+	call Function143c8
+	pop hl
+	pop bc
+	dec c
+	jr nz, .loop
+
+.done
+	ret
+; 143c8
+
+Function143c8: ; 143c8
+	ld a, [hUsedSpriteIndex]
+	call SafeGetSprite
+	ld a, [hUsedSpriteTile]
+	call .GetTileAddr
+	push hl
+	push de
+	push bc
+	ld a, [wSpriteFlags]
+	bit 7, a
+	jr nz, .skip
+	call .CopyToVram
+
+.skip
+	pop bc
+	ld l, c
+	ld h, $0
+rept 4
+	add hl, hl
+endr
+	pop de
+	add hl, de
+	ld d, h
+	ld e, l
+	pop hl
+	ld a, [wSpriteFlags]
+	bit 5, a
+	jr nz, .done
+	bit 6, a
+	jr nz, .done
+	ld a, [hUsedSpriteIndex]
+	call _DoesSpriteHaveFacings
+	jr c, .done
+	ld a, h
+	add $8
+	ld h, a
+	call .CopyToVram
+
+.done
+	ret
+; 14406
+
+.GetTileAddr: ; 14406
+; Return the address of tile (a) in (hl).
+	and $7f
+	ld l, a
+	ld h, 0
+rept 4
+	add hl, hl
+endr
+	ld a, l
+	add VTiles0 % $100
+	ld l, a
+	ld a, h
+	adc VTiles0 / $100
+	ld h, a
+	ret
+; 14418
+
+.CopyToVram: ; 14418
+	ld a, [rVBK]
+	push af
+	ld a, [wSpriteFlags]
+	bit 5, a
+	ld a, $1
+	jr z, .bankswitch
+	ld a, $0
+
+.bankswitch
+	ld [rVBK], a
+	call Get2bpp
+	pop af
+	ld [rVBK], a
+	ret
+; 1442f
+
+LoadEmote:: ; 1442f
+; Get the address of the pointer to emote c.
+	ld a, c
+	ld bc, 6
+	ld hl, EmotesPointers
+	call AddNTimes
+; Load the emote address into de
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+; load the length of the emote (in tiles) into c
+	inc hl
+	ld c, [hl]
+	swap c
+; load the emote pointer bank into b
+	inc hl
+	ld b, [hl]
+; load the VRAM destination into hl
+	inc hl
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+; if the emote has a length of 0, do not proceed (error handling)
+	ld a, c
+	and a
+	ret z
+	call GetEmote2bpp
+	ret
+; 1444d
+
+emote_header: MACRO
+	dw \1
+	db \2 tiles, BANK(\1)
+	dw \3
+ENDM
+
+EmotesPointers: ; 144d
+; dw source address
+; db length, bank
+; dw dest address
+
+	emote_header ShockEmote, 4, VTiles1 tile $78
+	emote_header QuestionEmote, 4, VTiles1 tile $78
+	emote_header HappyEmote, 4, VTiles1 tile $78
+	emote_header SadEmote, 4, VTiles1 tile $78
+	emote_header HeartEmote, 4, VTiles1 tile $78
+	emote_header BoltEmote, 4, VTiles1 tile $78
+	emote_header SleepEmote, 4, VTiles1 tile $78
+	emote_header FishEmote, 4, VTiles1 tile $78
+	emote_header FishingRodGFX1, 1, VTiles1 tile $7c
+	emote_header FishingRodGFX2, 2, VTiles1 tile $7c
+	emote_header FishingRodGFX3, 2, VTiles1 tile $7e
+	emote_header FishingRodGFX4, 1, VTiles1 tile $7e
+; 14495
+
+
+SpriteMons: ; 14495
+	db UNOWN
+	db GEODUDE
+	db GROWLITHE
+	db WEEDLE
+	db SHELLDER
+	db ODDISH
+	db GENGAR
+	db ZUBAT
+	db MAGIKARP
+	db SQUIRTLE
+	db TOGEPI
+	db BUTTERFREE
+	db DIGLETT
+	db POLIWAG
+	db PIKACHU
+	db CLEFAIRY
+	db CHARMANDER
+	db JYNX
+	db STARMIE
+	db BULBASAUR
+	db JIGGLYPUFF
+	db GRIMER
+	db EKANS
+	db PARAS
+	db TENTACOOL
+	db TAUROS
+	db MACHOP
+	db VOLTORB
+	db LAPRAS
+	db RHYDON
+	db MOLTRES
+	db SNORLAX
+	db GYARADOS
+	db LUGIA
+	db HO_OH
+; 144b8
+
+
+OutdoorSprites: ; 144b8
+; Valid sprite IDs for each map group.
+
+	dw Group1Sprites
+	dw Group2Sprites
+	dw Group3Sprites
+	dw Group4Sprites
+	dw Group5Sprites
+	dw Group6Sprites
+	dw Group7Sprites
+	dw Group8Sprites
+	dw Group9Sprites
+	dw Group10Sprites
+	dw Group11Sprites
+	dw Group12Sprites
+	dw Group13Sprites
+	dw Group14Sprites
+	dw Group15Sprites
+	dw Group16Sprites
+	dw Group17Sprites
+	dw Group18Sprites
+	dw Group19Sprites
+	dw Group20Sprites
+	dw Group21Sprites
+	dw Group22Sprites
+	dw Group23Sprites
+	dw Group24Sprites
+	dw Group25Sprites
+	dw Group26Sprites
+; 144ec
+
+
+Group13Sprites: ; 144ec
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_TEACHER
+	db SPRITE_FISHER
+	db SPRITE_YOUNGSTER
+	db SPRITE_BLUE
+	db SPRITE_GRAMPS
+	db SPRITE_BUG_CATCHER
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_SWIMMER_GIRL
+	db SPRITE_SWIMMER_GUY
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 14503
+
+Group23Sprites: ; 14503
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_TEACHER
+	db SPRITE_FISHER
+	db SPRITE_YOUNGSTER
+	db SPRITE_BLUE
+	db SPRITE_GRAMPS
+	db SPRITE_BUG_CATCHER
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_SWIMMER_GIRL
+	db SPRITE_SWIMMER_GUY
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 1451a
+
+Group14Sprites: ; 1451a
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_TEACHER
+	db SPRITE_FISHER
+	db SPRITE_YOUNGSTER
+	db SPRITE_BLUE
+	db SPRITE_GRAMPS
+	db SPRITE_BUG_CATCHER
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_SWIMMER_GIRL
+	db SPRITE_SWIMMER_GUY
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 14531
+
+Group6Sprites: ; 14531
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_TEACHER
+	db SPRITE_FISHER
+	db SPRITE_YOUNGSTER
+	db SPRITE_BLUE
+	db SPRITE_GRAMPS
+	db SPRITE_BUG_CATCHER
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_SWIMMER_GIRL
+	db SPRITE_SWIMMER_GUY
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 14548
+
+Group7Sprites: ; 14548
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_SUPER_NERD
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_FISHER
+	db SPRITE_YOUNGSTER
+	db SPRITE_LASS
+	db SPRITE_POKEFAN_M
+	db SPRITE_ROCKET
+	db SPRITE_MISTY
+	db SPRITE_POKE_BALL
+	db SPRITE_SLOWPOKE
+; 1455f
+
+Group25Sprites: ; 1455f
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_SUPER_NERD
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_FISHER
+	db SPRITE_YOUNGSTER
+	db SPRITE_LASS
+	db SPRITE_POKEFAN_M
+	db SPRITE_ROCKET
+	db SPRITE_MISTY
+	db SPRITE_POKE_BALL
+	db SPRITE_SLOWPOKE
+; 14576
+
+Group21Sprites: ; 14576
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_FISHER
+	db SPRITE_POLIWAG
+	db SPRITE_TEACHER
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_LASS
+	db SPRITE_BIKER
+	db SPRITE_SILVER
+	db SPRITE_BLUE
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 1458d
+
+Group18Sprites: ; 1458d
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_POKEFAN_M
+	db SPRITE_MACHOP
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_FISHER
+	db SPRITE_TEACHER
+	db SPRITE_SUPER_NERD
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_BIKER
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 145a4
+
+Group12Sprites: ; 145a4
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_POKEFAN_M
+	db SPRITE_MACHOP
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_FISHER
+	db SPRITE_TEACHER
+	db SPRITE_SUPER_NERD
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_BIKER
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 145bb
+
+Group17Sprites: ; 145bb
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_POKEFAN_M
+	db SPRITE_MACHOP
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_FISHER
+	db SPRITE_TEACHER
+	db SPRITE_SUPER_NERD
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_BIKER
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 145d2
+
+Group16Sprites: ; 145d2
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_POKEFAN_M
+	db SPRITE_BUENA
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_FISHER
+	db SPRITE_TEACHER
+	db SPRITE_SUPER_NERD
+	db SPRITE_MACHOP
+	db SPRITE_BIKER
+	db SPRITE_POKE_BALL
+	db SPRITE_BOULDER
+; 145e9
+
+Group24Sprites: ; 145e9
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_SILVER
+	db SPRITE_TEACHER
+	db SPRITE_FISHER
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_YOUNGSTER
+	db SPRITE_MONSTER
+	db SPRITE_GRAMPS
+	db SPRITE_BUG_CATCHER
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 14600
+
+Group26Sprites: ; 14600
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_SILVER
+	db SPRITE_TEACHER
+	db SPRITE_FISHER
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_YOUNGSTER
+	db SPRITE_MONSTER
+	db SPRITE_GRAMPS
+	db SPRITE_BUG_CATCHER
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 14617
+
+Group19Sprites: ; 14617
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_SILVER
+	db SPRITE_TEACHER
+	db SPRITE_FISHER
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_YOUNGSTER
+	db SPRITE_MONSTER
+	db SPRITE_GRAMPS
+	db SPRITE_BUG_CATCHER
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 1462e
+
+Group10Sprites: ; 1462e
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_FISHER
+	db SPRITE_LASS
+	db SPRITE_OFFICER
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_BUG_CATCHER
+	db SPRITE_SUPER_NERD
+	db SPRITE_WEIRD_TREE
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 14645
+
+Group4Sprites: ; 14645
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_FISHER
+	db SPRITE_LASS
+	db SPRITE_OFFICER
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_BUG_CATCHER
+	db SPRITE_SUPER_NERD
+	db SPRITE_WEIRD_TREE
+	db SPRITE_POKE_BALL
+	db SPRITE_FRUIT_TREE
+; 1465c
+
+Group8Sprites: ; 1465c
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_KURT_OUTSIDE
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_OFFICER
+	db SPRITE_POKEFAN_M
+	db SPRITE_BLACK_BELT
+	db SPRITE_TEACHER
+	db SPRITE_AZALEA_ROCKET
+	db SPRITE_LASS
+	db SPRITE_SILVER
+	db SPRITE_FRUIT_TREE
+	db SPRITE_SLOWPOKE
+; 14673
+
+Group11Sprites: ; 14673
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_POKE_BALL
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_OFFICER
+	db SPRITE_POKEFAN_M
+	db SPRITE_DAYCARE_MON_1
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_ROCKET
+	db SPRITE_LASS
+	db SPRITE_DAYCARE_MON_2
+	db SPRITE_FRUIT_TREE
+	db SPRITE_SLOWPOKE
+; 1468a
+
+Group22Sprites: ; 1468a
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_STANDING_YOUNGSTER
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_OLIVINE_RIVAL
+	db SPRITE_POKEFAN_M
+	db SPRITE_LASS
+	db SPRITE_BUENA
+	db SPRITE_SWIMMER_GIRL
+	db SPRITE_SAILOR
+	db SPRITE_POKEFAN_F
+	db SPRITE_SUPER_NERD
+	db SPRITE_TAUROS
+	db SPRITE_FRUIT_TREE
+	db SPRITE_ROCK
+; 146a1
+
+Group1Sprites: ; 146a1
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_STANDING_YOUNGSTER
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_OLIVINE_RIVAL
+	db SPRITE_POKEFAN_M
+	db SPRITE_LASS
+	db SPRITE_BUENA
+	db SPRITE_SWIMMER_GIRL
+	db SPRITE_SAILOR
+	db SPRITE_POKEFAN_F
+	db SPRITE_SUPER_NERD
+	db SPRITE_TAUROS
+	db SPRITE_FRUIT_TREE
+	db SPRITE_ROCK
+; 146b8
+
+Group9Sprites: ; 146b8
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_LANCE
+	db SPRITE_GRAMPS
+	db SPRITE_SUPER_NERD
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_FISHER
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_LASS
+	db SPRITE_YOUNGSTER
+	db SPRITE_GYARADOS
+	db SPRITE_FRUIT_TREE
+	db SPRITE_POKE_BALL
+; 146cf
+
+Group2Sprites: ; 146cf
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_LASS
+	db SPRITE_SUPER_NERD
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_POKEFAN_M
+	db SPRITE_BLACK_BELT
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_FISHER
+	db SPRITE_FRUIT_TREE
+	db SPRITE_POKE_BALL
+; 146e6
+
+Group5Sprites: ; 146e6
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_GRAMPS
+	db SPRITE_YOUNGSTER
+	db SPRITE_LASS
+	db SPRITE_SUPER_NERD
+	db SPRITE_COOLTRAINER_M
+	db SPRITE_POKEFAN_M
+	db SPRITE_BLACK_BELT
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_FISHER
+	db SPRITE_FRUIT_TREE
+	db SPRITE_POKE_BALL
+; 146fd
+
+Group3Sprites: ; 146fd
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_GAMEBOY_KID
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_LASS
+	db SPRITE_POKEFAN_F
+	db SPRITE_TEACHER
+	db SPRITE_YOUNGSTER
+	db SPRITE_GROWLITHE
+	db SPRITE_POKEFAN_M
+	db SPRITE_ROCKER
+	db SPRITE_FISHER
+	db SPRITE_SCIENTIST
+	db SPRITE_POKE_BALL
+	db SPRITE_BOULDER
+; 14714
+
+Group15Sprites: ; 14714
+	db SPRITE_SUICUNE
+	db SPRITE_SILVER_TROPHY
+	db SPRITE_FAMICOM
+	db SPRITE_POKEDEX
+	db SPRITE_WILL
+	db SPRITE_KAREN
+	db SPRITE_NURSE
+	db SPRITE_OLD_LINK_RECEPTIONIST
+	db SPRITE_BIG_LAPRAS
+	db SPRITE_BIG_ONIX
+	db SPRITE_SUDOWOODO
+	db SPRITE_BIG_SNORLAX
+	db SPRITE_SAILOR
+	db SPRITE_FISHING_GURU
+	db SPRITE_GENTLEMAN
+	db SPRITE_SUPER_NERD
+	db SPRITE_HO_OH
+	db SPRITE_TEACHER
+	db SPRITE_COOLTRAINER_F
+	db SPRITE_YOUNGSTER
+	db SPRITE_FAIRY
+	db SPRITE_POKE_BALL
+	db SPRITE_ROCK
+; 1472b
+
+Group20Sprites: ; 1472b
+	db SPRITE_OAK
+	db SPRITE_FISHER
+	db SPRITE_TEACHER
+	db SPRITE_TWIN
+	db SPRITE_POKEFAN_M
+	db SPRITE_GRAMPS
+	db SPRITE_FAIRY
+	db SPRITE_SILVER
+	db SPRITE_FISHING_GURU
+	db SPRITE_POKE_BALL
+	db SPRITE_POKEDEX
+; 14736
+
+
+SpriteHeaders: ; 14736
+INCLUDE "gfx/overworld/sprite_headers.asm"
+; 1499a
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -328,7 +328,7 @@
 	farwritetext ContestResults_ConsolationPrizeText
 	keeptextopen
 	waitbutton
-	verbosegiveitem BERRY, 1
+	verbosegiveitem BERRY
 	iffalse BugContestResults_NoRoomForBerry
 
 BugContestResults_DidNotWin
@@ -387,7 +387,7 @@
 	itemtotext SUN_STONE, $1
 	farwritetext ContestResults_PlayerWonAPrizeText
 	closetext
-	verbosegiveitem SUN_STONE, 1
+	verbosegiveitem SUN_STONE
 	iffalse BugContestResults_NoRoomForSunStone
 	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc332
@@ -396,7 +396,7 @@
 	itemtotext EVERSTONE, $1
 	farwritetext ContestResults_PlayerWonAPrizeText
 	closetext
-	verbosegiveitem EVERSTONE, 1
+	verbosegiveitem EVERSTONE
 	iffalse BugContestResults_NoRoomForEverstone
 	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc343
@@ -405,7 +405,7 @@
 	itemtotext GOLD_BERRY, $1
 	farwritetext ContestResults_PlayerWonAPrizeText
 	closetext
-	verbosegiveitem GOLD_BERRY, 1
+	verbosegiveitem GOLD_BERRY
 	iffalse BugContestResults_NoRoomForGoldBerry
 	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc354
--- a/gfx/overworld/sprite_headers.asm
+++ b/gfx/overworld/sprite_headers.asm
@@ -4,6 +4,7 @@
 ;	Type, Palette
 
 sprite_header: MACRO
+; pointer, length, type, palette
 	dw \1
 	db \2 * 4 tiles, BANK(\1)
 	db \3, \4
--- a/home/map.asm
+++ b/home/map.asm
@@ -2021,7 +2021,7 @@
 Function2bae:: ; 2bae
 	call DisableLCD
 	call ClearSprites
-	callba Function14168
+	callba RefreshSprites
 	call LoadStandardFont
 	call LoadFontsExtra
 	ld a, [hROMBank]
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -52,7 +52,7 @@
 	ret
 ; 1836
 
-Function1836:: ; 1836
+DoesSpriteHaveFacings:: ; 1836
 	push de
 	push hl
 
@@ -59,11 +59,11 @@
 	ld b, a
 	ld a, [hROMBank]
 	push af
-	ld a, BANK(Function142a7)
+	ld a, BANK(_DoesSpriteHaveFacings)
 	rst Bankswitch
 
 	ld a, b
-	call Function142a7
+	call _DoesSpriteHaveFacings
 	ld c, a
 
 	pop de
--- a/macros/event.asm
+++ b/macros/event.asm
@@ -206,7 +206,11 @@
 giveitem: macro
 	db giveitem_command
 	db \1 ; item
+if _NARG == 2
 	db \2 ; quantity
+else
+	db 1
+endc
 	endm
 
 	enum takeitem_command
@@ -213,7 +217,11 @@
 takeitem: macro
 	db takeitem_command
 	db \1 ; item
+if _NARG == 2
 	db \2 ; quantity
+else
+	db 1
+endc
 	endm
 
 	enum checkitem_command
@@ -986,7 +994,11 @@
 verbosegiveitem: macro
 	db verbosegiveitem_command
 	db \1 ; item
+if _NARG == 2
 	db \2 ; quantity
+else
+	db 1
+endc
 	endm
 
 	enum verbosegiveitem2_command
--- a/main.asm
+++ b/main.asm
@@ -6269,7 +6269,7 @@
 	writetext UnknownText_0xd0a9
 
 Script_NotEvenANibble_FallThrough: ; 0xd02d
-	loademote EMOTE_ROD + DOWN
+	loademote EMOTE_08
 	callasm PutTheRodAway
 	loadmovesprites
 	end
@@ -6340,7 +6340,7 @@
 	reloadmappart
 	loadvar hBGMapMode, $0
 	special UpdateTimePals
-	loademote EMOTE_ROD + UP
+	loademote EMOTE_09
 	callasm Functionb84b3
 	loademote EMOTE_SHOCK
 	applymovement PLAYER, MovementData_0xd093
@@ -14972,7 +14972,7 @@
 	copybytetovar Unkn2Pals
 	itemtotext 0, 0
 	writetext UnknownText_0x13645
-	giveitem -1, 1
+	giveitem -1
 	iffalse UnknownScript_0x1363e
 	callasm SetMemEvent
 	specialsound
@@ -16179,1489 +16179,8 @@
 	ret
 ; 1412a
 
-GetEmote2bpp: ; 1412a
-	ld a, $1
-	ld [rVBK], a
-	call Get2bpp
-	xor a
-	ld [rVBK], a
-	ret
-; 14135
+INCLUDE "engine/sprites.asm"
 
-_ReplaceKrisSprite:: ; 14135
-	call GetPlayerSprite
-	ld a, [UsedSprites]
-	ld [hUsedSpriteIndex], a
-	ld a, [UsedSprites + 1]
-	ld [hUsedSpriteTile], a
-	call Function143c8
-	ret
-; 14146
-
-Function14146: ; 14146
-	ld hl, wSpriteFlags
-	ld a, [hl]
-	push af
-	res 7, [hl]
-	set 6, [hl]
-	call RunCallback_04
-	pop af
-	ld [wSpriteFlags], a
-	ret
-; 14157
-
-Function14157: ; 14157
-	ld hl, wSpriteFlags
-	ld a, [hl]
-	push af
-	set 7, [hl]
-	res 6, [hl]
-	call RunCallback_04
-	pop af
-	ld [wSpriteFlags], a
-	ret
-; 14168
-
-
-Function14168:: ; 14168
-	call Function1416f
-	call RunCallback_04
-	ret
-; 1416f
-
-Function1416f: ; 1416f
-	xor a
-	ld bc, UsedSpritesEnd - UsedSprites
-	ld hl, UsedSprites
-	call ByteFill
-	call GetPlayerSprite
-	call AddMapSprites
-	call Function142db
-	ret
-; 14183
-
-
-
-GetPlayerSprite: ; 14183
-; Get Chris or Kris's sprite.
-
-	ld hl, .Chris
-	ld a, [wPlayerSpriteSetupFlags]
-	bit 2, a
-	jr nz, .go
-	ld a, [PlayerGender]
-	bit 0, a
-	jr z, .go
-	ld hl, .Kris
-
-.go
-	ld a, [PlayerState]
-	ld c, a
-.loop
-	ld a, [hli]
-	cp c
-	jr z, .good
-	inc hl
-	cp $ff
-	jr nz, .loop
-
-; Any player state not in the array defaults to Chris's sprite.
-	xor a ; ld a, PLAYER_NORMAL
-	ld [PlayerState], a
-	ld a, SPRITE_CHRIS
-	jr .finish
-
-.good
-	ld a, [hl]
-
-.finish
-	ld [UsedSprites + 0], a
-	ld [PlayerSprite], a
-	ld [MapObjects + OBJECT_LENGTH * PLAYER_OBJECT + MAPOBJECT_SPRITE], a
-	ret
-
-.Chris
-	db PLAYER_NORMAL,    SPRITE_CHRIS
-	db PLAYER_BIKE,      SPRITE_CHRIS_BIKE
-	db PLAYER_SURF,      SPRITE_SURF
-	db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
-	db $ff
-
-.Kris
-	db PLAYER_NORMAL,    SPRITE_KRIS
-	db PLAYER_BIKE,      SPRITE_KRIS_BIKE
-	db PLAYER_SURF,      SPRITE_SURF
-	db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
-	db $ff
-; 141c9
-
-
-AddMapSprites: ; 141c9
-	call GetMapPermission
-	call CheckOutdoorMap
-	jr z, .outdoor
-	call AddIndoorSprites
-	ret
-.outdoor
-	call AddOutdoorSprites
-	ret
-; 141d9
-
-
-AddIndoorSprites: ; 141d9
-	ld hl, MapObjects + 1 * OBJECT_LENGTH + MAPOBJECT_SPRITE ; sprite
-	ld a, 1
-.loop
-	push af
-	ld a, [hl]
-	call AddSpriteGFX
-	ld de, OBJECT_LENGTH
-	add hl, de
-	pop af
-	inc a
-	cp NUM_OBJECTS
-	jr nz, .loop
-	ret
-; 141ee
-
-
-AddOutdoorSprites: ; 141ee
-	ld a, [MapGroup]
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, OutdoorSprites
-rept 2
-	add hl, bc
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld c, $17
-.loop
-	push bc
-	ld a, [hli]
-	call AddSpriteGFX
-	pop bc
-	dec c
-	jr nz, .loop
-	ret
-; 14209
-
-
-RunCallback_04: ; 14209
-	ld a, $4
-	call RunMapCallback
-	call Function1439b
-	call Function14215
-	ret
-; 14215
-
-Function14215: ; 14215
-	ld a, [wSpriteFlags]
-	bit 6, a
-	ret nz
-	ld c, $8
-	callba LoadEmote
-	call GetMapPermission
-	call CheckOutdoorMap
-	ld c, $b
-	jr z, .asm_1422f
-	ld c, $a
-
-.asm_1422f
-	callba LoadEmote
-	ret
-; 14236
-
-
-
-SafeGetSprite: ; 14236
-	push hl
-	call GetSprite
-	pop hl
-	ret
-; 1423c
-
-GetSprite: ; 1423c
-	call GetMonSprite
-	ret c
-
-	ld hl, SpriteHeaders ; address
-	dec a
-	ld c, a
-	ld b, 0
-	ld a, 6
-	call AddNTimes
-	; load the address into de
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	; load the length into c
-	ld a, [hli]
-	swap a
-	ld c, a
-	; load the sprite bank into both b and h
-	ld b, [hl]
-	ld a, [hli]
-	; load the sprite type into l
-	ld l, [hl]
-	ld h, a
-	ret
-; 14259
-
-
-GetMonSprite: ; 14259
-; Return carry if a monster sprite was loaded.
-
-	cp SPRITE_POKEMON
-	jr c, .Normal
-	cp SPRITE_DAYCARE_MON_1
-	jr z, .wBreedMon1
-	cp SPRITE_DAYCARE_MON_2
-	jr z, .wBreedMon2
-	cp SPRITE_VARS
-	jr nc, .Variable
-	jr .Icon
-
-.Normal
-	and a
-	ret
-
-.Icon
-	sub SPRITE_POKEMON
-	ld e, a
-	ld d, 0
-	ld hl, SpriteMons
-	add hl, de
-	ld a, [hl]
-	jr .Mon
-
-.wBreedMon1
-	ld a, [wBreedMon1Species]
-	jr .Mon
-
-.wBreedMon2
-	ld a, [wBreedMon2Species]
-
-.Mon
-	ld e, a
-	and a
-	jr z, .NoBreedmon
-
-	callba Function8e82b
-
-	ld l, 1
-	ld h, 0
-	scf
-	ret
-
-.Variable
-	sub SPRITE_VARS
-	ld e, a
-	ld d, 0
-	ld hl, VariableSprites
-	add hl, de
-	ld a, [hl]
-	and a
-	jp nz, GetMonSprite
-
-.NoBreedmon
-	ld a, 1
-	ld l, 1
-	ld h, 0
-	and a
-	ret
-; 142a7
-
-
-Function142a7:: ; 142a7
-	cp SPRITE_POKEMON
-	jr nc, .is_pokemon
-
-	push hl
-	push bc
-	ld hl, SpriteHeaders + 4 ; type
-	dec a
-	ld c, a
-	ld b, 0
-	ld a, 6
-	call AddNTimes
-	ld a, [hl]
-	pop bc
-	pop hl
-	cp 3
-	jr nz, .is_pokemon
-	scf
-	ret
-
-.is_pokemon
-	and a
-	ret
-; 142c4
-
-
-_GetSpritePalette:: ; 142c4
-	ld a, c
-	call GetMonSprite
-	jr c, .is_pokemon
-
-	ld hl, SpriteHeaders + 5 ; palette
-	dec a
-	ld c, a
-	ld b, 0
-	ld a, 6
-	call AddNTimes
-	ld c, [hl]
-	ret
-
-.is_pokemon
-	xor a
-	ld c, a
-	ret
-; 142db
-
-
-Function142db: ; 142db
-	call LoadSpriteGFX
-	call SortUsedSprites
-	call ArrangeUsedSprites
-	ret
-; 142e5
-
-
-AddSpriteGFX: ; 142e5
-; Add any new sprite ids to a list of graphics to be loaded.
-; Return carry if the list is full.
-
-	push hl
-	push bc
-	ld b, a
-	ld hl, UsedSprites + 2
-	ld c, SPRITE_GFX_LIST_CAPACITY - 1
-.loop
-	ld a, [hl]
-	cp b
-	jr z, .exists
-	and a
-	jr z, .new
-rept 2
-	inc hl
-endr
-	dec c
-	jr nz, .loop
-
-	pop bc
-	pop hl
-	scf
-	ret
-
-.exists
-	pop bc
-	pop hl
-	and a
-	ret
-
-.new
-	ld [hl], b
-	pop bc
-	pop hl
-	and a
-	ret
-; 14306
-
-
-LoadSpriteGFX: ; 14306
-; Bug: b is not preserved, so
-; it's useless as a next count.
-
-	ld hl, UsedSprites
-	ld b, SPRITE_GFX_LIST_CAPACITY
-.loop
-	ld a, [hli]
-	and a
-	jr z, .done
-	push hl
-	call .LoadSprite
-	pop hl
-	ld [hli], a
-	dec b
-	jr nz, .loop
-
-.done
-	ret
-
-.LoadSprite
-	call GetSprite
-	ld a, l
-	ret
-; 1431e
-
-
-SortUsedSprites: ; 1431e
-; Bubble-sort sprites by type.
-
-; Run backwards through UsedSprites to find the last one.
-
-	ld c, SPRITE_GFX_LIST_CAPACITY
-	ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2
-.FindLastSprite
-	ld a, [de]
-	and a
-	jr nz, .FoundLastSprite
-rept 2
-	dec de
-endr
-	dec c
-	jr nz, .FindLastSprite
-.FoundLastSprite
-	dec c
-	jr z, .quit
-
-; If the length of the current sprite is
-; higher than a later one, swap them.
-
-	inc de
-	ld hl, UsedSprites + 1
-
-.CheckSprite
-	push bc
-	push de
-	push hl
-
-.CheckFollowing
-	ld a, [de]
-	cp [hl]
-	jr nc, .loop
-
-; Swap the two sprites.
-
-	ld b, a
-	ld a, [hl]
-	ld [hl], b
-	ld [de], a
-	dec de
-	dec hl
-	ld a, [de]
-	ld b, a
-	ld a, [hl]
-	ld [hl], b
-	ld [de], a
-	inc de
-	inc hl
-
-; Keep doing this until everything's in order.
-
-.loop
-rept 2
-	dec de
-endr
-	dec c
-	jr nz, .CheckFollowing
-
-	pop hl
-rept 2
-	inc hl
-endr
-	pop de
-	pop bc
-	dec c
-	jr nz, .CheckSprite
-
-.quit
-	ret
-; 14355
-
-
-ArrangeUsedSprites: ; 14355
-; Get the length of each sprite and space them out in VRAM.
-; Crystal introduces a second table in VRAM bank 0.
-
-	ld hl, UsedSprites
-	ld c, SPRITE_GFX_LIST_CAPACITY
-	ld b, 0
-.FirstTableLength
-; Keep going until the end of the list.
-	ld a, [hli]
-	and a
-	jr z, .quit
-
-	ld a, [hl]
-	call GetSpriteLength
-
-; Spill over into the second table after $80 tiles.
-	add b
-	cp $80
-	jr z, .loop
-	jr nc, .SecondTable
-
-.loop
-	ld [hl], b
-	inc hl
-	ld b, a
-
-; Assumes the next table will be reached before c hits 0.
-	dec c
-	jr nz, .FirstTableLength
-
-.SecondTable
-; The second tile table starts at tile $80.
-	ld b, $80
-	dec hl
-.SecondTableLength
-; Keep going until the end of the list.
-	ld a, [hli]
-	and a
-	jr z, .quit
-
-	ld a, [hl]
-	call GetSpriteLength
-
-; There are only two tables, so don't go any further than that.
-	add b
-	jr c, .quit
-
-	ld [hl], b
-	ld b, a
-	inc hl
-
-	dec c
-	jr nz, .SecondTableLength
-
-.quit
-	ret
-; 14386
-
-
-GetSpriteLength: ; 14386
-; Return the length of sprite type a in tiles.
-
-	cp WALKING_SPRITE
-	jr z, .AnyDirection
-	cp STANDING_SPRITE
-	jr z, .AnyDirection
-	cp STILL_SPRITE
-	jr z, .OneDirection
-
-	ld a, 12
-	ret
-
-.AnyDirection
-	ld a, 12
-	ret
-
-.OneDirection
-	ld a, 4
-	ret
-; 1439b
-
-
-Function1439b: ; 1439b
-	ld hl, UsedSprites
-	ld c, SPRITE_GFX_LIST_CAPACITY
-.loop
-	ld a, [wSpriteFlags]
-	res 5, a
-	ld [wSpriteFlags], a
-	ld a, [hli]
-	and a
-	jr z, .done
-	ld [hUsedSpriteIndex], a
-	ld a, [hli]
-	ld [hUsedSpriteTile], a
-	bit 7, a
-	jr z, .dont_set
-	ld a, [wSpriteFlags]
-	set 5, a
-	ld [wSpriteFlags], a
-
-.dont_set
-	push bc
-	push hl
-	call Function143c8
-	pop hl
-	pop bc
-	dec c
-	jr nz, .loop
-
-.done
-	ret
-; 143c8
-
-Function143c8: ; 143c8
-	ld a, [hUsedSpriteIndex]
-	call SafeGetSprite
-	ld a, [hUsedSpriteTile]
-	call GetTileAddr
-	push hl
-	push de
-	push bc
-	ld a, [wSpriteFlags]
-	bit 7, a
-	jr nz, .asm_143df
-	call Function14418
-
-.asm_143df
-	pop bc
-	ld l, c
-	ld h, $0
-rept 4
-	add hl, hl
-endr
-	pop de
-	add hl, de
-	ld d, h
-	ld e, l
-	pop hl
-	ld a, [wSpriteFlags]
-	bit 5, a
-	jr nz, .asm_14405
-	bit 6, a
-	jr nz, .asm_14405
-	ld a, [hUsedSpriteIndex]
-	call Function142a7
-	jr c, .asm_14405
-	ld a, h
-	add $8
-	ld h, a
-	call Function14418
-
-.asm_14405
-	ret
-; 14406
-
-GetTileAddr: ; 14406
-; Return the address of tile (a) in (hl).
-	and $7f
-	ld l, a
-	ld h, 0
-rept 4
-	add hl, hl
-endr
-	ld a, l
-	add VTiles0 % $100
-	ld l, a
-	ld a, h
-	adc VTiles0 / $100
-	ld h, a
-	ret
-; 14418
-
-Function14418: ; 14418
-	ld a, [rVBK]
-	push af
-	ld a, [wSpriteFlags]
-	bit 5, a
-	ld a, $1
-	jr z, .asm_14426
-	ld a, $0
-
-.asm_14426
-	ld [rVBK], a
-	call Get2bpp
-	pop af
-	ld [rVBK], a
-	ret
-; 1442f
-
-LoadEmote:: ; 1442f
-; Get the address of the pointer to emote c.
-	ld a, c
-	ld bc, 6
-	ld hl, EmotesPointers
-	call AddNTimes
-; Load the emote address into de
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-; load the length of the emote (in tiles) into c
-	inc hl
-	ld c, [hl]
-	swap c
-; load the emote pointer bank into b
-	inc hl
-	ld b, [hl]
-; load the VRAM destination into hl
-	inc hl
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-; if the emote has a length of 0, do not proceed (error handling)
-	ld a, c
-	and a
-	ret z
-	call GetEmote2bpp
-	ret
-; 1444d
-
-emote_header: MACRO
-	dw \1
-	db \2 tiles, BANK(\1)
-	dw \3
-ENDM
-
-EmotesPointers: ; 144d
-; dw source address
-; db length, bank
-; dw dest address
-
-	emote_header ShockEmote, 4, VTiles1 tile $78
-	emote_header QuestionEmote, 4, VTiles1 tile $78
-	emote_header HappyEmote, 4, VTiles1 tile $78
-	emote_header SadEmote, 4, VTiles1 tile $78
-	emote_header HeartEmote, 4, VTiles1 tile $78
-	emote_header BoltEmote, 4, VTiles1 tile $78
-	emote_header SleepEmote, 4, VTiles1 tile $78
-	emote_header FishEmote, 4, VTiles1 tile $78
-	emote_header FishingRodGFX1, 1, VTiles1 tile $7c
-	emote_header FishingRodGFX2, 2, VTiles1 tile $7c
-	emote_header FishingRodGFX3, 2, VTiles1 tile $7e
-	emote_header FishingRodGFX4, 1, VTiles1 tile $7e
-; 14495
-
-
-SpriteMons: ; 14495
-	db UNOWN
-	db GEODUDE
-	db GROWLITHE
-	db WEEDLE
-	db SHELLDER
-	db ODDISH
-	db GENGAR
-	db ZUBAT
-	db MAGIKARP
-	db SQUIRTLE
-	db TOGEPI
-	db BUTTERFREE
-	db DIGLETT
-	db POLIWAG
-	db PIKACHU
-	db CLEFAIRY
-	db CHARMANDER
-	db JYNX
-	db STARMIE
-	db BULBASAUR
-	db JIGGLYPUFF
-	db GRIMER
-	db EKANS
-	db PARAS
-	db TENTACOOL
-	db TAUROS
-	db MACHOP
-	db VOLTORB
-	db LAPRAS
-	db RHYDON
-	db MOLTRES
-	db SNORLAX
-	db GYARADOS
-	db LUGIA
-	db HO_OH
-; 144b8
-
-
-OutdoorSprites: ; 144b8
-; Valid sprite IDs for each map group.
-
-	dw Group1Sprites
-	dw Group2Sprites
-	dw Group3Sprites
-	dw Group4Sprites
-	dw Group5Sprites
-	dw Group6Sprites
-	dw Group7Sprites
-	dw Group8Sprites
-	dw Group9Sprites
-	dw Group10Sprites
-	dw Group11Sprites
-	dw Group12Sprites
-	dw Group13Sprites
-	dw Group14Sprites
-	dw Group15Sprites
-	dw Group16Sprites
-	dw Group17Sprites
-	dw Group18Sprites
-	dw Group19Sprites
-	dw Group20Sprites
-	dw Group21Sprites
-	dw Group22Sprites
-	dw Group23Sprites
-	dw Group24Sprites
-	dw Group25Sprites
-	dw Group26Sprites
-; 144ec
-
-
-Group13Sprites: ; 144ec
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_TEACHER
-	db SPRITE_FISHER
-	db SPRITE_YOUNGSTER
-	db SPRITE_BLUE
-	db SPRITE_GRAMPS
-	db SPRITE_BUG_CATCHER
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_SWIMMER_GIRL
-	db SPRITE_SWIMMER_GUY
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 14503
-
-Group23Sprites: ; 14503
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_TEACHER
-	db SPRITE_FISHER
-	db SPRITE_YOUNGSTER
-	db SPRITE_BLUE
-	db SPRITE_GRAMPS
-	db SPRITE_BUG_CATCHER
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_SWIMMER_GIRL
-	db SPRITE_SWIMMER_GUY
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 1451a
-
-Group14Sprites: ; 1451a
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_TEACHER
-	db SPRITE_FISHER
-	db SPRITE_YOUNGSTER
-	db SPRITE_BLUE
-	db SPRITE_GRAMPS
-	db SPRITE_BUG_CATCHER
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_SWIMMER_GIRL
-	db SPRITE_SWIMMER_GUY
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 14531
-
-Group6Sprites: ; 14531
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_TEACHER
-	db SPRITE_FISHER
-	db SPRITE_YOUNGSTER
-	db SPRITE_BLUE
-	db SPRITE_GRAMPS
-	db SPRITE_BUG_CATCHER
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_SWIMMER_GIRL
-	db SPRITE_SWIMMER_GUY
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 14548
-
-Group7Sprites: ; 14548
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_SUPER_NERD
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_FISHER
-	db SPRITE_YOUNGSTER
-	db SPRITE_LASS
-	db SPRITE_POKEFAN_M
-	db SPRITE_ROCKET
-	db SPRITE_MISTY
-	db SPRITE_POKE_BALL
-	db SPRITE_SLOWPOKE
-; 1455f
-
-Group25Sprites: ; 1455f
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_SUPER_NERD
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_FISHER
-	db SPRITE_YOUNGSTER
-	db SPRITE_LASS
-	db SPRITE_POKEFAN_M
-	db SPRITE_ROCKET
-	db SPRITE_MISTY
-	db SPRITE_POKE_BALL
-	db SPRITE_SLOWPOKE
-; 14576
-
-Group21Sprites: ; 14576
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_FISHER
-	db SPRITE_POLIWAG
-	db SPRITE_TEACHER
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_LASS
-	db SPRITE_BIKER
-	db SPRITE_SILVER
-	db SPRITE_BLUE
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 1458d
-
-Group18Sprites: ; 1458d
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_POKEFAN_M
-	db SPRITE_MACHOP
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_FISHER
-	db SPRITE_TEACHER
-	db SPRITE_SUPER_NERD
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_BIKER
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 145a4
-
-Group12Sprites: ; 145a4
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_POKEFAN_M
-	db SPRITE_MACHOP
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_FISHER
-	db SPRITE_TEACHER
-	db SPRITE_SUPER_NERD
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_BIKER
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 145bb
-
-Group17Sprites: ; 145bb
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_POKEFAN_M
-	db SPRITE_MACHOP
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_FISHER
-	db SPRITE_TEACHER
-	db SPRITE_SUPER_NERD
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_BIKER
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 145d2
-
-Group16Sprites: ; 145d2
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_POKEFAN_M
-	db SPRITE_BUENA
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_FISHER
-	db SPRITE_TEACHER
-	db SPRITE_SUPER_NERD
-	db SPRITE_MACHOP
-	db SPRITE_BIKER
-	db SPRITE_POKE_BALL
-	db SPRITE_BOULDER
-; 145e9
-
-Group24Sprites: ; 145e9
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_SILVER
-	db SPRITE_TEACHER
-	db SPRITE_FISHER
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_YOUNGSTER
-	db SPRITE_MONSTER
-	db SPRITE_GRAMPS
-	db SPRITE_BUG_CATCHER
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 14600
-
-Group26Sprites: ; 14600
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_SILVER
-	db SPRITE_TEACHER
-	db SPRITE_FISHER
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_YOUNGSTER
-	db SPRITE_MONSTER
-	db SPRITE_GRAMPS
-	db SPRITE_BUG_CATCHER
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 14617
-
-Group19Sprites: ; 14617
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_SILVER
-	db SPRITE_TEACHER
-	db SPRITE_FISHER
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_YOUNGSTER
-	db SPRITE_MONSTER
-	db SPRITE_GRAMPS
-	db SPRITE_BUG_CATCHER
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 1462e
-
-Group10Sprites: ; 1462e
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_FISHER
-	db SPRITE_LASS
-	db SPRITE_OFFICER
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_BUG_CATCHER
-	db SPRITE_SUPER_NERD
-	db SPRITE_WEIRD_TREE
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 14645
-
-Group4Sprites: ; 14645
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_FISHER
-	db SPRITE_LASS
-	db SPRITE_OFFICER
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_BUG_CATCHER
-	db SPRITE_SUPER_NERD
-	db SPRITE_WEIRD_TREE
-	db SPRITE_POKE_BALL
-	db SPRITE_FRUIT_TREE
-; 1465c
-
-Group8Sprites: ; 1465c
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_KURT_OUTSIDE
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_OFFICER
-	db SPRITE_POKEFAN_M
-	db SPRITE_BLACK_BELT
-	db SPRITE_TEACHER
-	db SPRITE_AZALEA_ROCKET
-	db SPRITE_LASS
-	db SPRITE_SILVER
-	db SPRITE_FRUIT_TREE
-	db SPRITE_SLOWPOKE
-; 14673
-
-Group11Sprites: ; 14673
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_POKE_BALL
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_OFFICER
-	db SPRITE_POKEFAN_M
-	db SPRITE_DAYCARE_MON_1
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_ROCKET
-	db SPRITE_LASS
-	db SPRITE_DAYCARE_MON_2
-	db SPRITE_FRUIT_TREE
-	db SPRITE_SLOWPOKE
-; 1468a
-
-Group22Sprites: ; 1468a
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_STANDING_YOUNGSTER
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_OLIVINE_RIVAL
-	db SPRITE_POKEFAN_M
-	db SPRITE_LASS
-	db SPRITE_BUENA
-	db SPRITE_SWIMMER_GIRL
-	db SPRITE_SAILOR
-	db SPRITE_POKEFAN_F
-	db SPRITE_SUPER_NERD
-	db SPRITE_TAUROS
-	db SPRITE_FRUIT_TREE
-	db SPRITE_ROCK
-; 146a1
-
-Group1Sprites: ; 146a1
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_STANDING_YOUNGSTER
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_OLIVINE_RIVAL
-	db SPRITE_POKEFAN_M
-	db SPRITE_LASS
-	db SPRITE_BUENA
-	db SPRITE_SWIMMER_GIRL
-	db SPRITE_SAILOR
-	db SPRITE_POKEFAN_F
-	db SPRITE_SUPER_NERD
-	db SPRITE_TAUROS
-	db SPRITE_FRUIT_TREE
-	db SPRITE_ROCK
-; 146b8
-
-Group9Sprites: ; 146b8
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_LANCE
-	db SPRITE_GRAMPS
-	db SPRITE_SUPER_NERD
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_FISHER
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_LASS
-	db SPRITE_YOUNGSTER
-	db SPRITE_GYARADOS
-	db SPRITE_FRUIT_TREE
-	db SPRITE_POKE_BALL
-; 146cf
-
-Group2Sprites: ; 146cf
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_LASS
-	db SPRITE_SUPER_NERD
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_POKEFAN_M
-	db SPRITE_BLACK_BELT
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_FISHER
-	db SPRITE_FRUIT_TREE
-	db SPRITE_POKE_BALL
-; 146e6
-
-Group5Sprites: ; 146e6
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_GRAMPS
-	db SPRITE_YOUNGSTER
-	db SPRITE_LASS
-	db SPRITE_SUPER_NERD
-	db SPRITE_COOLTRAINER_M
-	db SPRITE_POKEFAN_M
-	db SPRITE_BLACK_BELT
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_FISHER
-	db SPRITE_FRUIT_TREE
-	db SPRITE_POKE_BALL
-; 146fd
-
-Group3Sprites: ; 146fd
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_GAMEBOY_KID
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_LASS
-	db SPRITE_POKEFAN_F
-	db SPRITE_TEACHER
-	db SPRITE_YOUNGSTER
-	db SPRITE_GROWLITHE
-	db SPRITE_POKEFAN_M
-	db SPRITE_ROCKER
-	db SPRITE_FISHER
-	db SPRITE_SCIENTIST
-	db SPRITE_POKE_BALL
-	db SPRITE_BOULDER
-; 14714
-
-Group15Sprites: ; 14714
-	db SPRITE_SUICUNE
-	db SPRITE_SILVER_TROPHY
-	db SPRITE_FAMICOM
-	db SPRITE_POKEDEX
-	db SPRITE_WILL
-	db SPRITE_KAREN
-	db SPRITE_NURSE
-	db SPRITE_OLD_LINK_RECEPTIONIST
-	db SPRITE_BIG_LAPRAS
-	db SPRITE_BIG_ONIX
-	db SPRITE_SUDOWOODO
-	db SPRITE_BIG_SNORLAX
-	db SPRITE_SAILOR
-	db SPRITE_FISHING_GURU
-	db SPRITE_GENTLEMAN
-	db SPRITE_SUPER_NERD
-	db SPRITE_HO_OH
-	db SPRITE_TEACHER
-	db SPRITE_COOLTRAINER_F
-	db SPRITE_YOUNGSTER
-	db SPRITE_FAIRY
-	db SPRITE_POKE_BALL
-	db SPRITE_ROCK
-; 1472b
-
-Group20Sprites: ; 1472b
-	db SPRITE_OAK
-	db SPRITE_FISHER
-	db SPRITE_TEACHER
-	db SPRITE_TWIN
-	db SPRITE_POKEFAN_M
-	db SPRITE_GRAMPS
-	db SPRITE_FAIRY
-	db SPRITE_SILVER
-	db SPRITE_FISHING_GURU
-	db SPRITE_POKE_BALL
-	db SPRITE_POKEDEX
-; 14736
-
-
-SpriteHeaders: ; 14736
-INCLUDE "gfx/overworld/sprite_headers.asm"
-; 1499a
-
-
 Function1499a:: ; 1499a
 	ld a, [PlayerStandingTile]
 	cp $60
@@ -77784,7 +76303,7 @@
 	ld [$ffde], a
 	xor a
 	ld [hTileAnimFrame], a ; $ff00+$df
-	callba Function14168
+	callba RefreshSprites
 	call LoadFontsExtra
 	callba Function106594
 	ret
--- a/maps/AzaleaGym.asm
+++ b/maps/AzaleaGym.asm
@@ -34,7 +34,7 @@
 	setevent EVENT_BEAT_BUG_CATCHER_JOSH
 	writetext BugsyText_HiveBadgeSpeech
 	keeptextopen
-	verbosegiveitem TM_FURY_CUTTER, 1
+	verbosegiveitem TM_FURY_CUTTER
 	iffalse .NoRoomForFuryCutter
 	setevent EVENT_GOT_TM49_FURY_CUTTER
 	writetext BugsyText_FuryCutterSpeech
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -155,7 +155,7 @@
 	keeptextopen
 	writetext UnknownText_0x198628
 	closetext
-	verbosegiveitem GS_BALL, 1
+	verbosegiveitem GS_BALL
 	spriteface $d, LEFT
 	setflag ENGINE_HAVE_EXAMINED_GS_BALL
 	clearevent EVENT_ILEX_FOREST_LASS
--- a/maps/BillsHouse.asm
+++ b/maps/BillsHouse.asm
@@ -117,7 +117,7 @@
 	checkevent EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x189592
 	scall UnknownScript_0x1896b5
-	verbosegiveitem EVERSTONE, 1
+	verbosegiveitem EVERSTONE
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
 	setevent EVENT_GAVE_KURT_APRICORNS
@@ -128,7 +128,7 @@
 	checkevent EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x1895b3
 	scall UnknownScript_0x1896b5
-	verbosegiveitem LEAF_STONE, 1
+	verbosegiveitem LEAF_STONE
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
 	setevent EVENT_GAVE_KURT_APRICORNS
@@ -139,7 +139,7 @@
 	checkevent EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x1895d4
 	scall UnknownScript_0x1896b5
-	verbosegiveitem WATER_STONE, 1
+	verbosegiveitem WATER_STONE
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
 	setevent EVENT_GAVE_KURT_APRICORNS
@@ -150,7 +150,7 @@
 	checkevent EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x18961a
 	scall UnknownScript_0x1896b5
-	verbosegiveitem FIRE_STONE, 1
+	verbosegiveitem FIRE_STONE
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
 	setevent EVENT_GAVE_KURT_APRICORNS
@@ -159,7 +159,7 @@
 
 UnknownScript_0x189697:
 	scall UnknownScript_0x1896b5
-	verbosegiveitem THUNDERSTONE, 1
+	verbosegiveitem THUNDERSTONE
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
 	loadmovesprites
--- a/maps/BlackthornCity.asm
+++ b/maps/BlackthornCity.asm
@@ -93,7 +93,7 @@
 .MetSantos
 	writetext SantosGivesGiftText
 	keeptextopen
-	verbosegiveitem SPELL_TAG, 1
+	verbosegiveitem SPELL_TAG
 	iffalse SantosDoneScript
 	setevent EVENT_GOT_SPELL_TAG_FROM_SANTOS
 	writetext SantosGaveGiftText
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -62,7 +62,7 @@
 	iftrue UnknownScript_0x194e94
 	writetext UnknownText_0x195196
 	keeptextopen
-	giveitem TM_DRAGONBREATH, 1
+	giveitem TM_DRAGONBREATH
 	iffalse UnknownScript_0x194e8e
 	itemtotext TM_DRAGONBREATH, $0
 	writetext UnknownText_0x1951bf
--- a/maps/CeladonCafe.asm
+++ b/maps/CeladonCafe.asm
@@ -86,7 +86,7 @@
 CeladonCafeTrashcan:
 	checkevent EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE
 	iftrue .TrashEmpty
-	giveitem LEFTOVERS, 1
+	giveitem LEFTOVERS
 	iffalse .PackFull
 	loadfont
 	itemtotext LEFTOVERS, $0
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -36,7 +36,7 @@
 .FreshWater
 	checkmoney $0, 200
 	if_equal $2, .NotEnoughMoney
-	giveitem FRESH_WATER, 1
+	giveitem FRESH_WATER
 	iffalse .NotEnoughSpace
 	takemoney $0, 200
 	itemtotext FRESH_WATER, $0
@@ -45,7 +45,7 @@
 .SodaPop
 	checkmoney $0, 300
 	if_equal $2, .NotEnoughMoney
-	giveitem SODA_POP, 1
+	giveitem SODA_POP
 	iffalse .NotEnoughSpace
 	takemoney $0, 300
 	itemtotext SODA_POP, $0
@@ -54,7 +54,7 @@
 .Lemonade
 	checkmoney $0, 350
 	if_equal $2, .NotEnoughMoney
-	giveitem LEMONADE, 1
+	giveitem LEMONADE
 	iffalse .NotEnoughSpace
 	takemoney $0, 350
 	itemtotext LEMONADE, $0
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -35,7 +35,7 @@
 	itemtotext TM_DOUBLE_TEAM, $0
 	scall CeladonPrizeRoom_askbuy
 	iffalse CeladonPrizeRoom_cancel
-	giveitem TM_DOUBLE_TEAM, 1
+	giveitem TM_DOUBLE_TEAM
 	iffalse CeladonPrizeRoom_notenoughroom
 	takecoins 1500
 	jump CeladonPrizeRoom_purchased
@@ -46,7 +46,7 @@
 	itemtotext TM_PSYCHIC, $0
 	scall CeladonPrizeRoom_askbuy
 	iffalse CeladonPrizeRoom_cancel
-	giveitem TM_PSYCHIC, 1
+	giveitem TM_PSYCHIC
 	iffalse CeladonPrizeRoom_notenoughroom
 	takecoins 3500
 	jump CeladonPrizeRoom_purchased
@@ -57,7 +57,7 @@
 	itemtotext TM_HYPER_BEAM, $0
 	scall CeladonPrizeRoom_askbuy
 	iffalse CeladonPrizeRoom_cancel
-	giveitem TM_HYPER_BEAM, 1
+	giveitem TM_HYPER_BEAM
 	iffalse CeladonPrizeRoom_notenoughroom
 	takecoins 7500
 	jump CeladonPrizeRoom_purchased
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -32,7 +32,7 @@
 	iftrue UnknownScript_0x72aae
 	writetext UnknownText_0x72cb0
 	keeptextopen
-	verbosegiveitem TM_GIGA_DRAIN, 1
+	verbosegiveitem TM_GIGA_DRAIN
 	iffalse UnknownScript_0x72aae
 	setevent EVENT_GOT_TM19_GIGA_DRAIN
 UnknownScript_0x72aae:
--- a/maps/CeladonMansionRoofHouse.asm
+++ b/maps/CeladonMansionRoofHouse.asm
@@ -22,7 +22,7 @@
 UnknownScript_0x71b14:
 	writetext UnknownText_0x71ba3
 	keeptextopen
-	verbosegiveitem TM_CURSE, 1
+	verbosegiveitem TM_CURSE
 	iffalse UnknownScript_0x71b25
 	setevent EVENT_GOT_TM03_CURSE
 UnknownScript_0x71b21:
--- a/maps/CharcoalKiln.asm
+++ b/maps/CharcoalKiln.asm
@@ -44,7 +44,7 @@
 .Thanks
 	writetext CharcoalKilnApprenticeText2
 	keeptextopen
-	verbosegiveitem CHARCOAL, 1
+	verbosegiveitem CHARCOAL
 	iffalse .Done
 	setevent EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN
 	loadmovesprites
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -213,7 +213,7 @@
 	iftrue UnknownScript_0x19c183
 	writetext UnknownText_0x19c766
 	keeptextopen
-	verbosegiveitem MYSTIC_WATER, 1
+	verbosegiveitem MYSTIC_WATER
 	iffalse UnknownScript_0x19c187
 	setevent EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE
 UnknownScript_0x19c183:
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -89,7 +89,7 @@
 UnknownScript_0x1a009c:
 	writetext UnknownText_0x1a01e3
 	keeptextopen
-	verbosegiveitem HM_FLY, 1
+	verbosegiveitem HM_FLY
 	iffalse UnknownScript_0x1a00b1
 	setevent EVENT_GOT_HM02_FLY
 	writetext UnknownText_0x1a021d
--- a/maps/CianwoodGym.asm
+++ b/maps/CianwoodGym.asm
@@ -49,7 +49,7 @@
 	setevent EVENT_BEAT_BLACKBELT_LUNG
 	writetext UnknownText_0x9d84d
 	keeptextopen
-	verbosegiveitem TM_DYNAMICPUNCH, 1
+	verbosegiveitem TM_DYNAMICPUNCH
 	iffalse UnknownScript_0x9d67f
 	setevent EVENT_GOT_TM01_DYNAMICPUNCH
 	writetext UnknownText_0x9d8da
--- a/maps/CianwoodPharmacy.asm
+++ b/maps/CianwoodPharmacy.asm
@@ -20,7 +20,7 @@
 	iffalse .Mart
 	writetext PharmacistGiveSecretpotionText
 	keeptextopen
-	giveitem SECRETPOTION, 1
+	giveitem SECRETPOTION
 	writetext ReceivedSecretpotionText
 	playsound SFX_KEY_ITEM
 	waitbutton
--- a/maps/CopycatsHouse2F.asm
+++ b/maps/CopycatsHouse2F.asm
@@ -106,7 +106,7 @@
 	loadfont
 	writetext UnknownText_0x18b17f
 	keeptextopen
-	takeitem LOST_ITEM, 1
+	takeitem LOST_ITEM
 	setevent EVENT_RETURNED_LOST_ITEM_TO_COPYCAT
 	clearevent EVENT_COPYCATS_HOUSE_2F_DOLL
 	jump .Part14
@@ -116,7 +116,7 @@
 .Part14
 	writetext UnknownText_0x18b1e2
 	keeptextopen
-	verbosegiveitem PASS, 1
+	verbosegiveitem PASS
 	iffalse .Part22
 	setevent EVENT_GOT_PASS_FROM_COPYCAT
 	writetext UnknownText_0x18b214
--- a/maps/DanceTheatre.asm
+++ b/maps/DanceTheatre.asm
@@ -96,7 +96,7 @@
 UnknownScript_0x99505:
 	writetext UnknownText_0x9991a
 	keeptextopen
-	verbosegiveitem HM_SURF, 1
+	verbosegiveitem HM_SURF
 	setevent EVENT_GOT_HM03_SURF
 	writetext UnknownText_0x9999b
 	closetext
--- a/maps/DarkCaveBlackthornEntrance.asm
+++ b/maps/DarkCaveBlackthornEntrance.asm
@@ -12,7 +12,7 @@
 	iftrue UnknownScript_0x18c735
 	writetext UnknownText_0x18c73f
 	keeptextopen
-	verbosegiveitem BLACKGLASSES, 1
+	verbosegiveitem BLACKGLASSES
 	iffalse UnknownScript_0x18c739
 	setevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
 UnknownScript_0x18c735:
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -49,7 +49,7 @@
 	loadfont
 	writetext UnknownText_0x18c9bf
 	keeptextopen
-	giveitem TM_DRAGONBREATH, 1
+	giveitem TM_DRAGONBREATH
 	iffalse UnknownScript_0x18c8f4
 	itemtotext TM_DRAGONBREATH, $0
 	writetext UnknownText_0x18c9fb
@@ -122,7 +122,7 @@
 	end
 
 PokeBallScript_0x18c95a:
-	giveitem DRAGON_FANG, 1
+	giveitem DRAGON_FANG
 	iffalse UnknownScript_0x18c970
 	disappear $2
 	loadfont
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -48,7 +48,7 @@
 	setevent EVENT_BEAT_MEDIUM_GRACE
 	writetext UnknownText_0x9a059
 	keeptextopen
-	verbosegiveitem TM_SHADOW_BALL, 1
+	verbosegiveitem TM_SHADOW_BALL
 	iffalse UnknownScript_0x99db5
 	setevent EVENT_GOT_TM30_SHADOW_BALL
 	writetext UnknownText_0x9a0ec
--- a/maps/EcruteakItemfinderHouse.asm
+++ b/maps/EcruteakItemfinderHouse.asm
@@ -15,7 +15,7 @@
 	iffalse UnknownScript_0x9a61a
 	writetext UnknownText_0x9a6b5
 	keeptextopen
-	verbosegiveitem ITEMFINDER, 1
+	verbosegiveitem ITEMFINDER
 	setevent EVENT_GOT_ITEMFINDER
 UnknownScript_0x9a614:
 	writetext UnknownText_0x9a70e
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -327,7 +327,7 @@
 	keeptextopen
 	writetext ElmAfterTheftText2
 	closetext
-	takeitem MYSTERY_EGG, 1
+	takeitem MYSTERY_EGG
 	scall ElmJumpBackScript1
 	writetext ElmAfterTheftText3
 	closetext
@@ -379,7 +379,7 @@
 ElmGiveEverstoneScript:
 	writetext ElmGiveEverstoneText1
 	keeptextopen
-	verbosegiveitem EVERSTONE, 1
+	verbosegiveitem EVERSTONE
 	iffalse ElmScript_NoRoomForEverstone
 	writetext ElmGiveEverstoneText2
 	closetext
@@ -397,7 +397,7 @@
 ElmGiveMasterBallScript:
 	writetext ElmGiveMasterBallText1
 	keeptextopen
-	verbosegiveitem MASTER_BALL, 1
+	verbosegiveitem MASTER_BALL
 	iffalse .notdone
 	setevent EVENT_GOT_MASTER_BALL_FROM_ELM
 	writetext ElmGiveMasterBallText2
@@ -409,7 +409,7 @@
 ElmGiveTicketScript:
 	writetext ElmGiveTicketText1
 	keeptextopen
-	verbosegiveitem S_S_TICKET, 1
+	verbosegiveitem S_S_TICKET
 	setevent EVENT_GOT_SS_TICKET_FROM_ELM
 	writetext ElmGiveTicketText2
 	closetext
@@ -472,7 +472,7 @@
 	loadfont
 	writetext AideText_GiveYouPotions
 	keeptextopen
-	verbosegiveitem POTION, 1
+	verbosegiveitem POTION
 	writetext AideText_AlwaysBusy
 	closetext
 	loadmovesprites
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -87,7 +87,7 @@
 UnknownScript_0x75f37:
 	writetext UnknownText_0x7619b
 	keeptextopen
-	verbosegiveitem METAL_COAT, 1
+	verbosegiveitem METAL_COAT
 	iffalse UnknownScript_0x75f44
 	setevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
 UnknownScript_0x75f44:
@@ -106,7 +106,7 @@
 UnknownScript_0x75f58:
 	writetext UnknownText_0x7619b
 	keeptextopen
-	verbosegiveitem METAL_COAT, 1
+	verbosegiveitem METAL_COAT
 	iffalse UnknownScript_0x75f65
 	setevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
 UnknownScript_0x75f65:
--- a/maps/FuchsiaGym.asm
+++ b/maps/FuchsiaGym.asm
@@ -42,7 +42,7 @@
 	iftrue UnknownScript_0x195e15
 	writetext UnknownText_0x196002
 	keeptextopen
-	verbosegiveitem TM_TOXIC, 1
+	verbosegiveitem TM_TOXIC
 	iffalse UnknownScript_0x195e15
 	setevent EVENT_GOT_TM06_TOXIC
 UnknownScript_0x195e15:
--- a/maps/GoldenrodBikeShop.asm
+++ b/maps/GoldenrodBikeShop.asm
@@ -19,7 +19,7 @@
 	writetext UnknownText_0x547f8
 	keeptextopen
 	waitbutton
-	giveitem BICYCLE, 1
+	giveitem BICYCLE
 	writetext UnknownText_0x54848
 	playsound SFX_KEY_ITEM
 	waitbutton
--- a/maps/GoldenrodDeptStore5F.asm
+++ b/maps/GoldenrodDeptStore5F.asm
@@ -70,7 +70,7 @@
 .VeryHappy:
 	writetext UnknownText_0x5615a
 	keeptextopen
-	verbosegiveitem TM_RETURN, 1
+	verbosegiveitem TM_RETURN
 	iffalse .Done
 	setflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT
 	loadmovesprites
@@ -85,7 +85,7 @@
 .NotVeryHappy:
 	writetext UnknownText_0x561d8
 	keeptextopen
-	verbosegiveitem TM_FRUSTRATION, 1
+	verbosegiveitem TM_FRUSTRATION
 	iffalse .Done
 	setflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT
 	loadmovesprites
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -22,7 +22,7 @@
 .FreshWater
 	checkmoney $0, 200
 	if_equal $2, .NotEnoughMoney
-	giveitem FRESH_WATER, 1
+	giveitem FRESH_WATER
 	iffalse .NotEnoughSpace
 	takemoney $0, 200
 	itemtotext FRESH_WATER, $0
@@ -31,7 +31,7 @@
 .SodaPop
 	checkmoney $0, 300
 	if_equal $2, .NotEnoughMoney
-	giveitem SODA_POP, 1
+	giveitem SODA_POP
 	iffalse .NotEnoughSpace
 	takemoney $0, 300
 	itemtotext SODA_POP, $0
@@ -40,7 +40,7 @@
 .Lemonade
 	checkmoney $0, 350
 	if_equal $2, .NotEnoughMoney
-	giveitem LEMONADE, 1
+	giveitem LEMONADE
 	iffalse .NotEnoughSpace
 	takemoney $0, 350
 	itemtotext LEMONADE, $0
--- a/maps/GoldenrodFlowerShop.asm
+++ b/maps/GoldenrodFlowerShop.asm
@@ -20,7 +20,7 @@
 	loadfont
 	writetext UnknownText_0x554c2
 	keeptextopen
-	verbosegiveitem SQUIRTBOTTLE, 1
+	verbosegiveitem SQUIRTBOTTLE
 	setevent EVENT_GOT_SQUIRTBOTTLE
 	loadmovesprites
 	setevent EVENT_FLORIA_AT_SUDOWOODO
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -64,7 +64,7 @@
 	itemtotext TM_THUNDER, $0
 	scall UnknownScript_0x56ca1
 	iffalse UnknownScript_0x56cbd
-	giveitem TM_THUNDER, 1
+	giveitem TM_THUNDER
 	iffalse UnknownScript_0x56cb7
 	takecoins 5500
 	jump UnknownScript_0x56ca6
@@ -75,7 +75,7 @@
 	itemtotext TM_BLIZZARD, $0
 	scall UnknownScript_0x56ca1
 	iffalse UnknownScript_0x56cbd
-	giveitem TM_BLIZZARD, 1
+	giveitem TM_BLIZZARD
 	iffalse UnknownScript_0x56cb7
 	takecoins 5500
 	jump UnknownScript_0x56ca6
@@ -86,7 +86,7 @@
 	itemtotext TM_FIRE_BLAST, $0
 	scall UnknownScript_0x56ca1
 	iffalse UnknownScript_0x56cbd
-	giveitem TM_FIRE_BLAST, 1
+	giveitem TM_FIRE_BLAST
 	iffalse UnknownScript_0x56cb7
 	takecoins 5500
 	jump UnknownScript_0x56ca6
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -60,7 +60,7 @@
 UnknownScript_0x54064:
 	writetext UnknownText_0x5428b
 	keeptextopen
-	verbosegiveitem TM_ATTRACT, 1
+	verbosegiveitem TM_ATTRACT
 	iffalse UnknownScript_0x5407b
 	setevent EVENT_GOT_TM45_ATTRACT
 	writetext UnknownText_0x54302
--- a/maps/GoldenrodPokeCenter1F.asm
+++ b/maps/GoldenrodPokeCenter1F.asm
@@ -27,7 +27,7 @@
 	loadfont
 	writetext UnknownText_0x622f0
 	closetext
-	verbosegiveitem GS_BALL, 1
+	verbosegiveitem GS_BALL
 	setevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
 	setevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
 	writetext UnknownText_0x62359
@@ -59,7 +59,7 @@
 	loadfont
 	writetext UnknownText_0x622f0
 	closetext
-	verbosegiveitem GS_BALL, 1
+	verbosegiveitem GS_BALL
 	setevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
 	setevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
 	writetext UnknownText_0x62359
@@ -86,13 +86,13 @@
 	writetext UnknownText_0x6248c
 	yesorno
 	iffalse UnknownScript_0x6104b
-	takeitem EON_MAIL, 1
+	takeitem EON_MAIL
 	iffalse UnknownScript_0x6104b
 	writetext UnknownText_0x62549
 	closetext
 	writetext UnknownText_0x624a4
 	closetext
-	verbosegiveitem REVIVE, 1
+	verbosegiveitem REVIVE
 	iffalse UnknownScript_0x61051
 	writetext UnknownText_0x624e9
 	closetext
@@ -106,7 +106,7 @@
 	end
 
 UnknownScript_0x61051:
-	giveitem EON_MAIL, 1
+	giveitem EON_MAIL
 	writetext UnknownText_0x6252a
 	closetext
 	loadmovesprites
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -339,7 +339,7 @@
 	iftrue UnknownScript_0x6edd8
 	writetext UnknownText_0x6f099
 	keeptextopen
-	verbosegiveitem HM_CUT, 1
+	verbosegiveitem HM_CUT
 	setevent EVENT_GOT_HM01_CUT
 	writetext UnknownText_0x6f141
 	closetext
@@ -365,7 +365,7 @@
 	iftrue UnknownScript_0x6edf3
 	writetext UnknownText_0x6f21b
 	keeptextopen
-	verbosegiveitem TM_HEADBUTT, 1
+	verbosegiveitem TM_HEADBUTT
 	iffalse UnknownScript_0x6edf7
 	setevent EVENT_GOT_TM02_HEADBUTT
 UnknownScript_0x6edf3:
@@ -439,7 +439,7 @@
 	end
 
 UnknownScript_0x6ee42:
-	takeitem GS_BALL, 1
+	takeitem GS_BALL
 	clearevent EVENT_FOREST_IS_RESTLESS
 	setevent EVENT_AZALEA_TOWN_KURT
 	disappear $8
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -66,7 +66,7 @@
 .ClearedSlowpokeWell:
 	writetext UnknownText_0x18e615
 	keeptextopen
-	verbosegiveitem LURE_BALL, 1
+	verbosegiveitem LURE_BALL
 	iffalse .NoRoomForBall
 	setevent EVENT_KURT_GAVE_YOU_LURE_BALL
 .GotLureBall:
@@ -192,7 +192,7 @@
 	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
-	verbosegiveitem2 LEVEL_BALL, $16
+	verbosegiveitem2 LEVEL_BALL, VAR_KURT_APRICORNS
 	iffalse .NoRoomForBall
 	clearevent EVENT_GAVE_KURT_RED_APRICORN
 	jump ._ThatTurnedOutGreat
@@ -202,7 +202,7 @@
 	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
-	verbosegiveitem2 LURE_BALL, $16
+	verbosegiveitem2 LURE_BALL, VAR_KURT_APRICORNS
 	iffalse .NoRoomForBall
 	clearevent EVENT_GAVE_KURT_BLU_APRICORN
 	jump ._ThatTurnedOutGreat
@@ -212,7 +212,7 @@
 	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
-	verbosegiveitem2 MOON_BALL, $16
+	verbosegiveitem2 MOON_BALL, VAR_KURT_APRICORNS
 	iffalse .NoRoomForBall
 	clearevent EVENT_GAVE_KURT_YLW_APRICORN
 	jump ._ThatTurnedOutGreat
@@ -222,7 +222,7 @@
 	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
-	verbosegiveitem2 FRIEND_BALL, $16
+	verbosegiveitem2 FRIEND_BALL, VAR_KURT_APRICORNS
 	iffalse .NoRoomForBall
 	clearevent EVENT_GAVE_KURT_GRN_APRICORN
 	jump ._ThatTurnedOutGreat
@@ -232,7 +232,7 @@
 	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
-	verbosegiveitem2 FAST_BALL, $16
+	verbosegiveitem2 FAST_BALL, VAR_KURT_APRICORNS
 	iffalse .NoRoomForBall
 	clearevent EVENT_GAVE_KURT_WHT_APRICORN
 	jump ._ThatTurnedOutGreat
@@ -242,7 +242,7 @@
 	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
-	verbosegiveitem2 HEAVY_BALL, $16
+	verbosegiveitem2 HEAVY_BALL, VAR_KURT_APRICORNS
 	iffalse .NoRoomForBall
 	clearevent EVENT_GAVE_KURT_BLK_APRICORN
 	jump ._ThatTurnedOutGreat
@@ -252,7 +252,7 @@
 	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
-	verbosegiveitem2 LOVE_BALL, $16
+	verbosegiveitem2 LOVE_BALL, VAR_KURT_APRICORNS
 	iffalse .NoRoomForBall
 	clearevent EVENT_GAVE_KURT_PNK_APRICORN
 	jump ._ThatTurnedOutGreat
@@ -266,7 +266,7 @@
 	closetext
 	loadmovesprites
 	setevent EVENT_GAVE_GS_BALL_TO_KURT
-	takeitem GS_BALL, 1
+	takeitem GS_BALL
 	setflag ENGINE_KURT_MAKING_BALLS
 	end
 
--- a/maps/LakeofRage.asm
+++ b/maps/LakeofRage.asm
@@ -85,7 +85,7 @@
 UnknownScript_0x7007a:
 	returnafterbattle
 	loadfont
-	giveitem RED_SCALE, 1
+	giveitem RED_SCALE
 	waitbutton
 	writetext UnknownText_0x703df
 	playsound SFX_ITEM
@@ -195,7 +195,7 @@
 .MetWesley
 	writetext WesleyGivesGiftText
 	keeptextopen
-	verbosegiveitem BLACKBELT, 1
+	verbosegiveitem BLACKBELT
 	iffalse WesleyDoneScript
 	setevent EVENT_GOT_BLACKBELT_FROM_WESLEY
 	writetext WesleyGaveGiftText
--- a/maps/LakeofRageHiddenPowerHouse.asm
+++ b/maps/LakeofRageHiddenPowerHouse.asm
@@ -12,7 +12,7 @@
 	iftrue .AlreadyGotItem
 	writetext HiddenPowerGuyText1
 	keeptextopen
-	verbosegiveitem TM_HIDDEN_POWER, 1
+	verbosegiveitem TM_HIDDEN_POWER
 	iffalse .Done
 	setevent EVENT_GOT_TM10_HIDDEN_POWER
 	writetext HiddenPowerGuyText2
--- a/maps/LakeofRageMagikarpHouse.asm
+++ b/maps/LakeofRageMagikarpHouse.asm
@@ -50,7 +50,7 @@
 UnknownScript_0x19a6fe:
 	writetext UnknownText_0x19a977
 	keeptextopen
-	verbosegiveitem ELIXER, 1
+	verbosegiveitem ELIXER
 	iffalse UnknownScript_0x19a711
 	writetext UnknownText_0x19a9c3
 	closetext
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -35,7 +35,7 @@
 	setevent EVENT_BEAT_BOARDER_DOUGLAS
 	writetext UnknownText_0x199d55
 	keeptextopen
-	verbosegiveitem TM_ICY_WIND, 1
+	verbosegiveitem TM_ICY_WIND
 	iffalse UnknownScript_0x199af4
 	setevent EVENT_GOT_TM16_ICY_WIND
 	writetext UnknownText_0x199def
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -56,7 +56,7 @@
 	iffalse UnknownScript_0x190072
 	checkmoney $0, 300
 	if_equal $2, UnknownScript_0x19006c
-	giveitem RAGECANDYBAR, 1
+	giveitem RAGECANDYBAR
 	iffalse UnknownScript_0x190078
 	waitbutton
 	playsound SFX_TRANSACTION
--- a/maps/MrPokemonsHouse.asm
+++ b/maps/MrPokemonsHouse.asm
@@ -28,7 +28,7 @@
 	writetext UnknownText_0x196fa8
 	keeptextopen
 	waitbutton
-	giveitem MYSTERY_EGG, 1
+	giveitem MYSTERY_EGG
 	writetext UnknownText_0x196fd2
 	playsound SFX_KEY_ITEM
 	waitbutton
@@ -69,9 +69,9 @@
 	writetext UnknownText_0x197476
 	yesorno
 	iffalse UnknownScript_0x196ec3
-	verbosegiveitem EXP_SHARE, 1
+	verbosegiveitem EXP_SHARE
 	iffalse UnknownScript_0x196ec7
-	takeitem RED_SCALE, 1
+	takeitem RED_SCALE
 	jump UnknownScript_0x196eaa
 
 UnknownScript_0x196ec3:
--- a/maps/MrPsychicsHouse.asm
+++ b/maps/MrPsychicsHouse.asm
@@ -12,7 +12,7 @@
 	iftrue .AlreadyGotItem
 	writetext MrPsychicText1
 	keeptextopen
-	verbosegiveitem TM_PSYCHIC, 1
+	verbosegiveitem TM_PSYCHIC
 	iffalse .Done
 	setevent EVENT_GOT_TM29_PSYCHIC
 .AlreadyGotItem
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -18,7 +18,7 @@
 	iftrue UnknownScript_0x5c01d
 	writetext UnknownText_0x5c265
 	keeptextopen
-	verbosegiveitem QUICK_CLAW, 1
+	verbosegiveitem QUICK_CLAW
 	iffalse UnknownScript_0x5c021
 	setevent EVENT_GOT_QUICK_CLAW
 UnknownScript_0x5c01d:
@@ -216,7 +216,7 @@
 
 UnknownScript_0x5c177:
 	scall UnknownScript_0x5c1a7
-	verbosegiveitem NUGGET, 1
+	verbosegiveitem NUGGET
 	iffalse UnknownScript_0x5c186
 	clearflag ENGINE_BEVERLY_HAS_NUGGET
 	jump UnknownScript_0x5c19b
--- a/maps/OlivineCafe.asm
+++ b/maps/OlivineCafe.asm
@@ -12,7 +12,7 @@
 	iftrue UnknownScript_0x9c8d3
 	writetext UnknownText_0x9c8df
 	keeptextopen
-	verbosegiveitem HM_STRENGTH, 1
+	verbosegiveitem HM_STRENGTH
 	setevent EVENT_GOT_HM04_STRENGTH
 UnknownScript_0x9c8d3:
 	writetext UnknownText_0x9c965
--- a/maps/OlivineGoodRodHouse.asm
+++ b/maps/OlivineGoodRodHouse.asm
@@ -15,7 +15,7 @@
 	iffalse .DontWantIt
 	writetext GiveGoodRodText
 	keeptextopen
-	verbosegiveitem GOOD_ROD, 1
+	verbosegiveitem GOOD_ROD
 	writetext GaveGoodRodText
 	closetext
 	loadmovesprites
--- a/maps/OlivineGym.asm
+++ b/maps/OlivineGym.asm
@@ -30,7 +30,7 @@
 	iftrue UnknownScript_0x9c172
 	writetext UnknownText_0x9c354
 	keeptextopen
-	verbosegiveitem TM_IRON_TAIL, 1
+	verbosegiveitem TM_IRON_TAIL
 	iffalse UnknownScript_0x9c176
 	setevent EVENT_GOT_TM23_IRON_TAIL
 	writetext UnknownText_0x9c3a5
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -94,7 +94,7 @@
 	checkevent EVENT_GOT_PROTEIN_FROM_HUEY
 	iftrue UnknownScript_0x5b03e
 	scall UnknownScript_0x5b076
-	verbosegiveitem PROTEIN, 1
+	verbosegiveitem PROTEIN
 	iffalse UnknownScript_0x5b06f
 	setevent EVENT_GOT_PROTEIN_FROM_HUEY
 	jump UnknownScript_0x5b05f
@@ -106,7 +106,7 @@
 	loadfont
 	writetext UnknownText_0x5b1b6
 	closetext
-	verbosegiveitem PROTEIN, 1
+	verbosegiveitem PROTEIN
 	iffalse UnknownScript_0x5b06f
 	clearevent EVENT_HUEY_PROTEIN
 	setevent EVENT_GOT_PROTEIN_FROM_HUEY
--- a/maps/OlivineLighthouse6F.asm
+++ b/maps/OlivineLighthouse6F.asm
@@ -27,7 +27,7 @@
 	iffalse UnknownScript_0x60c25
 	writetext UnknownText_0x60dc3
 	keeptextopen
-	takeitem SECRETPOTION, 1
+	takeitem SECRETPOTION
 	writetext UnknownText_0x60dea
 	closetext
 	loadmovesprites
--- a/maps/PewterCity.asm
+++ b/maps/PewterCity.asm
@@ -25,7 +25,7 @@
 	iftrue UnknownScript_0x18c023
 	writetext UnknownText_0x18c0c6
 	keeptextopen
-	verbosegiveitem SILVER_WING, 1
+	verbosegiveitem SILVER_WING
 	setevent EVENT_GOT_SILVER_WING
 	loadmovesprites
 	end
--- a/maps/PokemonFanClub.asm
+++ b/maps/PokemonFanClub.asm
@@ -20,7 +20,7 @@
 UnknownScript_0x191802:
 	writetext UnknownText_0x191a3d
 	keeptextopen
-	verbosegiveitem RARE_CANDY, 1
+	verbosegiveitem RARE_CANDY
 	iffalse UnknownScript_0x19181f
 	setevent EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT
 	writetext UnknownText_0x191a72
@@ -69,7 +69,7 @@
 	writetext UnknownText_0x191c5a
 	keeptextopen
 	waitbutton
-	giveitem LOST_ITEM, 1
+	giveitem LOST_ITEM
 	iffalse UnknownScript_0x191865
 	disappear $6
 	writetext UnknownText_0x191d0a
--- a/maps/PowerPlant.asm
+++ b/maps/PowerPlant.asm
@@ -154,7 +154,7 @@
 UnknownScript_0x188e93:
 	writetext UnknownText_0x18936e
 	keeptextopen
-	takeitem MACHINE_PART, 1
+	takeitem MACHINE_PART
 	setevent EVENT_RETURNED_MACHINE_PART
 	clearevent EVENT_SAFFRON_TRAIN_STATION_POPULATION
 	setevent EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
@@ -166,7 +166,7 @@
 	iftrue UnknownScript_0x188ec5
 	writetext UnknownText_0x1893c4
 	keeptextopen
-	verbosegiveitem TM_ZAP_CANNON, 1
+	verbosegiveitem TM_ZAP_CANNON
 	iffalse UnknownScript_0x188ec3
 	setevent EVENT_GOT_TM07_ZAP_CANNON
 	writetext UnknownText_0x1893f4
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -65,7 +65,7 @@
 	playsound SFX_1ST_PLACE
 	waitbutton
 	keeptextopen
-	giveitem MASTER_BALL, 1
+	giveitem MASTER_BALL
 	iffalse .BagFull
 	itemnotify
 	setflag ENGINE_LUCKY_NUMBER_SHOW
@@ -76,7 +76,7 @@
 	playsound SFX_2ND_PLACE
 	waitbutton
 	keeptextopen
-	giveitem EXP_SHARE, 1
+	giveitem EXP_SHARE
 	iffalse .BagFull
 	itemnotify
 	setflag ENGINE_LUCKY_NUMBER_SHOW
@@ -87,7 +87,7 @@
 	playsound SFX_3RD_PLACE
 	waitbutton
 	keeptextopen
-	giveitem PP_UP, 1
+	giveitem PP_UP
 	iffalse .BagFull
 	itemnotify
 	setflag ENGINE_LUCKY_NUMBER_SHOW
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -151,7 +151,7 @@
 	writetext UnknownText_0x5dcf4
 	keeptextopen
 	setevent EVENT_MET_BUENA
-	verbosegiveitem BLUE_CARD, 1
+	verbosegiveitem BLUE_CARD
 UnknownScript_0x5d80a:
 	writetext UnknownText_0x5de10
 	closetext
--- a/maps/RadioTower3F.asm
+++ b/maps/RadioTower3F.asm
@@ -61,7 +61,7 @@
 UnknownScript_0x5e58a:
 	writetext UnknownText_0x5e7e2
 	keeptextopen
-	verbosegiveitem TM_SUNNY_DAY, 1
+	verbosegiveitem TM_SUNNY_DAY
 	iffalse UnknownScript_0x5e5a1
 	writetext UnknownText_0x5e821
 	closetext
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -23,7 +23,7 @@
 UnknownScript_0x5eb99:
 	writetext UnknownText_0x5ecab
 	keeptextopen
-	verbosegiveitem PINK_BOW, 1
+	verbosegiveitem PINK_BOW
 	iffalse UnknownScript_0x5ebb0
 	writetext UnknownText_0x5ecef
 	closetext
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -40,7 +40,7 @@
 	loadfont
 	writetext UnknownText_0x60246
 	keeptextopen
-	verbosegiveitem BASEMENT_KEY, 1
+	verbosegiveitem BASEMENT_KEY
 	loadmovesprites
 	dotrigger $1
 	setevent EVENT_BEAT_ROCKET_EXECUTIVEM_3
@@ -117,7 +117,7 @@
 	loadfont
 	writetext UnknownText_0x605b2
 	keeptextopen
-	verbosegiveitem CLEAR_BELL, 1
+	verbosegiveitem CLEAR_BELL
 	writetext UnknownText_0x6062c
 	closetext
 	loadmovesprites
--- a/maps/Route12SuperRodHouse.asm
+++ b/maps/Route12SuperRodHouse.asm
@@ -15,7 +15,7 @@
 	iffalse UnknownScript_0x7f4a6
 	writetext UnknownText_0x7f52f
 	keeptextopen
-	verbosegiveitem SUPER_ROD, 1
+	verbosegiveitem SUPER_ROD
 	iffalse UnknownScript_0x7f4aa
 	setevent EVENT_GOT_SUPER_ROD
 UnknownScript_0x7f4a0:
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -153,7 +153,7 @@
 	iftrue UnknownScript_0x19efc7
 	writetext UnknownText_0x19f43b
 	keeptextopen
-	verbosegiveitem NUGGET, 1
+	verbosegiveitem NUGGET
 	iffalse UnknownScript_0x19efde
 	setevent EVENT_CLEARED_NUGGET_BRIDGE
 UnknownScript_0x19efc7:
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -119,7 +119,7 @@
 
 UnknownScript_0x1a0945:
 	scall UnknownScript_0x1a0973
-	verbosegiveitem STAR_PIECE, 1
+	verbosegiveitem STAR_PIECE
 	iffalse UnknownScript_0x1a0954
 	clearflag ENGINE_JOSE_HAS_STAR_PIECE
 	jump UnknownScript_0x1a0963
--- a/maps/Route27SandstormHouse.asm
+++ b/maps/Route27SandstormHouse.asm
@@ -19,7 +19,7 @@
 .Loyal
 	writetext SandstormHouseWomanLoyalText
 	keeptextopen
-	verbosegiveitem TM_SANDSTORM, 1
+	verbosegiveitem TM_SANDSTORM
 	iffalse .Done
 	setevent EVENT_GOT_TM37_SANDSTORM
 .AlreadyGotItem
--- a/maps/Route28FamousSpeechHouse.asm
+++ b/maps/Route28FamousSpeechHouse.asm
@@ -18,7 +18,7 @@
 	iftrue .AlreadyGotItem
 	writetext CelebrityText1
 	keeptextopen
-	verbosegiveitem TM_STEEL_WING, 1
+	verbosegiveitem TM_STEEL_WING
 	iffalse .Done
 	setevent EVENT_GOT_TM47_STEEL_WING
 .Done
--- a/maps/Route29.asm
+++ b/maps/Route29.asm
@@ -176,7 +176,7 @@
 .MetTuscany
 	writetext TuscanyGivesGiftText
 	keeptextopen
-	verbosegiveitem PINK_BOW, 1
+	verbosegiveitem PINK_BOW
 	iffalse TuscanyDoneScript
 	setevent EVENT_GOT_PINK_BOW_FROM_TUSCANY
 	writetext TuscanyGaveGiftText
--- a/maps/Route2NuggetSpeechHouse.asm
+++ b/maps/Route2NuggetSpeechHouse.asm
@@ -12,7 +12,7 @@
 	iftrue .GotItem
 	writetext UnknownText_0x9b865
 	keeptextopen
-	verbosegiveitem NUGGET, 1
+	verbosegiveitem NUGGET
 	iffalse .Done
 	setevent EVENT_GOT_NUGGET_FROM_GUY
 .GotItem
--- a/maps/Route30.asm
+++ b/maps/Route30.asm
@@ -117,7 +117,7 @@
 	checkevent EVENT_GOT_HP_UP_FROM_JOEY
 	iftrue UnknownScript_0x1a176e
 	scall UnknownScript_0x1a17a6
-	verbosegiveitem HP_UP, 1
+	verbosegiveitem HP_UP
 	iffalse UnknownScript_0x1a179f
 	setevent EVENT_GOT_HP_UP_FROM_JOEY
 	jump UnknownScript_0x1a178f
@@ -129,7 +129,7 @@
 	loadfont
 	writetext UnknownText_0x1a1bc0
 	closetext
-	verbosegiveitem HP_UP, 1
+	verbosegiveitem HP_UP
 	iffalse UnknownScript_0x1a179f
 	clearevent EVENT_JOEY_HP_UP
 	setevent EVENT_GOT_HP_UP_FROM_JOEY
--- a/maps/Route30BerrySpeechHouse.asm
+++ b/maps/Route30BerrySpeechHouse.asm
@@ -12,7 +12,7 @@
 	iftrue UnknownScript_0x196d79
 	writetext UnknownText_0x196d82
 	keeptextopen
-	verbosegiveitem BERRY, 1
+	verbosegiveitem BERRY
 	iffalse UnknownScript_0x196d7d
 	setevent EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
 UnknownScript_0x196d79:
--- a/maps/Route31.asm
+++ b/maps/Route31.asm
@@ -120,19 +120,19 @@
 	checkevent EVENT_WADE_HAS_BITTER_BERRY
 	iftrue .BitterBerry
 .Berry
-	verbosegiveitem BERRY, 1
+	verbosegiveitem BERRY
 	iffalse .PackFull
 	jump .Done
 .Psncureberry
-	verbosegiveitem PSNCUREBERRY, 1
+	verbosegiveitem PSNCUREBERRY
 	iffalse .PackFull
 	jump .Done
 .Przcureberry
-	verbosegiveitem PRZCUREBERRY, 1
+	verbosegiveitem PRZCUREBERRY
 	iffalse .PackFull
 	jump .Done
 .BitterBerry
-	verbosegiveitem BITTER_BERRY, 1
+	verbosegiveitem BITTER_BERRY
 	iffalse .PackFull
 .Done
 	clearflag ENGINE_WADE_HAS_ITEM
@@ -201,7 +201,7 @@
 	writetext UnknownText_0x1a57ba
 	keeptextopen
 	setevent EVENT_GAVE_KENYA
-	verbosegiveitem TM_NIGHTMARE, 1
+	verbosegiveitem TM_NIGHTMARE
 	iffalse UnknownScript_0x1a55b3
 	setevent EVENT_GOT_TM50_NIGHTMARE
 UnknownScript_0x1a55af:
--- a/maps/Route32.asm
+++ b/maps/Route32.asm
@@ -57,7 +57,7 @@
 UnknownScript_0x19048f:
 	writetext UnknownText_0x190925
 	keeptextopen
-	verbosegiveitem MIRACLE_SEED, 1
+	verbosegiveitem MIRACLE_SEED
 	iffalse UnknownScript_0x1904a9
 	setevent EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
 	jump UnknownScript_0x1904a5
@@ -98,7 +98,7 @@
 	iftrue UnknownScript_0x1904e3
 	writetext UnknownText_0x191133
 	keeptextopen
-	verbosegiveitem TM_ROAR, 1
+	verbosegiveitem TM_ROAR
 	iffalse UnknownScript_0x1904e7
 	setevent EVENT_GOT_TM05_ROAR
 UnknownScript_0x1904e3:
@@ -455,7 +455,7 @@
 .MetFrieda
 	writetext FriedaGivesGiftText
 	keeptextopen
-	verbosegiveitem POISON_BARB, 1
+	verbosegiveitem POISON_BARB
 	iffalse FriedaDoneScript
 	setevent EVENT_GOT_POISON_BARB_FROM_FRIEDA
 	writetext FriedaGaveGiftText
--- a/maps/Route32PokeCenter1F.asm
+++ b/maps/Route32PokeCenter1F.asm
@@ -18,7 +18,7 @@
 	iffalse UnknownScript_0x69b74
 	writetext UnknownText_0x69be8
 	keeptextopen
-	verbosegiveitem OLD_ROD, 1
+	verbosegiveitem OLD_ROD
 	writetext UnknownText_0x69c1b
 	closetext
 	loadmovesprites
--- a/maps/Route34.asm
+++ b/maps/Route34.asm
@@ -293,7 +293,7 @@
 
 UnknownScript_0x78213:
 	scall UnknownScript_0x78244
-	verbosegiveitem LEAF_STONE, 1
+	verbosegiveitem LEAF_STONE
 	iffalse UnknownScript_0x78225
 	clearflag ENGINE_GINA_HAS_LEAF_STONE
 	setevent EVENT_GINA_GAVE_LEAF_STONE
@@ -450,7 +450,7 @@
 	iftrue UnknownScript_0x78319
 	writetext UnknownText_0x788e2
 	keeptextopen
-	verbosegiveitem SOFT_SAND, 1
+	verbosegiveitem SOFT_SAND
 	iffalse UnknownScript_0x7831d
 	setevent EVENT_GOT_SOFT_SAND_FROM_KATE
 UnknownScript_0x78319:
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -48,7 +48,7 @@
 	iftrue UnknownScript_0x62d7e
 	writetext UnknownText_0x62d9d
 	keeptextopen
-	verbosegiveitem TM_SWEET_SCENT, 1
+	verbosegiveitem TM_SWEET_SCENT
 	iffalse UnknownScript_0x62d82
 	setevent EVENT_GOT_TM12_SWEET_SCENT
 UnknownScript_0x62d7e:
--- a/maps/Route35Goldenrodgate.asm
+++ b/maps/Route35Goldenrodgate.asm
@@ -49,7 +49,7 @@
 .questcomplete:
 	writetext UnknownText_0x69f8b
 	keeptextopen
-	verbosegiveitem HP_UP, 1
+	verbosegiveitem HP_UP
 	iffalse .bagfull
 	setevent EVENT_GOT_HP_UP_FROM_RANDY
 .gothpup:
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -90,7 +90,7 @@
 	disappear $4
 	variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
 	special RunCallback_04
-	special Function14168
+	special RefreshSprites
 	end
 
 LassScript_0x19408c:
@@ -135,7 +135,7 @@
 UnknownScript_0x1940cd:
 	writetext UnknownText_0x1944d0
 	keeptextopen
-	verbosegiveitem TM_ROCK_SMASH, 1
+	verbosegiveitem TM_ROCK_SMASH
 	iffalse UnknownScript_0x1940de
 	setevent EVENT_GOT_TM08_ROCK_SMASH
 UnknownScript_0x1940da:
@@ -254,7 +254,7 @@
 
 UnknownScript_0x1941b4:
 	scall UnknownScript_0x1941e5
-	verbosegiveitem FIRE_STONE, 1
+	verbosegiveitem FIRE_STONE
 	iffalse UnknownScript_0x1941c6
 	clearflag ENGINE_ALAN_HAS_FIRE_STONE
 	setevent EVENT_ALAN_GAVE_FIRE_STONE
@@ -325,7 +325,7 @@
 .MetArthur
 	writetext ArthurGivesGiftText
 	keeptextopen
-	verbosegiveitem HARD_STONE, 1
+	verbosegiveitem HARD_STONE
 	iffalse ArthurDoneScript
 	setevent EVENT_GOT_HARD_STONE_FROM_ARTHUR
 	writetext ArthurGaveGiftText
--- a/maps/Route36NationalParkgate.asm
+++ b/maps/Route36NationalParkgate.asm
@@ -241,7 +241,7 @@
 .Sunstone:
 	writetext UnknownText_0x6b97f
 	keeptextopen
-	verbosegiveitem SUN_STONE, 1
+	verbosegiveitem SUN_STONE
 	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
 	loadmovesprites
@@ -250,7 +250,7 @@
 .Everstone:
 	writetext UnknownText_0x6b97f
 	keeptextopen
-	verbosegiveitem EVERSTONE, 1
+	verbosegiveitem EVERSTONE
 	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
 	loadmovesprites
@@ -259,7 +259,7 @@
 .GoldBerry:
 	writetext UnknownText_0x6b97f
 	keeptextopen
-	verbosegiveitem GOLD_BERRY, 1
+	verbosegiveitem GOLD_BERRY
 	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
 	loadmovesprites
@@ -268,7 +268,7 @@
 .Berry:
 	writetext UnknownText_0x6b97f
 	keeptextopen
-	verbosegiveitem BERRY, 1
+	verbosegiveitem BERRY
 	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_BERRY
 	loadmovesprites
--- a/maps/Route37.asm
+++ b/maps/Route37.asm
@@ -74,7 +74,7 @@
 	writetext SunnyGivesGiftText2
 	keeptextopen
 .next
-	verbosegiveitem MAGNET, 1
+	verbosegiveitem MAGNET
 	iffalse SunnyDoneScript
 	setevent EVENT_GOT_MAGNET_FROM_SUNNY
 	writetext SunnyGaveGiftText
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -120,7 +120,7 @@
 
 UnknownScript_0x1a1df6:
 	scall UnknownScript_0x1a1e27
-	verbosegiveitem THUNDERSTONE, 1
+	verbosegiveitem THUNDERSTONE
 	iffalse UnknownScript_0x1a1e08
 	clearflag ENGINE_DANA_HAS_THUNDERSTONE
 	setevent EVENT_DANA_GAVE_THUNDERSTONE
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -46,7 +46,7 @@
 
 UnknownScript_0x1a5b4a:
 	scall UnknownScript_0x1a5b7a
-	verbosegiveitem NUGGET, 1
+	verbosegiveitem NUGGET
 	iffalse UnknownScript_0x1a5b59
 	clearflag ENGINE_DEREK_HAS_NUGGET
 	jump UnknownScript_0x1a5b6e
--- a/maps/Route39Barn.asm
+++ b/maps/Route39Barn.asm
@@ -63,7 +63,7 @@
 	iffalse .Refused
 	checkitem BERRY
 	iffalse .NoBerriesInBag
-	takeitem BERRY, 1
+	takeitem BERRY
 	copybytetovar MooMooBerries
 	addvar 1
 	copyvartobyte MooMooBerries
--- a/maps/Route39Farmhouse.asm
+++ b/maps/Route39Farmhouse.asm
@@ -25,7 +25,7 @@
 	iffalse UnknownScript_0x9cf02
 	checkmoney $0, 500
 	if_equal $2, UnknownScript_0x9cef6
-	giveitem MOOMOO_MILK, 1
+	giveitem MOOMOO_MILK
 	iffalse UnknownScript_0x9cefc
 	takemoney $0, 500
 	special Function24ae8
@@ -76,7 +76,7 @@
 UnknownScript_0x9cf22:
 	writetext UnknownText_0x9d156
 	keeptextopen
-	verbosegiveitem TM_SNORE, 1
+	verbosegiveitem TM_SNORE
 	iffalse UnknownScript_0x9cf33
 	setevent EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM
 UnknownScript_0x9cf2f:
--- a/maps/Route40.asm
+++ b/maps/Route40.asm
@@ -96,7 +96,7 @@
 .MetMonica
 	writetext MonicaGivesGiftText
 	keeptextopen
-	verbosegiveitem SHARP_BEAK, 1
+	verbosegiveitem SHARP_BEAK
 	iffalse MonicaDoneScript
 	setevent EVENT_GOT_SHARP_BEAK_FROM_MONICA
 	writetext MonicaGaveGiftText
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -108,7 +108,7 @@
 
 UnknownScript_0x1a92dc:
 	scall UnknownScript_0x1a930d
-	verbosegiveitem WATER_STONE, 1
+	verbosegiveitem WATER_STONE
 	iffalse UnknownScript_0x1a92ee
 	clearflag ENGINE_TULLY_HAS_WATER_STONE
 	setevent EVENT_TULLY_GAVE_WATER_STONE
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -251,7 +251,7 @@
 
 UnknownScript_0x19d21e:
 	scall UnknownScript_0x19d255
-	verbosegiveitem PINK_BOW, 1
+	verbosegiveitem PINK_BOW
 	iffalse UnknownScript_0x19d230
 	clearflag ENGINE_TIFFANY_HAS_PINK_BOW
 	setevent EVENT_TIFFANY_GAVE_PINK_BOW
--- a/maps/Route43Gate.asm
+++ b/maps/Route43Gate.asm
@@ -113,7 +113,7 @@
 	iftrue UnknownScript_0x19ac9c
 	writetext UnknownText_0x19ad9b
 	keeptextopen
-	verbosegiveitem TM_SLUDGE_BOMB, 1
+	verbosegiveitem TM_SLUDGE_BOMB
 	iffalse UnknownScript_0x19aca0
 	setevent EVENT_GOT_TM36_SLUDGE_BOMB
 	loadmovesprites
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -73,7 +73,7 @@
 	checkevent EVENT_GOT_CARBOS_FROM_VANCE
 	iftrue UnknownScript_0x19d8ca
 	scall UnknownScript_0x19d90a
-	verbosegiveitem CARBOS, 1
+	verbosegiveitem CARBOS
 	iffalse UnknownScript_0x19d903
 	setevent EVENT_GOT_CARBOS_FROM_VANCE
 	jump UnknownScript_0x19d8eb
@@ -85,7 +85,7 @@
 	loadfont
 	writetext UnknownText_0x19dc67
 	closetext
-	verbosegiveitem CARBOS, 1
+	verbosegiveitem CARBOS
 	iffalse UnknownScript_0x19d903
 	clearevent EVENT_VANCE_CARBOS
 	setevent EVENT_GOT_CARBOS_FROM_VANCE
@@ -223,17 +223,17 @@
 	checkevent EVENT_WILTON_HAS_POKE_BALL
 	iftrue UnknownScript_0x19d9db
 UnknownScript_0x19d9c9:
-	verbosegiveitem ULTRA_BALL, 1
+	verbosegiveitem ULTRA_BALL
 	iffalse UnknownScript_0x19d9e7
 	jump UnknownScript_0x19d9e1
 
 UnknownScript_0x19d9d2:
-	verbosegiveitem GREAT_BALL, 1
+	verbosegiveitem GREAT_BALL
 	iffalse UnknownScript_0x19d9e7
 	jump UnknownScript_0x19d9e1
 
 UnknownScript_0x19d9db:
-	verbosegiveitem POKE_BALL, 1
+	verbosegiveitem POKE_BALL
 	iffalse UnknownScript_0x19d9e7
 UnknownScript_0x19d9e1:
 	clearflag ENGINE_WILTON_HAS_ITEM
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -43,7 +43,7 @@
 	checkevent EVENT_KENJI_ON_BREAK
 	iffalse UnknownScript_0x19e127
 	scall UnknownScript_0x19e137
-	verbosegiveitem PP_UP, 1
+	verbosegiveitem PP_UP
 	iffalse UnknownScript_0x19e118
 	clearevent EVENT_KENJI_ON_BREAK
 	special Special_SampleKenjiBreakCountdown
@@ -199,7 +199,7 @@
 	checkevent EVENT_GOT_IRON_FROM_PARRY
 	iftrue UnknownScript_0x19e218
 	scall UnknownScript_0x19e146
-	verbosegiveitem IRON, 1
+	verbosegiveitem IRON
 	iffalse UnknownScript_0x19e13f
 	setevent EVENT_GOT_IRON_FROM_PARRY
 	jump UnknownScript_0x19e127
@@ -211,7 +211,7 @@
 	loadfont
 	writetext UnknownText_0x19e52c
 	closetext
-	verbosegiveitem IRON, 1
+	verbosegiveitem IRON
 	iffalse UnknownScript_0x19e13f
 	clearevent EVENT_PARRY_IRON
 	setevent EVENT_GOT_IRON_FROM_PARRY
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -84,7 +84,7 @@
 	checkevent EVENT_GOT_CALCIUM_FROM_ERIN
 	iftrue UnknownScript_0x1a973a
 	scall UnknownScript_0x1a9772
-	verbosegiveitem CALCIUM, 1
+	verbosegiveitem CALCIUM
 	iffalse UnknownScript_0x1a976b
 	setevent EVENT_GOT_CALCIUM_FROM_ERIN
 	jump UnknownScript_0x1a975b
@@ -96,7 +96,7 @@
 	loadfont
 	writetext UnknownText_0x1a9927
 	closetext
-	verbosegiveitem CALCIUM, 1
+	verbosegiveitem CALCIUM
 	iffalse UnknownScript_0x1a976b
 	clearevent EVENT_ERIN_CALCIUM
 	setevent EVENT_GOT_CALCIUM_FROM_ERIN
--- a/maps/Route5CleanseTagSpeechHouse.asm
+++ b/maps/Route5CleanseTagSpeechHouse.asm
@@ -12,7 +12,7 @@
 	iftrue UnknownScript_0x18b649
 	writetext UnknownText_0x18b655
 	keeptextopen
-	verbosegiveitem CLEANSE_TAG, 1
+	verbosegiveitem CLEANSE_TAG
 	iffalse UnknownScript_0x18b64d
 	setevent EVENT_GOT_CLEANSE_TAG
 UnknownScript_0x18b649:
--- a/maps/SilphCo1F.asm
+++ b/maps/SilphCo1F.asm
@@ -15,7 +15,7 @@
 	iftrue UnknownScript_0x18abfd
 	writetext UnknownText_0x18ac36
 	keeptextopen
-	verbosegiveitem UP_GRADE, 1
+	verbosegiveitem UP_GRADE
 	iffalse UnknownScript_0x18ac01
 	setevent EVENT_GOT_UP_GRADE
 UnknownScript_0x18abfd:
--- a/maps/SlowpokeWellB2F.asm
+++ b/maps/SlowpokeWellB2F.asm
@@ -12,7 +12,7 @@
 	iftrue UnknownScript_0x5ad22
 	writetext UnknownText_0x5ad2a
 	keeptextopen
-	verbosegiveitem KINGS_ROCK, 1
+	verbosegiveitem KINGS_ROCK
 	iffalse UnknownScript_0x5ad20
 	setevent EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL
 UnknownScript_0x5ad20:
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -71,7 +71,7 @@
 	loadfont
 	writetext UnknownText_0x184cc2
 	keeptextopen
-	verbosegiveitem HM_FLASH, 1
+	verbosegiveitem HM_FLASH
 	setevent EVENT_GOT_HM05_FLASH
 	setevent EVENT_BEAT_SAGE_LI
 	writetext UnknownText_0x184d13
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -276,7 +276,7 @@
 	loadfont
 	writetext UnknownText_0x6d809
 	keeptextopen
-	verbosegiveitem HM_WHIRLPOOL, 1
+	verbosegiveitem HM_WHIRLPOOL
 	setevent EVENT_GOT_HM06_WHIRLPOOL
 	writetext UnknownText_0x6d8f8
 	closetext
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -189,7 +189,7 @@
 	iftrue UnknownScript_0x1851b0
 	writetext UnknownText_0x185629
 	keeptextopen
-	verbosegiveitem RAINBOW_WING, 1
+	verbosegiveitem RAINBOW_WING
 	loadmovesprites
 	refreshscreen $0
 	earthquake 72
--- a/maps/UndergroundWarehouse.asm
+++ b/maps/UndergroundWarehouse.asm
@@ -69,7 +69,7 @@
 	iftrue UnknownScript_0x7d9de
 	writetext UnknownText_0x7dbc6
 	keeptextopen
-	verbosegiveitem CARD_KEY, 1
+	verbosegiveitem CARD_KEY
 	setevent EVENT_RECEIVED_CARD_KEY
 	setevent EVENT_WAREHOUSE_LAYOUT_1
 	clearevent EVENT_WAREHOUSE_LAYOUT_2
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -85,7 +85,7 @@
 .AllBadges
 	writetext UnknownText_0x1aacf3
 	keeptextopen
-	verbosegiveitem HP_UP, 1
+	verbosegiveitem HP_UP
 	iffalse .Done
 	setevent EVENT_GOT_HP_UP_FROM_VERMILION_GUY
 .AlreadyGotItem
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -34,7 +34,7 @@
 	specialphonecall SPECIALCALL_ASSISTANT
 	writetext UnknownText_0x685c8
 	keeptextopen
-	verbosegiveitem TM_MUD_SLAP, 1
+	verbosegiveitem TM_MUD_SLAP
 	iffalse .NoRoomForMudSlap
 	setevent EVENT_GOT_TM31_MUD_SLAP
 	writetext UnknownText_0x68648
--- a/maps/ViridianCity.asm
+++ b/maps/ViridianCity.asm
@@ -52,7 +52,7 @@
 	iftrue UnknownScript_0x1a9a8a
 	writetext UnknownText_0x1a9cc4
 	keeptextopen
-	verbosegiveitem TM_DREAM_EATER, 1
+	verbosegiveitem TM_DREAM_EATER
 	iffalse UnknownScript_0x1a9a8e
 	setevent EVENT_GOT_TM42_DREAM_EATER
 UnknownScript_0x1a9a8a:
--- a/wram.asm
+++ b/wram.asm
@@ -2090,8 +2090,40 @@
 wd6de::
 	ds 64
 
+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
+
 MapObjects:: ; d71e
-	ds OBJECT_LENGTH * NUM_OBJECTS
+	map_object Player
+	map_object Map1
+	map_object Map2
+	map_object Map3
+	map_object Map4
+	map_object Map5
+	map_object Map6
+	map_object Map7
+	map_object Map8
+	map_object Map9
+	map_object Map10
+	map_object Map11
+	map_object Map12
+	map_object Map13
+	map_object Map14
+	map_object Map15
 
 wObjectMasks:: ds NUM_OBJECTS ; d81e