annotate ppe/chara_state12.cc @ 33:39e643fc4f90

moving stage1.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Wed, 05 Jan 2011 14:41:26 +0900
parents
children 7aaaaf5dde40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include "task_base.h"
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include "task_object.h"
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 SchedDefineTask1(State12, state12);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 static int
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 state12(SchedTask *smanager, void *rbuf, void *wbuf)
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 int fastebos = (int)smanager->get_param(0);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 int count = (int)smanager->get_param(1);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 int rinkx = (int)smanager->get_param(2);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 int rinky = (int)smanager->get_param(3);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 int length;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 int rinkf2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 int index_count = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 if (fastebos > 60*60) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 length = 2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 int *w_count = (int*)smanager->get_output(wbuf, 3);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 int *w_rinky = (int*)smanager->get_output(wbuf, 4);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 sprite->flag = true;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 sprite->length = length;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 if (p->y > 240+32) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 p->task = DELETE_CHARA;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 p->y += 3;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 rinky += 3;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 DefSpriteEx(54, 16, 32, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 PutSpriteEx(54, p->x, p->y, 2, 2, 1, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 *w_rinky = rinky;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 *w_count = count;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 *q = *p;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 p->task = STATE12;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 return 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 player *jiki = (player*)smanager->get_input(rbuf, 1);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 if (p->dt1 <= 60) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 length = 2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 if (jiki->x + 15 - rinkx < -5) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 p->vx = -0.8;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 } else if(jiki->x + 15 - rinkx > 5) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 p->vx = +0.8;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 } else {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 p->vx = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 rinkx = p->x;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 rinky = p->y;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 if ((p->dt1 > 60) && (p->dt1 <= 70)) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 if(p->dt1 % 2 == 1) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 length = 5;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 sprite->flag = true;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 sprite->length = length;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 Puttama(0, rinkx - 16, rinky, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 Puttama(0, rinkx, rinky, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 Puttama(0, rinkx + 16, rinky, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 } else {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 length = 2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 if ((p->dt1 > 70) && (p->dt1 <= 180)) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 length = 2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 if ((p->dt1 > 180) && (p->dt1 <= 240)) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 if (p->dt1 % 2 == 1) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 length = 4;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 rinkf2 = 1;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 Puttama(2, rinkx - 16, p->y - 32, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 Puttama(3, rinkx + 32 - 16, p->y - 32, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 } else {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 length = 2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 rinkf2 = 2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 if (p->dt1 > 240) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 rinkf2 = 2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 if ((p->dt1 > 240) && (p->dt1 <= 400)) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 length = 4;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 PutSprite(count, rinkx - 16, rinky + 32, 58 + p->dt1 % 4, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 if (p->dt1 > 300) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 rinkf2 = 3;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 if(jiki->x + 15 - rinkx < -5) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 p->vx = -1;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 } else if (jiki->x + 15 - rinkx > 5) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 p->vx = +1;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 } else {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 p->vx = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 p->x += p->vx;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 rinkx = p->x;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 rinky = p->y;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 Puttama(4, rinkx - 8, rinky + 16, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 if (p->dt1 > 400) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 length = 2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 smanager->setup_outputData();
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 if ((p->dt1 > 400) && (p->dt1 <= 500)) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 rinkf2 = 4;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 if (jiki->x + 15 - rinkx > 5) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 p->vx = -1;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 } else if (jiki->x + 15 - rinkx > 5) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 p->vx = +1;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 } else {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 p->vx = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 p->x += p->vx;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 rinkx = p->x;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 rinky = p->y;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 if (p->dt1 > 500) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 rinkf2 = 5;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 if (jiki->x + 15 - rinkx < -5) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 p->vx = -1;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 } else if(jiki->x + 15 - rinkx > 5) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 p->vx = +1;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 } else {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 p->vx = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 p->x += p->vx;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 rinkx = p->x;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 rinky = p->y;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 if (p->dt1 > 600) {
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 rinkf2 = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 p->dt1 = 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 }
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 int *w_count = (int*)smanager->get_output(wbuf, 1);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 int *w_fastebos = (int*)smanager->get_output(wbuf, 2);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 int *w_rinkx = (int*)smanager->get_output(wbuf, 3);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 int *w_rinky = (int*)smanager->get_output(wbuf, 4);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 int *w_rinkf2 = (int*)smanager->get_output(wbuf, 5);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 sprite->flag = true;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 sprite->length = length;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
196
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 fastebos++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
198 p->dt1++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
200
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 DefSpriteEx(54, 16, 32, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 index_count++;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 PutSpriteEx(54, p->x, p->y, 2, 2, 1, &sprite->data[index_count]);
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
204
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 *w_count = count;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 *w_fastebos = fastebos;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 *w_rinkx = rinkx;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 *w_rinky = rinky;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 *w_rinkf2 = rinkf2;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 *q = *p;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 return 0;
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 }