Mercurial > hg > Members > koba > t_dandy
diff ppe/Atari.cc @ 53:b31bed246abd
fix code and add log.
author | koba <koba@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 25 Jan 2011 17:43:30 +0900 |
parents | 2e123c4bf5ca |
children | 3acdeb3dc3e8 |
line wrap: on
line diff
--- a/ppe/Atari.cc Sun Jan 23 19:01:34 2011 +0900 +++ b/ppe/Atari.cc Tue Jan 25 17:43:30 2011 +0900 @@ -1,5 +1,6 @@ #include "task_base.h" #include "task_object.h" +#include "../ObjectType.h" SchedDefineTask1(Atari, atari); @@ -8,18 +9,22 @@ { int w = (int)smanager->get_param(0); int h = (int)smanager->get_param(1); - int tama_lv1_end = (int)smanager->get_param(2); - int tama_lv2_end = (int)smanager->get_param(3); - int laser_lv1_end = (int)smanager->get_param(4); - CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CollisionPropertyPtr property + = (CollisionPropertyPtr)smanager->get_input(rbuf, 0); player *jiki = (player*)smanager->get_input(rbuf, 1); - stge *lg = (stge*)smanager->get_input(rbuf, 2); - stge *infg = (stge*)smanager->get_input(rbuf, 3); - int *infg_level = (int*)smanager->get_input(rbuf, 4); - CollisionPropertyPtr property - = (CollisionPropertyPtr)smanager->get_input(rbuf, 5); + + property->lg = *(stge*)smanager->get_input(rbuf, 2); + property->infg = *(stge*)smanager->get_input(rbuf, 3); + stge *lg = &property->lg; + stge *infg = &property->infg; + int infg_level = *(int*)smanager->get_input(rbuf, 4); + int tama_lv1_end = *(int*)smanager->get_input(rbuf, 5); + int tama_lv2_end = *(int*)smanager->get_input(rbuf, 6); + int laser_lv1_end = *(int*)smanager->get_input(rbuf, 7); + + CHARACTER *p = &property->p; int *enemycount = &property->enemycount; tama1 *tlv3 = &property->tlv3; @@ -34,40 +39,35 @@ ex = p->x; ey = p->y; - int length = 1; - smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); - smanager->setup_outputData(); - - CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); CollisionPropertyPtr w_property - = (CollisionPropertyPtr)smanager->get_output(wbuf, 1); - ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + = (CollisionPropertyPtr)smanager->get_output(wbuf, 0); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1); sprite->flag = false; - sprite->length = length; + sprite->length = 1; //自機やられ #ifndef INVISIBLE_MODE if ((ex < jiki->x + 128 / 2) && (ex + w > jiki->x + 128 / 2) && (ey < jiki->y + 128 / 2) && (ey + h > jiki->y + 128 / 2) && jiki->muteki == 0) { + sprite->flag = true; Bom(jiki->x + 16, jiki->y + 16, &sprite->data[0]); + + property->collision_type = JIKI; + jiki->bf = FALSE; jiki->zanki--; - jiki->muteki = 120; - + jiki->muteki = 120; + property->jiki = *jiki; infg->stg = 0; - *infg_level--; - if (*infg_level < 0) - *infg_level = 0; + infg_level--; + if (infg_level < 0) + infg_level = 0; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; + property->infg_level = infg_level; - *q = *p; *w_property = *property; return 0; } @@ -81,6 +81,8 @@ && (ex + w > tama_lv1[i1].x + 16) && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h) && (tama_lv1[i1].r != -1)) { + property->collision_type = TAMALV1; + tama_lv1[i1].r = -1; p->vit -= TAMALV1P; infg->stg++; @@ -89,16 +91,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -106,6 +102,8 @@ if ((tama_lv1[i1].x + 64 > ex) && (ex + w > tama_lv1[i1].x) && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h) && (tama_lv1[i1].l != -1)) { + property->collision_type = TAMALV1; + tama_lv1[i1].l = -1; p->vit -= TAMALV1P; infg->stg++; @@ -114,16 +112,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -135,6 +127,8 @@ && (ex + w > tama_lv2[i1].x + 128) && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h) && (tama_lv2[i1].rr != -1)) { + property->collision_type = TAMALV2; + tama_lv2[i1].rr = -1; p->vit -= TAMALV2P; infg->stg++; @@ -143,16 +137,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -163,6 +151,8 @@ && (tama_lv2[i1].y - 32 + 192 > ey) && (tama_lv2[i1].y - 32 < ey + h) && (tama_lv2[i1].sr != -1)) { + property->collision_type = TAMALV2; + tama_lv2[i1].sr = -1; p->vit -= TAMALV2P; infg->stg++; @@ -171,16 +161,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -189,6 +173,8 @@ && (tama_lv2[i1].y - 32 + 192 > ey) && (tama_lv2[i1].y - 32 < ey + h) && (tama_lv2[i1].sl != -1)) { + property->collision_type = TAMALV2; + tama_lv2[i1].sl = -1; p->vit -= TAMALV2P; infg->stg++; @@ -197,16 +183,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -215,6 +195,8 @@ && (ex + w > tama_lv2[i1].x - 64) && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h) && (tama_lv2[i1].ll != -1)) { + property->collision_type = TAMALV2; + tama_lv2[i1].ll = -1; p->vit -= TAMALV2P; infg->stg++; @@ -223,16 +205,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -240,6 +216,8 @@ } if ((tlv3->r > 0) && (jiki->x < ex + w) && (jiki->x + 128 > ex) && (jiki->y > ey + h)) { + property->collision_type = TAMALV3; + p->vit -= TAMALV3P; infg->stg++; if (p->vit <= 0) { @@ -247,16 +225,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -264,6 +236,8 @@ jumping: if ((tlv3->r > 0) && (jiki->x < ex + w) && (jiki->x + 128 > ex) && (jiki->y + 128 > ey) && (jiki->y < ey + h)) { + property->collision_type = TAMALV3; + p->vit -= TAMALV3P; infg->stg++; if (p->vit <= 0) { @@ -271,16 +245,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -292,6 +260,8 @@ if ((laser_lv1[i1].x + n > ex) && (ex + w > laser_lv1[i1].x) && (laser_lv1[i1].y + n > ey) && (laser_lv1[i1].y < ey + h) && (laser_lv1[i1].r != -1)) { + property->collision_type = LASERLV1; + laser_lv1[i1].r = -1; laser_lv1[i1].y = -1; p->vit -= LASERLV1P; @@ -301,16 +271,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -321,24 +285,23 @@ (laser_lv2[0].x + 128 > ex) && (ex + w > laser_lv2[0].x - 128) && (laser_lv2[0].y + 128 > ey) && (laser_lv2[0].y - 128 < ey + h) && (laser_lv2[0].r != 0)) { + property->collision_type = LASERLV2; + p->vit -= LASERLV2P; lg->stg -= 26; + infg->stg++; if (p->vit <= 0) { infg->stg += 4; + property->infg = *infg; + sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - *q = *p; *w_property = *property; return 0; } @@ -350,6 +313,8 @@ && (laser_lv3[i1].y + 128 > ey) && (laser_lv3[i1].y < ey + h) && (laser_lv3[i1].r > 0)) { + property->collision_type = LASERLV3; + tama_lv2[i1].rr = -1; p->vit -= LASERLV3P; infg->stg++; @@ -358,16 +323,10 @@ sprite->flag = true; Bom(p->x, p->y, &sprite->data[0]); *enemycount += (p->score * - ((infg->stg / 128) + *infg_level + 1)); + ((infg->stg / 128) + infg_level + 1)); p->task = DELETE_CHARA; p->f = FALSE; - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; - - *q = *p; *w_property = *property; return 0; } @@ -375,12 +334,8 @@ } } - property->infg_level = *infg_level; - property->jiki = *jiki; - property->lg = *lg; - property->infg = *infg; + property->collision_type = NO; - *q = *p; *w_property = *property; return 0; }