comparison state_task.cc @ 52:150e832193fe

fix.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Sun, 23 Jan 2011 19:01:34 +0900
parents 2e123c4bf5ca
children b31bed246abd
comparison
equal deleted inserted replaced
51:2e123c4bf5ca 52:150e832193fe
13 #include "sankaku.h" 13 #include "sankaku.h"
14 #include "tama.h" 14 #include "tama.h"
15 #include "TaskManager.h" 15 #include "TaskManager.h"
16 #include "Func.h" 16 #include "Func.h"
17 #include "property.h" 17 #include "property.h"
18 #include "state_task.h"
19 #include "ObjectType.h" 18 #include "ObjectType.h"
20 #include "debug_db.h" 19 #include "debug_db.h"
20 #include "StateList.h"
21
21 22
22 extern DebugDB dtable[DEFOBJ]; 23 extern DebugDB dtable[DEFOBJ];
23 extern SpriteTable sptable[DEFOBJ]; 24 extern SpriteTable sptable[DEFOBJ];
24 extern TaskManager *tmanager; 25 extern TaskManager *tmanager;
25 26
40 int enemyfaste = 0; 41 int enemyfaste = 0;
41 int fastebos = 0; 42 int fastebos = 0;
42 43
43 int counter = 0; 44 int counter = 0;
44 45
45 State state_list[LIST_NUM];
46
47 /* output 0~3 */ 46 /* output 0~3 */
48 static 47 static
49 int get_num() 48 int get_num()
50 { 49 {
51 counter++; 50 counter++;
61 while ( value < input ) { 60 while ( value < input ) {
62 value <<= 1; 61 value <<= 1;
63 } 62 }
64 return value; 63 return value;
65 } 64 }
65
66 66
67 static void 67 static void
68 ReDefSprite(int number, float w, float h, int color) 68 ReDefSprite(int number, float w, float h, int color)
69 { 69 {
70 SpriteTable *m = &sptable[number]; 70 SpriteTable *m = &sptable[number];
75 m->my = h / 2; 75 m->my = h / 2;
76 m->tex_w = power_of_two(m->w); 76 m->tex_w = power_of_two(m->w);
77 m->tex_h = power_of_two(m->h); 77 m->tex_h = power_of_two(m->h);
78 } 78 }
79 79
80
81 static int
82 GetStateNum(int task_num)
83 {
84 int num = task_num % LIST_NUM;
85
86 return num;
87 }
88
89 static void
90 SetTaskState(int task_num, CHARACTER *(state)(CHARACTER *chara))
91 {
92 int num = GetStateNum(task_num);
93
94 state_list[num] = state;
95 }
96
97 void
98 initStateList()
99 {
100 SetTaskState(DELETE_CHARA, delete_chara);
101 SetTaskState(STATE0, chara_state0);
102 SetTaskState(STATE1, chara_state1);
103 SetTaskState(STATE2, chara_state2);
104 SetTaskState(STATE3, chara_state3);
105 SetTaskState(STATE4, chara_state4);
106 SetTaskState(STATE5, chara_state5);
107 SetTaskState(STATE6, chara_state6);
108 SetTaskState(STATE7, chara_state7);
109 SetTaskState(STATE8, chara_state8);
110 SetTaskState(STATE9, chara_state9);
111 SetTaskState(STATE10, chara_state10);
112 SetTaskState(STATE11, chara_state11);
113 SetTaskState(STATE12, chara_state12);
114 SetTaskState(STATE13, chara_state13);
115
116 SetTaskState(STATE20, chara_state20);
117 SetTaskState(STATE21, chara_state21);
118 SetTaskState(STATE22, chara_state22);
119 SetTaskState(STATE23, chara_state23);
120 SetTaskState(STATE24, chara_state24);
121 SetTaskState(STATE25, chara_state25);
122 SetTaskState(STATE26, chara_state26);
123 SetTaskState(STATE27, chara_state27);
124 SetTaskState(STATE28, chara_state28);
125 SetTaskState(STATE29, chara_state29);
126 SetTaskState(STATE30, chara_state30);
127 SetTaskState(STATE31, chara_state31);
128 SetTaskState(STATE32, chara_state32);
129 SetTaskState(STATE33, chara_state33);
130 SetTaskState(STATE34, chara_state34);
131 SetTaskState(STATE35, chara_state35);
132 SetTaskState(STATE40, chara_state40);
133 SetTaskState(STATE41, chara_state41);
134
135 SetTaskState(STATE400, chara_state400);
136 SetTaskState(STATE401, chara_state401);
137 SetTaskState(STATE402, chara_state402);
138
139 SetTaskState(STATE410, chara_state410);
140 SetTaskState(STATE411, chara_state411);
141
142 SetTaskState(STATE500, chara_state500);
143 SetTaskState(STATE501, chara_state501);
144
145 SetTaskState(STATE600, chara_state600);
146 SetTaskState(STATE601, chara_state601);
147 SetTaskState(STATE602, chara_state602);
148 }
149 80
150 void 81 void
151 updateState(SchedTask *s, void *chara, void *arg) 82 updateState(SchedTask *s, void *chara, void *arg)
152 { 83 {
153 CHARACTER *p = (CHARACTER*)chara; 84 CHARACTER *p = (CHARACTER*)chara;
664 595
665 CHARACTER* 596 CHARACTER*
666 delete_chara(CHARACTER *p) 597 delete_chara(CHARACTER *p)
667 { 598 {
668 if (p->tama == FALSE) { 599 if (p->tama == FALSE) {
669 printf("F%d: [%s] [%d] x=%f y=%f vx=%f vy=%f DELETE\n", 600 printf("F%d: DELETE [NAME]%s_%d [VIT]%lf [COORD]x= %f y= %f vx= %f vy= %f\n",
670 filpcount, dtable[p->charano].name, p->chara_id, 601 filpcount, dtable[p->charano].name, p->chara_id, p->vit,
671 p->x, p->y, p->vx, p->vy); 602 p->x, p->y, p->vx, p->vy);
672 } 603 }
673 604
674 CHARACTER *parent = p; 605 CHARACTER *parent = p;
675 p->f = FALSE; 606 p->f = FALSE;