summaryrefslogtreecommitdiff
path: root/src/map/magic.c
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2012-08-30 16:16:25 -0700
committerBen Longbons <b.r.longbons@gmail.com>2012-08-30 17:03:31 -0700
commit41974ae5265fbc23a06f276f9e008d5dad020e0b (patch)
tree9d595215172e87e2d83b74f7bf3430b3040e780e /src/map/magic.c
parent21742909143df9159b2401c3e2a39cc0b2bad620 (diff)
downloadtmwa-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.c130
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, &parameter);
- 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);
-}