From 3cc0fba61a77752a8d96e3c58a1f1577a968fbf6 Mon Sep 17 00:00:00 2001 From: Martin Haye Date: Fri, 30 Jun 2017 08:48:56 -0700 Subject: [PATCH] Fixed null ptr bug in party display. --- Platform/Apple/virtual/src/core/mem.s | 7 ++++++- Platform/Apple/virtual/src/plasma/combat.pla | 2 +- Platform/Apple/virtual/src/plasma/gameloop.pla | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Platform/Apple/virtual/src/core/mem.s b/Platform/Apple/virtual/src/core/mem.s index 1c60685d..037d9cfd 100644 --- a/Platform/Apple/virtual/src/core/mem.s +++ b/Platform/Apple/virtual/src/core/mem.s @@ -79,11 +79,16 @@ relocate: ; special: clear most of the lower 48k and the ProDOS bank of the LC bit setLcRW+lcBank1 bit setLcRW+lcBank1 - tya ldx #8 .clr1 stx .clrst1+2 stx .clrst2+2 ldy #0 + tya +- sta 0,y ; help catch null ptr problems + iny + cpy #$20 + bne - + tay .clrst1 sta $800,y .clrst2 sta $880,y iny diff --git a/Platform/Apple/virtual/src/plasma/combat.pla b/Platform/Apple/virtual/src/plasma/combat.pla index 747432ab..e1cd6092 100644 --- a/Platform/Apple/virtual/src/plasma/combat.pla +++ b/Platform/Apple/virtual/src/plasma/combat.pla @@ -495,7 +495,7 @@ def makeEnemyGroup(enemyFunc)#1 word p, enem, groupSize p = mmgr(HEAP_ALLOC, TYPE_ENEMY_GROUP) enem = enemyFunc() - p->b_enemyGroupRange = enem->b_enemyAttackRange + 30 // FIXME FOO - added 30 for testing only + p->b_enemyGroupRange = enem->b_enemyAttackRange if enem=>r_groupSize == 0 // handle unique enemies groupSize = 1 else diff --git a/Platform/Apple/virtual/src/plasma/gameloop.pla b/Platform/Apple/virtual/src/plasma/gameloop.pla index 41a75471..11a8cd5f 100644 --- a/Platform/Apple/virtual/src/plasma/gameloop.pla +++ b/Platform/Apple/virtual/src/plasma/gameloop.pla @@ -1479,7 +1479,7 @@ export def showParty()#0 // Display header (or LEVEL UP message) p = global=>p_players - while !p->b_skillPoints + while p and !p->b_skillPoints p = p=>p_nextObj loop if p