New nstr_mksymval() to create symbolic values
This commit is contained in:
parent
da8a1daeef
commit
d1a193ff07
5 changed files with 23 additions and 23 deletions
|
@ -94,12 +94,7 @@
|
|||
static struct valstr *
|
||||
xdeval(struct valstr *val, struct castr *ca, void *ptr, int idx)
|
||||
{
|
||||
val->val_type = ca->ca_type;
|
||||
val->val_cat = NSC_OFF;
|
||||
val->val_as.sym.off = ca->ca_off;
|
||||
val->val_as.sym.len = ca->ca_len;
|
||||
val->val_as.sym.idx = idx;
|
||||
val->val_as.sym.get = ca->ca_get;
|
||||
nstr_mksymval(val, ca, idx);
|
||||
return nstr_exec_val(val, player->cnum, ptr, NSC_NOTYPE);
|
||||
}
|
||||
|
||||
|
|
|
@ -101,13 +101,7 @@ verify_row(int type, int row)
|
|||
do {
|
||||
if (ca[i].ca_table == EF_BAD)
|
||||
continue;
|
||||
/* FIXME use xdeval() */
|
||||
val.val_type = ca[i].ca_type;
|
||||
val.val_cat = NSC_OFF;
|
||||
val.val_as.sym.off = ca[i].ca_off;
|
||||
val.val_as.sym.len = ca[i].ca_len;
|
||||
val.val_as.sym.idx = j;
|
||||
val.val_as.sym.get = ca[i].ca_get;
|
||||
nstr_mksymval(&val, &ca[i], j);
|
||||
nstr_exec_val(&val, 0, row_ref, NSC_NOTYPE);
|
||||
if (val.val_type != NSC_LONG)
|
||||
continue;
|
||||
|
|
|
@ -42,6 +42,21 @@
|
|||
#include "nsc.h"
|
||||
#include "optlist.h"
|
||||
|
||||
/*
|
||||
* Initialize VAL to symbolic value for selector CA with index IDX.
|
||||
* Return VAL.
|
||||
*/
|
||||
struct valstr *
|
||||
nstr_mksymval(struct valstr *val, struct castr *ca, int idx)
|
||||
{
|
||||
val->val_type = ca->ca_type;
|
||||
val->val_cat = NSC_OFF;
|
||||
val->val_as.sym.off = ca->ca_off;
|
||||
val->val_as.sym.len = ca->ca_len;
|
||||
val->val_as.sym.idx = idx;
|
||||
val->val_as.sym.get = ca->ca_get;
|
||||
return val;
|
||||
}
|
||||
|
||||
/*
|
||||
* Evaluate VAL.
|
||||
|
|
|
@ -427,13 +427,7 @@ nstr_resolve_sel(struct valstr *val, struct castr *ca)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
val->val_type = ca->ca_type;
|
||||
val->val_cat = NSC_OFF;
|
||||
val->val_as.sym.off = ca->ca_off;
|
||||
val->val_as.sym.len = ca->ca_len;
|
||||
val->val_as.sym.idx = 0;
|
||||
val->val_as.sym.get = ca->ca_get;
|
||||
return val;
|
||||
return nstr_mksymval(val, ca, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue