# HG changeset patch # User koba # Date 1296982173 -32400 # Node ID e0018f39f7e137dc3feadf16516ff40d2aa3bdf3 # Parent 978097c6427a6bae0779b34a398dfaedc2d72b12 fix random func. diff -r 978097c6427a -r e0018f39f7e1 Character.c --- a/Character.c Sat Jan 29 22:43:17 2011 +0900 +++ b/Character.c Sun Feb 06 17:49:33 2011 +0900 @@ -106,8 +106,8 @@ CHARACTER * (*action)(CHARACTER *chara)) { CHARACTER *q; - - for(q = active_chara_list->next; q != NULL ;q = q->next) + + for(q = active_chara_list->next; q->next != NULL ;q = q->next) { if(q->f == FALSE) { diff -r 978097c6427a -r e0018f39f7e1 Character_state.c --- a/Character_state.c Sat Jan 29 22:43:17 2011 +0900 +++ b/Character_state.c Sun Feb 06 17:49:33 2011 +0900 @@ -35,13 +35,6 @@ int fastebos = 0; int counter = 0; -static -int get_num() -{ - counter++; - counter %= 4; - return counter; -} CHARACTER * noaction(CHARACTER *p) { @@ -57,7 +50,7 @@ filpcount, dtable[p->charano].name, p->chara_id, p->x, p->y, p->vx, p->vy); printf(" [TAMA]lv1 = %d, lv2 = %d [LASER]lv1 = %d\n", - tama_lv1_end, tama_lv2_end, laser_lv1_end); + tama_lv1_end+1, tama_lv2_end+1, laser_lv1_end+1); } CHARACTER *parent = p; @@ -446,31 +439,30 @@ CHARACTER * chara_state22(CHARACTER *p) { int sf; - int rand = get_num(); - sf = rand % 4; + sf = random() % 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 = random() % (120 - 35); + p->vx = (random() % 4 + 1); + p->vy = random() % 3 + 1; p->state = chara_state23; } if((sf == 2)) { - p->x = rand % 290; + p->x = random() % 290; p->y = -30; - p->vx = rand % 3 - 1; - p->vy = (rand % 4 + 1); + p->vx = random() % 3 - 1; + p->vy = (random() % 4 + 1); p->state = chara_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 = random() % (120 - 35); + p->vx = (random() % 4 + 1) * -1; + p->vy = random() % 3 -1; p->state = chara_state23; } return p; @@ -502,7 +494,6 @@ CHARACTER * chara_state25(CHARACTER *p) { int amari; - int rand = get_num(); if(p->dt1 <= 360) { @@ -516,7 +507,7 @@ } count++; PutSprite(count, p->x - 42, p->y, 64); - amari = rand % 160; + amari = random() % 160; if((amari == 1) && (enemy_part5->f == TRUE)) { p->state = chara_state26; @@ -623,9 +614,11 @@ p->dt2++; return p; } + +static int myrand = 1; + CHARACTER * chara_state28(CHARACTER *p) { - int rand = get_num(); if (p->dt1 <= 360) { @@ -643,9 +636,9 @@ { Putenemy(24, p->x + 14, p->y + 14, - (rand % 5 + 0.5) * (rand % 2 == + (myrand % 5 + 0.5) * (myrand % 2 == 1 ? -1 : 1), - (rand % 5 + 0.5) * (rand % 2 == + (myrand % 5 + 0.5) * (myrand % 2 == 1 ? -1 : 1), chara_state29); } p->dt1 += 3; @@ -925,8 +918,6 @@ CHARACTER * chara_state41(CHARACTER *p) //left arm up arm vulkan { - int rand; - if (enemy_part2->f == FALSE) { Bom(p->x, p->y); @@ -954,7 +945,7 @@ { if (p->dt1 % 15 == 1) { - Puttama(9 + rand % 2, p->x, p->y); + Puttama(9 + myrand % 2, p->x, p->y); } } if (rinkf1 == 10) @@ -1082,7 +1073,6 @@ CHARACTER * chara_state500(CHARACTER *p) { - int rand = get_num(); p->s = 0; kyeenemyno = p; @@ -1094,26 +1084,29 @@ // PutSprite(count, enemy[tekino].x + 16, // enemy[tekino].y + 16, 100); PutSpriteEx(100, p->x + 16, p->y + 16, 2, 2, p->dt1); - - if (p->dt1 % (5 + p->dt2 / 8) == 1) { - if (rand % 2 == 1) - Putenemy(24, p->x, p->y, - (rand % 5 + 0.5) * (rand % 2 == - 1 ? -1 : 1), - (rand % 5 + 0.5) * (rand % 2 == - 1 ? -1 : 1), chara_state501); - else - Putenemy(rand % 2 + 1, p->x, - p->y, - (int) Mycos(p->dt1 / 4) * 4 / - SANKAKU, - (int) -Mysin(p->dt1 / 4) * 4 / - SANKAKU, chara_state501); + + int num = 5 + p->dt2 / 8; + if (num != 0) { + if ((p->dt1 % num) == 1) { + if (myrand % 2 == 1) + Putenemy(24, p->x, p->y, + (myrand % 5 + 0.5) * (myrand % 2 == + 1 ? -1 : 1), + (myrand % 5 + 0.5) * (myrand % 2 == + 1 ? -1 : 1), chara_state501); + else + Putenemy(myrand % 2 + 1, p->x, + p->y, + (int) Mycos(p->dt1 / 4) * 4 / + SANKAKU, + (int) -Mysin(p->dt1 / 4) * 4 / + SANKAKU, chara_state501); + } + if (p->dt1 == 50) { + /*Putenemy(44,0,0,1,1,411); */ + } } - if (p->dt1 == 50) { - /*Putenemy(44,0,0,1,1,411); */ - } - return p; + return p; } @@ -1126,7 +1119,7 @@ Puttama(11, p->x, p->y); } p->dt1++; - printf("x = %f, y = %f, vx = %f, vy = %f\n",p->x, p->y, p->vx, p->vy); + // printf("x = %f, y = %f, vx = %f, vy = %f\n",p->x, p->y, p->vx, p->vy); return p; } @@ -1158,15 +1151,14 @@ CHARACTER * chara_state601(CHARACTER *p) { - int rand = get_num(); p->dt2++; if (p->x < jiki.x) p->vx++; 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 + random() % 32, + p->y, 0, random() % 4, chara_state400); if (p->x < 0) p->x = 0; if (p->x > 260) @@ -1184,12 +1176,10 @@ CHARACTER * chara_state602(CHARACTER *p) { - int rand = get_num(); - 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), + (random() % 5 + 0.5) * (random() % 2 == 1 ? -1 : 1), + (random() % 5 + 0.5) * (random() % 2 == 1 ? -1 : 1), chara_state29); if (p->dt2 > 1024) { p->state = chara_state600; diff -r 978097c6427a -r e0018f39f7e1 TaskDandy.cc --- a/TaskDandy.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/TaskDandy.cc Sun Feb 06 17:49:33 2011 +0900 @@ -290,6 +290,7 @@ __debug("finished init_chara_list\n"); + srandom(SEED_VALUE); initStateList(); collision_allocate(); diff -r 978097c6427a -r e0018f39f7e1 collision_task.cc --- a/collision_task.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/collision_task.cc Sun Feb 06 17:49:33 2011 +0900 @@ -10,12 +10,14 @@ #include "object.h" #include "sgoex.h" +#include "debug_db.h" #include "StateList.h" #include "property.h" #include "collision_task.h" extern SpriteTable sptable[DEFOBJ]; +extern DebugDB dtable[DEFOBJ]; extern TaskManager *tmanager; HTaskPtr update_task; @@ -25,15 +27,25 @@ void state_check(CHARACTER *p) { + int num = GetStateNum(p->state_task); + if (p->collision_task == true) { + //debug + if (p->tama == FALSE) { + printf("F%d: DELETE [NAME]%s_%d [COORD]x= %f y= %f vx= %f vy= %f\n", + filpcount, dtable[p->charano].name, p->chara_id, + p->x, p->y, p->vx, p->vy); + printf(" [STATE]%s [BULLET]tlv1 = %d, tlv2 = %d llv1 = %d\n", + state_list[num].name, tama_lv1_end+1, tama_lv2_end+1, laser_lv1_end+1); + } + p->state_task = DELETE_CHARA; p->state = delete_chara; p->collision = noaction; return; - } else { - int num = GetStateNum(p->state_task); - p->state = state_list[num].state; } + + p->state = state_list[num].state; } static CollisionPropertyPtr diff -r 978097c6427a -r e0018f39f7e1 main.c --- a/main.c Sat Jan 29 22:43:17 2011 +0900 +++ b/main.c Sun Feb 06 17:49:33 2011 +0900 @@ -112,8 +112,8 @@ return 1; } } - - return 1; + runmode = 0; + return 0; } @@ -272,7 +272,7 @@ printf("%f FPS\n", ((float)frames)/(stop_time-start_time)*1000.0); SDL_GL_Leave2DMode(); - SDL_FreeSurface(sprite); + SDL_FreeSurface(screen); SDL_JoystickClose(joy); diff -r 978097c6427a -r e0018f39f7e1 ppe/chara_state22.cc --- a/ppe/chara_state22.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/ppe/chara_state22.cc Sun Feb 06 17:49:33 2011 +0900 @@ -6,33 +6,36 @@ static int state22(SchedTask *smanager, void *rbuf, void *wbuf) { - int rand = (int)smanager->get_param(0); + int rand1 = (int)smanager->get_param(0); + int rand2 = (int)smanager->get_param(1); + int rand3 = (int)smanager->get_param(2); + int rand4 = (int)smanager->get_param(3); CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - int sf = rand % 4; + int sf = rand1 % 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 = rand2 % (120 - 35); + p->vx = (rand3 % 4 + 1); + p->vy = rand4 % 3 + 1; p->state_task = STATE23; } if((sf == 2)) { - p->x = rand % 290; + p->x = rand2 % 290; p->y = -30; - p->vx = rand % 3 - 1; - p->vy = (rand % 4 + 1); + p->vx = rand3 % 3 - 1; + p->vy = (rand4 % 4 + 1); p->state_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 = rand2 % (120 - 35); + p->vx = (rand3 % 4 + 1) * -1; + p->vy = rand4 % 3 -1; p->state_task = STATE23; } diff -r 978097c6427a -r e0018f39f7e1 ppe/chara_state28.cc --- a/ppe/chara_state28.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/ppe/chara_state28.cc Sun Feb 06 17:49:33 2011 +0900 @@ -7,18 +7,18 @@ static int state28(SchedTask *smanager, void *rbuf, void *wbuf) { - int rand = (int)smanager->get_param(2); + int rand = (int)smanager->get_param(0); 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->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, 4); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); sprite->flag = true; if (p->dt1 <= 360) diff -r 978097c6427a -r e0018f39f7e1 ppe/chara_state41.cc --- a/ppe/chara_state41.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/ppe/chara_state41.cc Sun Feb 06 17:49:33 2011 +0900 @@ -12,7 +12,7 @@ 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); + int rinkf1 = *(int*)smanager->get_input(rbuf, 2); if (enemy_part2_f == FALSE) { @@ -31,9 +31,9 @@ if ((p->dt2 < 16)) { length = 1; - smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); smanager->setup_outputData(); - ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); sprite->flag = true; sprite->length = length; @@ -54,9 +54,9 @@ if (p->dt1 % 15 == 1) { length = 1; - smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); smanager->setup_outputData(); - ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); sprite->flag = true; sprite->length = length; @@ -68,9 +68,9 @@ if (p->dt2 != 0) { length = 1; - smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); smanager->setup_outputData(); - ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); sprite->flag = true; sprite->length = length; diff -r 978097c6427a -r e0018f39f7e1 ppe/chara_state500.cc --- a/ppe/chara_state500.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/ppe/chara_state500.cc Sun Feb 06 17:49:33 2011 +0900 @@ -29,29 +29,32 @@ 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) { - sprite->length = 3; - - if (rand % 2 == 1) - Putenemy(24, p->x, p->y, - (rand % 5 + 0.5) * (rand % 2 == - 1 ? -1 : 1), - (rand % 5 + 0.5) * (rand % 2 == - 1 ? -1 : 1), STATE501, &sprite->data[2]); - else - Putenemy(rand % 2 + 1, p->x, - p->y, - (int) Mycos(p->dt1 / 4) * 4 / - SANKAKU, - (int) -Mysin(p->dt1 / 4) * 4 / - SANKAKU, STATE501, &sprite->data[2]); - } - if (p->dt1 == 50) { - /*Putenemy(44,0,0,1,1,411); */ + int num = 5 + p->dt2 / 8; + if (num != 0) { + if (p->dt1 % num == 1) { + sprite->length = 3; + + if (rand % 2 == 1) + Putenemy(24, p->x, p->y, + (rand % 5 + 0.5) * (rand % 2 == + 1 ? -1 : 1), + (rand % 5 + 0.5) * (rand % 2 == + 1 ? -1 : 1), STATE501, &sprite->data[2]); + else + Putenemy(rand % 2 + 1, p->x, + p->y, + (int) Mycos(p->dt1 / 4) * 4 / + SANKAKU, + (int) -Mysin(p->dt1 / 4) * 4 / + 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 978097c6427a -r e0018f39f7e1 ppe/chara_state601.cc --- a/ppe/chara_state601.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/ppe/chara_state601.cc Sun Feb 06 17:49:33 2011 +0900 @@ -6,7 +6,8 @@ static int state601(SchedTask *smanager, void *rbuf, void *wbuf) { - int rand = (int)smanager->get_param(0); + int rand1 = (int)smanager->get_param(0); + int rand2 = (int)smanager->get_param(1); CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); player *jiki = (player*)smanager->get_input(rbuf, 1); @@ -25,8 +26,8 @@ if (p->x > jiki->x) p->vx--; p->x += p->vx; - Putenemy(6, p->x + 16 + rand % 32, - p->y, 0, rand % 4, STATE400, &sprite->data[0]); + Putenemy(6, p->x + 16 + rand1 % 32, + p->y, 0, rand2 % 4, STATE400, &sprite->data[0]); if (p->x < 0) p->x = 0; if (p->x > 260) diff -r 978097c6427a -r e0018f39f7e1 ppe/chara_state602.cc --- a/ppe/chara_state602.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/ppe/chara_state602.cc Sun Feb 06 17:49:33 2011 +0900 @@ -6,7 +6,10 @@ static int state602(SchedTask *smanager, void *rbuf, void *wbuf) { - int rand = (int)smanager->get_param(0); + int rand1 = (int)smanager->get_param(0); + int rand2 = (int)smanager->get_param(1); + int rand3 = (int)smanager->get_param(2); + int rand4 = (int)smanager->get_param(3); CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); @@ -20,8 +23,8 @@ 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), + (rand1 % 5 + 0.5) * (rand2 % 2 == 1 ? -1 : 1), + (rand3 % 5 + 0.5) * (rand4 % 2 == 1 ? -1 : 1), STATE29, &sprite->data[0]); if (p->dt2 > 1024) { p->state_task = STATE600; diff -r 978097c6427a -r e0018f39f7e1 schedule3.c --- a/schedule3.c Sat Jan 29 22:43:17 2011 +0900 +++ b/schedule3.c Sun Feb 06 17:49:33 2011 +0900 @@ -718,10 +718,10 @@ } } */ - - + Endingscore(filpcount); - if (filpcount > 4000) - filpcount = 4000; + if (filpcount > 4000) { + filpcount = 4000; } + } } diff -r 978097c6427a -r e0018f39f7e1 state_task.cc --- a/state_task.cc Sat Jan 29 22:43:17 2011 +0900 +++ b/state_task.cc Sun Feb 06 17:49:33 2011 +0900 @@ -21,7 +21,6 @@ #include "collision_task.h" -extern DebugDB dtable[DEFOBJ]; extern SpriteTable sptable[DEFOBJ]; extern TaskManager *tmanager; @@ -189,15 +188,17 @@ return p; } -static int myrand = 1; CHARACTER* -FixRandomTask(CHARACTER *p) +sendRandomTask(CHARACTER *p) { int task_num = p->state_task; HTaskPtr state_task = tmanager->create_task(task_num); - state_task->set_param(0, (memaddr)myrand); + state_task->set_param(0, (memaddr)random()); + state_task->set_param(1, (memaddr)random()); + state_task->set_param(2, (memaddr)random()); + state_task->set_param(3, (memaddr)random()); state_task->set_inData(0, p, sizeof(CHARACTER)); @@ -510,7 +511,36 @@ state_task->set_param(0, (memaddr)enemy_part1->f); state_task->set_param(1, (memaddr)enemy_part5->f); - state_task->set_param(2, (memaddr)myrand); + state_task->set_param(2, (memaddr)random()); + + state_task->set_inData(0, p, sizeof(CHARACTER)); + state_task->set_inData(1, &count, sizeof(int)); + + state_task->set_outData(0, p, sizeof(CHARACTER)); + state_task->set_outData(1, &count, sizeof(int)); + state_task->set_outData(2, &rinkx, sizeof(int)); + state_task->set_outData(3, &rinkf1, sizeof(int)); + state_task->set_outData(4, obj, 0); + + state_task->set_post(checkContainer, (void*)p, (void*)obj); + state_task->set_cpu(get_cpunum()); + + state_next->wait_for(state_task); + state_task->spawn(); + + return p; +} + + +CHARACTER* +Boss2Task2(CHARACTER *p) +{ + int task_num = p->state_task; + int obj_size = sizeof(ObjContainer)+sizeof(ObjData)*DATA_LENGTH; + HTaskPtr state_task = tmanager->create_task(task_num); + ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(obj_size); + obj->flag = false; + obj->length = 0; state_task->set_inData(0, p, sizeof(CHARACTER)); state_task->set_inData(1, &count, sizeof(int)); @@ -532,9 +562,39 @@ return p; } +static int myrand = 1; CHARACTER* -Boss2Task2(CHARACTER *p, int num1, int num2) +Boss2Task3(CHARACTER *p) +{ + int task_num = p->state_task; + int obj_size = sizeof(ObjContainer)+sizeof(ObjData)*DATA_LENGTH; + HTaskPtr state_task = tmanager->create_task(task_num); + ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(obj_size); + obj->flag = false; + obj->length = 0; + + state_task->set_param(0, (memaddr)myrand); + + state_task->set_inData(0, p, sizeof(CHARACTER)); + state_task->set_inData(1, &count, sizeof(int)); + + state_task->set_outData(0, p, sizeof(CHARACTER)); + state_task->set_outData(1, &count, sizeof(int)); + state_task->set_outData(2, obj, 0); + + state_task->set_post(checkContainer, (void*)p, (void*)obj); + state_task->set_cpu(get_cpunum()); + + state_next->wait_for(state_task); + state_task->spawn(); + + return p; +} + + +CHARACTER* +Boss2Task4(CHARACTER *p, int num1, int num2) { int task_num = p->state_task; int obj_size = sizeof(ObjContainer)+sizeof(ObjData)*DATA_LENGTH; @@ -549,7 +609,6 @@ state_task->set_param(3, (memaddr)enemy_part4->f); state_task->set_param(4, (memaddr)enemystate[num1].charano); state_task->set_param(5, (memaddr)enemystate[num2].charano); - state_task->set_param(6, (memaddr)myrand); state_task->set_inData(0, p, sizeof(CHARACTER)); state_task->set_inData(1, kyeenemyno, sizeof(CHARACTER)); @@ -571,6 +630,40 @@ CHARACTER* +Boss2Task5(CHARACTER *p, int num1, int num2) +{ + int task_num = p->state_task; + int obj_size = sizeof(ObjContainer)+sizeof(ObjData)*DATA_LENGTH; + HTaskPtr state_task = tmanager->create_task(task_num); + ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(obj_size); + obj->flag = false; + obj->length = 0; + + state_task->set_param(0, (memaddr)enemy_part1->f); + state_task->set_param(1, (memaddr)enemy_part2->f); + state_task->set_param(2, (memaddr)enemy_part3->f); + state_task->set_param(3, (memaddr)enemy_part4->f); + state_task->set_param(4, (memaddr)enemystate[num1].charano); + state_task->set_param(5, (memaddr)enemystate[num2].charano); + + state_task->set_inData(0, p, sizeof(CHARACTER)); + state_task->set_inData(1, kyeenemyno, sizeof(CHARACTER)); + state_task->set_inData(3, &rinkf2, sizeof(int)); + + state_task->set_outData(0, p, sizeof(CHARACTER)); + state_task->set_outData(1, obj, 0); + + state_task->set_post(checkContainer, (void*)p, (void*)obj); + state_task->set_cpu(get_cpunum()); + + state_next->wait_for(state_task); + state_task->spawn(); + + return p; +} + + +CHARACTER* Boss4Task(CHARACTER *p) { kyeenemyno = p; @@ -602,7 +695,7 @@ CHARACTER* -Boss5Task(CHARACTER *p) +Boss5Task1(CHARACTER *p) { int task_num = p->state_task; int obj_size = sizeof(ObjContainer)+sizeof(ObjData)*DATA_LENGTH; @@ -611,7 +704,39 @@ obj->flag = false; obj->length = 0; - state_task->set_param(0, (memaddr)myrand); + state_task->set_param(0, (memaddr)random()); + state_task->set_param(1, (memaddr)random()); + + state_task->set_inData(0, p, sizeof(CHARACTER)); + state_task->set_inData(1, &jiki, sizeof(player)); + + state_task->set_outData(0, p, sizeof(CHARACTER)); + state_task->set_outData(1, obj, 0); + + state_task->set_post(checkContainer, (void*)p, (void*)obj); + state_task->set_cpu(get_cpunum()); + + state_next->wait_for(state_task); + state_task->spawn(); + + return p; +} + + +CHARACTER* +Boss5Task2(CHARACTER *p) +{ + int task_num = p->state_task; + int obj_size = sizeof(ObjContainer)+sizeof(ObjData)*DATA_LENGTH; + HTaskPtr state_task = tmanager->create_task(task_num); + ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(obj_size); + obj->flag = false; + obj->length = 0; + + state_task->set_param(0, (memaddr)random()); + state_task->set_param(1, (memaddr)random()); + state_task->set_param(2, (memaddr)random()); + state_task->set_param(3, (memaddr)random()); state_task->set_inData(0, p, sizeof(CHARACTER)); state_task->set_inData(1, &jiki, sizeof(player)); @@ -639,14 +764,6 @@ CHARACTER* delete_chara(CHARACTER *p) { - if (p->tama == FALSE) { - printf("F%d: DELETE [NAME]%s_%d [COORD]x= %f y= %f vx= %f vy= %f\n", - filpcount, dtable[p->charano].name, p->chara_id, - p->x, p->y, p->vx, p->vy); - printf(" [TAMA]lv1 = %d, lv2 = %d [LASER]lv1 = %d\n", - tama_lv1_end, tama_lv2_end, laser_lv1_end); - } - CHARACTER *parent = p; p->f = FALSE; p->state = noaction; @@ -792,7 +909,7 @@ chara_state22(CHARACTER *p) { p->state_task = STATE22; - return FixRandomTask(p); + return sendRandomTask(p); } @@ -835,20 +952,21 @@ chara_state26(CHARACTER *p) { p->state_task = STATE26; - return Boss2Task1(p); + return Boss2Task2(p); } CHARACTER* chara_state27(CHARACTER *p) //rocket punch { p->state_task = STATE27; - return Boss2Task1(p); + return Boss2Task2(p); } CHARACTER* chara_state28(CHARACTER *p) { p->state_task = STATE28; - return Boss2Task1(p); +//if many rand + return Boss2Task3(p); } @@ -872,7 +990,7 @@ chara_state31(CHARACTER *p) //right hand { p->state_task = STATE31; - return Boss2Task2(p, 0, 0); + return Boss2Task4(p, 0, 0); } @@ -880,7 +998,7 @@ chara_state32(CHARACTER *p) //left hand { p->state_task = STATE32; - return Boss2Task2(p, 14, 20); + return Boss2Task4(p, 14, 20); } @@ -889,7 +1007,7 @@ chara_state33(CHARACTER *p) // right shoulder { p->state_task = STATE33; - return Boss2Task2(p, 11, 19); + return Boss2Task4(p, 11, 19); } @@ -897,7 +1015,7 @@ chara_state34(CHARACTER *p) //left shoulder { p->state_task = STATE34; - return Boss2Task2(p, 12, 21); + return Boss2Task4(p, 12, 21); } @@ -905,7 +1023,7 @@ chara_state35(CHARACTER *p) // bust { p->state_task = STATE35; - return Boss2Task2(p, 15, 16); + return Boss2Task4(p, 15, 16); } @@ -914,7 +1032,7 @@ chara_state40(CHARACTER *p) //arm vulkan { p->state_task = STATE40; - return Boss2Task2(p, 0, 0); + return Boss2Task4(p, 0, 0); } @@ -922,7 +1040,8 @@ chara_state41(CHARACTER *p) //left arm up arm vulkan { p->state_task = STATE41; - return Boss2Task2(p, 0, 0); +//if rand + return Boss2Task5(p, 0, 0); } @@ -998,7 +1117,7 @@ chara_state601(CHARACTER *p) { p->state_task = STATE601; - return Boss5Task(p); + return Boss5Task1(p); } @@ -1006,5 +1125,5 @@ chara_state602(CHARACTER *p) { p->state_task = STATE602; - return Boss5Task(p); + return Boss5Task2(p); } diff -r 978097c6427a -r e0018f39f7e1 syokika.c --- a/syokika.c Sat Jan 29 22:43:17 2011 +0900 +++ b/syokika.c Sun Feb 06 17:49:33 2011 +0900 @@ -25,8 +25,6 @@ //extern void init_sprite(TEXTURE * tex); //extern int LoadSprite(); -#define SEED_VALUE 1 - struct SDL_Surface *screen; OBJECT *font; @@ -84,7 +82,7 @@ glDisable(GL_CULL_FACE); glOrtho(0.0, (GLdouble)screen->w, (GLdouble)screen->h, 0.0, 0.0, 1.0);*/ - srand(SEED_VALUE); + srandom(SEED_VALUE); //LoadSprite(); // sankakuf(); diff -r 978097c6427a -r e0018f39f7e1 syokika.h --- a/syokika.h Sat Jan 29 22:43:17 2011 +0900 +++ b/syokika.h Sun Feb 06 17:49:33 2011 +0900 @@ -1,6 +1,8 @@ #ifndef SYOKIKA_H #define SYOKIKA_H +#define SEED_VALUE 1 + extern struct SDL_Surface *screen; typedef enum {