summaryrefslogtreecommitdiff
path: root/src/map/script.h
blob: 62d3ee1f51e3228e17c076ccc5d856d7f15105bb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// $Id: script.h,v 1.2 2004/09/25 05:32:19 MouseJstr Exp $
#ifndef _SCRIPT_H_
#define _SCRIPT_H_

struct script_data
{
    int  type;
    union
    {
        int  num;
        char *str;
    } u;
};

struct script_stack
{
    int  sp, sp_max;
    struct script_data *stack_data;
};
struct script_state
{
    struct script_stack *stack;
    int  start, end;
    int  pos, state;
    int  rid, oid;
    char *script, *new_script;
    int  defsp, new_pos, new_defsp;
};

unsigned char *parse_script (unsigned char *, int);
typedef struct argrec
{
    char *name;
    union
    {
        int  i;
        char *s;
    } v;
} argrec_t;
int  run_script_l (unsigned char *, int, int, int, int, argrec_t * args);
int  run_script (unsigned char *, int, int, int);

struct dbt *script_get_label_db (void);
struct dbt *script_get_userfunc_db (void);

int  script_config_read (char *cfgName);
int  do_init_script (void);
int  do_final_script (void);

extern char mapreg_txt[];

#endif