annotate Character.c @ 65:b97628fca317

int -> long. not move on ABIBIT=64.
author tkaito
date Thu, 17 Feb 2011 04:49:47 +0900
parents 07bc996c8e49
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdio.h>
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <stdlib.h>
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include "syokika.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "bool.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #include <SDL.h>
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #include "SDL_opengl.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 #include "object.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 #include "Character.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #include "Character_state.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 #include "count2.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 #include "tokuten.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 #include "schedule.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 #include "sankaku.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 #include "sgoex.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 #include "collision.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 #include "debug.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 #include "error.h"
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
18 #include "debug_db.h"
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
19 #include "Func.h"
52
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 51
diff changeset
20 #include "StateList.h"
64
07bc996c8e49 fix t_dandy on ps3.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 60
diff changeset
21 #include "TaskManager.h"
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 #define CHARACTER_MAX_POOL_SIZE 2048
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 CHARACTER *active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 CHARACTER *free_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
64
07bc996c8e49 fix t_dandy on ps3.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 60
diff changeset
28 extern TaskManager* tmanager;
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
29 extern DebugDB dtable[DEFOBJ];
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 const table enemystate[] = ENEMY_STATUS_TABLE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 int filpcount = 0;
59
cd05eee90279 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
33 int stage = 1;
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 BOOL tf = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 static int pool_size;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 int
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 extend_chara_list_pool(int num)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 pool_size = num;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 __debug("task init start");
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 int i;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 CHARACTER *q[num];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 for(i = 0; i<num ; i++)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 {
64
07bc996c8e49 fix t_dandy on ps3.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 60
diff changeset
49 q[i] = (CHARACTER*)tmanager->allocate(sizeof(CHARACTER));
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 q[i]->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 q[i]->state = noaction;
33
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
52 q[i]->dt1 = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
53 q[i]->dt2 = 0;
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
54 q[i]->state_task = 0;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
55 q[i]->collision_task = false;
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 q[i]->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 for(i = 0; i<num-1 ; i++)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 q[i]->next = q[i+1];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 //q[i]->next->prev = q[i];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 q[num-1]->next = NULL;
64
07bc996c8e49 fix t_dandy on ps3.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 60
diff changeset
66 active_chara_list = (CHARACTER*)tmanager->allocate(sizeof(CHARACTER));
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 active_chara_list->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 active_chara_list->state = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 active_chara_list->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 active_chara_list->next = q[0];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 //q[0]->prev = active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 //active_chara_list->prev = q[num-1];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 //q[num-1]->next = active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 for(p = active_chara_list->next; p != NULL ; p = p->next)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 if(p != NULL)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 __debug("list_test");
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 return 1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 void TFon()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 tf = TRUE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 void TFoff()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 tf = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95
65
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
96 int init_chara_list(int num)
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
97 {
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
98 if(active_chara_list == NULL)
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
99 {
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
100 return extend_chara_list_pool(num);
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
101 }
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
102 return 1;
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
103 }
b97628fca317 int -> long. not move on ABIBIT=64.
tkaito
parents: 64
diff changeset
104
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
106 void
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 Putenemy(int charano, float x, float y, float vx, float vy,
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 CHARACTER * (*action)(CHARACTER *chara))
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 {
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
110 CHARACTER *q;
58
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
111
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
112 for(q = active_chara_list->next; q->next != NULL ;q = q->next)
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
113 {
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
114 if(q->f == FALSE)
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
115 {
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
116 break;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
117 }
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
118 }
56
a80422eb44a9 bug fix.TODO:print delete message on videoNONE mode.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
119
a80422eb44a9 bug fix.TODO:print delete message on videoNONE mode.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
120 int number = enemystate[charano].charano;
a80422eb44a9 bug fix.TODO:print delete message on videoNONE mode.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
121 q->chara_id = dtable[number].count;
a80422eb44a9 bug fix.TODO:print delete message on videoNONE mode.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
122 dtable[number].count++;
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
124 q->state = action;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
125 q->collision = atari;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
126 q->x = x;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
127 q->y = y;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
128 q->vx = vx;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
129 q->vy = vy;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
130 q->tama = tf;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
131 q->vit = enemystate[charano].p;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
132 q->score = enemystate[charano].sc;
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
133 q->state_task = 0;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
134 q->collision_task = false;
56
a80422eb44a9 bug fix.TODO:print delete message on videoNONE mode.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
135 q->charano = number;
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
136 q->s = 0;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
137 q->f = TRUE;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
138
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
139 if (q->tama == FALSE) {
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
140 printf("F%d: CREATE [NAME]%s_%d [COORD]x= %f y= %f vx= %f vy= %f\n",
56
a80422eb44a9 bug fix.TODO:print delete message on videoNONE mode.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
141 filpcount, dtable[number].name, q->chara_id,
52
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 51
diff changeset
142 q->x, q->y, q->vx, q->vy);
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
143 }
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 void state_update()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 for(p = active_chara_list->next; p!= NULL ;p = p->next)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 p=(*p->state)(p);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 void collision_detect()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 for(p = active_chara_list->next; p!=NULL;p = p->next)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 {
34
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
160 if((p->state != chara_state8) && (p->state != chara_state9)) {
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 p=(*p->collision)(p);
34
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
162 }
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 void obj_draw()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 for(p = active_chara_list->next; p!=NULL;p = p->next)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 if(p->f == TRUE)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 PutSprite(1, p->x, p->y, p->charano);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 void outofwindow()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 for(p = active_chara_list->next; p!=NULL; p = p->next)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 {
34
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
183 if((p->state != chara_state8) && (p->state != chara_state9))
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
184 {
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 if ((p->y > 964 + 32)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 || (p->x > 1688 + 50)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 || (p->y < 0 - 128)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 || (p->x < 0 - 200))
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 p->f = FALSE;
44
2c85322348cf add print log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
191 p->tama = TRUE;
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 }
34
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
195 }
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 }