# HG changeset patch # User koba # Date 1294570072 -32400 # Node ID 4516141d844a2142831d4aa72cbc865228cdb1f0 # Parent c122e3d2302e807efb8857ea41101dd86fccbefd fix. diff -r c122e3d2302e -r 4516141d844a collision_task.cc --- a/collision_task.cc Sun Jan 09 14:28:44 2011 +0900 +++ b/collision_task.cc Sun Jan 09 19:47:52 2011 +0900 @@ -30,7 +30,7 @@ memcpy(property->tama_lv2, tama_lv2, sizeof(tama2)*20); memcpy(property->laser_lv1, laser_lv1, sizeof(laser)*20); memcpy(property->laser_lv3, laser_lv3, sizeof(laser)*128); - memcpy(property->bchar, bchar, sizeof(bomchar)*100); + memcpy(property->bchar, bchar, sizeof(bomchar)*(bomend+2)); return property; } @@ -58,7 +58,7 @@ memcpy(tama_lv1, property->tama_lv1, sizeof(tama1)*20); memcpy(tama_lv2, property->tama_lv2, sizeof(tama2)*20); memcpy(laser_lv1, property->laser_lv1, sizeof(laser)*20); - memcpy(bchar, property->bchar, sizeof(bomchar)*100); + memcpy(bchar, property->bchar, sizeof(bomchar)*(bomend+2)); free(prop); } diff -r c122e3d2302e -r 4516141d844a ppe/Sprite.cc --- a/ppe/Sprite.cc Sun Jan 09 14:28:44 2011 +0900 +++ b/ppe/Sprite.cc Sun Jan 09 19:47:52 2011 +0900 @@ -3,11 +3,10 @@ #include "../ObjectType.h" void -DefSprite(int number, const char *name, float w, float h, int color, ObjDataPtr obj) +DefSprite(int number, float w, float h, int color, ObjDataPtr obj) { obj->type = Def; obj->number = number; - strcpy(obj->name, name); obj->w = w; obj->h = h; obj->color = color; diff -r c122e3d2302e -r 4516141d844a ppe/chara_state40.cc --- a/ppe/chara_state40.cc Sun Jan 09 14:28:44 2011 +0900 +++ b/ppe/chara_state40.cc Sun Jan 09 19:47:52 2011 +0900 @@ -34,7 +34,7 @@ sprite->length = length; p->dt2++; - DefSprite(76, "boss2_rightarm_b", 16, p->dt2, 480, &sprite->data[0]); + DefSprite(76, 16, p->dt2, 480, &sprite->data[0]); } else { @@ -70,7 +70,7 @@ sprite->length = length; p->dt2--; - DefSprite(76, "boss2_rightarm_b", 16, p->dt2, 480, &sprite->data[0]); + DefSprite(76, 16, p->dt2, 480, &sprite->data[0]); } else { diff -r c122e3d2302e -r 4516141d844a ppe/chara_state41.cc --- a/ppe/chara_state41.cc Sun Jan 09 14:28:44 2011 +0900 +++ b/ppe/chara_state41.cc Sun Jan 09 19:47:52 2011 +0900 @@ -37,7 +37,7 @@ sprite->length = length; p->dt2++; - DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, &sprite->data[0]); /*左腕アップアーム砲 */ + DefSprite(77, p->dt2, 16, 480, &sprite->data[0]); /*左腕アップアーム砲 */ } else { @@ -74,7 +74,7 @@ sprite->length = length; p->dt2--; - DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, &sprite->data[0]); + DefSprite(77, p->dt2, 16, 480, &sprite->data[0]); } else { diff -r c122e3d2302e -r 4516141d844a ppe/task_object.h --- a/ppe/task_object.h Sun Jan 09 14:28:44 2011 +0900 +++ b/ppe/task_object.h Sun Jan 09 19:47:52 2011 +0900 @@ -121,7 +121,6 @@ typedef struct ObjData { int type; - char name[20]; int tama_type; int charano; int task; @@ -151,7 +150,7 @@ 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, const char *name, float w, float h, int color, 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); diff -r c122e3d2302e -r 4516141d844a property.h --- a/property.h Sun Jan 09 14:28:44 2011 +0900 +++ b/property.h Sun Jan 09 19:47:52 2011 +0900 @@ -29,7 +29,6 @@ typedef struct ObjData { int type; - char name[20]; int tama_type; int charano; int task; diff -r c122e3d2302e -r 4516141d844a state_task.cc --- a/state_task.cc Sun Jan 09 14:28:44 2011 +0900 +++ b/state_task.cc Sun Jan 09 19:47:52 2011 +0900 @@ -40,6 +40,32 @@ State state_list[LIST_NUM]; + +static +int power_of_two(int input) +{ + int value = 1; + + while ( value < input ) { + value <<= 1; + } + return value; +} + +static void +ReDefSprite(int number, float w, float h, int color) +{ + SpriteTable *m = &sptable[number]; + m->w = w; + m->h = h; + m->color = (color & 32); + m->mx = w / 2; + m->my = h / 2; + m->tex_w = power_of_two(m->w); + m->tex_h = power_of_two(m->h); +} + + static int GetStateNum(int task_num) { @@ -154,6 +180,7 @@ break; } case Def: + ReDefSprite(obj_data->number, obj_data->w, obj_data->h, obj_data->color); break; case DefEx: DefSpriteEx(obj_data->number, obj_data->middlex, obj_data->middley); @@ -165,7 +192,7 @@ PutSpriteEx(obj_data->number, obj_data->x, obj_data->y, obj_data->scalex, obj_data->scaley, obj_data->angle); break; - } + } } } int num = GetStateNum(p->task);