annotate Character.c @ 58:e0018f39f7e1

fix random func.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Sun, 06 Feb 2011 17:49:33 +0900
parents 978097c6427a
children cd05eee90279
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"
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 #define CHARACTER_MAX_POOL_SIZE 2048
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 CHARACTER *active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 CHARACTER *free_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
27 extern DebugDB dtable[DEFOBJ];
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 const table enemystate[] = ENEMY_STATUS_TABLE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 int filpcount = 0;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 int stage = 0;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 BOOL tf = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 static int pool_size;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 int init_chara_list(int num)
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 if(active_chara_list == NULL)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 return extend_chara_list_pool(num);
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 return 1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 }
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
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 extend_chara_list_pool(int 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
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 pool_size = num;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 __debug("task init start");
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 int i;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 CHARACTER *q[num];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 for(i = 0; i<num ; i++)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 q[i] = (CHARACTER*)malloc(sizeof(CHARACTER));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 q[i]->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 q[i]->state = noaction;
33
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
59 q[i]->dt1 = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
60 q[i]->dt2 = 0;
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
61 q[i]->state_task = 0;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
62 q[i]->collision_task = false;
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 q[i]->collision = noaction;
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
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 for(i = 0; i<num-1 ; i++)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 q[i]->next = q[i+1];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 //q[i]->next->prev = q[i];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 q[num-1]->next = NULL;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 active_chara_list = (CHARACTER*)malloc(sizeof(CHARACTER));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 active_chara_list->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 active_chara_list->state = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 active_chara_list->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 active_chara_list->next = q[0];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 //q[0]->prev = active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 //active_chara_list->prev = q[num-1];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 //q[num-1]->next = active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 CHARACTER *p;
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 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
84 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 if(p != NULL)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 __debug("list_test");
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 }
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 return 1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 }
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 void TFon()
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 tf = TRUE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 void TFoff()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 tf = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
104 void
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 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
106 CHARACTER * (*action)(CHARACTER *chara))
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 {
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
108 CHARACTER *q;
58
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
109
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
110 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
111 {
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
112 if(q->f == FALSE)
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 break;
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 }
56
a80422eb44a9 bug fix.TODO:print delete message on videoNONE mode.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
117
a80422eb44a9 bug fix.TODO:print delete message on videoNONE mode.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
118 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
119 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
120 dtable[number].count++;
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
122 q->state = action;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
123 q->collision = atari;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
124 q->x = x;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
125 q->y = y;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
126 q->vx = vx;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
127 q->vy = vy;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
128 q->tama = tf;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
129 q->vit = enemystate[charano].p;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
130 q->score = enemystate[charano].sc;
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
131 q->state_task = 0;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
132 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
133 q->charano = number;
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
134 q->s = 0;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
135 q->f = TRUE;
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
136
52
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 51
diff changeset
137
51
2e123c4bf5ca print object name and id.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 44
diff changeset
138 if (q->tama == FALSE) {
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
139 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
140 filpcount, dtable[number].name, q->chara_id,
52
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 51
diff changeset
141 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
142 }
52
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 51
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 }