# HG changeset patch # User koba # Date 1295615908 -32400 # Node ID f4140672ef9f4e5a4b6cca1862ddea807624a6bc # Parent e01948ce859a73c307d481c89201a6bd45abd95a fix. diff -r e01948ce859a -r f4140672ef9f Dandy.cc --- a/Dandy.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/Dandy.cc Fri Jan 21 22:18:28 2011 +0900 @@ -31,8 +31,8 @@ #include "Character_state.h" static int use_keybord = 0; -static int cdp[20] = { 16, 16, 16, 17, 18, 0 }; -static int d, i; +//static int cdp[20] = { 16, 16, 16, 17, 18, 0 }; +static int i; static int rswait = 0; static int cf = 0; @@ -354,10 +354,10 @@ Putbom(); tokuten(); - count++; + //count++; //PutSprite(count, 0, 960 - 96, 10); /*インフレゲージ */ - count++; + //count++; //PutSprite(count, 0, 0, 48); obj_draw(); @@ -380,6 +380,10 @@ } else if (runmode == 2) { PadfileClose(first); } + SDL_Event usr_event; + usr_event.type = SDL_QUIT; + + SDL_PushEvent(&usr_event); //_______________________________________________ // SDL_mixerの後始末 @@ -458,7 +462,7 @@ PutSprite(count, 640, 640, 192); //PutSpriteEx(count, 8192, 8192, 0); - if (pad[0].st > 1) { + if ((pad[0].st > 1)||(runmode == 2)) { jiki.bf = TRUE; //CdPlay(1,&cdp[0],0); @@ -477,7 +481,6 @@ static int game_pause(int gamef) { - gamef = 3; if (jiki.zanki != 0 && jiki.bf != FALSE) { if (pad[0].se == 1) { //Mix_Pause(BGM); diff -r e01948ce859a -r f4140672ef9f Makefile.def --- a/Makefile.def Sat Jan 15 19:13:03 2011 +0900 +++ b/Makefile.def Fri Jan 21 22:18:28 2011 +0900 @@ -7,7 +7,7 @@ ABIBIT = 32 ABI = -m$(ABIBIT) CC = g++ -OPT = -pg +OPT = -g CFLAGS = -Wall $(OPT) $(ABI) diff -r e01948ce859a -r f4140672ef9f TaskDandy.cc --- a/TaskDandy.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/TaskDandy.cc Fri Jan 21 22:18:28 2011 +0900 @@ -33,8 +33,8 @@ #include "state_task.h" static int use_keybord = 0; -static int cdp[20] = { 16, 16, 16, 17, 18, 0 }; -static int d, i; +//static int cdp[20] = { 16, 16, 16, 17, 18, 0 }; +static int i; static int rswait = 0; static int cf = 0; @@ -355,15 +355,18 @@ //charpatern(); //bosguage(); - count++; + //count++; //PutSprite(count, 0, 960 - 96, 10); /*インフレゲージ */ - count++; + //count++; //PutSprite(count, 0, 0, 48); obj_draw(); gamef = game_pause(gamef); + filpcount++; + count = 0; + KeyAssign(runmode, t_buff, joy, pad); return gamef; @@ -378,6 +381,10 @@ } else if (runmode == 2) { PadfileClose(first); } + SDL_Event usr_event; + usr_event.type = SDL_QUIT; + + SDL_PushEvent(&usr_event); //_______________________________________________ // SDL_mixerの後始末 @@ -446,8 +453,8 @@ count++; PutSprite(count, 224, 776, 119); // put `super dandy' count++; - // PutSprite(count, 200, 64, 190); - // PutSpriteEx(count, 8192, 8192, 0); + //PutSprite(count, 200, 64, 190); + //PutSpriteEx(count, 8192, 8192, 0); PutSpriteEx(190, 800, 264, 2, 2, 5); count++; PutSprite(count, 396, 432, 191); @@ -456,7 +463,7 @@ PutSprite(count, 640, 640, 192); //PutSpriteEx(count, 8192, 8192, 0); - if (pad[0].st > 1) { + if ((pad[0].st > 1)||(runmode == 2)) { jiki.bf = TRUE; //CdPlay(1,&cdp[0],0); @@ -475,7 +482,6 @@ static int game_pause(int gamef) { - gamef = 3; if (jiki.zanki != 0 && jiki.bf != FALSE) { if (pad[0].se == 1) { //Mix_Pause(BGM); @@ -531,7 +537,7 @@ } SDL_Delay(100); PutSprite(1, 640, 640, 29 - cc / 60); - // PutSpriteEx(1, 409 * ((cc % 60) + 1), 409 * ((cc % 60) + 1), 0); + //PutSpriteEx(1, 409 * ((cc % 60) + 1), 409 * ((cc % 60) + 1), 0); Pad(joy); flip(); // this is not correct diff -r e01948ce859a -r f4140672ef9f main.c --- a/main.c Sat Jan 15 19:13:03 2011 +0900 +++ b/main.c Fri Jan 21 22:18:28 2011 +0900 @@ -365,7 +365,7 @@ PutSprite(count, 640, 640, 192); //PutSpriteEx(count, 8192, 8192, 0); - if (pad[0].st > 1) { + if ((pad[0].st > 1)||(runmode == 2)) { jiki.bf = TRUE; //CdPlay(1,&cdp[0],0); diff -r e01948ce859a -r f4140672ef9f spe/Atari.h --- a/spe/Atari.h Sat Jan 15 19:13:03 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -#ifndef INCLUDE_COLLISION -#define INCLUDE_COLLISION - -#ifndef INCLUDED_SCHED_TASK -#include "SchedTask.h" -#endif - -#endif diff -r e01948ce859a -r f4140672ef9f spe/Enemy.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/Enemy.cc Fri Jan 21 22:18:28 2011 +0900 @@ -0,0 +1,15 @@ +#include "task_object.h" +#include "../ObjectType.h" + + +void +Putenemy(int charano, float x, float y, float vx, float vy, int task, ObjDataPtr obj) +{ + obj->type = Enemy; + obj->charano = charano; + obj->x = x; + obj->y = y; + obj->vx = vx; + obj->vy = vy; + obj->task = task; +} diff -r e01948ce859a -r f4140672ef9f spe/Makefile --- a/spe/Makefile Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/Makefile Fri Jan 21 22:18:28 2011 +0900 @@ -14,13 +14,13 @@ .SUFFIXES: .cc .o .cc.o: - $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ + $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ all: $(TARGET) $(TARGET): $(OBJS) - $(CC) -o $@ $(OBJS) $(TASK_OBJS) $(LIBS) + $(CC) -o $@ $(OBJS) $(TASK_OBJS) $(LIBS) clean: - rm -f $(TARGET) $(OBJS) - rm -f *~ \#* \ No newline at end of file + rm -f $(TARGET) $(OBJS) + rm -f *~ \#* \ No newline at end of file diff -r e01948ce859a -r f4140672ef9f spe/Player.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/Player.cc Fri Jan 21 22:18:28 2011 +0900 @@ -0,0 +1,20 @@ +#include "task_base.h" + +extern void Player(int playerno); +extern void tokuten(); +extern void Putbom(); + +SchedDefineTask1(Player, Player); + +static int +Player(SchedTask *smanager, void *rbuf, void *wbuf) +{ + int playerno = (int)smanager->get_param(0); + + Player(playerno); + + tokuten(); + Putbom(); + + return 0; +} diff -r e01948ce859a -r f4140672ef9f spe/Sankaku.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/Sankaku.h Fri Jan 21 22:18:28 2011 +0900 @@ -0,0 +1,8 @@ +#include + +#define SANKAKU (100000.0) + +static const double pi2 = M_PI * 2.0; + +static inline float Mycos(float c) { return cosf( c / 360.0 * pi2 ) * SANKAKU; } +static inline float Mysin(float c) { return sinf( c / 360.0 * pi2 ) * SANKAKU; } diff -r e01948ce859a -r f4140672ef9f spe/SimpleState.cc --- a/spe/SimpleState.cc Sat Jan 15 19:13:03 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -#include "SimpleState.h" -#include "Character_state.h" -#include "tobject.h" - -SchedDefineTask(SimpleState); - -static int -run(SchedTask *smanager, void *rbuf, void *wbuf) -{ - CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - p = (*p->state)(p); - - smanager->swap(); - return 0; -} diff -r e01948ce859a -r f4140672ef9f spe/SimpleState.h --- a/spe/SimpleState.h Sat Jan 15 19:13:03 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -#ifndef INCLUDE_SIMPLE_STATE -#define INCLUDE_SIMPLE_STATE - -#ifndef INCLUDED_SCHED_TASK -#include "SchedTask.h" -#endif - -#endif diff -r e01948ce859a -r f4140672ef9f spe/Sprite.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/Sprite.cc Fri Jan 21 22:18:28 2011 +0900 @@ -0,0 +1,47 @@ +#include +#include "task_object.h" +#include "../ObjectType.h" + +void +DefSprite(int number, float w, float h, int color, ObjDataPtr obj) +{ + obj->type = Def; + obj->number = number; + obj->w = w; + obj->h = h; + obj->color = color; +} + + +void +DefSpriteEx(int number, short middlex, short middley, ObjDataPtr obj) +{ + obj->type = DefEx; + obj->number = number; + obj->middlex = middlex; + obj->middley = middley; +} + + +void +PutSprite(int zorder, short x, short y, int number, ObjDataPtr obj) +{ + obj->type = Put; + obj->zorder = zorder; + obj->x = x; + obj->y = y; + obj->number = number; +} + + +void +PutSpriteEx(int number, int x, int y, float scalex, float scaley, float angle, ObjDataPtr obj) +{ + obj->type = PutEx; + obj->number = number; + obj->x = x; + obj->y = y; + obj->scalex = scalex; + obj->scaley = scaley; + obj->angle = angle; +} diff -r e01948ce859a -r f4140672ef9f spe/chara_state0.cc --- a/spe/chara_state0.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state0.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,10 +1,10 @@ -#include "chara_state0.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE0); +SchedDefineTask1(State0, state0); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state0(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); diff -r e01948ce859a -r f4140672ef9f spe/chara_state1.cc --- a/spe/chara_state1.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state1.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,10 +1,10 @@ -#include "chara_state1.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE1); +SchedDefineTask1(State1, state1); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state1(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); diff -r e01948ce859a -r f4140672ef9f spe/chara_state10.cc --- a/spe/chara_state10.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state10.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,24 +1,34 @@ -#include "chara_state10.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE10); +SchedDefineTask1(State10, state10); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state10(SchedTask *smanager, void *rbuf, void *wbuf) { + int rinkx = (int)smanager->get_param(0); + int rinky = (int)smanager->get_param(1); + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + if(p->dt1 < 48) { p->x += p->vx; p->y += p->vy; p->dt1++; + p->task = STATE10; + *q = *p; return 0; } - rinkf1 = 1; + int *w_rinkf1 = (int*)smanager->get_output(wbuf, 1); + + *w_rinkf1 = 1; p->dt1 = rinkx; p->dt2 = rinky; + p->task = STATE13; + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state11.cc --- a/spe/chara_state11.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state11.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,23 +1,43 @@ -#include "chara_state11.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE11); +SchedDefineTask1(State11, state11); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state11(SchedTask *smanager, void *rbuf, void *wbuf) { + int rinkf1 = (int)smanager->get_param(0); + int count = (int)smanager->get_param(1); + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); if(rinkf1 == 0) { + length = 2; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + count++; - DefSpriteEx(54, 16, 32); - PutSpriteEx(54, p->x, p->y, p->s, p->s, 1); + DefSpriteEx(54, 16, 32, &sprite->data[0]); + PutSpriteEx(54, p->x, p->y, p->s, p->s, 1, &sprite->data[1]); + p->task = STATE11; + *w_count = count; + *q = *p; return 0; } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->dt1 = 0; p->dt2 = 0; + p->task = STATE12; + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state12.cc --- a/spe/chara_state12.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state12.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,131 +1,212 @@ -#include "chara_state12.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE12); +SchedDefineTask1(State12, state12); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state12(SchedTask *smanager, void *rbuf, void *wbuf) { + int fastebos = (int)smanager->get_param(0); + int count = (int)smanager->get_param(1); + int rinkx = (int)smanager->get_param(2); + int rinky = (int)smanager->get_param(3); + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int length; + int rinkf2; + int index_count = 0; - if(fastebos > 60*60) - { - if(p->y > 240+32) - { - p->state = delete_chara; + if (fastebos > 60*60) { + length = 2; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 3); + int *w_rinky = (int*)smanager->get_output(wbuf, 4); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6); + sprite->flag = true; + sprite->length = length; + + if (p->y > 240+32) { + p->task = DELETE_CHARA; } p->y += 3; rinky += 3; count++; - DefSpriteEx(54, 16, 32); - PutSpriteEx(54, p->x, p->y, 2, 2, 1); - p->state = chara_state12; + + DefSpriteEx(54, 16, 32, &sprite->data[index_count]); + index_count++; + PutSpriteEx(54, p->x, p->y, 2, 2, 1, &sprite->data[index_count]); + p->task = STATE12; + + *w_rinky = rinky; + *w_count = count; + *q = *p; return 0; } - if(p->dt1 <= 60) - { - if(jiki.x + 15 - rinkx < -5) - { + + player *jiki = (player*)smanager->get_input(rbuf, 1); + + if (p->dt1 <= 60) { + length = 2; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + if (jiki->x + 15 - rinkx < -5) { p->vx = -0.8; + } else if(jiki->x + 15 - rinkx > 5) { + p->vx = +0.8; + } else { + p->vx = 0; } - else if(jiki.x + 15 - rinkx > 5) - { - p->vx = +0.8; - } - else p->vx = 0; rinkx = p->x; rinky = p->y; } - if((p->dt1 > 60) && (p->dt1 <= 70)) - { - if(p->dt1 % 2 == 1) - { - Puttama(0, rinkx - 16, rinky); - Puttama(0, rinkx, rinky); - Puttama(0, rinkx + 16, rinky); + + if ((p->dt1 > 60) && (p->dt1 <= 70)) { + if(p->dt1 % 2 == 1) { + length = 5; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6); + sprite->flag = true; + sprite->length = length; + + Puttama(0, rinkx - 16, rinky, &sprite->data[index_count]); + index_count++; + Puttama(0, rinkx, rinky, &sprite->data[index_count]); + index_count++; + Puttama(0, rinkx + 16, rinky, &sprite->data[index_count]); + index_count++; + } else { + length = 2; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); } } - if((p->dt1 > 180) && (p->dt1 <= 240)) - { - if(p->dt1 % 2 == 1) - { - rinkf2 = 1; - Puttama(2, rinkx - 16, p->y - 32); - Puttama(3, rinkx + 32 - 16, p->y - 32); - } - else - { - rinkf2 = 2; - } - } - if(p->dt1 > 240) - { - rinkf2 = 2; - } - if((p->dt1 > 240) && (p->dt1 <= 400)) - { - count++; - PutSprite(count, rinkx - 16, rinky + 32, - 58 + p->dt1 % 4); - } - if((p->dt1 > 300) && (p->dt1 <= 400)) - { - rinkf2 = 3; - if(jiki.x + 15 - rinkx < -5) - { + + if ((p->dt1 > 70) && (p->dt1 <= 180)) { + length = 2; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + } + + if ((p->dt1 > 180) && (p->dt1 <= 240)) { + if (p->dt1 % 2 == 1) { + length = 4; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6); + + rinkf2 = 1; + Puttama(2, rinkx - 16, p->y - 32, &sprite->data[index_count]); + index_count++; + Puttama(3, rinkx + 32 - 16, p->y - 32, &sprite->data[index_count]); + index_count++; + } else { + length = 2; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + rinkf2 = 2; + } + } + + if (p->dt1 > 240) { + rinkf2 = 2; + } + + if ((p->dt1 > 240) && (p->dt1 <= 400)) { + length = 4; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6); + + count++; + PutSprite(count, rinkx - 16, rinky + 32, 58 + p->dt1 % 4, &sprite->data[index_count]); + index_count++; + + if (p->dt1 > 300) { + rinkf2 = 3; + if(jiki->x + 15 - rinkx < -5) { + p->vx = -1; + } else if (jiki->x + 15 - rinkx > 5) { + p->vx = +1; + } else { + p->vx = 0; + } + p->x += p->vx; + rinkx = p->x; + rinky = p->y; + Puttama(4, rinkx - 8, rinky + 16, &sprite->data[index_count]); + index_count++; + } + } + + if (p->dt1 > 400) { + length = 2; + smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + } + + if ((p->dt1 > 400) && (p->dt1 <= 500)) { + rinkf2 = 4; + if (jiki->x + 15 - rinkx > 5) { p->vx = -1; + } else if (jiki->x + 15 - rinkx > 5) { + p->vx = +1; + } else { + p->vx = 0; } - else if(jiki.x + 15 - rinkx > 5) - { - p->vx = +1; - } - else p->vx = 0; p->x += p->vx; rinkx = p->x; rinky = p->y; - Puttama(4, rinkx - 8, rinky + 16); } - if((p->dt1 > 400) && (p->dt1 <= 500)) - { - rinkf2 = 4; - if(jiki.x + 15 - rinkx > 5) - { - p->vx = -1; + + if (p->dt1 > 500) { + rinkf2 = 5; + if (jiki->x + 15 - rinkx < -5) { + p->vx = -1; + } else if(jiki->x + 15 - rinkx > 5) { + p->vx = +1; + } else { + p->vx = 0; } - else if(jiki.x + 15 - rinkx > 5) - { - p->vx = +1; - } - else p->vx = 0; - p->x += p->vx; - rinkx = p->x; - rinky = p->y; - } - if(p->dt1 > 500) - { - rinkf2 = 5; - if(jiki.x + 15 - rinkx < -5) - { - p->vx = -1; - } - else if(jiki.x + 15 - rinkx > 5) - { - p->vx = +1; - } - else p->vx = 0; - p->x += p->vx; - rinkx = p->x; - rinky = p->y; - } - if(p->dt1 > 600) - { - rinkf2 = 0; - p->dt1 = 0; - } - fastebos++; - p->dt1++; - count++; - DefSpriteEx(54, 16, 32); - PutSpriteEx(54, p->x, p->y, 2, 2, 1); - return 0; + p->x += p->vx; + rinkx = p->x; + rinky = p->y; + } + if (p->dt1 > 600) { + rinkf2 = 0; + p->dt1 = 0; + } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + int *w_fastebos = (int*)smanager->get_output(wbuf, 2); + int *w_rinkx = (int*)smanager->get_output(wbuf, 3); + int *w_rinky = (int*)smanager->get_output(wbuf, 4); + int *w_rinkf2 = (int*)smanager->get_output(wbuf, 5); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6); + sprite->flag = true; + sprite->length = length; + + fastebos++; + p->dt1++; + count++; + + DefSpriteEx(54, 16, 32, &sprite->data[index_count]); + index_count++; + PutSpriteEx(54, p->x, p->y, 2, 2, 1, &sprite->data[index_count]); + + *q = *p; + *w_count = count; + *w_fastebos = fastebos; + *w_rinkx = rinkx; + *w_rinky = rinky; + *w_rinkf2 = rinkf2; + return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state13.cc --- a/spe/chara_state13.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state13.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,20 +1,48 @@ -#include "chara_state13.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE13); +SchedDefineTask1(State13, state13); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state13(SchedTask *smanager, void *rbuf, void *wbuf) { + int rinkx = (int)smanager->get_param(0); + int rinky = (int)smanager->get_param(1); + int filpcount = (int)smanager->get_param(2); + int flag = (int)smanager->get_param(3); + int count = (int)smanager->get_param(4); + + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int rinkf2 = *(int*)smanager->get_input(rbuf, 1); - if(tekino0->f == FALSE){ - Bom(p->x, p->y); + if(flag == FALSE){ + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Bom(p->x, p->y, &sprite->data[0]); p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *w_count = count; + *q = *p; return 0; } + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = false; p->x += rinkx - p->dt1; p->y += rinky - p->dt2; @@ -24,28 +52,41 @@ { if(p->x > rinkx) { - Puttama(2, p->x + 32, p->y); + sprite->flag = true; + sprite->length = length; + Puttama(2, p->x + 32, p->y, &sprite->data[0]); } if(p->x < rinkx) { - Puttama(3, p->x, p->y); + sprite->flag = true; + sprite->length = length; + Puttama(3, p->x, p->y, &sprite->data[0]); } } if(rinkf2 == 4) { + sprite->flag = true; + sprite->length = length; count++; - PutSprite(count, p->x, p->y + 56, 58+filpcount % 4); + PutSprite(count, p->x, p->y + 56, 58+filpcount % 4, &sprite->data[0]); } if(rinkf2 == 5) { if(p->x > rinkx) { - Puttama(5, p->x + 8, p->y + 24); + sprite->flag = true; + sprite->length = length; + Puttama(5, p->x + 8, p->y + 24, &sprite->data[0]); } if(p->x < rinkx) { - Puttama(5, p->x + 8, p->y + 24); + sprite->flag = true; + sprite->length = length; + Puttama(5, p->x + 8, p->y + 24, &sprite->data[0]); } } + + *q = *p; + *w_count = count; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state2.cc --- a/spe/chara_state2.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state2.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,10 +1,10 @@ -#include "chara_state2.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE2); +SchedDefineTask1(State2, state2); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state2(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); diff -r e01948ce859a -r f4140672ef9f spe/chara_state20.cc --- a/spe/chara_state20.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state20.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,10 +1,10 @@ -#include "chara_state20.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE20); +SchedDefineTask1(State20, state20); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state20(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); @@ -12,5 +12,8 @@ p->y += p->vy; p->vy -= 0.5; p->vy += 0.4; + + p->task = STATE20; + smanager->swap(); return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state21.cc --- a/spe/chara_state21.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state21.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,10 +1,10 @@ -#include "chara_state21.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE21); +SchedDefineTask1(State21, state21); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state21(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); @@ -12,5 +12,8 @@ p->y += p->vy; p->vx += 0.5; p->vy += 0.4; + + p->task = STATE21; + smanager->swap(); return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state22.cc --- a/spe/chara_state22.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state22.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,39 +1,41 @@ -#include "chara_state22.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE22); +SchedDefineTask1(State22, state22); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state22(SchedTask *smanager, void *rbuf, void *wbuf) { + int rand = (int)smanager->get_param(0); + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - int sf; - - sf = rand() % 4; + int sf = rand % 4; if((sf == 0) || (sf == 1)) { p->x = -35; - p->y = rand() % (120 - 35); - p->vx = (rand() % 4 + 1); - p->vy = rand() % 3 + 1; + p->y = rand % (120 - 35); + p->vx = (rand % 4 + 1); + p->vy = rand % 3 + 1; p->task = STATE23; } if((sf == 2)) { - p->x = rand() % 290; + p->x = rand % 290; p->y = -30; - p->vx = rand() % 3 - 1; - p->vy = (rand() % 4 + 1); + p->vx = rand % 3 - 1; + p->vy = (rand % 4 + 1); p->task = STATE23; } if(sf == 3) { p->x = 320; - p->y = rand() % (120 - 35); - p->vx = (rand() % 4 + 1) * -1; - p->vy = rand() % 3 -1; + p->y = rand % (120 - 35); + p->vx = (rand % 4 + 1) * -1; + p->vy = rand % 3 -1; p->task = STATE23; } + + smanager->swap(); return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state25.cc --- a/spe/chara_state25.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state25.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,14 +1,32 @@ -#include "chara_state25.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" +#include "Sankaku.h" -SchedDefineTask(STATE25); +SchedDefineTask1(State25, state25); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state25(SchedTask *smanager, void *rbuf, void *wbuf) { + int length = 1; + int amari; + + int part1_f = (int)smanager->get_param(0); + int part5_f = (int)smanager->get_param(1); + int rand = (int)smanager->get_param(2); + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int count = *(int*)smanager->get_input(rbuf, 1); - int amari; + smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + int *rinkx = (int*)smanager->get_output(wbuf, 2); + int *rinkf1 = (int*)smanager->get_output(wbuf, 3); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4); + sprite->flag = true; + sprite->length = length; if(p->dt1 <= 360) { @@ -21,21 +39,24 @@ p->y = Mysin(p->dt1) * 30 / SANKAKU + 30; } count++; - PutSprite(count, p->x - 42, p->y, 64); - amari = rand() % 160; - if((amari == 1) && (enemy_part5->f == TRUE)) + *w_count = count; + PutSprite(count, p->x - 42, p->y, 64, &sprite->data[0]); + amari = rand % 160; + if((amari == 1) && (part5_f == TRUE)) { p->task = STATE26; - rinkf1 = 1; + *rinkf1 = 1; } - if((amari == 2) && (enemy_part1->f == TRUE)) + if((amari == 2) && (part1_f == TRUE)) { p->task = STATE27; - rinkf1 = 5; - rinkx = 0; + *rinkf1 = 5; + *rinkx = 0; + + *q = *p; return 0; } - if((enemy_part5->f == TRUE) && (enemy_part1->f != TRUE)) + if((part5_f == TRUE) && (part1_f != TRUE)) { p->task = STATE28; } @@ -44,5 +65,7 @@ { p->dt1 = 0; } + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state26.cc --- a/spe/chara_state26.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state26.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,34 +1,50 @@ -#include "chara_state26.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE26); +SchedDefineTask1(State26, state26); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state26(SchedTask *smanager, void *rbuf, void *wbuf) { + int length = 1; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int count = *(int*)smanager->get_input(rbuf, 1); + + smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + int *rinkf1 = (int*)smanager->get_output(wbuf, 3); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4); + sprite->flag = true; + sprite->length = length; if((p->dt2 > 50) && (p->dt2 < 100)) { - rinkf1 = 2; + *rinkf1 = 2; } if(p->dt2 > 100) { - rinkf1 = 3; + *rinkf1 = 3; } if(p->dt2 == 400) { - rinkf1 = 4; + *rinkf1 = 4; } count++; - PutSprite(count, p->x - 42, p->y, 64); + *w_count = count; + PutSprite(count, p->x - 42, p->y, 64, &sprite->data[0]); if(p->dt2 == 401) { p->dt2 = 0; - rinkf1 = 0; + *rinkf1 = 0; + p->task = STATE25; + *q = *p; return 0; } p->dt2++; + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state27.cc --- a/spe/chara_state27.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state27.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,12 +1,27 @@ -#include "chara_state27.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE27); +SchedDefineTask1(State27, state27); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state27(SchedTask *smanager, void *rbuf, void *wbuf) { + int length = 1; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int count = *(int*)smanager->get_input(rbuf, 1); + int rinkx = *(int*)smanager->get_input(rbuf, 2); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); + + smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + int *w_rinkx = (int*)smanager->get_output(wbuf, 2); + int *w_rinkf1 = (int*)smanager->get_output(wbuf, 3); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4); + sprite->flag = true; + sprite->length = length; if((p->dt2 > 50) && (p->dt2 < 60) && (p->x > -24) && (p->y > -24)) { @@ -49,15 +64,25 @@ } } count++; - PutSprite(count, p->x - 32, p->y, 6); + PutSprite(count, p->x - 32, p->y, 6, &sprite->data[0]); if(rinkf1 == 12) { p->dt2 = 0; rinkf1 = 0; rinkx = 0; + p->task = STATE25; + *q = *p; + *w_count = count; + *w_rinkx = rinkx; + *w_rinkf1 = rinkf1; return 0; } p->dt2++; + + *q = *p; + *w_count = count; + *w_rinkx = rinkx; + *w_rinkf1 = rinkf1; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state28.cc --- a/spe/chara_state28.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state28.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,12 +1,25 @@ -#include "chara_state28.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" +#include "Sankaku.h" -SchedDefineTask(STATE28); +SchedDefineTask1(State28, state28); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state28(SchedTask *smanager, void *rbuf, void *wbuf) { + int rand = (int)smanager->get_param(2); + + int length = 2; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int count = *(int*)smanager->get_input(rbuf, 1); + + smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4); + sprite->flag = true; if (p->dt1 <= 360) { @@ -19,16 +32,22 @@ p->y = Mysin(p->dt1) * 30 / SANKAKU + 30; } count++; - PutSprite(count, p->x - 42, p->y, 64); + PutSprite(count, p->x - 42, p->y, 64, &sprite->data[0]); if (p->dt1 % 30 == 3) { Putenemy(24, p->x + 14, p->y + 14, - (rand() % 5 + 0.5) * (rand() % 2 == + (rand % 5 + 0.5) * (rand % 2 == 1 ? -1 : 1), - (rand() % 5 + 0.5) * (rand() % 2 == - 1 ? -1 : 1), chara_state29); + (rand % 5 + 0.5) * (rand % 2 == + 1 ? -1 : 1), STATE29, &sprite->data[1]); + } else { + length = 1; } p->dt1 += 3; + + sprite->length = length; + *q = *p; + *w_count = count; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state29.cc --- a/spe/chara_state29.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state29.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,19 +1,31 @@ -#include "chara_state29.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE29); +SchedDefineTask1(State29, state29); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state29(SchedTask *smanager, void *rbuf, void *wbuf) { + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - + p->x += p->vx; p->y += p->vy; if(p->dt1 % 18 == 1) { - Puttama(0, p->x, p->y); + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr tama = (ObjContainerPtr)smanager->get_output(wbuf, 1); + tama->flag = true; + tama->length = length; + + Puttama(0, p->x, p->y, &tama->data[0]); } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->dt1++; + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state3.cc --- a/spe/chara_state3.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state3.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,11 +1,13 @@ -#include "chara_state3.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" +#include "../ObjectType.h" -SchedDefineTask(STATE3); +SchedDefineTask1(State3, state3); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state3(SchedTask *smanager, void *rbuf, void *wbuf) { + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); p->x += p->vx; @@ -14,11 +16,20 @@ (p->dt1 == 90) || (p->dt1 == 30)) { - Puttama(0, p->x, p->y); + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr tama = (ObjContainerPtr)smanager->get_output(wbuf, 1); + tama->flag = true; + tama->length = length; + + Puttama(0, p->x, p->y, &tama->data[0]); } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->dt1++; - p->task = STATE3; - smanager->swap(); + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state30.cc --- a/spe/chara_state30.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state30.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,14 +1,17 @@ -#include "chara_state30.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE30); +SchedDefineTask1(State30, state30); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state30(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); p->x = p->x - 32; p->y = p->y; + + p->task = STATE30; + smanager->swap(); return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state31.cc --- a/spe/chara_state31.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state31.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,19 +1,34 @@ -#include "chara_state31.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE31); +SchedDefineTask1(State31, state31); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state31(SchedTask *smanager, void *rbuf, void *wbuf) { + int part3_f = (int)smanager->get_param(2); + + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1); + int count = *(int*)smanager->get_input(rbuf, 2); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); - if((enemy_part3->f == FALSE) || (kyeenemyno->f == FALSE)) + if((part3_f == FALSE) || (kyeenemyno->f == FALSE)) { - Bom(p->x, p->y); + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Bom(p->x, p->y, &sprite->data[0]); p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *q = *p; return 0; } @@ -25,10 +40,17 @@ } if(rinkf1 == 5) { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + p->x = kyeenemyno->x + 52; p->y = kyeenemyno->y; count++; - PutSprite(count, p->x - 4, p->y - 20, 80 + p->dt2 % 4); + PutSprite(count, p->x - 4, p->y - 20, 80 + p->dt2 % 4, &sprite->data[0]); p->dt2++; } if(rinkf1 == 6) @@ -39,15 +61,34 @@ } else { + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + *q = *p; return 0; } + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + count++; - PutSprite(count, p->x - 4, p->y - 20, 90 + p->dt2 % 4); + + PutSprite(count, p->x - 4, p->y - 20, 90 + p->dt2 % 4, &sprite->data[0]); p->dt2++; } if(rinkf1 == 7) { - Putenemy(22, p->x + 14, p->y + 14, 0, 0, chara_state40); + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Putenemy(22, p->x + 14, p->y + 14, 0, 0, STATE40, &sprite->data[0]); + *q = *p; return 0; } if(rinkf1 == 11) @@ -58,11 +99,25 @@ } else { + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + *q = *p; return 0; } + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + count++; - PutSprite(count, p->x + 8, p->y + 44, 58 + p->dt2 % 4); + PutSprite(count, p->x + 8, p->y + 44, 58 + p->dt2 % 4, &sprite->data[0]); p->dt2++; } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + + *q = *p; + *w_count = count; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state32.cc --- a/spe/chara_state32.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state32.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,20 +1,36 @@ -#include "chara_state32.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE32); +SchedDefineTask1(State32, state32); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state32(SchedTask *smanager, void *rbuf, void *wbuf) { + int part4_f = (int)smanager->get_param(3); + int enemystate_14 = (int)smanager->get_param(4); + int enemystate_20 = (int)smanager->get_param(5); + + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - - if ((enemy_part4->f == FALSE) + CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); + + if ((part4_f == FALSE) || (kyeenemyno->f == FALSE)) { - Bom(p->x, p->y); + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Bom(p->x, p->y, &sprite->data[0]); p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *q = *p; return 0; } p->x = kyeenemyno->x - 40; @@ -23,17 +39,30 @@ { p->x = kyeenemyno->x - 24 + 4; p->y = kyeenemyno->y + 28; - p->charano = enemystate[20].charano; + p->charano = enemystate_20; } if (rinkf1 == 11) { - p->charano = enemystate[14].charano; + p->charano = enemystate_14; } - if (rinkf1 == 7) - { - Putenemy(23, p->x + 14, - p->y + 14, 0, 0, chara_state41); - return 0; - } - return 0; + if (rinkf1 == 7) + { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Putenemy(23, p->x + 14, + p->y + 14, 0, 0, STATE41, &sprite->data[0]); + + *q = *p; + return 0; + } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + *q = *p; + return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state33.cc --- a/spe/chara_state33.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state33.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,19 +1,35 @@ -#include "chara_state33.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE33); +SchedDefineTask1(State33, state33); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state33(SchedTask *smanager, void *rbuf, void *wbuf) { + int enemystate_11 = (int)smanager->get_param(4); + int enemystate_19 = (int)smanager->get_param(5); + + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); if (kyeenemyno->f == FALSE) { - Bom(p->x, p->y); + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Bom(p->x, p->y, &sprite->data[0]); p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *q = *p; return 0; } p->x = kyeenemyno->x + 32; @@ -22,11 +38,12 @@ { p->x = kyeenemyno->x + 32 - 4; p->y = kyeenemyno->y; - p->charano = enemystate[19].charano; + p->charano = enemystate_19; } if (rinkf1 == 6) { - p->charano = enemystate[11].charano; + p->charano = enemystate_11; } + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state34.cc --- a/spe/chara_state34.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state34.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,30 +1,47 @@ -#include "chara_state34.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE34); +SchedDefineTask1(State34, state34); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state34(SchedTask *smanager, void *rbuf, void *wbuf) { + int enemystate_12 = (int)smanager->get_param(4); + int enemystate_21 = (int)smanager->get_param(5); + + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); if (kyeenemyno->f == FALSE) { - Bom(p->x, p->y); + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Bom(p->x, p->y, &sprite->data[0]); p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *q = *p; return 0; } p->x = kyeenemyno->x - 32; p->y = kyeenemyno->y; if (rinkf1 == 5) { - p->charano = enemystate[21].charano; + p->charano = enemystate_21; } if (rinkf1 == 6) { - p->charano = enemystate[12].charano; + p->charano = enemystate_12; } + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state35.cc --- a/spe/chara_state35.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state35.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,60 +1,97 @@ -#include "chara_state35.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE35); +SchedDefineTask1(State35, state35); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state35(SchedTask *smanager, void *rbuf, void *wbuf) { + int enemystate_15 = (int)smanager->get_param(4); + int enemystate_16 = (int)smanager->get_param(5); + + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1); + int count = *(int*)smanager->get_input(rbuf, 2); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); if (kyeenemyno->f == FALSE) { - Bom(p->x, p->y); + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Bom(p->x, p->y, &sprite->data[0]); p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *q = *p; return 0; } p->x = kyeenemyno->x; p->y = kyeenemyno->y + 32; if (rinkf1 == 1) { - p->charano = enemystate[16].charano; + p->charano = enemystate_16; } if (rinkf1 == 2) { + length = 2; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + count++; PutSprite(count, p->x - 10, p->y + 16, - 58 + p->dt2 % 4); + 58 + p->dt2 % 4, &sprite->data[0]); count++; PutSprite(count, p->x + 10, p->y + 16, - 58 + p->dt2 % 4); + 58 + p->dt2 % 4, &sprite->data[1]); p->dt2++; } if (rinkf1 == 3) { + length = 4; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + count++; PutSprite(count, p->x - 10, p->y + 16, - 58 + p->dt2 % 4); + 58 + p->dt2 % 4, &sprite->data[0]); count++; PutSprite(count, p->x + 10, p->y + 16, - 58 + p->dt2 % 4); + 58 + p->dt2 % 4, &sprite->data[1]); if (p->dt2 % 20 == 1) { - Puttama(7, p->x, p->y + 16); + Puttama(7, p->x, p->y + 16, &sprite->data[2]); Puttama(7, p->x + 20, - p->y + 16); + p->y + 16, &sprite->data[3]); + } else { + length = 2; } + sprite->length = length; p->dt2++; } if (rinkf1 == 4) { - p->charano = enemystate[15].charano; + p->charano = enemystate_15; p->dt2 = 0; } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + + *w_count = count; + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state4.cc --- a/spe/chara_state4.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state4.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,22 +1,25 @@ -#include "chara_state3.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE4); +SchedDefineTask1(State4, state4); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state4(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + player *jiki = (player*)smanager->get_input(rbuf, 1); p->y += p->vy; p->x += p->vx; - if(p->y < jiki.y && p->y + 16 > jiki.y) + if(p->y < jiki->y && p->y + 16 > jiki->y) { p->vy = -2; - p->vx = ((jiki.x > p->x) ? 4 : -4); + p->vx = ((jiki->x > p->x) ? 4 : -4); p->task = STATE7; } else p->task = STATE4; - smanager->swap(); + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state40.cc --- a/spe/chara_state40.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state40.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,31 +1,46 @@ -#include "chara_state40.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE40); +SchedDefineTask1(State40, state40); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state40(SchedTask *smanager, void *rbuf, void *wbuf) { + int enemy_part1_f = (int)smanager->get_param(0); + + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); - if (enemy_part1->f == FALSE) + if (enemy_part1_f == FALSE) { - Bom(p->x, p->y); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); +// Bom(p->x, p->y); p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *q = *p; return 0; } if ((rinkf1 == 8) && (p->dt1 % 3 == 1)) { if ((p->dt2 < 16)) { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + p->dt2++; - DefSprite(76, "boss2_rightarm_b", 16, p->dt2, 480, boss); + DefSprite(76, 16, p->dt2, 480, &sprite->data[0]); } else { - // rinkf1=9; + //rinkf1=9; + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + *q = *p; return 0; } } @@ -33,24 +48,41 @@ { if (p->dt1 % 15 == 1) { - Puttama(8, p->x, p->y); + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Puttama(8, p->x, p->y, &sprite->data[0]); } } if (rinkf1 == 10) { if (p->dt2 != 0) { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + p->dt2--; - DefSprite(76, "boss2_rightarm_b", 16, p->dt2, 480, boss); + DefSprite(76, 16, p->dt2, 480, &sprite->data[0]); } else { + //rinkf1=11; p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; - // rinkf1=11; + p->task = DELETE_CHARA; } } + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); p->dt1++; + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state400.cc --- a/spe/chara_state400.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state400.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,15 +1,17 @@ -#include "chara_state400.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE400); +SchedDefineTask1(State400, state400); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state400(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); p->vy++; p->y += p->vy / 4; p->task = STATE400; + + smanager->swap(); return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state401.cc --- a/spe/chara_state401.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state401.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,24 +1,37 @@ -#include "chara_state401.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE401); +SchedDefineTask1(State401, state401); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state401(SchedTask *smanager, void *rbuf, void *wbuf) { + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - + player *jiki = (player*)smanager->get_input(rbuf, 1); + p->vx++; p->x += p->vx / 8; - if (p->x > (jiki.x - 32)) + if (p->x > (jiki->x - 32)) { p->vy--; } p->y += p->vy / 8; if (p->dt1 % 50 == 37) { - Puttama(1, p->x + 8, p->y + 24); + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr tama = (ObjContainerPtr)smanager->get_output(wbuf, 1); + tama->flag = true; + tama->length = length; + + Puttama(1, p->x + 8, p->y + 24, &tama->data[0]); } p->dt1++; + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state402.cc --- a/spe/chara_state402.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state402.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,24 +1,37 @@ -#include "chara_state402.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE402); +SchedDefineTask1(State402, state402); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state402(SchedTask *smanager, void *rbuf, void *wbuf) { + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + player *jiki = (player*)smanager->get_input(rbuf, 1); p->vx--; p->x += p->vx / 8; - if (p->x < (jiki.x + 32)) + if (p->x < (jiki->x + 32)) { p->vy--; } p->y += p->vy / 8; if (p->dt1 % 50 == 37) { - Puttama(1, p->x + 8, p->y + 24); + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr tama = (ObjContainerPtr)smanager->get_output(wbuf, 1); + tama->flag = true; + tama->length = length; + + Puttama(1, p->x + 8, p->y + 24, &tama->data[0]); } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->dt1++; + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state41.cc --- a/spe/chara_state41.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state41.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,19 +1,27 @@ -#include "chara_state41.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE41); +SchedDefineTask1(State41, state41); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state41(SchedTask *smanager, void *rbuf, void *wbuf) { + int enemy_part2_f = (int)smanager->get_param(1); + int rand = (int)smanager->get_param(6); + + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); - if (enemy_part2->f == FALSE) + if (enemy_part2_f == FALSE) { - Bom(p->x, p->y); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); +// Bom(p->x, p->y); p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *q = *p; return 0; } p->x = kyeenemyno->x - 20 - 7; @@ -22,12 +30,22 @@ { if ((p->dt2 < 16)) { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + p->dt2++; - DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, boss); /*左腕アップアーム砲 */ + DefSprite(77, p->dt2, 16, 480, &sprite->data[0]); /*左腕アップアーム砲 */ } else { + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + rinkf1 = 9; + *q = *p; return 0; } } @@ -35,24 +53,44 @@ { if (p->dt1 % 15 == 1) { - Puttama(9 + rand() % 2, p->x, p->y); + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Puttama(9 + rand % 2, p->x, p->y, &sprite->data[0]); } } if (rinkf1 == 10) { if (p->dt2 != 0) { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + p->dt2--; - DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, boss); + DefSprite(77, p->dt2, 16, 480, &sprite->data[0]); } else { + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->f = FALSE; - p->state = delete_chara; - p->collision = noaction; + p->task = DELETE_CHARA; + + *q = *p; return 0; } } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->dt1++; + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state411.cc --- a/spe/chara_state411.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state411.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,12 +1,15 @@ -#include "chara_state411.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" +#include "Sankaku.h" -SchedDefineTask(STATE411); +SchedDefineTask1(State411, state411); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state411(SchedTask *smanager, void *rbuf, void *wbuf) { + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + player *jiki = (player*)smanager->get_input(rbuf, 1); if (p->dt2 > 356) { @@ -16,40 +19,58 @@ { p->vx = 1; } - if ((p->dt1) % 62 == 0) + if ((p->dt1) % 62 == 0) { + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); + sprite->flag = true; + sprite->length = length; + Putenemy(41, p->x, p->y, (int) -Mycos(p->dt1 / 16) * 4 / SANKAKU, (int) -Mysin(p->dt1 / 16) * 4 / - SANKAKU, chara_state7); - if ((p->dt1) % 13 == 0) + SANKAKU, STATE7, &sprite->data[0]); + } + if ((p->dt1) % 13 == 0) { + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); + sprite->flag = true; + sprite->length = length; + Puttama(11, p->x + 32, - p->y + 32); - + p->y + 32, &sprite->data[0]); + } p->dt2 += p->vx; p->dt1 += p->dt2 / 4; - p->x = jiki.x - 16 + + p->x = jiki->x - 16 + Mycos(p->dt1 / 16) * 128 / SANKAKU; - p->y = jiki.y - 16 + - Mysin(p->dt1 / 16) * 128 / SANKAKU; - if (p->x < 0) - { - p->x = 0; - } - if (p->x > 260) - { - p->x = 260; - } - if (p->y < 0) - { - p->y = 0; - } - if (p->y > 232) + p->y = jiki->y - 16 + + Mysin(p->dt1 / 16) * 128 / SANKAKU; + if (p->x < 0) + { + p->x = 0; + } + if (p->x > 260) + { + p->x = 260; + } + if (p->y < 0) + { + p->y = 0; + } + if (p->y > 232) { p->y = 232; } - return 0; + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + *q = *p; + return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state5.cc --- a/spe/chara_state5.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state5.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,22 +1,26 @@ -#include "chara_state3.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE5); +SchedDefineTask1(State5, state5); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state5(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + player *jiki = (player*)smanager->get_input(rbuf, 1); p->y += p->vy; p->x += p->vx; - if(p->y + 96 < jiki.y - && p->y + 128 > jiki.y) + if(p->y + 96 < jiki->y + && p->y + 128 > jiki->y) { p->vy = -2; - p->vx = ((jiki.x > p->x) ? 4 : -4); + p->vx = ((jiki->x > p->x) ? 4 : -4); p->task = STATE0; } else p->task = STATE5; + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state500.cc --- a/spe/chara_state500.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state500.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,42 +1,58 @@ -#include "chara_state500.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" +#include "Sankaku.h" -SchedDefineTask(STATE500); +SchedDefineTask1(State500, state500); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state500(SchedTask *smanager, void *rbuf, void *wbuf) { + int rand = (int)smanager->get_param(0); + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int count = *(int*)smanager->get_input(rbuf, 1); + + int length = 4; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = 2; p->s = 0; - kyeenemyno = p; p->dt2++; p->dt2 %= 512; p->dt1++; count++; - DefSpriteEx(100, 16, 16); - // PutSprite(count, enemy[tekino].x + 16, - // enemy[tekino].y + 16, 100); - PutSpriteEx(100, p->x + 16, p->y + 16, 2, 2, p->dt1); + DefSpriteEx(100, 16, 16, &sprite->data[0]); + PutSpriteEx(100, p->x + 16, p->y + 16, 2, 2, p->dt1, &sprite->data[1]); if (p->dt1 % (5 + p->dt2 / 8) == 1) { - if (rand() % 2 == 1) + sprite->length = 3; + + if (rand % 2 == 1) Putenemy(24, p->x, p->y, - (rand() % 5 + 0.5) * (rand() % 2 == + (rand % 5 + 0.5) * (rand % 2 == 1 ? -1 : 1), - (rand() % 5 + 0.5) * (rand() % 2 == - 1 ? -1 : 1), chara_state501); + (rand % 5 + 0.5) * (rand % 2 == + 1 ? -1 : 1), STATE501, &sprite->data[2]); else - Putenemy(rand() % 2 + 1, p->x, + Putenemy(rand % 2 + 1, p->x, p->y, (int) Mycos(p->dt1 / 4) * 4 / SANKAKU, (int) -Mysin(p->dt1 / 4) * 4 / - SANKAKU, chara_state501); + SANKAKU, STATE501, &sprite->data[2]); } if (p->dt1 == 50) { /*Putenemy(44,0,0,1,1,411); */ } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + + *q = *p; + *w_count = count; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state501.cc --- a/spe/chara_state501.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state501.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,19 +1,30 @@ -#include "chara_state501.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE501); +SchedDefineTask1(State501, state501); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state501(SchedTask *smanager, void *rbuf, void *wbuf) { + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); p->x += p->vx; p->y += p->vy; if(p->dt1 % 32 == 1) { - Puttama(11, p->x, p->y); + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); + sprite->flag = true; + sprite->length = length; + + Puttama(11, p->x, p->y, &sprite->data[0]); } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->dt1++; + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state6.cc --- a/spe/chara_state6.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state6.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,22 +1,26 @@ -#include "chara_state6.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE6); +SchedDefineTask1(State6, state6); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state6(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + player *jiki = (player*)smanager->get_input(rbuf, 1); p->y += p->vy; p->x += p->vx; - if(p->y + 96 < jiki.y - && p->y + 128 > jiki.y) + if(p->y + 96 < jiki->y + && p->y + 128 > jiki->y) { p->vy = 2; - p->vx = ((jiki.x > p->x) ? 4 : -4); + p->vx = ((jiki->x > p->x) ? 4 : -4); p->task = STATE0; } else p->task = STATE6; + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state600.cc --- a/spe/chara_state600.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state600.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,22 +1,31 @@ -#include "chara_state600.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" +#include "Sankaku.h" -SchedDefineTask(STATE600); +SchedDefineTask1(State600, state600); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state600(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - kyeenemyno = p; + int length = 3; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); + sprite->flag = true; + sprite->length = length; + p->dt1 += 30; p->dt2++; p->dt1 %= 360; p->x += Mycos(p->dt1) * 4 / SANKAKU; p->y += Mysin(p->dt1) * 4 / SANKAKU; - Puttama(11, p->x + 16, p->y + 16); - Puttama(11, p->x + 32, p->y + 48); - Puttama(11, p->x + 48, p->y + 16); + + Puttama(11, p->x + 16, p->y + 16, &sprite->data[0]); + Puttama(11, p->x + 32, p->y + 48, &sprite->data[1]); + Puttama(11, p->x + 48, p->y + 16, &sprite->data[2]); if (p->dt2 > 240) p->task = STATE601; if (p->x < 0) @@ -27,5 +36,9 @@ p->y = 0; if (p->y > 232) p->y = 232; + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state601.cc --- a/spe/chara_state601.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state601.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,21 +1,32 @@ -#include "chara_state601.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE601); +SchedDefineTask1(State601, state601); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state601(SchedTask *smanager, void *rbuf, void *wbuf) { + int rand = (int)smanager->get_param(0); + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + player *jiki = (player*)smanager->get_input(rbuf, 1); + + int length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); + sprite->flag = true; + sprite->length = length; p->dt2++; - if (p->x < jiki.x) + if (p->x < jiki->x) p->vx++; - if (p->x > jiki.x) + if (p->x > jiki->x) p->vx--; p->x += p->vx; - Putenemy(6, p->x + 16 + rand() % 32, - p->y, 0, rand() % 4, chara_state400); + Putenemy(6, p->x + 16 + rand % 32, + p->y, 0, rand % 4, STATE400, &sprite->data[0]); if (p->x < 0) p->x = 0; if (p->x > 260) @@ -27,5 +38,8 @@ if (p->dt2 > 800) { p->task = STATE602; } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state602.cc --- a/spe/chara_state602.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state602.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,21 +1,34 @@ -#include "chara_state602.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE602); +SchedDefineTask1(State602, state602); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state602(SchedTask *smanager, void *rbuf, void *wbuf) { + int rand = (int)smanager->get_param(0); + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); + sprite->flag = true; + sprite->length = length; + p->dt2++; Putenemy(24, p->x + 14, p->y + 14, - (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1), - (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1), - chara_state29); + (rand % 5 + 0.5) * (rand % 2 == 1 ? -1 : 1), + (rand % 5 + 0.5) * (rand % 2 == 1 ? -1 : 1), + STATE29, &sprite->data[0]); if (p->dt2 > 1024) { p->task = STATE600; p->dt2 = 0; } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state7.cc --- a/spe/chara_state7.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state7.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,11 +1,12 @@ -#include "chara_state7.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE7); +SchedDefineTask1(State7, state7); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state7(SchedTask *smanager, void *rbuf, void *wbuf) { + int length; CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); p->x += p->vx; @@ -13,9 +14,21 @@ if((p->dt1 == 60) || (p->dt1 == 90) || (p->dt1 == 30)) { - Puttama(1, p->x, p->y); + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr tama = (ObjContainerPtr)smanager->get_output(wbuf, 1); + + tama->flag = true; + tama->length = length; + + Puttama(1, p->x, p->y, &tama->data[0]); } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->dt1++; p->task = STATE7; + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state8.cc --- a/spe/chara_state8.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state8.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,37 +1,45 @@ #include "task_base.h" #include "task_object.h" -SchedDefineTask1(STATE8, state8); +SchedDefineTask1(State8, state8); static int state8(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - int length = 2; - - smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); - smanager->setup_outputData(); + int count = *(int*)smanager->get_input(rbuf, 1); + int length; - CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); - ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); - sprite->flag = false; - -#if 0 if(p->y < 520) { - tekino0 = p; - kyeenemyno = p; + length = 2; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + p->y += p->vy; count++; - DefSpriteEx(p->charano, 16*4, 32*4); - PutSpriteEx(p->charano, (p->x * 4), (p->y * 4), 0.2, 0.2, 1); + + DefSpriteEx(p->charano, 16*4, 32*4, &sprite->data[0]); + PutSpriteEx(p->charano, (p->x * 4), (p->y * 4), 0.2, 0.2, 1, &sprite->data[1]); + p->dt1 = 512; p->s = 0.125; p->task = STATE8; + + *w_count = count; + *q = *p; return 0; } -#endif + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); p->task = STATE9; + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/chara_state9.cc --- a/spe/chara_state9.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/chara_state9.cc Fri Jan 21 22:18:28 2011 +0900 @@ -1,31 +1,64 @@ -#include "chara_state9.h" -#include "tobject.h" +#include "task_base.h" +#include "task_object.h" -SchedDefineTask(STATE9); +SchedDefineTask1(State9, state9); static int -run(SchedTask *smanager, void *rbuf, void *wbuf) +state9(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int count = *(int*)smanager->get_input(rbuf, 1); + int length; if(p->s <= 2) { + length = 2; + smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4); + sprite->flag = true; + sprite->length = length; + p->s += 0.05; p->y -= 12; + count++; - DefSpriteEx(54, 16*4, 32*4); - PutSpriteEx(54, (p->x * 4), (p->y * 4), p->s, p->s, 1); + *w_count = count; + + DefSpriteEx(54, 16*4, 32*4, &sprite->data[0]); + PutSpriteEx(54, (p->x * 4), (p->y * 4), p->s, p->s, 1, &sprite->data[1]); + p->task = STATE9; + *q = *p; return 0; } + length = 4; + smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_rinkx = (int*)smanager->get_output(wbuf, 2); + int *w_rinky = (int*)smanager->get_output(wbuf, 3); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4); + sprite->flag = true; + sprite->length = length; + count++; - DefSpriteEx(54, 16, 32); - PutSpriteEx(54, p->x, p->y, p->s, p->s, 1); - rinkx = p->x; - rinky = p->y; - Putenemy(5, rinkx - 16, rinky - 16, 1, 0, chara_state10); - Putenemy(5, rinkx - 16, rinky - 16, -1, 0, chara_state10); + + + DefSpriteEx(54, 16, 32, &sprite->data[0]); + PutSpriteEx(54, p->x, p->y, p->s, p->s, 1, &sprite->data[1]); + *w_rinkx = p->x; + *w_rinky = p->y; + Putenemy(5, *w_rinkx - 16, *w_rinky - 16, 1, 0, STATE10, &sprite->data[2]); + Putenemy(5, *w_rinkx - 16, *w_rinky - 16, -1, 0, STATE10, &sprite->data[3]); + p->dt1 = 8192; + p->task = STATE11; - p->dt1 = 8192; + + *q = *p; return 0; } diff -r e01948ce859a -r f4140672ef9f spe/noaction.cc --- a/spe/noaction.cc Sat Jan 15 19:13:03 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -#include "noaction.h" -#include "tobject.h" - -SchedDefineTask(NO_ACT); - -static int -run(SchedTask *smanager, void *rbuf, void *wbuf) -{ - CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - - p->task = NO_ACT; - smanager->swap(); - return 0; -} diff -r e01948ce859a -r f4140672ef9f spe/noaction.h --- a/spe/noaction.h Sat Jan 15 19:13:03 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -#ifndef INCLUDE_COLLISION -#define INCLUDE_COLLISION - -#ifndef INCLUDED_SCHED_TASK -#include "SchedTask.h" -#endif - -#endif diff -r e01948ce859a -r f4140672ef9f spe/spe-main.cc --- a/spe/spe-main.cc Sat Jan 15 19:13:03 2011 +0900 +++ b/spe/spe-main.cc Fri Jan 21 22:18:28 2011 +0900 @@ -3,7 +3,54 @@ /* 必ずこの位置に書いて */ SchedExternTask(Atari); -SchedExternTask(SimpleState); + +SchedExternTask(State0); +SchedExternTask(State1); +SchedExternTask(State2); +SchedExternTask(State3); +SchedExternTask(State4); +SchedExternTask(State5); +SchedExternTask(State6); +SchedExternTask(State7); +SchedExternTask(State8); +SchedExternTask(State9); +SchedExternTask(State10); +SchedExternTask(State11); +SchedExternTask(State12); +SchedExternTask(State13); + +SchedExternTask(State20); +SchedExternTask(State21); +SchedExternTask(State22); +SchedExternTask(State25); +SchedExternTask(State26); +SchedExternTask(State27); +SchedExternTask(State28); +SchedExternTask(State29); +SchedExternTask(State30); +SchedExternTask(State31); +SchedExternTask(State32); +SchedExternTask(State33); +SchedExternTask(State34); +SchedExternTask(State35); + +SchedExternTask(State40); +SchedExternTask(State41); + +SchedExternTask(State400); +SchedExternTask(State401); +SchedExternTask(State402); + +SchedExternTask(State411); + +SchedExternTask(State500); +SchedExternTask(State501); + +SchedExternTask(State600); +SchedExternTask(State601); +SchedExternTask(State602); + +SchedExternTask(Asteroid); /** * この関数は ../spe/spe-main と違って @@ -14,5 +61,52 @@ task_init(void) { SchedRegisterTask(ATARI, Atari); - SchedRegisterTask(SIMPLE_STATE, SimpleState); + + SchedRegisterTask(STATE0, State0); + SchedRegisterTask(STATE1, State1); + SchedRegisterTask(STATE2, State2); + SchedRegisterTask(STATE3, State3); + SchedRegisterTask(STATE4, State4); + SchedRegisterTask(STATE5, State5); + SchedRegisterTask(STATE6, State6); + SchedRegisterTask(STATE7, State7); + SchedRegisterTask(STATE8, State8); + SchedRegisterTask(STATE9, State9); + SchedRegisterTask(STATE10, State10); + SchedRegisterTask(STATE11, State11); + SchedRegisterTask(STATE12, State12); + SchedRegisterTask(STATE13, State13); + + SchedRegisterTask(STATE20, State20); + SchedRegisterTask(STATE21, State21); + SchedRegisterTask(STATE22, State22); + SchedRegisterTask(STATE25, State25); + SchedRegisterTask(STATE26, State26); + SchedRegisterTask(STATE27, State27); + SchedRegisterTask(STATE28, State28); + SchedRegisterTask(STATE29, State29); + SchedRegisterTask(STATE30, State30); + SchedRegisterTask(STATE31, State31); + SchedRegisterTask(STATE32, State32); + SchedRegisterTask(STATE33, State33); + SchedRegisterTask(STATE34, State34); + SchedRegisterTask(STATE35, State35); + + SchedRegisterTask(STATE40, State40); + SchedRegisterTask(STATE41, State41); + + SchedRegisterTask(STATE400, State400); + SchedRegisterTask(STATE401, State401); + SchedRegisterTask(STATE402, State402); + + SchedRegisterTask(STATE411, State411); + + SchedRegisterTask(STATE500, State500); + SchedRegisterTask(STATE501, State501); + + SchedRegisterTask(STATE600, State600); + SchedRegisterTask(STATE601, State601); + SchedRegisterTask(STATE602, State602); + + SchedRegisterTask(ASTEROID_TASK, Asteroid); } diff -r e01948ce859a -r f4140672ef9f spe/tama.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/tama.cc Fri Jan 21 22:18:28 2011 +0900 @@ -0,0 +1,10 @@ +#include "task_object.h" +#include "../ObjectType.h" +void +Puttama(int type, float x, float y, ObjDataPtr tama) +{ + tama->type = Tama; + tama->tama_type = type; + tama->x = x; + tama->y = y; +} diff -r e01948ce859a -r f4140672ef9f spe/task_base.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/task_base.h Fri Jan 21 22:18:28 2011 +0900 @@ -0,0 +1,12 @@ +#ifndef INCLUDE_TASK_BASE +#define INCLUDE_TASK_BASE + +#ifndef INCLUDE_FUNC +#include "../Func.h" +#endif + +#ifndef INCLUDED_SCHED_TASK +#include "SchedTask.h" +#endif + +#endif diff -r e01948ce859a -r f4140672ef9f spe/task_object.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/task_object.h Fri Jan 21 22:18:28 2011 +0900 @@ -0,0 +1,154 @@ +#ifndef INCLUDE_OBJECT +#define INCLUDE_OBJECT + +#define TAMALV1P 14 +#define TAMALV2P 50 +#define TAMALV3P 24 + +#define LASERLV1P 17 +#define LASERLV2P 154 +#define LASERLV3P 51 + +#define TRUE 1 +#define FALSE 0 +#define BOOL char + +typedef struct player { + int x; + int y; + int ch; + int point; + BOOL bf; + int muteki; + int zanki; + int ccount; +} player; + + +typedef struct tama { + int x; + int y; +} tama; + + +typedef struct tama1 { + int x; + int y; + int r; + int l; +} tama1; + + +typedef struct tama2 { + int x; + int y; + int rr; + int sr; + int sl; + int ll; +} tama2; + + +typedef struct stge { + int stg; +} stge; + + +typedef struct laser { + float x; + float y; + float sx; + float sy; + int r; + int enemyno; + float s; +} laser; + + +typedef struct bomchar { + int x; + int y; + int f; + int no; +} bomchar; + + +typedef struct CHARACTER{ + float x; //position + float y; + + float vx; //velocity + float vy; + + float vit; //vitality + int score; + int dt1; + int dt2; + int charano; //sprite_number + BOOL tama; //bullet identifier + BOOL f; //apiarance idenfifier + float s; + int task; + + struct CHARACTER * (*state)(struct CHARACTER *p); + struct CHARACTER * (*collision)(struct CHARACTER *p); + struct CHARACTER *next; + struct CHARACTER *prev; + +} CHARACTER; + + +typedef struct CollisionProperty { + int infg_level; + int enemycount; + + player jiki; + stge lg; + stge infg; + + tama1 tama_lv1[20]; + tama2 tama_lv2[20]; + tama1 tlv3; + laser laser_lv1[20]; + laser laser_lv2; + laser laser_lv3[128]; +} CollisionProperty, *CollisionPropertyPtr; + + +typedef struct ObjData { + int type; + + int tama_type; + int charano; + int task; + int zorder; + int number; + int color; + float angle; + float x, y; + float vx, vy; + float w, h; + float scalex, scaley; + short middlex, middley; +} ObjData, *ObjDataPtr; + + +typedef struct ObjContainer { + bool flag; + int length; + + ObjData data[1]; +} ObjContainer, *ObjContainerPtr; + + +CHARACTER * noaction(CHARACTER *p); +CHARACTER * delete_chara(CHARACTER *p); +void Bom(int x, int y, ObjDataPtr obj); +void Puttama(int type, float x, float y, ObjDataPtr tama); +void Putenemy(int charano, float x, float y, float vx, float vy, int task, ObjDataPtr obj); +void PutSprite(int zorder, short x, short y, int number, ObjDataPtr obj); +void DefSprite(int number, float w, float h, int color, ObjDataPtr obj); +void DefSpriteEx(int number, short middlex, short middley, ObjDataPtr obj); +void PutSpriteEx(int number, int x, int y, float scalex, float scaley, float angle, ObjDataPtr obj); + +#endif diff -r e01948ce859a -r f4140672ef9f spe/tobject.h --- a/spe/tobject.h Sat Jan 15 19:13:03 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -#ifndef INCLUDE_OBJECT -#define INCLUDE_OBJECT - -#define TAMALV1P 14 -#define TAMALV2P 50 -#define TAMALV3P 24 - -#define LASERLV1P 17 -#define LASERLV2P 154 -#define LASERLV3P 51 - -#define TRUE 1 -#define FALSE 0 -#define BOOL char - -typedef struct player { - int x; - int y; - int ch; - int point; - BOOL bf; - int muteki; - int zanki; - int ccount; -} player; - -typedef struct tama { - int x; - int y; -} tama; - -typedef struct tama1 { - int x; - int y; - int r; - int l; -} tama1; - -typedef struct tama2 { - int x; - int y; - int rr; - int sr; - int sl; - int ll; -} tama2; - -typedef struct stge { - int stg; -} stge; - -typedef struct laser { - float x; - float y; - float sx; - float sy; - int r; - int enemyno; - float s; -} laser; - -typedef struct bomchar { - int x; - int y; - int f; - int no; -} bomchar; - -typedef struct CHARACTER{ - float x; //position - float y; - - float vx; //velocity - float vy; - - float vit; //vitality - int score; - int dt1; - int dt2; - int charano; //sprite_number - BOOL tama; //bullet identifier - BOOL f; //apiarance idenfifier - float s; - - struct CHARACTER * (*state)(struct CHARACTER *p); - struct CHARACTER * (*collision)(struct CHARACTER *p); - struct CHARACTER *next; - struct CHARACTER *prev; - -} CHARACTER; - -typedef struct CollisionProperty { - int infg_level; - int enemycount; - - player jiki; - CHARACTER p; - stge lg; - stge infg; - - tama1 tama_lv1[20]; - tama2 tama_lv2[20]; - tama1 tlv3; - laser laser_lv1[20]; - laser laser_lv2[20]; - laser laser_lv3[128]; - bomchar bchar[100]; - -} CollisionProperty, *CollisionPropertyPtr; - -CHARACTER * noaction(CHARACTER *p); -CHARACTER * delete_chara(CHARACTER *p); -void Bom(int x, int y, int bchar, bomchar *bchar); - -#endif