summaryrefslogtreecommitdiff
path: root/src/map/magic-expr.cpp
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2012-12-14 22:25:07 -0800
committerBen Longbons <b.r.longbons@gmail.com>2012-12-15 19:41:53 -0800
commit4bd7eeec09629d3c0f900d42c899fe23c69e07b6 (patch)
tree4fbbfa45d9538cab7e1062f2c927297bb93ada0a /src/map/magic-expr.cpp
parent069f39e8a1ebee3e4a4ce8302d0099842876782b (diff)
downloadtmwa-4bd7eeec09629d3c0f900d42c899fe23c69e07b6.tar.gz
tmwa-4bd7eeec09629d3c0f900d42c899fe23c69e07b6.tar.bz2
tmwa-4bd7eeec09629d3c0f900d42c899fe23c69e07b6.tar.xz
tmwa-4bd7eeec09629d3c0f900d42c899fe23c69e07b6.zip
Prepare to trim skills
Diffstat (limited to 'src/map/magic-expr.cpp')
-rw-r--r--src/map/magic-expr.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/map/magic-expr.cpp b/src/map/magic-expr.cpp
index 7207afc..a53f939 100644
--- a/src/map/magic-expr.cpp
+++ b/src/map/magic-expr.cpp
@@ -553,12 +553,13 @@ static int fun_is_in(env_t * env, int args_nr, val_t * result, val_t * args)
static int fun_skill(env_t * env, int args_nr, val_t * result, val_t * args)
{
if (ETY(0) != BL_PC
+ // don't convert to enum until after the range check
|| ARGINT(1) < 0
- || ARGINT(1) >= MAX_SKILL
- || ARGPC(0)->status.skill[ARGINT(1)].id != ARGINT(1))
+ || ARGINT(1) >= uint16_t(MAX_SKILL)
+ || ARGPC(0)->status.skill[SkillID(ARGINT(1))].id != SkillID(ARGINT(1)))
RESULTINT = 0;
else
- RESULTINT = ARGPC(0)->status.skill[ARGINT(1)].lv;
+ RESULTINT = ARGPC(0)->status.skill[SkillID(ARGINT(1))].lv;
return 0;
}
@@ -974,7 +975,8 @@ fun_running_status_update(env_t * env, int args_nr, val_t * result,
if (ETY(0) != BL_PC && ETY(0) != BL_MOB)
return 1;
- RESULTINT = battle_get_sc_data(ARGENTITY(0))[ARGINT(1)].timer != -1;
+ StatusChange sc = StatusChange(ARGINT(1));
+ RESULTINT = battle_get_sc_data(ARGENTITY(0))[sc].timer != -1;
return 0;
}