mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 07:28:17 -05:00
dungeon items done
This commit is contained in:
parent
a2ed8bef07
commit
838d076a15
|
|
@ -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
211
data/data_80F59C8_5.s
Normal 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
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ void HandleGiveItemAction(Entity *param_1)
|
|||
item2.flags &= ~(ITEM_FLAG_SET);
|
||||
sub_8044DF0(param_1,0,100);
|
||||
if (bVar3) {
|
||||
sub_80460F8(¶m_1->pos,&item1,1);
|
||||
AddItemToDungeonAt(¶m_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--;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user