mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-07-03 17:29:46 +00:00
Fixed bugs with using items and salves.
This commit is contained in:
parent
ddbeebd9b0
commit
acc78864bf
|
@ -971,7 +971,8 @@ export asm streqi(a, b)#1
|
|||
bne -- ; abort on inequality
|
||||
dex
|
||||
bne -
|
||||
ldy #0 ; okay, they're equal. Return non-zero (A is guaranteed to be a character already)
|
||||
lda #1
|
||||
ldy #0 ; okay, they're equal. Return 1 (not just any char; so that PLASMA when...is can work)
|
||||
rts
|
||||
end
|
||||
|
||||
|
@ -2367,13 +2368,21 @@ end
|
|||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Load the Party engine and show data for the given player
|
||||
def showPlayerSheet(num)#1
|
||||
word pItemToUse
|
||||
word pItemToUse, oldFlg
|
||||
if num+1 > countList(global=>p_players); beep; return 0; fin
|
||||
pItemToUse = loadEngine(MOD_PARTY)=>party_showPlayerSheet(num)
|
||||
returnFromEngine(TRUE)
|
||||
// General 'use' handled here in case it triggers graphical effects
|
||||
if pItemToUse
|
||||
oldFlg = textDrawn
|
||||
textDrawn = FALSE
|
||||
scriptEvent(@S_USE, pItemToUse=>s_name)
|
||||
if !textDrawn
|
||||
displayStr("\nNothing happened.")
|
||||
textDrawn = TRUE
|
||||
else
|
||||
textDrawn = oldFlg
|
||||
fin
|
||||
fin
|
||||
return 0
|
||||
end
|
||||
|
@ -2932,29 +2941,29 @@ end
|
|||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
export def getStat(player, statName)#1
|
||||
word pSkill
|
||||
when statName
|
||||
is @S_INTELLIGENCE; return player->b_intelligence
|
||||
is @S_STRENGTH; return player->b_strength
|
||||
is @S_AGILITY; return player->b_agility
|
||||
is @S_STAMINA; return player->b_stamina
|
||||
is @S_CHARISMA; return player->b_charisma
|
||||
is @S_SPIRIT; return player->b_spirit
|
||||
is @S_LUCK; return player->b_luck
|
||||
is @S_HEALTH; return player=>w_health
|
||||
is @S_MAX_HEALTH; return player=>w_maxHealth
|
||||
is @S_AIMING; return player->b_aiming
|
||||
is @S_HAND_TO_HAND; return player->b_handToHand
|
||||
is @S_DODGING; return player->b_dodging
|
||||
is @S_GOLD; return global=>w_gold
|
||||
is @S_XP; return player=>w_curXP
|
||||
is @S_SP; return player->b_skillPoints
|
||||
when 1
|
||||
is streqi(statName, @S_INTELLIGENCE); return player->b_intelligence
|
||||
is streqi(statName, @S_STRENGTH); return player->b_strength
|
||||
is streqi(statName, @S_AGILITY); return player->b_agility
|
||||
is streqi(statName, @S_STAMINA); return player->b_stamina
|
||||
is streqi(statName, @S_CHARISMA); return player->b_charisma
|
||||
is streqi(statName, @S_SPIRIT); return player->b_spirit
|
||||
is streqi(statName, @S_LUCK); return player->b_luck
|
||||
is streqi(statName, @S_HEALTH); return player=>w_health
|
||||
is streqi(statName, @S_MAX_HEALTH); return player=>w_maxHealth
|
||||
is streqi(statName, @S_AIMING); return player->b_aiming
|
||||
is streqi(statName, @S_HAND_TO_HAND); return player->b_handToHand
|
||||
is streqi(statName, @S_DODGING); return player->b_dodging
|
||||
is streqi(statName, @S_GOLD); return global=>w_gold
|
||||
is streqi(statName, @S_XP); return player=>w_curXP
|
||||
is streqi(statName, @S_SP); return player->b_skillPoints
|
||||
wend
|
||||
pSkill = player=>p_skills
|
||||
while pSkill
|
||||
if streqi(statName, pSkill=>s_name); return pSkill=>w_modValue; fin
|
||||
pSkill = pSkill=>p_nextObj
|
||||
loop
|
||||
puts(statName); return fatal("Unknown stat")
|
||||
puts(statName); return fatal("getStat")
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -2973,22 +2982,22 @@ end
|
|||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
export def setStat(player, statName, val)#0
|
||||
word pSkill
|
||||
when statName
|
||||
is @S_INTELLIGENCE; player->b_intelligence = clampByte(val); break
|
||||
is @S_STRENGTH; player->b_strength = clampByte(val); break
|
||||
is @S_AGILITY; player->b_agility = clampByte(val); break
|
||||
is @S_STAMINA; player->b_stamina = clampByte(val); break
|
||||
is @S_CHARISMA; player->b_charisma = clampByte(val); break
|
||||
is @S_SPIRIT; player->b_spirit = clampByte(val); break
|
||||
is @S_LUCK; player->b_luck = clampByte(val); break
|
||||
is @S_HEALTH; player=>w_health = max(0, min(player=>w_maxHealth, val)); needShowParty = TRUE; break
|
||||
is @S_MAX_HEALTH; player=>w_maxHealth = max(0, val); break
|
||||
is @S_AIMING; player->b_aiming = clampByte(val); break
|
||||
is @S_HAND_TO_HAND; player->b_handToHand = clampByte(val); break
|
||||
is @S_DODGING; player->b_dodging = clampByte(val); break
|
||||
is @S_GOLD; global=>w_gold = max(0, val); needShowParty = TRUE; break
|
||||
is @S_XP; player=>w_curXP = max(player=>w_curXP, val); needShowParty = TRUE; break
|
||||
is @S_SP; player->b_skillPoints = max(0, val); needShowParty = TRUE; break
|
||||
when 1
|
||||
is streqi(statName, @S_INTELLIGENCE); player->b_intelligence = clampByte(val); break
|
||||
is streqi(statName, @S_STRENGTH); player->b_strength = clampByte(val); break
|
||||
is streqi(statName, @S_AGILITY); player->b_agility = clampByte(val); break
|
||||
is streqi(statName, @S_STAMINA); player->b_stamina = clampByte(val); break
|
||||
is streqi(statName, @S_CHARISMA); player->b_charisma = clampByte(val); break
|
||||
is streqi(statName, @S_SPIRIT); player->b_spirit = clampByte(val); break
|
||||
is streqi(statName, @S_LUCK); player->b_luck = clampByte(val); break
|
||||
is streqi(statName, @S_HEALTH); player=>w_health = max(0, min(player=>w_maxHealth, val)); needShowParty = TRUE; break
|
||||
is streqi(statName, @S_MAX_HEALTH); player=>w_maxHealth = max(0, val); break
|
||||
is streqi(statName, @S_AIMING); player->b_aiming = clampByte(val); break
|
||||
is streqi(statName, @S_HAND_TO_HAND); player->b_handToHand = clampByte(val); break
|
||||
is streqi(statName, @S_DODGING); player->b_dodging = clampByte(val); break
|
||||
is streqi(statName, @S_GOLD); global=>w_gold = max(0, val); needShowParty = TRUE; break
|
||||
is streqi(statName, @S_XP); player=>w_curXP = max(player=>w_curXP, val); needShowParty = TRUE; break
|
||||
is streqi(statName, @S_SP); player->b_skillPoints = max(0, val); needShowParty = TRUE; break
|
||||
otherwise
|
||||
pSkill = player=>p_skills
|
||||
while pSkill
|
||||
|
@ -2998,7 +3007,7 @@ export def setStat(player, statName, val)#0
|
|||
fin
|
||||
pSkill = pSkill=>p_nextObj
|
||||
loop
|
||||
puts(statName); fatal("Unknown stat")
|
||||
puts(statName); fatal("setStat")
|
||||
wend
|
||||
end
|
||||
|
||||
|
|
|
@ -872,11 +872,15 @@ def _displayItemStats(pItem1, pItem2)#1
|
|||
rawDisplayStr("\nSpecial")
|
||||
while pMod1 or pMod2
|
||||
if pMod1
|
||||
rawDisplayf3("^T%D%d %s", STATS_COL_1, pMod1=>w_modValue, pMod1=>s_name)
|
||||
rawDisplayf1("^T%D", STATS_COL_1)
|
||||
if pMod1=>w_modValue >= 999; rawDisplayStr("Full "); else rawDisplayf1("%d ", pMod1=>w_modValue); fin
|
||||
rawDisplayStr(pMod1=>s_name)
|
||||
pMod1 = pMod1=>p_nextObj
|
||||
fin
|
||||
if pMod2
|
||||
rawDisplayf3("^T%D%d %s", STATS_COL_2, pMod2=>w_modValue, pMod2=>s_name)
|
||||
rawDisplayf1("^T%D", STATS_COL_2)
|
||||
if pMod2=>w_modValue >= 999; rawDisplayStr("Full "); else rawDisplayf1("%d ", pMod2=>w_modValue); fin
|
||||
rawDisplayStr(pMod2=>s_name)
|
||||
pMod2 = pMod2=>p_nextObj
|
||||
fin
|
||||
loop
|
||||
|
@ -889,8 +893,8 @@ end
|
|||
// For countable "stuff" (e.g. ammo), display the count and appropriate singular or plural name.
|
||||
def _displayItemName(pItem)#1
|
||||
isPlural = FALSE
|
||||
if pItem->t_type == TYPE_FANCY_ITEM and pItem=>w_count > 0
|
||||
isPlural = pItem=>w_count > 1
|
||||
if pItem->t_type == TYPE_FANCY_ITEM and pItem=>w_count > 1
|
||||
isPlural = TRUE
|
||||
rawDisplayf1("%d ", pItem=>w_count)
|
||||
fin
|
||||
buildString(@addToString)
|
||||
|
|
Loading…
Reference in New Issue
Block a user