annotate Character.c @ 7:23d54565aa7b

not working.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Wed, 15 Dec 2010 17:55:25 +0900
parents 6382d8f6a973
children 00c3272a801f
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
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 #include "error.h"
7
23d54565aa7b not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
19 #include "state_task.h"
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 #define CHARACTER_MAX_POOL_SIZE 2048
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 CHARACTER *active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 CHARACTER *free_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 const table enemystate[] = ENEMY_STATUS_TABLE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 int filpcount = 0;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 int stage = 0;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 BOOL tf = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 static int pool_size;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 int init_chara_list(int num)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 if(active_chara_list == NULL)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 return extend_chara_list_pool(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 return 1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 }
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 int
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 extend_chara_list_pool(int num)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 {
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 pool_size = num;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 __debug("task init start");
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 int i;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 CHARACTER *q[num];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 for(i = 0; i<num ; i++)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 q[i] = (CHARACTER*)malloc(sizeof(CHARACTER));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 q[i]->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 q[i]->state = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 q[i]->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 }
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 for(i = 0; i<num-1 ; i++)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 q[i]->next = q[i+1];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 //q[i]->next->prev = q[i];
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
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 q[num-1]->next = NULL;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 active_chara_list = (CHARACTER*)malloc(sizeof(CHARACTER));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 active_chara_list->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 active_chara_list->state = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 active_chara_list->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 active_chara_list->next = q[0];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 //q[0]->prev = active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 //active_chara_list->prev = q[num-1];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 //q[num-1]->next = active_chara_list;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 CHARACTER *p;
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 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
79 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 if(p != NULL)
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 __debug("list_test");
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 }
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 return 1;
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 }
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 void TFon()
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 tf = TRUE;
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
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 void TFoff()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 tf = FALSE;
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
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 void
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 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
102 CHARACTER * (*action)(CHARACTER *chara))
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 CHARACTER *q;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 for(q = active_chara_list->next; q != NULL ;q = q->next)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 if(q->f == FALSE)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 break;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 q->state = action;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 q->collision = atari;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 q->x = x;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 q->y = y;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 q->vx = vx;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 q->vy = vy;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 q->tama = tf;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 q->vit = enemystate[charano].p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 q->score = enemystate[charano].sc;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 q->charano = enemystate[charano].charano;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 q->s = 0;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 q->f = TRUE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 //q->state = ALIVE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 //q->group = ENEMY
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 CHARACTER *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 delete_chara(CHARACTER *p)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 CHARACTER *parent = p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 p->state = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 return parent;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 void state_update()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 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
146 {
7
23d54565aa7b not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
147 // SimpleStateTask(p);
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 p=(*p->state)(p);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 }
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
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 void collision_detect()
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 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 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
156 {
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
157 if((p->state != chara_state8) && (p->state != chara_state9)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
158 && (p->collision != noaction))
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 p=(*p->collision)(p);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 }
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 void obj_draw()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 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
169 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 if(p->f == TRUE)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 PutSprite(1, p->x, p->y, p->charano);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 }
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 void outofwindow()
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 CHARACTER *p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 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
181 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 if((p->state != chara_state8) && (p->state != chara_state9))
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 if ((p->y > 964 + 32)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 || (p->x > 1688 + 50)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 || (p->y < 0 - 128)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 || (p->x < 0 - 200))
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 }