dungeon items done

This commit is contained in:
DizzyEggg 2025-03-12 14:22:55 +01:00
parent a2ed8bef07
commit 838d076a15
19 changed files with 365 additions and 369 deletions

View File

@ -1,236 +1,16 @@
#include "constants/status.h"
.section .rodata
#.incbin "baserom.gba", 0xF59C4, 0x4
.string "pksdir0\0"
.string "pksdir0\0"
.global gUnknown_80F6624
gUnknown_80F6624: @ 80F6624
@ replacing .incbin "baserom.gba", 0xF6624, 0x78
.byte 0x78, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x7b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x7d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xb9, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0xbb, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.global gStatusSpriteMasks_SleepClassStatus
gStatusSpriteMasks_SleepClassStatus: @ 80F669C
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_SLEEP @ STATUS_SLEEP
.4byte STATUS_SPRITE_SLEEPLESS @ STATUS_SLEEPLESS
.4byte STATUS_SPRITE_SLEEP @ STATUS_NIGHTMARE
.4byte 0 @ STATUS_YAWNING
.4byte STATUS_SPRITE_SLEEP @ STATUS_NAPPING
.global gStatusSpriteMasks_BurnClassStatus
gStatusSpriteMasks_BurnClassStatus: @ 80F66B4
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_BURNED @ STATUS_BURN
.4byte STATUS_SPRITE_POISONED @ STATUS_POISONED
.4byte STATUS_SPRITE_BADLY_POISONED @ STATUS_BADLY_POISONED
.4byte 0 @ STATUS_PARALYSIS
.global gStatusSpriteMasks_FrozenClassStatus
gStatusSpriteMasks_FrozenClassStatus: @ 80F66C8
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_FROZEN @ STATUS_FROZEN
.4byte 0 @ STATUS_SHADOW_HOLD
.4byte 0 @ STATUS_WRAP
.4byte 0 @ STATUS_WRAPPED
.4byte 0 @ STATUS_INGRAIN
.4byte 0 @ STATUS_PETRIFIED
.4byte 0 @ STATUS_CONSTRICTION
.global gStatusSpriteMasks_CringeClassStatus
gStatusSpriteMasks_CringeClassStatus: @ 80F66E8
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_CRINGE
.4byte STATUS_SPRITE_CONFUSED @ STATUS_CONFUSED
.4byte 0 @ STATUS_PAUSED
.4byte STATUS_SPRITE_COWERING @ STATUS_COWERING
.4byte STATUS_SPRITE_TAUNTED @ STATUS_TAUNTED
.4byte STATUS_SPRITE_ENCORE @ STATUS_ENCORE
.4byte 0 @ STATUS_INFATUATED
.global gStatusSpriteMasks_BideClassStatus
gStatusSpriteMasks_BideClassStatus: @ 80F6708
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_BIDE
.4byte 0 @ STATUS_SOLARBEAM
.4byte 0 @ STATUS_SKY_ATTACK
.4byte 0 @ STATUS_RAZOR_WIND
.4byte 0 @ STATUS_FOCUS_PUNCH
.4byte 0 @ STATUS_SKULL_BASH
.4byte 0 @ STATUS_FLYING
.4byte 0 @ STATUS_BOUNCING
.4byte 0 @ STATUS_DIVING
.4byte 0 @ STATUS_DIGGING
.4byte 0 @ STATUS_CHARGING
.4byte 0 @ STATUS_ENRAGED
.global gStatusSpriteMasks_ReflectClassStatus
gStatusSpriteMasks_ReflectClassStatus: @ 80F673C
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_REFLECT
.4byte STATUS_SPRITE_SHIELD_RED @ STATUS_SAFEGUARD
.4byte STATUS_SPRITE_SHIELD_YELLOW @ STATUS_LIGHT_SCREEN
.4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_COUNTER
.4byte STATUS_SPRITE_SHIELD_YELLOW @ STATUS_MAGIC_COAT
.4byte 0 @ STATUS_WISH
.4byte STATUS_SPRITE_SHIELD_GREEN @ STATUS_PROTECT
.4byte STATUS_SPRITE_SHIELD_RED @ STATUS_MIRROR_COAT
.4byte STATUS_SPRITE_ENDURE @ STATUS_ENDURING
.4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_MINI_COUNTER
.4byte STATUS_SPRITE_SHIELD_GREEN @ STATUS_MIRROR_MOVE
.4byte 0 @ STATUS_CONVERSION2
.4byte STATUS_SPRITE_SHIELD_GREEN @ STATUS_VITAL_THROW
.4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_MIST
.global gStatusSpriteMasks_CurseClassStatus
gStatusSpriteMasks_CurseClassStatus: @ 80F6778
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_CURSED @ STATUS_CURSED
.4byte 0 @ STATUS_DECOY
.4byte STATUS_SPRITE_SNATCH @ STATUS_SNATCH
.global gStatusSpriteMasks_LeechSeedClassStatus
gStatusSpriteMasks_LeechSeedClassStatus: @ 80F6788
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_LEECH_SEED
.4byte 0 @ STATUS_DESTINY_BOND
.global gStatusSpriteMasks_SureShotClassStatus
gStatusSpriteMasks_SureShotClassStatus: @ 80F6794
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_SURE_SHOT @ STATUS_SURE_SHOT
.4byte STATUS_SPRITE_WHIFFER @ STATUS_WHIFFER
.4byte STATUS_SPRITE_SET_DAMAGE @ STATUS_SET_DAMAGE
.4byte STATUS_SPRITE_FOCUS_ENERGY @ STATUS_FOCUS_ENERGY
.global gStatusSpriteMasks_LongTossClassStatus
gStatusSpriteMasks_LongTossClassStatus: @ 80F67A8
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_LONG_TOSS
.4byte 0 @ STATUS_PIERCE
.global gStatusSpriteMasks_InvisibleClassStatus
gStatusSpriteMasks_InvisibleClassStatus: @ 80F67B4
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_INVISIBLE
.4byte 0 @ STATUS_TRANSFORMED
.4byte 0 @ STATUS_MOBILE
.global gStatusSpriteMasks_BlinkerClassStatus
gStatusSpriteMasks_BlinkerClassStatus: @ 80F67C4
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_BLINKER @ STATUS_BLINKER
.4byte STATUS_SPRITE_CROSS_EYED @ STATUS_CROSS_EYED
.4byte STATUS_SPRITE_EYEDROPS @ STATUS_EYEDROPS
.global gStatusSpriteMasks_MuzzledStatus
gStatusSpriteMasks_MuzzledStatus: @ 80F67D4
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_MUZZLED @ STATUS_MUZZLED
.global gUnknown_80F67DC
gUnknown_80F67DC: @ 80F67DC
@ u16[4]. They are sound effect IDs
.byte 0xD8, 0x00, 0xD9, 0x00
.byte 0xD9, 0x00, 0x73, 0x01
.global gUnknown_80F67E4
gUnknown_80F67E4: @ 80F67E4
@ u16[4]. They are sound effect IDs
.byte 0xDA, 0x00, 0xDB, 0x00
.byte 0xDB, 0x00, 0x74, 0x01
.global gUnknown_80F67EC
gUnknown_80F67EC: @ 80F67EC
@ s32[8]
.byte 0xff, 0xff, 0xff, 0xff, 0x4b, 0x01, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
.byte 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, 0x00
.global gUnknown_80F680C
gUnknown_80F680C: @ 80F680C
@ u32[8]
.byte 0xff, 0xff, 0xff, 0xff, 0x4b, 0x01, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
.byte 0xb8, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, 0x00
.global gUnknown_80F682C
gUnknown_80F682C: @ 80F682C
@ u16[8]
.byte 0xe5, 0x03, 0xe5, 0x03, 0xe5, 0x03, 0xa9, 0x01, 0xe5, 0x03, 0xe5, 0x03, 0xaa, 0x01, 0xe5, 0x03
.global gUnknown_80F683C
gUnknown_80F683C: @ 80F683C
@ replacing .incbin "baserom.gba", 0xF683C, 0x14
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64
.byte 0x69, 0x72, 0x30, 0x00
.global gUnknown_80F6850
gUnknown_80F6850: @ 80F6850
@ replacing .incbin "baserom.gba", 0xF6850, 0x10
.byte 0x9e, 0x01, 0xa1, 0x01, 0xa2, 0x01, 0xa3, 0x01
.byte 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00
.global gSpeedTurns
gSpeedTurns: @ 80F6860
@ replacing .incbin "baserom.gba", 0xF6860, 0x104
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00
.byte 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x10, 0x00
.byte 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00
.byte 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x1a, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1d, 0x00, 0x1e, 0x00, 0x00, 0x00
.byte 0x1f, 0x00, 0x20, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x00, 0x00
.byte 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2a, 0x00, 0x2b, 0x00
.byte 0x2c, 0x00, 0x2d, 0x00, 0x2e, 0x00, 0x2f, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00
.byte 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3a, 0x00, 0x3b, 0x00
.byte 0x3c, 0x00, 0x3d, 0x00, 0x3e, 0x00, 0x3f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64
.byte 0x69, 0x72, 0x30, 0x00
.global gUnknown_80F6964
gUnknown_80F6964: @ 80F6964
@ replacing .incbin "baserom.gba", 0xF6964, 0x18
.byte 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00
.byte 0x12, 0x00, 0x31, 0x00, 0x2c, 0x00, 0x12, 0x00
.global gUnknown_80F697C
gUnknown_80F697C: @ 80F697C
.byte 0x58, 0x00, 0x00, 0x00
.align 2,0
.string "pksdir0"
.align 2,0
.string "pksdir0"
.align 2,0
.string "pksdir0"
.align 2,0
.string "pksdir0"
.global gUnknown_80F6990
gUnknown_80F6990: @ 80F6990
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.global gUnknown_80F699C
gUnknown_80F699C: @ 80F699C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.global gUnknown_80F69A8
gUnknown_80F69A8: @ 80F69A8
@ replacing .incbin "baserom.gba", 0xF69A8, 0x2C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64
.byte 0x69, 0x72, 0x30, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00, 0x70, 0x6b, 0x73, 0x64
.byte 0x69, 0x72, 0x30, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00
.align 2,0
.global gOtherOobTile
gOtherOobTile: @ 80F69D4
@ replacing .incbin "baserom.gba", 0xF69D4, 0x18

