let's dev 2/23/18

fixed shops disregarding item counts (extra hitbox, etc)
fixed rupee arrows regarding requiring wooden arrows before being able to fire them
finished escape assist mode for ammo management in new game mode
This commit is contained in:
Karkat
2018-02-23 22:55:44 -05:00
parent 4ee5b4bd61
commit 838c85dc07
10 changed files with 42 additions and 6 deletions

View File

@@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF
db #$00 ; expand file to 2mb db #$00 ; expand file to 2mb
org $1FFFF8 ; <- FFFF8 timestamp rom org $1FFFF8 ; <- FFFF8 timestamp rom
db #$20, #$18, #$02, #$22 ; year/month/day db #$20, #$18, #$02, #$23 ; year/month/day
;================================================================================ ;================================================================================

View File

@@ -26,6 +26,14 @@ OnDungeonExit:
PLP : PLA PLP : PLA
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
OnUncleItemGet:
JSL Link_ReceiveItem
LDA.l EscapeAssist
BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : +
BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : +
AND.b #$01 : STA !INFINITE_ARROWS
RTL
;--------------------------------------------------------------------------------
OnAga2Defeated: OnAga2Defeated:
JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first
JSL.l IncrementAgahnim2Sword JSL.l IncrementAgahnim2Sword

View File

