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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdio.h>
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <stdlib.h>
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #include "tokuten.h"
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
10 #include "object.h"
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 #include "property.h"
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
16 #include "collision_task.h"
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
18
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 extern SpriteTable sptable[DEFOBJ];
58
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
20 extern DebugDB dtable[DEFOBJ];
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 extern TaskManager *tmanager;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
26
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
27 void
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
28 state_check(CHARACTER *p)
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
29 {
58
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
30 int num = GetStateNum(p->state_task);
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
31
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
32 if (p->collision_task == true) {
58
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
33 //debug
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
34 if (p->tama == FALSE) {
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
35 printf("F%d: DELETE [NAME]%s_%d [COORD]x= %f y= %f vx= %f vy= %f\n",
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
36 filpcount, dtable[p->charano].name, p->chara_id,
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
37 p->x, p->y, p->vx, p->vy);
59
cd05eee90279 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
38 printf(" [BULLET]tlv1 = %d, tlv2 = %d llv1 = %d\n",
cd05eee90279 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
39 tama_lv1_end+1, tama_lv2_end+1, laser_lv1_end+1);
58
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
40 }
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
41
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
42 p->state_task = DELETE_CHARA;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
43 p->state = delete_chara;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
44 p->collision = noaction;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
45 return;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
46 }
58
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
47
e0018f39f7e1 fix random func.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
48 p->state = state_list[num].state;
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
49 }
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
50
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 {
8
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
54 CollisionPropertyPtr property = (CollisionPropertyPtr)tmanager->allocate(sizeof(CollisionProperty));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
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
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
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
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
73 property->laser_lv2 = laser_lv2[0];
59
cd05eee90279 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
74 memcpy(property->laser_lv3, laser_lv3, sizeof(laser)*64);
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 return property;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 }
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 {
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 CollisionPropertyPtr property = (CollisionPropertyPtr)prop;
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
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
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
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
cd05eee90279 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
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
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
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
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
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
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
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
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 }
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
187 void
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
188 collision_check(SchedTask *s, void *object, void *chara)
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
189 {
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
190 CHARACTER *p = (CHARACTER*)chara;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
191 state_check(p);
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
192
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
193 free(object);
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
194 }
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
195
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
196
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
197 CHARACTER*
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
198 atari(CHARACTER *p)
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 {
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 int w, h, charno;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
201
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 charno = p->charano;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 w = sptable[charno].w;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 h = sptable[charno].h;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
205
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
206 int obj_size = sizeof(ObjContainer);
37
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
207 ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(obj_size);
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
208 obj->flag = false;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
209 obj->length = 0;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
210
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 HTaskPtr collision_task = tmanager->create_task(ATARI);
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
212
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 collision_task->set_param(0,(memaddr)w);
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
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
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
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
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
221
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
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
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 collision_task->spawn();
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
233
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 return p;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 }