Mercurial > hg > Members > koba > t_dandy
annotate collision_task.cc @ 61:e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
author | yutaka@localhost.localdomain |
---|---|
date | Sun, 06 Feb 2011 18:11:30 +0900 |
parents | cfd42ee2ad28 |
children | 3c2fc35a6b55 |
rev | line source |
---|---|
5 | 1 #include <stdio.h> |
2 #include <stdlib.h> | |
3 #include <SDL.h> | |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
4 #include "Func.h" |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
5 #include "TaskManager.h" |
5 | 6 #include "Character.h" |
55
2c33aa6a4a37
debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
7 #include "Character_state.h" |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
8 #include "count2.h" |
5 | 9 #include "tokuten.h" |
53 | 10 #include "object.h" |
5 | 11 #include "sgoex.h" |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
12 |
58 | 13 #include "debug_db.h" |
55
2c33aa6a4a37
debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
14 #include "StateList.h" |
5 | 15 #include "property.h" |
57 | 16 #include "collision_task.h" |
5 | 17 |
53 | 18 |
5 | 19 extern SpriteTable sptable[DEFOBJ]; |
58 | 20 extern DebugDB dtable[DEFOBJ]; |
5 | 21 extern TaskManager *tmanager; |
22 | |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
23 HTaskPtr update_task; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
24 HTaskPtr reflect_task; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
25 |
57 | 26 |
27 void | |
28 state_check(CHARACTER *p) | |
29 { | |
58 | 30 int num = GetStateNum(p->state_task); |
31 | |
57 | 32 if (p->collision_task == true) { |
58 | 33 //debug |
34 if (p->tama == FALSE) { | |
35 printf("F%d: DELETE [NAME]%s_%d [COORD]x= %f y= %f vx= %f vy= %f\n", | |
36 filpcount, dtable[p->charano].name, p->chara_id, | |
37 p->x, p->y, p->vx, p->vy); | |
59 | 38 printf(" [BULLET]tlv1 = %d, tlv2 = %d llv1 = %d\n", |
39 tama_lv1_end+1, tama_lv2_end+1, laser_lv1_end+1); | |
58 | 40 } |
41 | |
57 | 42 p->state_task = DELETE_CHARA; |
43 p->state = delete_chara; | |
44 p->collision = noaction; | |
45 return; | |
46 } | |
58 | 47 |
48 p->state = state_list[num].state; | |
57 | 49 } |
50 | |
53 | 51 static CollisionPropertyPtr |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
52 get_property() |
5 | 53 { |
8 | 54 CollisionPropertyPtr property = (CollisionPropertyPtr)tmanager->allocate(sizeof(CollisionProperty)); |
19 | 55 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
56 property->infg_level = infg_level; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
57 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
58 property->tama_lv1_end = tama_lv1_end; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
59 property->tama_lv2_end = tama_lv2_end; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
60 property->laser_lv1_end = laser_lv1_end; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
61 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
62 property->enemycount = enemycount; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
63 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
64 property->jiki = jiki; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
65 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
66 property->lg = lg; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
67 property->infg = infg; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
68 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
69 memcpy(property->tama_lv1, tama_lv1, sizeof(tama1)*20); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
70 memcpy(property->tama_lv2, tama_lv2, sizeof(tama2)*20); |
19 | 71 property->tlv3 = tlv3[0]; |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
72 memcpy(property->laser_lv1, laser_lv1, sizeof(laser)*20); |
34 | 73 property->laser_lv2 = laser_lv2[0]; |
59 | 74 memcpy(property->laser_lv3, laser_lv3, sizeof(laser)*64); |
5 | 75 |
76 return property; | |
77 } | |
78 | |
79 void | |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
80 reflect_property(SchedTask *s, void *prop, void *none) |
5 | 81 { |
82 CollisionPropertyPtr property = (CollisionPropertyPtr)prop; | |
53 | 83 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
84 infg_level = property->infg_level; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
85 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
86 tama_lv1_end = property->tama_lv1_end; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
87 tama_lv2_end = property->tama_lv2_end; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
88 laser_lv1_end = property->laser_lv1_end; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
89 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
90 enemycount = property->enemycount; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
91 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
92 jiki = property->jiki; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
93 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
94 lg = property->lg; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
95 infg = property->infg; |
53 | 96 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
97 memcpy(tama_lv1, property->tama_lv1, sizeof(tama1)*20); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
98 memcpy(tama_lv2, property->tama_lv2, sizeof(tama2)*20); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
99 tlv3[0] = property->tlv3; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
100 memcpy(laser_lv1, property->laser_lv1, sizeof(laser)*20); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
101 laser_lv2[0] = property->laser_lv2; |
59 | 102 memcpy(laser_lv3, property->laser_lv3, sizeof(laser)*64); |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
103 } |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
104 |
55
2c33aa6a4a37
debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
105 |
2c33aa6a4a37
debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
106 void |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
107 after_free(SchedTask *s, void *object, void *none) |
55
2c33aa6a4a37
debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
108 { |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
109 free(object); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
110 } |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
111 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
112 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
113 void |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
114 collision_allocate() |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
115 { |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
116 HTaskPtr alloc_task = tmanager->create_task(DataAllocate); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
117 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
118 alloc_task->set_param(0, (memaddr)1); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
119 alloc_task->set_param(1, (memaddr)sizeof(CollisionProperty)); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
120 alloc_task->set_param(2, (memaddr)COLLDATA); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
121 |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
122 #ifndef PPE_ONLY |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
123 alloc_task->set_cpu(SPE_0); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
124 #else |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
125 alloc_task->set_cpu(CPU_PPE); |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
126 #endif |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
127 alloc_task->spawn(); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
128 } |
53 | 129 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
130 HTaskPtr |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
131 collision_update() |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
132 { |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
133 update_task = tmanager->create_task(DataUpdate); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
134 CollisionPropertyPtr property = get_property(); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
135 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
136 update_task->set_param(0, (memaddr)1); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
137 update_task->set_param(1, (memaddr)COLLDATA); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
138 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
139 update_task->set_inData(0, property, sizeof(CollisionProperty)); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
140 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
141 update_task->set_post(after_free, (void*)property, NULL); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
142 |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
143 #ifndef PPE_ONLY |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
144 update_task->set_cpu(SPE_0); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
145 #else |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
146 update_task->set_cpu(CPU_PPE); |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
147 #endif |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
148 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
149 return update_task; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
150 } |
53 | 151 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
152 HTaskPtr |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
153 collision_reflect() |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
154 { |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
155 reflect_task = tmanager->create_task(COLLDATA_REFLECT); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
156 CollisionPropertyPtr property = (CollisionPropertyPtr)tmanager->allocate(sizeof(CollisionProperty)); |
53 | 157 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
158 reflect_task->set_param(0, (memaddr)COLLDATA); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
159 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
160 reflect_task->set_outData(0, property, sizeof(CollisionProperty)); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
161 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
162 reflect_task->set_post(reflect_property, (void*)property, NULL); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
163 #ifndef PPE_ONLY |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
164 reflect_task->set_cpu(SPE_0); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
165 #else |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
166 reflect_task->set_cpu(CPU_PPE); |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
167 #endif |
53 | 168 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
169 return reflect_task; |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
170 } |
5 | 171 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
172 void |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
173 collision_free() |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
174 { |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
175 HTaskPtr free_task = tmanager->create_task(DataFree); |
5 | 176 |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
177 free_task->set_param(0, (memaddr)COLLDATA); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
178 #ifndef PPE_ONLY |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
179 free_task->set_cpu(SPE_0); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
180 #else |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
181 free_task->set_cpu(CPU_PPE); |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
182 #endif |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
183 free_task->spawn(); |
5 | 184 } |
185 | |
186 | |
57 | 187 void |
188 collision_check(SchedTask *s, void *object, void *chara) | |
189 { | |
190 CHARACTER *p = (CHARACTER*)chara; | |
191 state_check(p); | |
192 | |
193 free(object); | |
194 } | |
195 | |
196 | |
19 | 197 CHARACTER* |
198 atari(CHARACTER *p) | |
5 | 199 { |
200 int w, h, charno; | |
201 | |
202 charno = p->charano; | |
203 w = sptable[charno].w; | |
204 h = sptable[charno].h; | |
205 | |
53 | 206 int obj_size = sizeof(ObjContainer); |
37 | 207 ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(obj_size); |
208 obj->flag = false; | |
209 obj->length = 0; | |
210 | |
5 | 211 HTaskPtr collision_task = tmanager->create_task(ATARI); |
212 | |
213 collision_task->set_param(0,(memaddr)w); | |
214 collision_task->set_param(1,(memaddr)h); | |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
215 collision_task->set_param(2, (memaddr)COLLDATA); |
5 | 216 |
55
2c33aa6a4a37
debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
217 collision_task->set_inData(0, p, sizeof(CHARACTER)); |
34 | 218 |
55
2c33aa6a4a37
debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
219 collision_task->set_outData(0, p, sizeof(CHARACTER)); |
2c33aa6a4a37
debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
220 collision_task->set_outData(1, obj, obj_size); |
34 | 221 |
57 | 222 collision_task->set_post(collision_check, (void*)obj, (void*)p); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
223 #ifndef PPE_ONLY |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
224 collision_task->set_cpu(SPE_0); |
61
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
225 #else |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
226 collision_task->set_cpu(CPU_PPE); |
e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents:
60
diff
changeset
|
227 #endif |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
228 |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
229 collision_task->wait_for(update_task); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
230 reflect_task->wait_for(collision_task); |
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
53
diff
changeset
|
231 |
5 | 232 collision_task->spawn(); |
233 | |
234 return p; | |
235 } |