diff options
author | Fate <fate.tmw@googlemail.com> | 2008-11-08 06:43:20 +0000 |
---|---|---|
committer | Fate <fate.tmw@googlemail.com> | 2008-11-08 06:43:20 +0000 |
commit | f52600e3795cd8a40c716ff92db6d8f55cc8e7cf (patch) | |
tree | 640394a2db695b69cd1b41dc05656f148070552b /src/map/magic-interpreter-base.c | |
parent | 74b8e841fcaf7454fa677bf6225036f4d2ebaa26 (diff) | |
download | tmwa-f52600e3795cd8a40c716ff92db6d8f55cc8e7cf.tar.gz tmwa-f52600e3795cd8a40c716ff92db6d8f55cc8e7cf.tar.bz2 tmwa-f52600e3795cd8a40c716ff92db6d8f55cc8e7cf.tar.xz tmwa-f52600e3795cd8a40c716ff92db6d8f55cc8e7cf.zip |
* Change SLang interpreter time handling to be universally unsigned
* Add debug output to SLang guard checking to print why particular guards failed
Diffstat (limited to 'src/map/magic-interpreter-base.c')
-rw-r--r-- | src/map/magic-interpreter-base.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/map/magic-interpreter-base.c b/src/map/magic-interpreter-base.c index 6da7acb..dc0fa02 100644 --- a/src/map/magic-interpreter-base.c +++ b/src/map/magic-interpreter-base.c @@ -290,15 +290,17 @@ consume_components(character_t *caster, component_t *component) static int spellguard_can_satisfy(spellguard_check_t *check, character_t *caster, env_t *env, int *near_miss) { - int tick = gettick(); + unsigned int tick = gettick(); int retval = check_prerequisites(caster, check->catalysts); -/* - fprintf(stderr, "Check: can satisfy? %d%d%d%d\n", retval, + + fprintf(stderr, "MC(%d/%s)? %d%d%d%d (%u <= %u)\n", + caster->bl.id, caster->status.name, + retval, caster->cast_tick <= tick, check->mana <= caster->status.sp, - check_prerequisites(caster, check->components)); -*/ + check_prerequisites(caster, check->components), + caster->cast_tick, tick); if (retval && near_miss) *near_miss = 1; // close enough! @@ -309,13 +311,15 @@ spellguard_can_satisfy(spellguard_check_t *check, character_t *caster, env_t *en && check_prerequisites(caster, check->components); if (retval) { - int casttime = check->casttime; + unsigned int casttime = (unsigned int) check->casttime; if (VAR(VAR_MIN_CASTTIME).ty == TY_INT) casttime = MAX(casttime, VAR(VAR_MIN_CASTTIME).v.v_int); caster->cast_tick = tick + casttime; /* Make sure not to cast too frequently */ + fprintf(stderr, " -> NC %u + %u = %u\n", tick, casttime, caster->cast_tick); + consume_components(caster, check->components); pc_heal(caster, 0, -check->mana); } |