211
data/data_80F59C8_5.s Normal file
View File

@ -0,0 +1,211 @@
#include "constants/status.h"
.section .rodata
#.incbin "baserom.gba", 0xF59C4, 0x4
.string "pksdir0\0"
.string "pksdir0\0"
.global gUnknown_80F6624
gUnknown_80F6624: @ 80F6624
@ replacing .incbin "baserom.gba", 0xF6624, 0x78
.byte 0x78, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x7b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x7d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xb9, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0xbb, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.global gStatusSpriteMasks_SleepClassStatus
gStatusSpriteMasks_SleepClassStatus: @ 80F669C
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_SLEEP @ STATUS_SLEEP
.4byte STATUS_SPRITE_SLEEPLESS @ STATUS_SLEEPLESS
.4byte STATUS_SPRITE_SLEEP @ STATUS_NIGHTMARE
.4byte 0 @ STATUS_YAWNING
.4byte STATUS_SPRITE_SLEEP @ STATUS_NAPPING
.global gStatusSpriteMasks_BurnClassStatus
gStatusSpriteMasks_BurnClassStatus: @ 80F66B4
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_BURNED @ STATUS_BURN
.4byte STATUS_SPRITE_POISONED @ STATUS_POISONED
.4byte STATUS_SPRITE_BADLY_POISONED @ STATUS_BADLY_POISONED
.4byte 0 @ STATUS_PARALYSIS
.global gStatusSpriteMasks_FrozenClassStatus
gStatusSpriteMasks_FrozenClassStatus: @ 80F66C8
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_FROZEN @ STATUS_FROZEN
.4byte 0 @ STATUS_SHADOW_HOLD
.4byte 0 @ STATUS_WRAP
.4byte 0 @ STATUS_WRAPPED
.4byte 0 @ STATUS_INGRAIN
.4byte 0 @ STATUS_PETRIFIED
.4byte 0 @ STATUS_CONSTRICTION
.global gStatusSpriteMasks_CringeClassStatus
gStatusSpriteMasks_CringeClassStatus: @ 80F66E8
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_CRINGE
.4byte STATUS_SPRITE_CONFUSED @ STATUS_CONFUSED
.4byte 0 @ STATUS_PAUSED
.4byte STATUS_SPRITE_COWERING @ STATUS_COWERING
.4byte STATUS_SPRITE_TAUNTED @ STATUS_TAUNTED
.4byte STATUS_SPRITE_ENCORE @ STATUS_ENCORE
.4byte 0 @ STATUS_INFATUATED
.global gStatusSpriteMasks_BideClassStatus
gStatusSpriteMasks_BideClassStatus: @ 80F6708
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_BIDE
.4byte 0 @ STATUS_SOLARBEAM
.4byte 0 @ STATUS_SKY_ATTACK
.4byte 0 @ STATUS_RAZOR_WIND
.4byte 0 @ STATUS_FOCUS_PUNCH
.4byte 0 @ STATUS_SKULL_BASH
.4byte 0 @ STATUS_FLYING
.4byte 0 @ STATUS_BOUNCING
.4byte 0 @ STATUS_DIVING
.4byte 0 @ STATUS_DIGGING
.4byte 0 @ STATUS_CHARGING
.4byte 0 @ STATUS_ENRAGED
.global gStatusSpriteMasks_ReflectClassStatus
gStatusSpriteMasks_ReflectClassStatus: @ 80F673C
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_REFLECT
.4byte STATUS_SPRITE_SHIELD_RED @ STATUS_SAFEGUARD
.4byte STATUS_SPRITE_SHIELD_YELLOW @ STATUS_LIGHT_SCREEN
.4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_COUNTER
.4byte STATUS_SPRITE_SHIELD_YELLOW @ STATUS_MAGIC_COAT
.4byte 0 @ STATUS_WISH
.4byte STATUS_SPRITE_SHIELD_GREEN @ STATUS_PROTECT
.4byte STATUS_SPRITE_SHIELD_RED @ STATUS_MIRROR_COAT
.4byte STATUS_SPRITE_ENDURE @ STATUS_ENDURING
.4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_MINI_COUNTER
.4byte STATUS_SPRITE_SHIELD_GREEN @ STATUS_MIRROR_MOVE
.4byte 0 @ STATUS_CONVERSION2
.4byte STATUS_SPRITE_SHIELD_GREEN @ STATUS_VITAL_THROW
.4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_MIST
.global gStatusSpriteMasks_CurseClassStatus
gStatusSpriteMasks_CurseClassStatus: @ 80F6778
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_CURSED @ STATUS_CURSED
.4byte 0 @ STATUS_DECOY
.4byte STATUS_SPRITE_SNATCH @ STATUS_SNATCH
.global gStatusSpriteMasks_LeechSeedClassStatus
gStatusSpriteMasks_LeechSeedClassStatus: @ 80F6788
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_LEECH_SEED
.4byte 0 @ STATUS_DESTINY_BOND
.global gStatusSpriteMasks_SureShotClassStatus
gStatusSpriteMasks_SureShotClassStatus: @ 80F6794
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_SURE_SHOT @ STATUS_SURE_SHOT
.4byte STATUS_SPRITE_WHIFFER @ STATUS_WHIFFER
.4byte STATUS_SPRITE_SET_DAMAGE @ STATUS_SET_DAMAGE
.4byte STATUS_SPRITE_FOCUS_ENERGY @ STATUS_FOCUS_ENERGY
.global gStatusSpriteMasks_LongTossClassStatus
gStatusSpriteMasks_LongTossClassStatus: @ 80F67A8
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_LONG_TOSS
.4byte 0 @ STATUS_PIERCE
.global gStatusSpriteMasks_InvisibleClassStatus
gStatusSpriteMasks_InvisibleClassStatus: @ 80F67B4
.4byte 0 @ STATUS_NONE
.4byte 0 @ STATUS_INVISIBLE
.4byte 0 @ STATUS_TRANSFORMED
.4byte 0 @ STATUS_MOBILE
.global gStatusSpriteMasks_BlinkerClassStatus
gStatusSpriteMasks_BlinkerClassStatus: @ 80F67C4
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_BLINKER @ STATUS_BLINKER
.4byte STATUS_SPRITE_CROSS_EYED @ STATUS_CROSS_EYED
.4byte STATUS_SPRITE_EYEDROPS @ STATUS_EYEDROPS
.global gStatusSpriteMasks_MuzzledStatus
gStatusSpriteMasks_MuzzledStatus: @ 80F67D4
.4byte 0 @ STATUS_NONE
.4byte STATUS_SPRITE_MUZZLED @ STATUS_MUZZLED
.global gUnknown_80F67DC
gUnknown_80F67DC: @ 80F67DC
@ u16[4]. They are sound effect IDs
.byte 0xD8, 0x00, 0xD9, 0x00
.byte 0xD9, 0x00, 0x73, 0x01
.global gUnknown_80F67E4
gUnknown_80F67E4: @ 80F67E4
@ u16[4]. They are sound effect IDs
.byte 0xDA, 0x00, 0xDB, 0x00
.byte 0xDB, 0x00, 0x74, 0x01
.global gUnknown_80F67EC
gUnknown_80F67EC: @ 80F67EC
@ s32[8]
.byte 0xff, 0xff, 0xff, 0xff, 0x4b, 0x01, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
.byte 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, 0x00
.global gUnknown_80F680C
gUnknown_80F680C: @ 80F680C
@ u32[8]
.byte 0xff, 0xff, 0xff, 0xff, 0x4b, 0x01, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
.byte 0xb8, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, 0x00
.global gUnknown_80F682C
gUnknown_80F682C: @ 80F682C
@ u16[8]
.byte 0xe5, 0x03, 0xe5, 0x03, 0xe5, 0x03, 0xa9, 0x01, 0xe5, 0x03, 0xe5, 0x03, 0xaa, 0x01, 0xe5, 0x03
.global gUnknown_80F683C
gUnknown_80F683C: @ 80F683C
@ replacing .incbin "baserom.gba", 0xF683C, 0x14
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64
.byte 0x69, 0x72, 0x30, 0x00
.global gUnknown_80F6850
gUnknown_80F6850: @ 80F6850
@ replacing .incbin "baserom.gba", 0xF6850, 0x10
.byte 0x9e, 0x01, 0xa1, 0x01, 0xa2, 0x01, 0xa3, 0x01
.byte 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00
.global gSpeedTurns
gSpeedTurns: @ 80F6860
@ replacing .incbin "baserom.gba", 0xF6860, 0x104
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00
.byte 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x10, 0x00
.byte 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00
.byte 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x1a, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1d, 0x00, 0x1e, 0x00, 0x00, 0x00
.byte 0x1f, 0x00, 0x20, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x00, 0x00
.byte 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2a, 0x00, 0x2b, 0x00
.byte 0x2c, 0x00, 0x2d, 0x00, 0x2e, 0x00, 0x2f, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00
.byte 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3a, 0x00, 0x3b, 0x00
.byte 0x3c, 0x00, 0x3d, 0x00, 0x3e, 0x00, 0x3f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64
.byte 0x69, 0x72, 0x30, 0x00
.global gUnknown_80F6964
gUnknown_80F6964: @ 80F6964
@ replacing .incbin "baserom.gba", 0xF6964, 0x18
.byte 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00
.byte 0x12, 0x00, 0x31, 0x00, 0x2c, 0x00, 0x12, 0x00
.global gUnknown_80F697C
gUnknown_80F697C: @ 80F697C
.byte 0x58, 0x00, 0x00, 0x00
.string "pksdir0"
.align 2,0

