annotate collision_task.cc @ 66:f27a6af6514c

SchedRegister, game_task.h etc...
author tkaito
date Thu, 17 Feb 2011 10:56:56 +0900
parents 3c2fc35a6b55
children
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
63
3c2fc35a6b55 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 61
diff changeset
92 if (jiki.bf == FALSE) {
3c2fc35a6b55 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 61
diff changeset
93 jiki = property->jiki;
3c2fc35a6b55 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 61
diff changeset
94 }
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
95
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
96 lg = property->lg;
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
97 infg = property->infg;
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
98
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
99 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
100 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
101 tlv3[0] = property->tlv3;
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
102 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
103 laser_lv2[0] = property->laser_lv2;
59
cd05eee90279 fix code.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
104 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
105 }
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
106
55
2c33aa6a4a37 debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
107
2c33aa6a4a37 debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
108 void
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
109 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
110 {
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
111 free(object);
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
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
114
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
115 void
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
116 collision_allocate()
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 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
119
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
120 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
121 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
122 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
123
61
e66cab264350 RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents: 60
diff changeset
124 #ifndef PPE_ONLY
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
125 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
126 #else
e66cab264350 RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents: 60
diff changeset
127 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
128 #endif
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
129 alloc_task->spawn();
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
130 }
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
131
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
132 HTaskPtr
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
133 collision_update()
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
134 {
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
135 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
136 CollisionPropertyPtr property = get_property();
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
137
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
138 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
139 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
140
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
141 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
142
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
143 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
144
e66cab264350 RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents: 60
diff changeset
145 #ifndef PPE_ONLY
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
146 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
147 #else
e66cab264350 RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents: 60
diff changeset
148 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
149 #endif
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
150
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
151 return update_task;
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
152 }
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
153
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
154 HTaskPtr
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
155 collision_reflect()
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
156 {
66
f27a6af6514c SchedRegister, game_task.h etc...
tkaito
parents: 63
diff changeset
157 reflect_task = tmanager->create_task(CollDataReflect);
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
158 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
159
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
160 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
161
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
162 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
163
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
164 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
165 #ifndef PPE_ONLY
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
166 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
167 #else
e66cab264350 RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents: 60
diff changeset
168 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
169 #endif
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
170
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
171 return reflect_task;
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
172 }
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
174 void
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
175 collision_free()
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
176 {
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
177 HTaskPtr free_task = tmanager->create_task(DataFree);
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
179 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
180 #ifndef PPE_ONLY
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
181 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
182 #else
e66cab264350 RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents: 60
diff changeset
183 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
184 #endif
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
185 free_task->spawn();
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 }
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
189 void
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
190 collision_check(SchedTask *s, void *object, void *chara)
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
191 {
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
192 CHARACTER *p = (CHARACTER*)chara;
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
193 state_check(p);
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 free(object);
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
196 }
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
197
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
198
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
199 CHARACTER*
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
200 atari(CHARACTER *p)
5
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 int w, h, charno;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
203
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 charno = p->charano;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 w = sptable[charno].w;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 h = sptable[charno].h;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
207
53
b31bed246abd fix code and add log.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 37
diff changeset
208 int obj_size = sizeof(ObjContainer);
37
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
209 ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(obj_size);
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
210 obj->flag = false;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
211 obj->length = 0;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
212
66
f27a6af6514c SchedRegister, game_task.h etc...
tkaito
parents: 63
diff changeset
213 HTaskPtr collision_task = tmanager->create_task(Atari);
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
214
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
215 collision_task->set_param(0,(memaddr)w);
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 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
217 collision_task->set_param(2, (memaddr)COLLDATA);
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
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_inData(0, p, sizeof(CHARACTER));
34
7aaaaf5dde40 add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
220
55
2c33aa6a4a37 debug global_alloc.but new bugs appear
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
221 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
222 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
223
57
978097c6427a bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
224 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
225 #ifndef PPE_ONLY
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
226 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
227 #else
e66cab264350 RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
yutaka@localhost.localdomain
parents: 60
diff changeset
228 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
229 #endif
54
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
230
3acdeb3dc3e8 collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
231 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
232 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
233
5
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 collision_task->spawn();
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
235
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 return p;
c9e9b605f08e rename tcollision.cc
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
237 }