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
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
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:
JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first
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)
JSL.l EndRainState : NOP #2
;--------------------------------------------------------------------------------
org $05DF49 ; <- 2DF49 - sprite_uncle_and_priest.asm:984 - (JSL Link_ReceiveItem)
JSL.l OnUncleItemGet
;--------------------------------------------------------------------------------
;================================================================================
; Generic Keys

View File

@@ -208,7 +208,9 @@ AddInventory:
LDA !INVENTORY_SWAP : ORA #$01 : STA !INVENTORY_SWAP
BRL .incrementCounts
+ CPY.b #$0B : BNE + ; Bow
LDA ArrowMode : BNE +++
LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2
+++
BRL .incrementCounts
+ CPY.b #$3A : BNE + ; Bow & Arrows
LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2
@@ -216,6 +218,11 @@ AddInventory:
+ CPY.b #$3B : BNE + ; Bow & Silver Arrows
LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2
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
LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2
+

View File

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

View File

@@ -1,6 +1,9 @@
;================================================================================
; Open Mode Uncle Rain State Check
;================================================================================
!INFINITE_ARROWS = "$7F50C8"
!INFINITE_BOMBS = "$7F50C9"
!INFINITE_MAGIC = "$7F50CA"
SetUncleRainState:
LDA.l OpenMode : BEQ + : RTL : + ; we're done if open mode is on
LDA.b #$01 : STA $7EF3C5
@@ -13,6 +16,7 @@ InitOpenMode:
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 $7EF29B : ORA.b #$20 : STA $7EF29B ; open castle gate
RTL
+
RTL
;--------------------------------------------------------------------------------

View File

@@ -300,6 +300,7 @@ RTL
!DrawMagicMeter_mp_tilemap = "$0DFE0F"
DrawMagicMeter:
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
LDA $1A : AND.w #$000C : LSR #2
BEQ .red

View File

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

View File

@@ -103,7 +103,7 @@ db #$00 ; #$00 = Off (default) - #$01 = On
;--------------------------------------------------------------------------------
org $308032 ; PC 0x180032
OpenMode:
db #$01 ; #$00 = Normal (default) - #$01 = Open
db #$00 ; #$00 = Normal (default) - #$01 = Open
;--------------------------------------------------------------------------------
org $308033 ; PC 0x180033
HeartBeep:
@@ -205,6 +205,14 @@ org $30804C ; PC 0x18004C
SmithTravelsFreely:
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
Upgrade5BombsRefill:
db #$00
@@ -715,7 +723,7 @@ db #$08 ; #$08 = 1 Heart (default) - #$02 = 1/4 Heart
;================================================================================
org $308169 ; PC 0x180169
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
FreeItemText:

View File

@@ -12,6 +12,7 @@ RTL
;--------------------------------------------------------------------------------
EndRainState:
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
+
RTL