View File

@ -13,6 +13,7 @@ enum DungeonAction
ACTION_PLACE_ITEM = 0x8,
// Some actions are different between the leader and AI-controlled Pokémon.
ACTION_PICK_UP_PLAYER = 0x9, // Picking up an item underfoot.
ACTION_UNKA = 0xA,
ACTION_THROW_ITEM_PLAYER = 0xB,
ACTION_SHOW_INFO = 0xC,
ACTION_EAT_BERRY_SEED_DRINK = 0xD,
@ -44,6 +45,7 @@ enum DungeonAction
ACTION_USE_ORB = 0x31,
ACTION_REGULAR_ATTACK = 0x32,
ACTION_UNSET_MOVE = 0x33,
ACTION_UNK34 = 0x34,
ACTION_UNK35 = 0x35,
ACTION_GIVE_ITEM = 0x36,
ACTION_TAKE_ITEM = 0x37,

View File

@ -14,8 +14,8 @@ void sub_8045C18(u8 *buffer, Item *item);
void CreateItemWithStickyChance(Item *item, u8 itemID, u32 forceSticky);
void CreateFloorItems(void);
void PickUpItemFromPos(struct DungeonPos *pos, bool8 printMsg);
bool8 sub_80460F8(DungeonPos *pos, Item *item, bool8 a2);
bool8 sub_80461C8(DungeonPos *pos, bool8 a2);
bool8 AddItemToDungeonAt(DungeonPos *pos, Item *item, bool8 a2);
bool8 RemoveItemFromDungeonAt(DungeonPos *pos, bool8 a2);
bool8 sub_80462AC(Entity * entity, u8 hallucinating, u8 a2, u8 a3, u8 a4);
const u8 *sub_80464AC(Item *item);
void sub_80464C8(Entity *entity, DungeonPos *pos, Item *item);

View File

