view CbC-examples/tmpa.c @ 144:8f4e72ab4e11

fix segmentation fault caused by nothing next cur_op to end
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 21:23:56 +0900
parents 365b84b6fe04
children
line wrap: on
line source

#define __environment _CbC_environment
#define __return _CbC_return

#include <stdio.h>

struct enemy{
    int charno;                 // image number
    float x;                    // x location
    float y;                    // y location
    int ap;                     // armor point
};
void
print_param(struct enemy *e)
{
    printf("#0014:charno:%d   x,y:%f,%f   hp:%d\n",
           e->charno,e->x,e->y,e->ap);
}

typedef struct{
    char  dest;
    int VF01[4];
    __code (*ret)();
    void *env;
} interface;

__code a0(interface a) {
    printf("#0026:%d\n",a.dest);
    goto a.ret(0,a.env);
}


int main(int argc,char *argv[])
{
    struct enemy e;
#if 0
    interface args = {15,{0,0,0,0},return,environment};
#else
    interface args = {15,{0,0,0,0},0,0};
    args.ret = __return;
    args.env = __environment;
#endif

    e.charno=5; e.x=50.0; e.y=30.0; e.ap=100;
    print_param(&e);

    printf("#0045:%d %d\n",args.VF01[2],args.VF01[1]);
    goto  a0(args);
}