diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2012-08-30 16:16:25 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2012-08-30 17:03:31 -0700 |
commit | 41974ae5265fbc23a06f276f9e008d5dad020e0b (patch) | |
tree | 9d595215172e87e2d83b74f7bf3430b3040e780e /src/map/magic.c | |
parent | 21742909143df9159b2401c3e2a39cc0b2bad620 (diff) | |
download | tmwa-41974ae5265fbc23a06f276f9e008d5dad020e0b.tar.gz tmwa-41974ae5265fbc23a06f276f9e008d5dad020e0b.tar.bz2 tmwa-41974ae5265fbc23a06f276f9e008d5dad020e0b.tar.xz tmwa-41974ae5265fbc23a06f276f9e008d5dad020e0b.zip |
Rename files for C++ conversion. Does not compile.
After updating, you can remove these files, as shown in 'git status':
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/map/magic-interpreter-lexer.c
src/map/magic-interpreter-parser.c
src/map/magic-interpreter-parser.h
Diffstat (limited to 'src/map/magic.c')
-rw-r--r-- | src/map/magic.c | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/src/map/magic.c b/src/map/magic.c deleted file mode 100644 index 797dc16..0000000 --- a/src/map/magic.c +++ /dev/null @@ -1,130 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <math.h> - -#include "magic-interpreter.h" - -#undef DEBUG - -static char *magic_preprocess_message (character_t * character, char *start, - char *end) -{ - if (character->state.shroud_active - && character->state.shroud_disappears_on_talk) - magic_unshroud (character); - - if (character->state.shroud_active - && character->state.shroud_hides_name_talking) - { - int len = strlen (end); - strcpy (start, "? "); - memmove (start + 2, end, len + 1); - return start + 4; - } - else - return end + 2; /* step past blank */ -} - -#define ISBLANK(c) ((c) == ' ') - -/* Returns a dynamically allocated copy of `src'. - * `*parameter' may point within that copy or be NULL. */ -static char *magic_tokenise (char *src, char **parameter) -{ - char *retval = strdup (src); - char *seeker = retval; - - while (*seeker && !ISBLANK (*seeker)) - ++seeker; - - if (!*seeker) - *parameter = NULL; - else - { - *seeker = 0; /* Terminate invocation */ - ++seeker; - - while (ISBLANK (*seeker)) - ++seeker; - - *parameter = seeker; - } - - return retval; -} - -int magic_message (character_t * caster, char *spell_, size_t spell_len) -{ - if (pc_isdead (caster)) - return 0; - - int power = caster->matk1; - char *invocation_base = spell_ + 8; - char *source_invocation = - 1 + invocation_base + strlen (caster->status.name); - spell_t *spell; - char *parameter; - char *spell_invocation; - - if (!source_invocation) - return 0; - - /* Pre-message filter in case some spell alters output */ - source_invocation = - magic_preprocess_message (caster, invocation_base, source_invocation); - - spell_invocation = magic_tokenise (source_invocation, ¶meter); - parameter = parameter ? strdup (parameter) : strdup (""); - - spell = magic_find_spell (spell_invocation); - free (spell_invocation); - - if (spell) - { - int near_miss; - env_t *env = - spell_create_env (&magic_conf, spell, caster, power, parameter); - effect_set_t *effects; - - if ((spell->flags & SPELL_FLAG_NONMAGIC) || (power >= 1)) - effects = spell_trigger (spell, caster, env, &near_miss); - else - effects = NULL; - -#ifdef DEBUG - fprintf (stderr, "Found spell `%s', triggered = %d\n", spell_, - effects != NULL); -#endif - if (caster->status.option & OPTION_HIDE) - return 0; // No spellcasting while hidden - - MAP_LOG_PC (caster, "CAST %s %s", - spell->name, effects ? "SUCCESS" : "FAILURE"); - - if (effects) - { - invocation_t *invocation = spell_instantiate (effects, env); - - spell_bind (caster, invocation); - spell_execute (invocation); - - return (spell->flags & SPELL_FLAG_SILENT) ? -1 : 1; - } - else - magic_free_env (env); - - return 1; - } - else - free (parameter); - - return 0; /* Not a spell */ -} - -int magic_init (char *conffile); // must be called after itemdb initialisation - -void do_init_magic (void) -{ - magic_init (MAGIC_CONFIG_FILE); -} |