@@ -1151,6 +1151,9 @@ JSL.l SetUncleRainState : RTS
org $05EDDF ; <- 2EDDF - sprite_zelda.asm:398 - (LDA.b #$02 : STA $7EF3C5) org $05EDDF ; <- 2EDDF - sprite_zelda.asm:398 - (LDA.b #$02 : STA $7EF3C5)
JSL.l EndRainState : NOP #2 JSL.l EndRainState : NOP #2
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $05DF49 ; <- 2DF49 - sprite_uncle_and_priest.asm:984 - (JSL Link_ReceiveItem)
JSL.l OnUncleItemGet
;--------------------------------------------------------------------------------
;================================================================================ ;================================================================================
; Generic Keys ; Generic Keys

View File

@@ -208,7 +208,9 @@ AddInventory:
LDA !INVENTORY_SWAP : ORA #$01 : STA !INVENTORY_SWAP LDA !INVENTORY_SWAP : ORA #$01 : STA !INVENTORY_SWAP
BRL .incrementCounts BRL .incrementCounts
+ CPY.b #$0B : BNE + ; Bow + CPY.b #$0B : BNE + ; Bow
LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 LDA ArrowMode : BNE +++
LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2
+++
BRL .incrementCounts BRL .incrementCounts
+ CPY.b #$3A : BNE + ; Bow & Arrows + CPY.b #$3A : BNE + ; Bow & Arrows
LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2
@@ -216,6 +218,11 @@ AddInventory:
+ CPY.b #$3B : BNE + ; Bow & Silver Arrows + CPY.b #$3B : BNE + ; Bow & Silver Arrows
LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2 LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2
BRL .incrementCounts BRL .incrementCounts
+ CPY.b #$43 : BNE + ; Single arrow
LDA ArrowMode : BEQ +++
LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 ; activate wood arrows in quick-swap
+++
BRL .incrementCounts
+ CPY.b #$58 : BNE + ; Upgrade-Only Silver Arrows + CPY.b #$58 : BNE + ; Upgrade-Only Silver Arrows
LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2 LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2
+ +

View File

@@ -178,7 +178,7 @@ AddReceivedItemExpandedGetItem:
JSL.l FreeDungeonItemNotice JSL.l FreeDungeonItemNotice
CMP.b #$0B : BNE + ; Bow CMP.b #$0B : BNE + ; Bow
LDA !INVENTORY_SWAP_2 : AND.b #$40 : BEQ ++ LDA !INVENTORY_SWAP_2 : AND.b #$40 : BEQ ++
LDA.b #03 : STA $7EF340 ; set bow silver LDA.b #03 : STA $7EF340 ; set bow to silver
++ ++
BRL .done BRL .done
+ CMP.b #$4C : BNE + ; 50 bombs + CMP.b #$4C : BNE + ; 50 bombs
@@ -234,6 +234,9 @@ AddReceivedItemExpandedGetItem:
LDA $7EF340 : BEQ ++ : CMP.b #$03 : !BGE ++ LDA $7EF340 : BEQ ++ : CMP.b #$03 : !BGE ++
!ADD.b #$02 : STA $7EF340 ; switch to silver bow !ADD.b #$02 : STA $7EF340 ; switch to silver bow
++ ++
LDA.l ArrowMode : BEQ ++
LDA.b #$01 : STA $7EF376
++
+ CMP.b #$59 : BNE + ; 1 Rupoor + CMP.b #$59 : BNE + ; 1 Rupoor
REP #$20 : LDA $7EF360 : !SUB RupoorDeduction : STA $7EF360 : SEP #$20 ; Take 1 rupee REP #$20 : LDA $7EF360 : !SUB RupoorDeduction : STA $7EF360 : SEP #$20 ; Take 1 rupee
BRL .done BRL .done

View File

@@ -1,6 +1,9 @@
;================================================================================ ;================================================================================
; Open Mode Uncle Rain State Check ; Open Mode Uncle Rain State Check
;================================================================================ ;================================================================================
!INFINITE_ARROWS = "$7F50C8"
!INFINITE_BOMBS = "$7F50C9"
!INFINITE_MAGIC = "$7F50CA"
SetUncleRainState: SetUncleRainState:
LDA.l OpenMode : BEQ + : RTL : + ; we're done if open mode is on LDA.l OpenMode : BEQ + : RTL : + ; we're done if open mode is on
LDA.b #$01 : STA $7EF3C5 LDA.b #$01 : STA $7EF3C5
@@ -13,6 +16,7 @@ InitOpenMode:
LDA $7EF3C6 : ORA #$14 : STA $7EF3C6 ; remove uncle LDA $7EF3C6 : ORA #$14 : STA $7EF3C6 ; remove uncle
LDA $7EF3C8 : CMP #$05 : BEQ ++ : LDA.b #$01 : ++ : STA $7EF3C8 ; set spawn points to house+sanc unless already house+sanc+mountain LDA $7EF3C8 : CMP #$05 : BEQ ++ : LDA.b #$01 : ++ : STA $7EF3C8 ; set spawn points to house+sanc unless already house+sanc+mountain
LDA $7EF29B : ORA.b #$20 : STA $7EF29B ; open castle gate LDA $7EF29B : ORA.b #$20 : STA $7EF29B ; open castle gate
RTL
+ +
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -300,6 +300,7 @@ RTL
!DrawMagicMeter_mp_tilemap = "$0DFE0F" !DrawMagicMeter_mp_tilemap = "$0DFE0F"
DrawMagicMeter: DrawMagicMeter:
LDA !INFINITE_MAGIC : BNE + : BRL .green : + LDA !INFINITE_MAGIC : BNE + : BRL .green : +
SEP #$20 : LDA.b #$80 : STA $7EF36E : REP #$20 ; set magic to max
LDX.w #$0080 ; load full magic meter graphics LDX.w #$0080 ; load full magic meter graphics
LDA $1A : AND.w #$000C : LSR #2 LDA $1A : AND.w #$000C : LSR #2
BEQ .red BEQ .red

View File

@@ -445,7 +445,8 @@ Shopkeeper_SetupHitboxes:
JSR.w Shopkeeper_BuyItem JSR.w Shopkeeper_BuyItem
.no_interaction .no_interaction
INY #4 INY #4
CPY.b #$0C : !BLT - TYA : CMP !SHOP_CAPACITY : !BLT -
;CPY.b #$0C : !BLT -
PLP : PLY : PLX PLP : PLY : PLX
RTS RTS

View File

@@ -103,7 +103,7 @@ db #$00 ; #$00 = Off (default) - #$01 = On
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $308032 ; PC 0x180032 org $308032 ; PC 0x180032
OpenMode: OpenMode:
db #$01 ; #$00 = Normal (default) - #$01 = Open db #$00 ; #$00 = Normal (default) - #$01 = Open
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $308033 ; PC 0x180033 org $308033 ; PC 0x180033
HeartBeep: HeartBeep:
@@ -205,6 +205,14 @@ org $30804C ; PC 0x18004C
SmithTravelsFreely: SmithTravelsFreely:
db #$00 ; #$00 = Off (default) - #$01 = On (frog/smith can enter multi-entrance doors) db #$00 ; #$00 = Off (default) - #$01 = On (frog/smith can enter multi-entrance doors)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $30804D ; PC 0x18004D
EscapeAssist:
db #$00
;---- -mba
;m - Infinite Magic
;b - Infinite Bombs
;a - Infinite Arrows
;--------------------------------------------------------------------------------
org $308080 ; PC 0x180080 org $308080 ; PC 0x180080
Upgrade5BombsRefill: Upgrade5BombsRefill:
db #$00 db #$00
@@ -715,7 +723,7 @@ db #$08 ; #$08 = 1 Heart (default) - #$02 = 1/4 Heart
;================================================================================ ;================================================================================
org $308169 ; PC 0x180169 org $308169 ; PC 0x180169
AgahnimDoorStyle: AgahnimDoorStyle:
db #$00 ; #00 = Never Locked - #$01 = Locked During Escape (default) db #$01 ; #00 = Never Locked - #$01 = Locked During Escape (default)
;================================================================================ ;================================================================================
org $30816A ; PC 0x18016A org $30816A ; PC 0x18016A
FreeItemText: FreeItemText:

View File

@@ -12,6 +12,7 @@ RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
EndRainState: EndRainState:
LDA $7EF3C5 : CMP.b #$02 : !BGE + ; skip if past escape already LDA $7EF3C5 : CMP.b #$02 : !BGE + ; skip if past escape already
LDA.b #$00 : STA !INFINITE_ARROWS : STA !INFINITE_BOMBS : STA !INFINITE_MAGIC
LDA.b #$02 : STA $7EF3C5 ; end rain state LDA.b #$02 : STA $7EF3C5 ; end rain state
+ +
RTL RTL