@ -543,6 +543,8 @@ SECTIONS {
data/data_80F59C8_0.o(.rodata);
src/dungeon_map.o(.rodata);
src/code_8040094_1.o(.rodata);
data/data_80F59C8_5.o(.rodata);
src/dungeon_items.o(.rodata);
data/data_80F59C8.o(.rodata);
src/dungeon_message.o(.rodata);
src/dungeon_move.o(.rodata);

View File

@ -61,8 +61,6 @@ EWRAM_INIT DungeonPos gPlayerDotMapPosition = {100, 100};
static EWRAM_INIT struct UnkStruct_203B414 *sUnknown_203B414 = NULL;
EWRAM_INIT Dungeon *gDungeon = NULL;
EWRAM_INIT u8 *gSerializedData_203B41C = NULL;
EWRAM_INIT u8 gUnknown_203B420[8] = {0x15, 0x00, 0x16, 0x00, 0x15, 0x00, 0x16, 0x00}; // Could be a different file?
EWRAM_INIT u8 gUnknown_203B428[8] = {0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02}; // Could be a different file?
struct UnkStruct_80F6624
{

View File

@ -25,8 +25,8 @@ extern const unkStr_80F7C54 gUnknown_80F7C54[65];
extern u8 *gUnknown_80F91EC[];
extern bool8 sub_8045888(Entity *);
extern u8 GetFloorType(void);
void sub_80460F8(DungeonPos *, Item *, u32);
bool8 sub_80461C8(DungeonPos *, u32);
void AddItemToDungeonAt(DungeonPos *, Item *, u32);
bool8 RemoveItemFromDungeonAt(DungeonPos *, u32);
Item * sub_8044CC8(Entity *param_1, ActionParameter *param_2, UNUSED s32 a3)
{
@ -74,7 +74,7 @@ bool8 sub_8044D40(ActionContainer *param_1,s32 index)
if (puVar1->actionUseIndex != 0x80) {
return FALSE;
}
sub_80461C8(&puVar1->itemPos,1);
RemoveItemFromDungeonAt(&puVar1->itemPos,1);
}
return TRUE;
}
@ -109,7 +109,7 @@ void sub_8044DF0(Entity *entity, s32 index, u32 unused)
info = GetEntInfo(entity);
item = sub_8044D90(entity,index,unused);
if ((info->action).actionParameters[0].actionUseIndex == 0x80) {
sub_80461C8(&(info->action).actionParameters[0].itemPos,1);
RemoveItemFromDungeonAt(&(info->action).actionParameters[0].itemPos,1);
}
else {
item->id = ITEM_NOTHING;
@ -134,10 +134,10 @@ void sub_8044E24(Entity *entity,int index,u32 unused)
if (info->action.actionParameters[index].actionUseIndex == 0x80) {
item = *itemPtr;
pos = &info->action.actionParameters[index].itemPos;
sub_80461C8(pos,1);
RemoveItemFromDungeonAt(pos,1);
item.quantity = itemPtr->id - 125;
item.id = ITEM_TM_USED_TM;
sub_80460F8(pos,&item,1);
AddItemToDungeonAt(pos,&item,1);
}
else {
itemPtr->quantity = itemPtr->id - 125;

View File

@ -224,7 +224,7 @@ void HandleGiveItemAction(Entity *param_1)
item2.flags &= ~(ITEM_FLAG_SET);
sub_8044DF0(param_1,0,100);
if (bVar3) {
sub_80460F8(&param_1->pos,&item1,1);
AddItemToDungeonAt(&param_1->pos,&item1,1);
}
else {
AddItemToInventory(&item1);
@ -382,7 +382,7 @@ void HandlePlaceItemAction(Entity *entity)
else {
item->flags &= ~(ITEM_FLAG_SET);
sub_8045BF8(gFormatBuffer_Items[0],item);
if (sub_80460F8(&entity->pos,item,1) == 0) {
if (AddItemToDungeonAt(&entity->pos,item,1) == 0) {
LogMessageByIdWithPopupCheckUser(entity,*gUnknown_80F8E04);
}
else {
@ -428,9 +428,9 @@ void sub_8066E14(Entity *entity)
newItems[0].flags &= ~(ITEM_FLAG_SET);
newItems[1].flags &= ~(ITEM_FLAG_SET);
sub_80461C8(&info->action.actionParameters[0].itemPos,1);
RemoveItemFromDungeonAt(&info->action.actionParameters[0].itemPos,1);
ZeroOutItem(item[1]);
if (!sub_80460F8(&info->action.actionParameters[0].itemPos,&newItems[1],1)) {
if (!AddItemToDungeonAt(&info->action.actionParameters[0].itemPos,&newItems[1],1)) {
LogMessageByIdWithPopupCheckUser(entity,*gNothingCanBePutDownHere);
}
else {
@ -480,9 +480,9 @@ void sub_8066FA4(Entity *entity)
newItems[0].flags &= ~(ITEM_FLAG_SET);
newItems[1].flags &= ~(ITEM_FLAG_SET);
sub_80461C8(&entity->pos,1);
RemoveItemFromDungeonAt(&entity->pos,1);
ZeroOutItem(item[0]);
if (!sub_80460F8(&entity->pos, &newItems[0],1)) {
if (!AddItemToDungeonAt(&entity->pos, &newItems[0],1)) {
LogMessageByIdWithPopupCheckUser(entity,*gNothingCanBePutDownHere);
}
else {
@ -560,7 +560,7 @@ void sub_80671A0(Entity *entity)
if (info->action.actionParameters[0].actionUseIndex == 0x80) {
item = NULL;
sub_80461C8(&info->action.actionParameters[0].itemPos, 1);
RemoveItemFromDungeonAt(&info->action.actionParameters[0].itemPos, 1);
}
r7 = TRUE;
@ -577,7 +577,7 @@ void sub_80671A0(Entity *entity)
else {
if (info->action.actionParameters[0].actionUseIndex == 0x80) {
newItem.quantity--;
sub_80460F8(&info->action.actionParameters[0].itemPos, &newItem, 1);
AddItemToDungeonAt(&info->action.actionParameters[0].itemPos, &newItem, 1);
}
else {
item->quantity--;

View File

@ -146,7 +146,7 @@ void sub_8073D14(Entity *entity)
}
AddToTeamMoney(GetMoneyValue(groundItem));
sub_8045BF8(gFormatBuffer_Items[0], groundItem);
sub_80461C8(&entity->pos, 1);
RemoveItemFromDungeonAt(&entity->pos, 1);
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItem);
}
else {
@ -208,7 +208,7 @@ void sub_8073D14(Entity *entity)
carriedItems[newInventoryId]->flags |= ITEM_FLAG_STICKY;
sub_8045BF8(gFormatBuffer_Items[0], groundItem);
sub_80461C8(&entity->pos, 1);
RemoveItemFromDungeonAt(&entity->pos, 1);
PlaySoundEffect(0x14A);
if (inventoryIds[newInventoryId] <= -1)
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItem2);
@ -239,7 +239,7 @@ void sub_8073D14(Entity *entity)
if (inventoryIds[i] <= -1) {
_entityInfo->heldItem = *groundItem;
sub_8045BF8(gFormatBuffer_Items[0], groundItem);
sub_80461C8(&entity->pos, 1);
RemoveItemFromDungeonAt(&entity->pos, 1);
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItem2);
}
else if (AddItemToInventory(groundItem)) {
@ -248,7 +248,7 @@ void sub_8073D14(Entity *entity)
}
else {
sub_8045BF8(gFormatBuffer_Items[0], groundItem);
sub_80461C8(&entity->pos, 1);
RemoveItemFromDungeonAt(&entity->pos, 1);
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItemToolbox);
}
}

View File

@ -53,7 +53,7 @@ extern struct DungeonPos *gUnknown_8107178[3];
extern void sub_807E1A0(Entity *pokemon,Entity *target,u8 moveType,s32 param_4,s32 param_5); // TODO: param_4 should be s16
extern void sub_804216C(Entity *pokemon, Entity *target, u32 r2);
extern void sub_80461C8(DungeonPos *, u32);
extern void RemoveItemFromDungeonAt(DungeonPos *, u32);
extern void sub_804218C(Entity *pokemon, Entity *target);
EWRAM_INIT u32 gUnknown_203B444[3] = {0x28, 0x28, 0x50};
@ -74,7 +74,7 @@ void sub_807BB78(Entity *pokemon);
extern void sub_803F580(u32);
bool8 sub_808384C(DungeonPos *, DungeonPos *);
u8 sub_8083660(DungeonPos *);
void sub_80460F8(DungeonPos *, Item *, u32);
void AddItemToDungeonAt(DungeonPos *, Item *, u32);
void sub_80462AC(Entity * ,u32, u32, u8, u32);
extern void ShowDungeonMapAtPos(s32, s32);
@ -502,7 +502,7 @@ void HandleTrawlOrbAction(Entity *user, Entity *target)
for (i = 0; i < itemsCount; i++) {
if (EntityIsValid(&itemEntities[i])) {
sub_80461C8(&itemEntities[i].pos, 1);
RemoveItemFromDungeonAt(&itemEntities[i].pos, 1);
ShowDungeonMapAtPos(itemEntities[i].pos.x, itemEntities[i].pos.y);
itemVelocity[i].x = (((targetTilePos[i].x * 24 + 4) * 256) - itemEntities[i].pixelPos.x) / 60;
itemVelocity[i].y = (((targetTilePos[i].y * 24 + 4) * 256) - itemEntities[i].pixelPos.y) / 60;
@ -533,7 +533,7 @@ void HandleTrawlOrbAction(Entity *user, Entity *target)
for (i = 0; i < itemsCount; i++) {
if (targetTilePos[i].x >= 0) {
sub_80460F8(&targetTilePos[i], GetItemData(&itemEntities[i]), 1);
AddItemToDungeonAt(&targetTilePos[i], GetItemData(&itemEntities[i]), 1);
ShowDungeonMapAtPos(targetTilePos[i].x, targetTilePos[i].y);
hasTrawled = TRUE;
}
@ -834,7 +834,7 @@ void HandleExplosion(Entity *pokemon,Entity *target,DungeonPos *param_3,s32 para
}
entity2 = tile->object;
if (((entity2 != NULL) && (entity2 != target)) && (GetEntityType(entity2) == ENTITY_ITEM)) {
sub_80461C8(&pos, 0);
RemoveItemFromDungeonAt(&pos, 0);
}
entity2 = tile->monster;
if (((entity2 != NULL) && (entity2 != target)) && (GetEntityType(entity2) == ENTITY_MONSTER)) {

View File

@ -38,7 +38,7 @@ extern u8 gUnknown_203B40D;
extern OpenedFile *gUnknown_202ECA0;
extern void sub_804178C(u32);
extern bool8 sub_80461C8(DungeonPos *, u32);
extern bool8 RemoveItemFromDungeonAt(DungeonPos *, u32);
extern void sub_80429D8(Entity *r0);
extern s32 GetMonsterApparentID(Entity *pokemon, s32 id);
extern void sub_803E874(bool8 r10, s32 r9);
@ -46,7 +46,7 @@ extern void GetWeatherName(u8 *dst, u8 weatherId);
extern s32 CalculateStatusTurns(Entity *target, const s16 *turnRange, bool8 factorCurerSkills);
extern void sub_80838EC(u8 *a);
extern bool8 sub_8044B28(void);
extern void sub_80460F8(DungeonPos *, Item *, u32);
extern void AddItemToDungeonAt(DungeonPos *, Item *, u32);
void sub_807E7FC(bool8 arg0);
void sub_807EFFC(bool8 arg0);
@ -498,11 +498,11 @@ void sub_807EFFC(bool8 arg0)
Item *itemPtr = GetItemData(tile->object);
if (!ItemInShop(itemPtr)) {
Item item = *itemPtr;
sub_80461C8(&pos, 1);
RemoveItemFromDungeonAt(&pos, 1);
if (CanSellItem(item.id)) {
item.flags |= ITEM_FLAG_IN_SHOP;
}
sub_80460F8(&pos, &item, 1);
AddItemToDungeonAt(&pos, &item, 1);
}
}
}

View File

@ -3715,7 +3715,7 @@ void sub_808B1CC(u8 itemID)
(sub_80860A8(ITEM_MUSIC_BOX) == 0)) {
ItemIdToSlot(&item,itemID,0);
pos.y--;
sub_80460F8(&pos,&item,1);
AddItemToDungeonAt(&pos,&item,1);
}
sub_8049ED4();
ShowWholeRevealedDungeonMap();

View File

@ -21,7 +21,7 @@
extern const u8 gUnknown_80F6DCC[];
extern struct FileArchive gDungeonFileArchive;
extern void sub_80460F8(DungeonPos *, Item *, u32);
extern void AddItemToDungeonAt(DungeonPos *, Item *, u32);
extern s32 sub_803DA20(s16 species);
extern void sub_8049840(void);
extern void sub_80429FC(DungeonPos *r0);
@ -6105,7 +6105,7 @@ static void sub_805193C(u8 itemId, s32 x, s32 y, s32 quantity, u32 itemFlags)
item.quantity = quantity;
}
sub_80460F8(&pos, &item, 1);
AddItemToDungeonAt(&pos, &item, 1);
}
// s16 species memes strike again. Will the fix ever be discovered?

View File

@ -1,4 +1,5 @@
#include "global.h"
#include "globaldata.h"
#include "dungeon_items.h"
#include "code_803E668.h"
#include "code_8041AD0.h"
@ -26,21 +27,20 @@
#include "code_80450F8.h"
#include "structs/str_item_text.h"
extern s32 gUnknown_810A3F0[];
extern u8 *gUnknown_80FA408[];
extern u8 *gUnknown_810531C[];
extern u8 *gUnknown_8105360[];
extern u8 *gUnknown_81053A8[];
extern u8 *gUnknown_8105434[];
extern u8 *gPickedUpItemToolbox[];
extern u8 *gMonTerrifiedCouldntPickUpItem[];
extern u8 *gPickedUpItem2[];
extern u8 *gMonCouldntPickUpItem[];
extern u8 *gPickedUpItem[];
extern u8 *gMonSteppedOnItem[];
extern struct unkStruct_8090F58 gUnknown_80F699C;
extern struct unkStruct_8090F58 gUnknown_80F69A8;
extern struct unkStruct_8090F58 gUnknown_80F6990;
extern SpriteOAM gUnknown_202EDC0;
extern const s32 gUnknown_810A3F0[];
extern const u8 *gUnknown_80FA408[];
extern const u8 *gUnknown_810531C[];
extern const u8 *gUnknown_8105360[];
extern const u8 *gUnknown_81053A8[];
extern const u8 *gUnknown_8105434[];
extern const u8 *gPickedUpItemToolbox[];
extern const u8 *gMonTerrifiedCouldntPickUpItem[];
extern const u8 *gPickedUpItem2[];
extern const u8 *gMonCouldntPickUpItem[];
extern const u8 *gPickedUpItem[];
extern const u8 *gMonSteppedOnItem[];
extern const u8 *const gUnknown_80FED30;
extern const DungeonPos gUnknown_80F4468[];
extern const u8 *const gItemFellOnGround;
@ -64,13 +64,16 @@ extern u32 GetRandomFloorItem(u32);
static void MusicBoxCreation(void);
static u8 sub_8046D70(void);
extern SpriteOAM gUnknown_202EDC0;
extern u8 gUnknown_203B420[];
extern u8 gUnknown_203B428[];
static EWRAM_INIT u8 sUnkItemTileNums[8] = {0x15, 0x00, 0x16, 0x00, 0x15, 0x00, 0x16, 0x00};
static EWRAM_INIT u8 sUnkItemMatrixNums[8] = {0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02};
static void sub_8046734(Entity *entity, DungeonPos *pos);
static void sub_8046CE4(Item *item,s32 param_2);
static const struct unkStruct_8090F58 gUnknown_80F6990 = {1, 1, 0, 0, 1};
static const struct unkStruct_8090F58 gUnknown_80F699C = {0, 0, 0, 0, 1};
static const struct unkStruct_8090F58 gUnknown_80F69A8 = {0, 0, 0, 0, 0};
void sub_8045BF8(u8 *buffer, Item *item)
{
sub_8090E14(buffer, item, &gUnknown_80F699C);
@ -166,7 +169,7 @@ void CreateFloorItems(void)
if (shopFlag) {
item.flags |= flag;
}
sub_80460F8(&pos,&item,TRUE);
AddItemToDungeonAt(&pos,&item,TRUE);
}
}
}
@ -208,7 +211,7 @@ void PickUpItemFromPos(struct DungeonPos *pos, bool8 printMsg)
PlaySoundEffect(0x14c);
AddToTeamMoney(GetMoneyValue(tileItem));
sub_8045BF8(gFormatBuffer_Items[0],tileItem);
sub_80461C8(pos,1);
RemoveItemFromDungeonAt(pos,TRUE);
LogMessageByIdWithPopupCheckUser(leader,*gPickedUpItem);
TryDisplayItemPickupTutorialMessage(tileItem->id);
}
@ -275,7 +278,7 @@ void PickUpItemFromPos(struct DungeonPos *pos, bool8 printMsg)
inventoryItems[index]->flags |= ITEM_FLAG_STICKY;
}
sub_8045BF8(gFormatBuffer_Items[0],tileItem);
sub_80461C8(pos,1);
RemoveItemFromDungeonAt(pos,TRUE);
PlaySoundEffect(0x14a);
if (inventoryIds[index] < 0) {
LogMessageByIdWithPopupCheckUser(leader,*gPickedUpItem2);
@ -306,7 +309,7 @@ void PickUpItemFromPos(struct DungeonPos *pos, bool8 printMsg)
if (inventoryIds[i] < 0) {
leaderInfo->heldItem = *tileItem;
sub_8045BF8(gFormatBuffer_Items[0],tileItem);
sub_80461C8(pos,1);
RemoveItemFromDungeonAt(pos,TRUE);
LogMessageByIdWithPopupCheckUser(leader,*gPickedUpItem2);
}
else if (AddItemToInventory(tileItem) != 0) {
@ -315,7 +318,7 @@ void PickUpItemFromPos(struct DungeonPos *pos, bool8 printMsg)
}
else {
sub_8045BF8(gFormatBuffer_Items[0],tileItem);
sub_80461C8(pos,1);
RemoveItemFromDungeonAt(pos,TRUE);
LogMessageByIdWithPopupCheckUser(leader,*gPickedUpItemToolbox);
}
TryDisplayItemPickupTutorialMessage(tileItem->id);
@ -323,19 +326,19 @@ void PickUpItemFromPos(struct DungeonPos *pos, bool8 printMsg)
}
}
bool8 sub_80460F8(DungeonPos *pos, Item *item, bool8 a2)
bool8 AddItemToDungeonAt(DungeonPos *pos, Item *item, bool8 a2)
{
s32 i, count;
Tile *tile;
Entity *entity = sub_8045708(pos);
Entity *itemEntity = sub_8045708(pos);
if (entity == NULL)
if (itemEntity == NULL)
return FALSE;
*entity->axObj.info.item = *item;
entity->axObj.info.item->flags &= ~(ITEM_FLAG_SET);
entity->isVisible = TRUE;
*itemEntity->axObj.info.item = *item;
itemEntity->axObj.info.item->flags &= ~(ITEM_FLAG_SET);
itemEntity->isVisible = TRUE;
tile = GetTileMut(pos->x, pos->y);
tile->object = entity;
tile->object = itemEntity;
if ((tile->terrainType & TERRAIN_TYPE_SHOP) && CanSellItem(item->id)) {
if (item->flags & ITEM_FLAG_IN_SHOP) {
if (a2) {
@ -357,7 +360,7 @@ bool8 sub_80460F8(DungeonPos *pos, Item *item, bool8 a2)
return TRUE;
}
bool8 sub_80461C8(DungeonPos *pos, bool8 a2)
bool8 RemoveItemFromDungeonAt(DungeonPos *pos, bool8 a2)
{
s32 i, count;
Item *item;
@ -433,8 +436,8 @@ bool8 sub_80462AC(Entity * entity, u8 hallucinating, u8 a2, u8 a3, u8 a4)
else {
tileNum = GetItemIconId(entity->axObj.info.item);
if (a3 != 0xFF && tileNum == 0) {
tileNum = gUnknown_203B420[a3];
SpriteSetMatrixNum(&gUnknown_202EDC0, gUnknown_203B428[a3] * 8);
tileNum = sUnkItemTileNums[a3];
SpriteSetMatrixNum(&gUnknown_202EDC0, sUnkItemMatrixNums[a3] * 8);
}
SpriteSetPalNum(&gUnknown_202EDC0, GetItemPalette(entity->axObj.info.item->id));
}
@ -461,7 +464,6 @@ const u8 *sub_80464AC(Item *item)
void sub_80464C8(Entity *entity, DungeonPos *pos, Item *item)
{
s32 x, y;
Entity itemEntity;
@ -517,7 +519,7 @@ void sub_804652C(Entity *entity1, Entity *entity2, Item *item, bool8 a3, Dungeon
if (GetTerrainType(tile) != TERRAIN_TYPE_WALL && !(tile->terrainType & TERRAIN_TYPE_STAIRS) && tile->object == NULL) {
sub_8046734(entity2, &localPos);
localPos2 = localPos;
if (GetTerrainType(tile) == (TERRAIN_TYPE_SECONDARY | TERRAIN_TYPE_NORMAL) || (sub_80460F8(&localPos, item, TRUE))) {
if (GetTerrainType(tile) == (TERRAIN_TYPE_SECONDARY | TERRAIN_TYPE_NORMAL) || (AddItemToDungeonAt(&localPos, item, TRUE))) {
var_24 = TRUE;
}
break;
@ -714,7 +716,7 @@ void sub_804687C(Entity *entity, DungeonPos *pos1, DungeonPos *pos2, Item *item,
for (i = 0; i < count; i++) {
if (targetTilePos[i].x >= 0) {
sub_80460F8(&targetTilePos[i], &item[i], TRUE);
AddItemToDungeonAt(&targetTilePos[i], &item[i], TRUE);
}
}
}

View File

@ -184,7 +184,7 @@ void DungeonHandlePlayerInput(void)
ShowDungeonStairsMenu(GetLeader());
ResetRepeatTimers();
ResetUnusedInputStruct();
if (GetLeaderActionId() != 0) {
if (GetLeaderActionId() != ACTION_NOTHING) {
return;
}
}
@ -1307,7 +1307,7 @@ static void ShowMainMenu(bool8 fromBPress, bool8 a1)
sub_806752C(GetLeaderActionContainer());
SetLeaderActionToNothing(TRUE);
}
else if (GetLeaderActionId() == 0x34) {
else if (GetLeaderActionId() == ACTION_UNK34) {
sub_8067768(GetLeaderActionContainer());
SetLeaderActionToNothing(TRUE);
}
@ -1329,7 +1329,7 @@ static void ShowMainMenu(bool8 fromBPress, bool8 a1)
if (EntityIsValid(teamMon)) {
if (i == GetLeaderActionContainer()->actionParameters[0].actionUseIndex) {
gTeamMenuChosenId = count;
if (GetLeaderActionId() != 0) {
if (GetLeaderActionId() != ACTION_NOTHING) {
sub_806A2BC(teamMon, 0);
}
break;
@ -1339,7 +1339,7 @@ static void ShowMainMenu(bool8 fromBPress, bool8 a1)
}
}
if (GetLeaderActionId() != 0)
if (GetLeaderActionId() != ACTION_NOTHING)
break;
}
else if (chosenOption == MAIN_MENU_MOVES) {
@ -1439,7 +1439,7 @@ static void ShowMainMenu(bool8 fromBPress, bool8 a1)
}
sub_806A2BC(GetLeader(), 0);
ChangeDungeonCameraPos(&GetLeader()->pos, 0, 1, 1);
if (GetLeaderActionId() != 0)
if (GetLeaderActionId() != ACTION_NOTHING)
break;
}
else if (chosenOption == MAIN_MENU_GROUND) {
@ -1464,43 +1464,43 @@ static void ShowMainMenu(bool8 fromBPress, bool8 a1)
}
action = GetLeaderActionId();
if (action == 0xC) {
if (action == ACTION_SHOW_INFO) {
sub_8044D90(GetLeader(), 0, 0x10)->flags |= ITEM_FLAG_UNPAID;
DungeonShowItemDescription(GetLeaderActionContainer());
SetLeaderActionToNothing(TRUE);
}
else if (action == 0x35) {
else if (action == ACTION_UNK35) {
item = sub_8044D90(GetLeader(), 0, 0x11);
if (!sub_8048A68(GetLeader(), item)) {
SetLeaderActionToNothing(TRUE);
}
}
else if (action == 0x10) {
else if (action == ACTION_UNK10) {
item = sub_8044D90(GetLeader(), 0, 0x12);
if (!sub_8048950(GetLeader(), item)) {
SetLeaderActionToNothing(TRUE);
}
}
else if (action == 0x2C) {
else if (action == ACTION_USE_LINK_BOX) {
item = sub_8044D90(GetLeader(), 0, 0x13);
if (!sub_8048B9C(GetLeader(), item)) {
SetLeaderActionToNothing(TRUE);
}
}
if (GetLeaderActionId() != 0)
if (GetLeaderActionId() != ACTION_NOTHING)
break;
}
else if (GetEntityType(tileObject) == ENTITY_TRAP) {
SetLeaderActionToNothing(TRUE);
ShowDungeonTileMenu(GetLeader());
if (GetLeaderActionId() != 0)
if (GetLeaderActionId() != ACTION_NOTHING)
break;
}
}
else if (tile->terrainType & TERRAIN_TYPE_STAIRS) {
SetLeaderActionToNothing(TRUE);
ShowDungeonStairsMenu(GetLeader());
if (GetLeaderActionId() != 0)
if (GetLeaderActionId() != ACTION_NOTHING)
break;
}
else {
@ -1514,7 +1514,7 @@ static void ShowMainMenu(bool8 fromBPress, bool8 a1)
ShowDungeonOthersMenu();
if (gDungeon->unk4)
break;
if (GetLeaderActionId() != 0)
if (GetLeaderActionId() != ACTION_NOTHING)
break;
r10 = -1;
}

View File

@ -82,7 +82,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Wind
static s32 sub_8060800(WindowHeader *a0, s32 a1);
static bool8 sub_8060860(s32 a0);
static void sub_8060890(DungeonPos *a0);
static void sub_8060900(Entity *a0);
static void SetSubMenuActions(Entity *a0);
static void ChosenSubMenuToAction(ActionContainer *a0);
static s32 sub_8060D64(s16 *a0, bool8 a1, bool8 a2, bool8 a3, Entity *a4);
@ -110,7 +110,7 @@ bool8 ShowDungeonItemsMenu(Entity * a0, struct UnkMenuBitsStruct *a1)
{
s32 i, i_r6;
s32 r8;
s32 r9 = 0;
s32 inputAction = 0;
u8 var_34 = 1;
u8 var_30 = 0;
@ -161,7 +161,7 @@ bool8 ShowDungeonItemsMenu(Entity * a0, struct UnkMenuBitsStruct *a1)
s32 id;
Entity *r4;
r9 = 0;
inputAction = 0;
for (i = 0; i < INVENTORY_SIZE; i++) {
Item *item = &gTeamInventoryRef->teamItems[i];
if (item->flags & ITEM_FLAG_EXISTS && item->flags & ITEM_FLAG_UNPAID) {
@ -261,46 +261,46 @@ bool8 ShowDungeonItemsMenu(Entity * a0, struct UnkMenuBitsStruct *a1)
if ((gRealInputs.pressed & A_BUTTON) || gDungeonMenu.unk28.a_button) {
PlayDungeonConfirmationSE();
sub_8060890(&a0->pos);
r9 = 1;
inputAction = 1;
break;
}
if (gRealInputs.pressed & START_BUTTON) {
PlayDungeonStartButtonSE();
sub_8060890(&a0->pos);
r9 = 3;
inputAction = 3;
break;
}
if ((gRealInputs.pressed & B_BUTTON) || gDungeonMenu.unk28.b_button) {
PlayDungeonCancelSE();
r9 = 2;
inputAction = 2;
break;
}
}
else {
sub_8060890(&a0->pos);
r9 = 1;
inputAction = 1;
break;
}
}
AddMenuCursorSprite(&gDungeonMenu);
DungeonRunFrameActions(0x14);
if (sUnknown_202F248[gDungeonMenu.unk1E] <= 1 && !(gTeamInventoryRef->teamItems[0].flags & ITEM_FLAG_EXISTS)) {
r9 = 2;
inputAction = 2;
}
if (r9 == 2) {
if (inputAction == 2) {
sub_803EAF0(0, NULL);
r9 = 1;
inputAction = 1;
break;
}
else if (r9 == 0) {
else if (inputAction == 0) {
continue;
}
else if (r9 == 3) {
else if (inputAction == 3) {
SetMonsterActionFields(&a0Info->action, 0xC);
a0Info->action.actionParameters[0] = sUnknownActionUnk4;
sub_803EAF0(0, NULL);
r9 = 0;
inputAction = 0;
break;
}
else {
@ -308,11 +308,11 @@ bool8 ShowDungeonItemsMenu(Entity * a0, struct UnkMenuBitsStruct *a1)
if (var_2C != 0) {
a0Info->action.actionParameters[1] = sUnknownActionUnk4;
sub_803EAF0(0, NULL);
r9 = 0;
inputAction = 0;
break;
}
sub_8060900(a0);
SetSubMenuActions(a0);
sub_8060800(&header, gDungeonMenu.unk1E);
CreateDungeonMenuSubWindow(&windows.id[0], 0x16);
while (1) {
@ -330,27 +330,27 @@ bool8 ShowDungeonItemsMenu(Entity * a0, struct UnkMenuBitsStruct *a1)
if (CanSubMenuItemBeChosen(gDungeonMenu.menuIndex)) {
PlayDungeonConfirmationSE();
ChosenSubMenuToAction(&a0Info->action);
r9 = 0;
inputAction = 0;
break;
}
PlayDungeonCancelSE();
}
if ((gRealInputs.pressed & B_BUTTON) || gDungeonMenu.unk28.b_button) {
PlayDungeonCancelSE();
r9 = 1;
inputAction = 1;
break;
}
}
AddMenuCursorSprite(&gDungeonMenu);
DungeonRunFrameActions(0x14);
gDungeon->unk181e8.unk18212 = 0;
if (r9 != 1 || var_30 != 0) {
if (a0Info->action.action == 0x37 || a0Info->action.action == 0x38 || a0Info->action.action == 0x3E) {
if (inputAction != 1 || var_30 != 0) {
if (a0Info->action.action == ACTION_TAKE_ITEM || a0Info->action.action == ACTION_USE_ITEM || a0Info->action.action == ACTION_UNK3E) {
// Hm...
int newAction = sUnknownActionUnk4.actionUseIndex - 0x90;
a0Info->action.actionParameters[0].actionUseIndex = newAction;
sub_803EAF0(0, 0);
r9 = 0;
inputAction = 0;
break;
}
else if (a0Info->action.action == ACTION_GIVE_ITEM) {
@ -358,7 +358,7 @@ bool8 ShowDungeonItemsMenu(Entity * a0, struct UnkMenuBitsStruct *a1)
if (ShowDungeonToWhichMonMenu(&teamId, WHICH_MENU_ITEMS) != NULL) {
a0Info->action.actionParameters[1].actionUseIndex = teamId;
sub_803EAF0(0, 0);
r9 = 0;
inputAction = 0;
break;
}
sub_803EAF0(0, NULL);
@ -366,7 +366,7 @@ bool8 ShowDungeonItemsMenu(Entity * a0, struct UnkMenuBitsStruct *a1)
}
else {
sub_803EAF0(0, 0);
r9 = 0;
inputAction = 0;
break;
}
}
@ -377,12 +377,12 @@ bool8 ShowDungeonItemsMenu(Entity * a0, struct UnkMenuBitsStruct *a1)
sub_803E708(2, 0x61);
sub_804AA60();
sub_803E708(2, 0x61);
return r9;
return inputAction;
}
static const struct unkStruct_8090F58 gUnknown_8106B60 = {1, 1, 0, 80, 1};
static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, bool8 a3, WindowTemplates *windows, WindowHeader *a5)
static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, bool8 a3, WindowTemplates *windows, WindowHeader *header)
{
s32 i, x, y;
s32 r10;
@ -400,7 +400,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
EntityInfo *a1Info;
a1Info = GetEntInfo(a1);
r10 = sub_8060800(a5, a0);
r10 = sub_8060800(header, a0);
gDungeonMenu.menuIndex = sUnknown_202F240;
gDungeonMenu.unk1A = 0;
gDungeonMenu.unk1E = a0;
@ -415,7 +415,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
case 1:
windows->id[0].unk10 = 0x10;
windows->id[0].height = 0x10;
a5->width = 0xC;
header->width = 0xC;
gDungeonMenu.firstEntryY = 0x10;
gDungeonMenu.unk1C = 0xA;
gDungeon->unk181e8.unk18212 = 1;
@ -423,7 +423,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
case 2:
windows->id[0].unk10 = 4;
windows->id[0].height = 4;
a5->width = 6;
header->width = 6;
gDungeonMenu.firstEntryY = 0x12;
gDungeonMenu.unk1C = 1;
break;
@ -431,7 +431,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
default:
windows->id[0].unk10 = 4;
windows->id[0].height = 4;
a5->width = 0xC;
header->width = 0xC;
gDungeonMenu.firstEntryY = 0x12;
gDungeonMenu.unk1C = 1;
break;
@ -540,9 +540,9 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
}
}
static s32 sub_8060800(WindowHeader *a0, s32 a1)
static s32 sub_8060800(WindowHeader *header, s32 a1)
{
s32 i, r1, r2, r3;
s32 i, r1, count, currId;
r1 = 0;
for (i = 0; i < sUnknown_202F258; i++) {
@ -552,19 +552,19 @@ static s32 sub_8060800(WindowHeader *a0, s32 a1)
}
if (sUnknown_202F248[a1] <= 1) {
r3 = a1;
r2 = r1;
currId = a1;
count = r1;
r1 = 0;
}
else {
r3 = a1 - r1;
r2 = sUnknown_202F258 - r1;
currId = a1 - r1;
count = sUnknown_202F258 - r1;
}
if (a0 != NULL) {
a0->count = r2;
a0->currId = r3;
a0->f3 = 0;
if (header != NULL) {
header->count = count;
header->currId = currId;
header->f3 = 0;
}
return r1;
@ -601,7 +601,7 @@ static void sub_8060890(DungeonPos *a0)
sUnknownActionUnk4.itemPos.y = a0->y;
}
static void sub_8060900(Entity *a0)
static void SetSubMenuActions(Entity *a0)
{
u16 val_sub8044DC8;
Item *item = sub_8044CC8(a0, &sUnknownActionUnk4, 0xA);
@ -612,23 +612,23 @@ static void sub_8060900(Entity *a0)
if (sUnknownActionUnk4.actionUseIndex == 128) {
AddActionToDungeonSubMenu(ACTION_PICK_UP_PLAYER, item->id);
if (GetItemCategory(item->id) != CATEGORY_POKE) {
bool32 r2 = 0;
bool32 noSpace = FALSE;
if (gDungeon->unk644.hasInventory) {
if (gTeamInventoryRef->teamItems[INVENTORY_SIZE - 1].flags & ITEM_FLAG_EXISTS) {
r2 = TRUE;
noSpace = TRUE;
}
}
else if (a0Info->heldItem.flags & ITEM_FLAG_EXISTS) {
r2 = TRUE;
noSpace = TRUE;
}
if (r2) {
SetActionUnusableInDungeonSubMenu(9);
if (noSpace) {
SetActionUnusableInDungeonSubMenu(ACTION_PICK_UP_PLAYER);
}
}
}
if (sUnknownActionUnk4.actionUseIndex == 128 && gDungeon->unk644.hasInventory) {
AddActionToDungeonSubMenu(10, item->id);
AddActionToDungeonSubMenu(ACTION_UNKA, item->id);
}
val_sub8044DC8 = sub_8044DC8(item);
if (val_sub8044DC8 != 0) {
@ -670,7 +670,7 @@ static void sub_8060900(Entity *a0)
s32 i;
bool32 r8 = FALSE;
AddActionToDungeonSubMenu(0x36, item->id);
AddActionToDungeonSubMenu(ACTION_GIVE_ITEM, item->id);
for (i = 0; i < MAX_TEAM_MEMBERS; i++) {
Entity *teamMon = gDungeon->teamPokemon[i];
if (EntityIsValid(teamMon)) {
@ -683,21 +683,21 @@ static void sub_8060900(Entity *a0)
}
}
if (!r8) {
SetActionUnusableInDungeonSubMenu(0x36);
SetActionUnusableInDungeonSubMenu(ACTION_GIVE_ITEM);
}
}
}
else if (gDungeon->unk644.hasInventory) {
if (gTeamInventoryRef->teamItems[INVENTORY_SIZE - 1].flags & ITEM_FLAG_EXISTS) {
AddActionToDungeonSubMenu(0x3E, item->id);
AddActionToDungeonSubMenu(ACTION_UNK3E, item->id);
}
else {
AddActionToDungeonSubMenu(0x37, item->id);
AddActionToDungeonSubMenu(ACTION_TAKE_ITEM, item->id);
}
if (CheckVariousConditions(a0)) {
SetActionUnusableInDungeonSubMenu(0x37);
SetActionUnusableInDungeonSubMenu(0x3E);
SetActionUnusableInDungeonSubMenu(ACTION_TAKE_ITEM);
SetActionUnusableInDungeonSubMenu(ACTION_UNK3E);
}
}
@ -712,19 +712,19 @@ static void sub_8060900(Entity *a0)
}
if (GetItemCategory(item->id) == CATEGORY_THROWN_LINE) {
AddActionToDungeonSubMenu(0x27, item->id);
AddActionToDungeonSubMenu(ACTION_THROW_STRAIGHT_PLAYER, item->id);
}
else if (GetItemCategory(item->id) == CATEGORY_THROWN_ARC) {
AddActionToDungeonSubMenu(0x41, item->id);
AddActionToDungeonSubMenu(ACTION_THROW_ARC_PLAYER, item->id);
}
else {
AddActionToDungeonSubMenu(0xB, item->id);
AddActionToDungeonSubMenu(ACTION_THROW_ITEM_PLAYER, item->id);
}
if (!MonsterCanThrowItems(a0Info)) {
SetActionUnusableInDungeonSubMenu(0x27);
SetActionUnusableInDungeonSubMenu(0x41);
SetActionUnusableInDungeonSubMenu(0xB);
SetActionUnusableInDungeonSubMenu(ACTION_THROW_STRAIGHT_PLAYER);
SetActionUnusableInDungeonSubMenu(ACTION_THROW_ARC_PLAYER);
SetActionUnusableInDungeonSubMenu(ACTION_THROW_ITEM_PLAYER);
}
}
else {
@ -783,7 +783,7 @@ static void sub_8060900(Entity *a0)
}
}
AddActionToDungeonSubMenu(0xC, item->id);
AddActionToDungeonSubMenu(ACTION_SHOW_INFO, item->id);
sub_8045064();
}

View File

@ -134,7 +134,7 @@ static Entity* sub_80828E0(s16 id, s16 apparentID, s32 index);
static Entity* sub_8082A08(s32 id, s32 apparentID, s32 index);
// These externs are from other files
extern void sub_80460F8(DungeonPos *, Item *, u32);
extern void AddItemToDungeonAt(DungeonPos *, Item *, u32);
void SaveDungeonState(u8 *buffer, u32 bufLen)
{
@ -877,7 +877,7 @@ static void ReadDungeonItems(DataSerializer *seri)
ReadTilePos(seri, &pos);
if (item.flags & ITEM_FLAG_EXISTS)
sub_80460F8(&pos, &item, 0);
AddItemToDungeonAt(&pos, &item, 0);
}
}

View File

@ -764,7 +764,7 @@ void HandlePokemonTrap(Entity *param_1,DungeonPos *pos)
local_50.unk4 = 0;
local_50.unk10 = 0;
if (sub_806B7F8(&local_50, TRUE) != 0) {
sub_80461C8(&local_50.pos,0);
RemoveItemFromDungeonAt(&local_50.pos,0);
counter++;
}
}

View File

@ -110,6 +110,7 @@
.include "src/code_803D0D8.o"
.include "src/code_803E46C.o"
.include "src/code_8042B34.o"
.include "src/dungeon_items.o"
.include "src/dungeon_map_access.o"
.include "src/dungeon_message.o"
.include "src/dungeon_move.o"