annotate scn2k/scn2k_grp.cc @ 66:d112357a0ec1

Fix a bug with savegames introduced with changeset c7bcc0ec2267. Warning: savegames created since c7bcc0ec2267 are probably corrupted, you may have to start the game over. If you chose not to do so, you should replace all occurrences of 'TextWindow' by 'TextImplWindow', and 'Text Window' by 'TextImpl Window' in your save files.
author Thibaut Girka <thib@sitedethib.com>
date Sat, 11 Dec 2010 18:36:20 +0100
parents 4416cfac86ae
children 1fd20d231376
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
223b71206888 Initial import
thib
parents:
diff changeset
1 /*
223b71206888 Initial import
thib
parents:
diff changeset
2 * Copyright (c) 2004-2006 Kazunori "jagarl" Ueno
223b71206888 Initial import
thib
parents:
diff changeset
3 * All rights reserved.
223b71206888 Initial import
thib
parents:
diff changeset
4 *
223b71206888 Initial import
thib
parents:
diff changeset
5 * Redistribution and use in source and binary forms, with or without
223b71206888 Initial import
thib
parents:
diff changeset
6 * modification, are permitted provided that the following conditions
223b71206888 Initial import
thib
parents:
diff changeset
7 * are met:
223b71206888 Initial import
thib
parents:
diff changeset
8 * 1. Redistributions of source code must retain the above copyright
223b71206888 Initial import
thib
parents:
diff changeset
9 * notice, this list of conditions and the following disclaimer.
223b71206888 Initial import
thib
parents:
diff changeset
10 * 2. Redistributions in binary form must reproduce the above copyright
223b71206888 Initial import
thib
parents:
diff changeset
11 * notice, this list of conditions and the following disclaimer in the
223b71206888 Initial import
thib
parents:
diff changeset
12 * documentation and/or other materials provided with the distribution.
223b71206888 Initial import
thib
parents:
diff changeset
13 * 3. The name of the author may not be used to endorse or promote products
223b71206888 Initial import
thib
parents:
diff changeset
14 * derived from this software without specific prior written permission.
223b71206888 Initial import
thib
parents:
diff changeset
15 *
223b71206888 Initial import
thib
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
223b71206888 Initial import
thib
parents:
diff changeset
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
223b71206888 Initial import
thib
parents:
diff changeset
18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
223b71206888 Initial import
thib
parents:
diff changeset
19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
223b71206888 Initial import
thib
parents:
diff changeset
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
223b71206888 Initial import
thib
parents:
diff changeset
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
223b71206888 Initial import
thib
parents:
diff changeset
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
223b71206888 Initial import
thib
parents:
diff changeset
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
223b71206888 Initial import
thib
parents:
diff changeset
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
223b71206888 Initial import
thib
parents:
diff changeset
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
223b71206888 Initial import
thib
parents:
diff changeset
26 */
223b71206888 Initial import
thib
parents:
diff changeset
27
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
28 #include "scn2k.h"
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
29 #include "system/file.h"
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
30 #include "system/system_config.h"
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
31 #include "font/text.h"
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
32 #include "window/render.h"
0
223b71206888 Initial import
thib
parents:
diff changeset
33
223b71206888 Initial import
thib
parents:
diff changeset
34 extern XKFont::HorizLayout* DefaultLayout(int text_size);
223b71206888 Initial import
thib
parents:
diff changeset
35
223b71206888 Initial import
thib
parents:
diff changeset
36 /*******************************************************************
223b71206888 Initial import
thib
parents:
diff changeset
37 ** GrpObj(implementation)
223b71206888 Initial import
thib
parents:
diff changeset
38 */
223b71206888 Initial import
thib
parents:
diff changeset
39
223b71206888 Initial import
thib
parents:
diff changeset
40 GrpObj::GrpObj(void) :
223b71206888 Initial import
thib
parents:
diff changeset
41 name(""), gan_name(""), pic_parent(0), picture(0), anm(0),
223b71206888 Initial import
thib
parents:
diff changeset
42 _posx(0), _posy(0), clip_area(0,0,0,0),
223b71206888 Initial import
thib
parents:
diff changeset
43 alpha(255), order(0), surface_num(0), print_moji(""), print_size(0), print_r(-1),print_g(-1),print_b(-1),
223b71206888 Initial import
thib
parents:
diff changeset
44 dig_number(0), dig_digit(0),
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
45 zoom(-1), rotate(-1), attr(GrpObj::HIDDEN) {
0
223b71206888 Initial import
thib
parents:
diff changeset
46 int i;
223b71206888 Initial import
thib
parents:
diff changeset
47 for (i=0; i<9; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
48 posx[i] = posy[i] = 0;
223b71206888 Initial import
thib
parents:
diff changeset
49 }
223b71206888 Initial import
thib
parents:
diff changeset
50 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
51
0
223b71206888 Initial import
thib
parents:
diff changeset
52 GrpObj::~GrpObj() {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
53 if (picture != NULL) delete picture;
0
223b71206888 Initial import
thib
parents:
diff changeset
54 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
55
0
223b71206888 Initial import
thib
parents:
diff changeset
56 int GrpObj::PosX() {
223b71206888 Initial import
thib
parents:
diff changeset
57 return _posx;
223b71206888 Initial import
thib
parents:
diff changeset
58 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
59
0
223b71206888 Initial import
thib
parents:
diff changeset
60 int GrpObj::PosY() {
223b71206888 Initial import
thib
parents:
diff changeset
61 return _posy;
223b71206888 Initial import
thib
parents:
diff changeset
62 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
63
0
223b71206888 Initial import
thib
parents:
diff changeset
64 void GrpObj::SetUpdate(void) {
223b71206888 Initial import
thib
parents:
diff changeset
65 attr = Attribute (attr | UPDATE_PICTURE);
18
4d7486cb20a9 Sync with upstream
thib
parents: 14
diff changeset
66 //Update(); //FIXME
0
223b71206888 Initial import
thib
parents:
diff changeset
67 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
68
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
69 void GrpObj::SetPos(int index, int x, int y) {
0
223b71206888 Initial import
thib
parents:
diff changeset
70 if (index < 0 || index > 8) {
223b71206888 Initial import
thib
parents:
diff changeset
71 fprintf(stderr,"GrpObj::SetPos: Invalid index %d <- %d,%d\n",index,x,y);
223b71206888 Initial import
thib
parents:
diff changeset
72 return;
223b71206888 Initial import
thib
parents:
diff changeset
73 }
223b71206888 Initial import
thib
parents:
diff changeset
74 if (x == posx[index] && y == posy[index]) return;
223b71206888 Initial import
thib
parents:
diff changeset
75 attr = Attribute(attr | UPDATE_POS);
223b71206888 Initial import
thib
parents:
diff changeset
76 _posx += x-posx[index];
223b71206888 Initial import
thib
parents:
diff changeset
77 _posy += y-posy[index];
223b71206888 Initial import
thib
parents:
diff changeset
78 posx[index] = x;
223b71206888 Initial import
thib
parents:
diff changeset
79 posy[index] = y;
223b71206888 Initial import
thib
parents:
diff changeset
80 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
81
0
223b71206888 Initial import
thib
parents:
diff changeset
82 void GrpObj::GetPos(int index, int& x, int& y) {
223b71206888 Initial import
thib
parents:
diff changeset
83 if (index < 0 || index > 8) {
223b71206888 Initial import
thib
parents:
diff changeset
84 fprintf(stderr,"GrpObj::GetPos: Invalid index %d\n",index);
223b71206888 Initial import
thib
parents:
diff changeset
85 x = 0; y = 0;
223b71206888 Initial import
thib
parents:
diff changeset
86 return;
223b71206888 Initial import
thib
parents:
diff changeset
87 }
223b71206888 Initial import
thib
parents:
diff changeset
88 x = posx[index];
223b71206888 Initial import
thib
parents:
diff changeset
89 y = posy[index];
223b71206888 Initial import
thib
parents:
diff changeset
90 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
91
0
223b71206888 Initial import
thib
parents:
diff changeset
92 void GrpObj::SetAlpha(int new_alpha) {
223b71206888 Initial import
thib
parents:
diff changeset
93 if (alpha == new_alpha) return;
223b71206888 Initial import
thib
parents:
diff changeset
94 alpha = new_alpha;
223b71206888 Initial import
thib
parents:
diff changeset
95 attr = Attribute(attr | UPDATE_ALPHA);
223b71206888 Initial import
thib
parents:
diff changeset
96 return;
223b71206888 Initial import
thib
parents:
diff changeset
97 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
98
0
223b71206888 Initial import
thib
parents:
diff changeset
99 void GrpObj::SetSurfaceNum(int num) {
223b71206888 Initial import
thib
parents:
diff changeset
100 if (num != -1) {
223b71206888 Initial import
thib
parents:
diff changeset
101 if (surface_num == num) return;
223b71206888 Initial import
thib
parents:
diff changeset
102 surface_num = num;
223b71206888 Initial import
thib
parents:
diff changeset
103 }
223b71206888 Initial import
thib
parents:
diff changeset
104 attr = Attribute(attr | UPDATE_SNUM);
223b71206888 Initial import
thib
parents:
diff changeset
105 }
223b71206888 Initial import
thib
parents:
diff changeset
106
223b71206888 Initial import
thib
parents:
diff changeset
107 void GrpObj::SetClipArea(int x, int y, int w, int h) {
223b71206888 Initial import
thib
parents:
diff changeset
108 Rect new_clip(x,y,x+w,y+h);
223b71206888 Initial import
thib
parents:
diff changeset
109 if (clip_area == new_clip) return;
223b71206888 Initial import
thib
parents:
diff changeset
110 clip_area = new_clip;
223b71206888 Initial import
thib
parents:
diff changeset
111 attr = Attribute(attr | UPDATE_CLIP);
223b71206888 Initial import
thib
parents:
diff changeset
112 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
113
0
223b71206888 Initial import
thib
parents:
diff changeset
114 PicBase* GrpObj::DeletePic(void) {
223b71206888 Initial import
thib
parents:
diff changeset
115 PicBase* p = picture;
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
116 anm = NULL;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
117 picture = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
118 src_pos.clear();
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
119 attr = Attribute(attr & HIDDEN);
0
223b71206888 Initial import
thib
parents:
diff changeset
120 return p;
223b71206888 Initial import
thib
parents:
diff changeset
121 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
122
0
223b71206888 Initial import
thib
parents:
diff changeset
123 void GrpObj::GetSrcGeom(int& width, int& height) {
223b71206888 Initial import
thib
parents:
diff changeset
124 if (src_pos.empty()) {
223b71206888 Initial import
thib
parents:
diff changeset
125 width = 0; height = 0;
223b71206888 Initial import
thib
parents:
diff changeset
126 if (name.length() == 0) {
223b71206888 Initial import
thib
parents:
diff changeset
127 return;
223b71206888 Initial import
thib
parents:
diff changeset
128 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
129 /* ボタンの位置情報を求める */
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
130 /* g00 ファイルのヘッダ部分に位置情報は入っている */
0
223b71206888 Initial import
thib
parents:
diff changeset
131 string path(name);
223b71206888 Initial import
thib
parents:
diff changeset
132 path += ".g00";
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
133 ARCINFO* info = FileSearcher::GetInstance()->Find(FileSearcher::PDT, path.c_str(), "g00");
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
134 if (info == NULL) { // ファイルが見つからない
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
135 fprintf(stderr, "GrpObj::GetSrcGeom : Cannot find file %s\n", path.c_str());
0
223b71206888 Initial import
thib
parents:
diff changeset
136 return;
223b71206888 Initial import
thib
parents:
diff changeset
137 }
223b71206888 Initial import
thib
parents:
diff changeset
138 const char* data = info->Read();
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
139 if (data != NULL && *data == 2) { // 画像ファイル内にボタン情報が存在する
0
223b71206888 Initial import
thib
parents:
diff changeset
140 int srclen = read_little_endian_int(data+5);
223b71206888 Initial import
thib
parents:
diff changeset
141 int i;
223b71206888 Initial import
thib
parents:
diff changeset
142 for (i=0; i<srclen; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
143 int x1 = read_little_endian_int(data+9+i*24+0);
223b71206888 Initial import
thib
parents:
diff changeset
144 int y1 = read_little_endian_int(data+9+i*24+4);
223b71206888 Initial import
thib
parents:
diff changeset
145 int x2 = read_little_endian_int(data+9+i*24+8);
223b71206888 Initial import
thib
parents:
diff changeset
146 int y2 = read_little_endian_int(data+9+i*24+12);
223b71206888 Initial import
thib
parents:
diff changeset
147 src_pos.push_back(Rect(x1, y1, x2+1, y2+1));
223b71206888 Initial import
thib
parents:
diff changeset
148 if (width < src_pos.back().width()) width = src_pos.back().width();
223b71206888 Initial import
thib
parents:
diff changeset
149 if (height < src_pos.back().height()) height = src_pos.back().height();
223b71206888 Initial import
thib
parents:
diff changeset
150 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
151 } else { // 画像ファイルから大きさ取得
0
223b71206888 Initial import
thib
parents:
diff changeset
152 width = read_little_endian_short(data+1);
223b71206888 Initial import
thib
parents:
diff changeset
153 height = read_little_endian_short(data+3);
223b71206888 Initial import
thib
parents:
diff changeset
154 src_pos.push_back(Rect(0,0,width,height));
223b71206888 Initial import
thib
parents:
diff changeset
155 }
223b71206888 Initial import
thib
parents:
diff changeset
156 delete info;
223b71206888 Initial import
thib
parents:
diff changeset
157 }
223b71206888 Initial import
thib
parents:
diff changeset
158 int sn = surface_num;
223b71206888 Initial import
thib
parents:
diff changeset
159 if (sn < 0 || sn > src_pos.size()) sn = 0;
223b71206888 Initial import
thib
parents:
diff changeset
160 width = src_pos[sn].width();
223b71206888 Initial import
thib
parents:
diff changeset
161 height = src_pos[sn].height();
223b71206888 Initial import
thib
parents:
diff changeset
162 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
163
0
223b71206888 Initial import
thib
parents:
diff changeset
164 void GrpObj::Update(void) {
223b71206888 Initial import
thib
parents:
diff changeset
165 if (attr & UPDATE_PICTURE) {
223b71206888 Initial import
thib
parents:
diff changeset
166 UpdateSurface();
223b71206888 Initial import
thib
parents:
diff changeset
167 attr = Attribute( (attr | UPDATE_ALL) & (~UPDATE_PICTURE));
223b71206888 Initial import
thib
parents:
diff changeset
168 }
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
169 if (picture == NULL) return;
0
223b71206888 Initial import
thib
parents:
diff changeset
170 if (attr & UPDATE_POS) {
60
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
171 if (zoom != -1) {
0
223b71206888 Initial import
thib
parents:
diff changeset
172 int w=0, h=0;
223b71206888 Initial import
thib
parents:
diff changeset
173 GetSrcGeom(w,h);
223b71206888 Initial import
thib
parents:
diff changeset
174 picture->Move(_posx-w/2, _posy-h/2);
223b71206888 Initial import
thib
parents:
diff changeset
175 } else {
223b71206888 Initial import
thib
parents:
diff changeset
176 picture->Move(_posx, _posy);
223b71206888 Initial import
thib
parents:
diff changeset
177 }
223b71206888 Initial import
thib
parents:
diff changeset
178 }
223b71206888 Initial import
thib
parents:
diff changeset
179 if (attr & UPDATE_ALPHA) {
223b71206888 Initial import
thib
parents:
diff changeset
180 if (alpha <= 0) {
223b71206888 Initial import
thib
parents:
diff changeset
181 picture->SetSurfaceAlpha(0, Rect(0,0));
223b71206888 Initial import
thib
parents:
diff changeset
182 picture->hide();
223b71206888 Initial import
thib
parents:
diff changeset
183 } else if (alpha >= ALPHA_MAX) {
223b71206888 Initial import
thib
parents:
diff changeset
184 picture->SetSurfaceAlpha(0, Rect(0,0));
223b71206888 Initial import
thib
parents:
diff changeset
185 if (attr & HIDDEN) picture->hide();
223b71206888 Initial import
thib
parents:
diff changeset
186 else picture->show();
223b71206888 Initial import
thib
parents:
diff changeset
187 } else {
223b71206888 Initial import
thib
parents:
diff changeset
188 picture->SetSurfaceAlpha(&alpha, Rect(0,0,1,1));
223b71206888 Initial import
thib
parents:
diff changeset
189 if (attr & HIDDEN) picture->hide();
223b71206888 Initial import
thib
parents:
diff changeset
190 else picture->show();
223b71206888 Initial import
thib
parents:
diff changeset
191 }
223b71206888 Initial import
thib
parents:
diff changeset
192 }
223b71206888 Initial import
thib
parents:
diff changeset
193 if ( (attr & UPDATE_SNUM) && (!src_pos.empty())) {
223b71206888 Initial import
thib
parents:
diff changeset
194 if (surface_num < 0 || surface_num >= src_pos.size()) surface_num = 0;
223b71206888 Initial import
thib
parents:
diff changeset
195 picture->SetSurfacePos(src_pos[surface_num].lx, src_pos[surface_num].ty);
223b71206888 Initial import
thib
parents:
diff changeset
196 }
223b71206888 Initial import
thib
parents:
diff changeset
197 if (attr & UPDATE_CLIP) {
223b71206888 Initial import
thib
parents:
diff changeset
198 picture->SetClipArea(clip_area);
223b71206888 Initial import
thib
parents:
diff changeset
199 }
223b71206888 Initial import
thib
parents:
diff changeset
200 attr = Attribute(attr & (~UPDATE_ALL));
223b71206888 Initial import
thib
parents:
diff changeset
201 if (attr & ANM_PLAYSTART) {
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
202 if (anm != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
203 anm->Play();
223b71206888 Initial import
thib
parents:
diff changeset
204 attr = Attribute(attr | ANM_PLAYING);
223b71206888 Initial import
thib
parents:
diff changeset
205 }
223b71206888 Initial import
thib
parents:
diff changeset
206 attr = Attribute(attr & (~ANM_PLAYSTART));
223b71206888 Initial import
thib
parents:
diff changeset
207 }
223b71206888 Initial import
thib
parents:
diff changeset
208 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
209
0
223b71206888 Initial import
thib
parents:
diff changeset
210 void GrpObj::CreateSurface(PicContainer* parent) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
211 if (picture != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
212 PicBase* p = DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
213 delete p;
223b71206888 Initial import
thib
parents:
diff changeset
214 }
223b71206888 Initial import
thib
parents:
diff changeset
215 src_pos.clear();
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
216 // picture を作成
0
223b71206888 Initial import
thib
parents:
diff changeset
217 pic_parent = parent;
223b71206888 Initial import
thib
parents:
diff changeset
218 picture = parent->create_leaf(Rect(_posx,_posy,_posx+1,_posy+1), 0);
223b71206888 Initial import
thib
parents:
diff changeset
219 picture->hide();
223b71206888 Initial import
thib
parents:
diff changeset
220 UpdateSurface();
223b71206888 Initial import
thib
parents:
diff changeset
221 }
223b71206888 Initial import
thib
parents:
diff changeset
222
223b71206888 Initial import
thib
parents:
diff changeset
223 void GrpObj::UpdateSurface(void) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
224 if (pic_parent == NULL || picture == NULL) return;
0
223b71206888 Initial import
thib
parents:
diff changeset
225 int width = 0, height = 0;
223b71206888 Initial import
thib
parents:
diff changeset
226 if (gtype == FILE || gtype == GAN) {
223b71206888 Initial import
thib
parents:
diff changeset
227 if (name.length() == 0) return;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
228 // ファイル名が存在する場合、ファイルを読み込み
0
223b71206888 Initial import
thib
parents:
diff changeset
229 GetSrcGeom(width, height);
223b71206888 Initial import
thib
parents:
diff changeset
230 if (width <= 0 || height <= 0) return;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
231 // surface の設定
0
223b71206888 Initial import
thib
parents:
diff changeset
232 if (surface_num == 0 && ( (zoom > 0 && zoom != 256) || rotate > 0)) {
223b71206888 Initial import
thib
parents:
diff changeset
233 ZoomRotate();
223b71206888 Initial import
thib
parents:
diff changeset
234 } else {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
235 // 普通に surface を設定
0
223b71206888 Initial import
thib
parents:
diff changeset
236 string path(name);
223b71206888 Initial import
thib
parents:
diff changeset
237 path += ".g00";
223b71206888 Initial import
thib
parents:
diff changeset
238 picture->SetSurface(path.c_str(), 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
239 picture->SetSurfaceRect(Rect(0,0,width,height));
223b71206888 Initial import
thib
parents:
diff changeset
240 }
60
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
241 if (attr & BLIT_ADD)
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
242 picture->SetSurfaceAttribute(PicBase::BLIT_ADD);
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
243 } else if (gtype == MOJI) { // テキスト描画
0
223b71206888 Initial import
thib
parents:
diff changeset
244 if (print_moji.length() == 0) return;
223b71206888 Initial import
thib
parents:
diff changeset
245 UpdateMoji();
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
246 } else if (gtype == DIGIT) { // 数値を画像表示
0
223b71206888 Initial import
thib
parents:
diff changeset
247 UpdateDigit();
223b71206888 Initial import
thib
parents:
diff changeset
248 }
223b71206888 Initial import
thib
parents:
diff changeset
249 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
250
0
223b71206888 Initial import
thib
parents:
diff changeset
251 void GrpObj::ZoomRotate(void) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
252 picture->SetSurface( (Surface*)0, 0, 0);
0
223b71206888 Initial import
thib
parents:
diff changeset
253
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
254 // 回転、縮小拡大は座標原点が画像の中心になる
0
223b71206888 Initial import
thib
parents:
diff changeset
255 string path(name);
223b71206888 Initial import
thib
parents:
diff changeset
256 path += ".g00";
223b71206888 Initial import
thib
parents:
diff changeset
257 Surface* surface_orig = pic_parent->Root().NewSurface(path.c_str());
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
258 if (surface_orig == NULL) return;
0
223b71206888 Initial import
thib
parents:
diff changeset
259
223b71206888 Initial import
thib
parents:
diff changeset
260 Surface* zoom_surface = pic_parent->Root().RotZoomSurface(surface_orig, double(zoom)/256.0, rotate);
223b71206888 Initial import
thib
parents:
diff changeset
261 Rect zoom_r (*zoom_surface);
223b71206888 Initial import
thib
parents:
diff changeset
262 picture->SetSurface(zoom_surface, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
263 picture->SetSurfaceFreeFlag();
223b71206888 Initial import
thib
parents:
diff changeset
264 //picture->Move(PosX() + - zoom_r.width()/2, PosY() + - zoom_r.height()/2);
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
265 // 中心座標がわからん・・・
0
223b71206888 Initial import
thib
parents:
diff changeset
266 picture->Move(320 - zoom_r.width()/2, 240 - zoom_r.height()/2);
223b71206888 Initial import
thib
parents:
diff changeset
267 picture->SetSurfaceRect(Rect(0, 0, zoom_r.width(), zoom_r.height()));
223b71206888 Initial import
thib
parents:
diff changeset
268
223b71206888 Initial import
thib
parents:
diff changeset
269 pic_parent->Root().DeleteSurface(surface_orig);
223b71206888 Initial import
thib
parents:
diff changeset
270 }
223b71206888 Initial import
thib
parents:
diff changeset
271
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
272 void GrpObj::UpdateMoji(void) { // 文字の大きさ、色などを変更
14
8da1d92ac8f8 Don't create fonts faces for size <= 0, and update objects when their font size is set
thib
parents: 11
diff changeset
273 if (print_moji.length() == 0 || print_size <= 2) return;
0
223b71206888 Initial import
thib
parents:
diff changeset
274 if (pic_parent == 0) return;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
275 /* テキストの大きさを得る */
0
223b71206888 Initial import
thib
parents:
diff changeset
276 int r, g, b;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
277 if (print_r == -1 || print_g == -1 || print_b == -1) {// 色設定なし
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
278 r = g = b = 0; // とりあえず黒(clannad のSave/Loadメニュー用)
0
223b71206888 Initial import
thib
parents:
diff changeset
279 } else {
223b71206888 Initial import
thib
parents:
diff changeset
280 r = print_r;
223b71206888 Initial import
thib
parents:
diff changeset
281 g = print_g;
223b71206888 Initial import
thib
parents:
diff changeset
282 b = print_b;
223b71206888 Initial import
thib
parents:
diff changeset
283 }
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
284 TextStream ts = TextStream::ParseMoji(print_moji.c_str(), r, g, b, print_size);
0
223b71206888 Initial import
thib
parents:
diff changeset
285 TextGlyphStream gs;
223b71206888 Initial import
thib
parents:
diff changeset
286 vector<int> lh;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
287 // とりあえず drawable width は充分に大きく(2048)取る
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
288 DefaultLayout(print_size-2)->Layout(ts, gs, lh, 2048); // print_size そのままだと弱干大きすぎるので -2
0
223b71206888 Initial import
thib
parents:
diff changeset
289 int width = gs.width();
223b71206888 Initial import
thib
parents:
diff changeset
290 int height = gs.height();
223b71206888 Initial import
thib
parents:
diff changeset
291 Surface* surface = pic_parent->Root().NewSurface(width, height, ALPHA_MASK);
223b71206888 Initial import
thib
parents:
diff changeset
292 DSurfaceFill(surface, Rect(*surface), 0, 0, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
293 DSurfaceRenderText(gs.begin(), gs.end(), Rect(0, 0, width, height), surface, Rect(0,0));
223b71206888 Initial import
thib
parents:
diff changeset
294 picture->SetSurface(surface, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
295 picture->SetSurfaceRect(Rect(0,0,width,height));
223b71206888 Initial import
thib
parents:
diff changeset
296 picture->SetSurfaceFreeFlag();
223b71206888 Initial import
thib
parents:
diff changeset
297 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
298
0
223b71206888 Initial import
thib
parents:
diff changeset
299 void GrpObj::UpdateDigit(void) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
300 // 画像表示の数値文字列を表示する
0
223b71206888 Initial import
thib
parents:
diff changeset
301 if (name.length() == 0) return;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
302 // ファイル名が存在する場合、ファイルを読み込み
0
223b71206888 Initial import
thib
parents:
diff changeset
303 string path(name);
223b71206888 Initial import
thib
parents:
diff changeset
304 path += ".g00";
223b71206888 Initial import
thib
parents:
diff changeset
305 Surface* surface_orig = pic_parent->Root().NewSurface(path.c_str());
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
306 if (surface_orig == NULL) return;
0
223b71206888 Initial import
thib
parents:
diff changeset
307
223b71206888 Initial import
thib
parents:
diff changeset
308 int width, height;
223b71206888 Initial import
thib
parents:
diff changeset
309 int i;
223b71206888 Initial import
thib
parents:
diff changeset
310 GetSrcGeom(width, height);
223b71206888 Initial import
thib
parents:
diff changeset
311 if (width <= 0 || height <= 0) return;
223b71206888 Initial import
thib
parents:
diff changeset
312 if (src_pos.size() < 14) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
313 // 必要な数の object がない
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
314 // 表示できない分の空の rect を追加しておく
0
223b71206888 Initial import
thib
parents:
diff changeset
315 for (i=src_pos.size(); i<14; i++)
223b71206888 Initial import
thib
parents:
diff changeset
316 src_pos.push_back(Rect(0,0,0,0));
223b71206888 Initial import
thib
parents:
diff changeset
317 pic_parent->Root().DeleteSurface(surface_orig);
223b71206888 Initial import
thib
parents:
diff changeset
318 return;
223b71206888 Initial import
thib
parents:
diff changeset
319 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
320 // 桁数の計算
0
223b71206888 Initial import
thib
parents:
diff changeset
321 char num_str[20];
223b71206888 Initial import
thib
parents:
diff changeset
322 if (dig_number < 0) sprintf(num_str, "%d", -dig_number);
223b71206888 Initial import
thib
parents:
diff changeset
323 else sprintf(num_str, "%d", dig_number);
223b71206888 Initial import
thib
parents:
diff changeset
324 int sign_count = 0;
223b71206888 Initial import
thib
parents:
diff changeset
325 int space_count = 0;
223b71206888 Initial import
thib
parents:
diff changeset
326 int total_count;
223b71206888 Initial import
thib
parents:
diff changeset
327 int dig_count = strlen(num_str);
223b71206888 Initial import
thib
parents:
diff changeset
328 if (dig_number < 0 && (attr&DIG_SIGN) == 0) dig_count++;
223b71206888 Initial import
thib
parents:
diff changeset
329 if (dig_count < dig_digit) space_count = dig_digit - dig_count;
223b71206888 Initial import
thib
parents:
diff changeset
330 if (attr & DIG_SIGN) sign_count = 1;
223b71206888 Initial import
thib
parents:
diff changeset
331 total_count = dig_count + space_count + sign_count;
223b71206888 Initial import
thib
parents:
diff changeset
332
223b71206888 Initial import
thib
parents:
diff changeset
333 Surface* surface = pic_parent->Root().NewSurface(width*total_count, height, ALPHA_MASK);
223b71206888 Initial import
thib
parents:
diff changeset
334 DSurfaceFill(surface, Rect(*surface), 0, 0, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
335
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
336 /* surface にコピーする */
0
223b71206888 Initial import
thib
parents:
diff changeset
337 int cur_x = 0;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
338 if ( (attr & DIG_PACK) && !(attr & DIG_ZERO)) { // 始めに空白を挿入
0
223b71206888 Initial import
thib
parents:
diff changeset
339 cur_x += space_count * width;
223b71206888 Initial import
thib
parents:
diff changeset
340 }
223b71206888 Initial import
thib
parents:
diff changeset
341 int plus = 10, minus = 11, plusminus = 12;
223b71206888 Initial import
thib
parents:
diff changeset
342 if (dig_number < 0) {
223b71206888 Initial import
thib
parents:
diff changeset
343 DSurfaceMove(surface, src_pos[minus], surface, Rect(cur_x,0));
223b71206888 Initial import
thib
parents:
diff changeset
344 cur_x += width;
223b71206888 Initial import
thib
parents:
diff changeset
345 } else if (attr & DIG_SIGN) {
223b71206888 Initial import
thib
parents:
diff changeset
346 if (dig_number == 0)
223b71206888 Initial import
thib
parents:
diff changeset
347 DSurfaceMove(surface, src_pos[plusminus], surface, Rect(cur_x,0));
223b71206888 Initial import
thib
parents:
diff changeset
348 else
223b71206888 Initial import
thib
parents:
diff changeset
349 DSurfaceMove(surface, src_pos[plus], surface, Rect(cur_x,0));
223b71206888 Initial import
thib
parents:
diff changeset
350 cur_x += width;
223b71206888 Initial import
thib
parents:
diff changeset
351 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
352 if (attr & DIG_ZERO) { // ゼロ・パディング
0
223b71206888 Initial import
thib
parents:
diff changeset
353 for (i=0; i<space_count; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
354 DSurfaceMove(surface, src_pos[0], surface, Rect(cur_x, 0));
223b71206888 Initial import
thib
parents:
diff changeset
355 cur_x += width;;
223b71206888 Initial import
thib
parents:
diff changeset
356 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
357 } else if (!(attr & DIG_PACK)) { // PACK オプションなし
0
223b71206888 Initial import
thib
parents:
diff changeset
358 cur_x += space_count * width;
223b71206888 Initial import
thib
parents:
diff changeset
359 }
223b71206888 Initial import
thib
parents:
diff changeset
360 for (i=0; num_str[i] != 0; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
361 DSurfaceMove(surface_orig, src_pos[num_str[i]-'0'], surface, Rect(cur_x, 0));
223b71206888 Initial import
thib
parents:
diff changeset
362 cur_x += width;
223b71206888 Initial import
thib
parents:
diff changeset
363 }
223b71206888 Initial import
thib
parents:
diff changeset
364
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
365 /* picture に設定 */
0
223b71206888 Initial import
thib
parents:
diff changeset
366 picture->SetSurface(surface, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
367 picture->SetSurfaceRect(Rect(0,0,width*total_count,height));
223b71206888 Initial import
thib
parents:
diff changeset
368 picture->SetSurfaceFreeFlag();
223b71206888 Initial import
thib
parents:
diff changeset
369
223b71206888 Initial import
thib
parents:
diff changeset
370 pic_parent->Root().DeleteSurface(surface_orig);
223b71206888 Initial import
thib
parents:
diff changeset
371 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
372
0
223b71206888 Initial import
thib
parents:
diff changeset
373 void GrpObj::CreateGan(Event::Container& event, int event_number) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
374 if (picture == NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
375 fprintf(stderr,"GrpObj::CreateGan() is called before Create()\n");
223b71206888 Initial import
thib
parents:
diff changeset
376 return;
223b71206888 Initial import
thib
parents:
diff changeset
377 }
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
378 if (anm != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
379 anm->Abort();
223b71206888 Initial import
thib
parents:
diff changeset
380 delete anm;
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
381 anm = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
382 }
223b71206888 Initial import
thib
parents:
diff changeset
383 if (gan_name.empty()) return;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
384 /* アニーメション情報 (.GAN ファイル)を求める */
0
223b71206888 Initial import
thib
parents:
diff changeset
385 string path(gan_name);
223b71206888 Initial import
thib
parents:
diff changeset
386 path += ".gan";
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
387 ARCINFO* info = FileSearcher::GetInstance()->Find(FileSearcher::GAN, path.c_str(), "gan");
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
388 if (info == NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
389 fprintf(stderr,"GrpObj::CreateGan: Cannot Find 'GAN' file %s\n", path.c_str());
223b71206888 Initial import
thib
parents:
diff changeset
390 return;
223b71206888 Initial import
thib
parents:
diff changeset
391 }
223b71206888 Initial import
thib
parents:
diff changeset
392 const char* data = info->Read();
223b71206888 Initial import
thib
parents:
diff changeset
393 if (read_little_endian_int(data) != 10000 || read_little_endian_int(data+4) != 10000) {
223b71206888 Initial import
thib
parents:
diff changeset
394 fprintf(stderr,"GrpObj::CreateGan: Invalid'GAN' file %s\n", path.c_str());
223b71206888 Initial import
thib
parents:
diff changeset
395 delete info;
223b71206888 Initial import
thib
parents:
diff changeset
396 return;
223b71206888 Initial import
thib
parents:
diff changeset
397 }
223b71206888 Initial import
thib
parents:
diff changeset
398
60
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
399 attr = Attribute(attr | UPDATE_POS);
0
223b71206888 Initial import
thib
parents:
diff changeset
400
223b71206888 Initial import
thib
parents:
diff changeset
401 const char* buf = data + 16;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
402 buf += strlen(buf) + 1; // 画像ファイル名が入っている
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
403 buf += 4; // 定数 20000
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
404 int pics = read_little_endian_int(buf); buf += 4; // 複数のアニメーション情報が入っている場合、情報数
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
405 // 以下、pics 回繰り返し
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
406 // アニメーションを行う実体を作成
0
223b71206888 Initial import
thib
parents:
diff changeset
407 AnmAlphaMove* wid = new AnmAlphaMove(event, picture);
223b71206888 Initial import
thib
parents:
diff changeset
408
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
409 if (event_number && event_number < pics) { // 複数のアニメーション情報がある場合、先の情報を読み飛ばす */
0
223b71206888 Initial import
thib
parents:
diff changeset
410 int i; for (i=0; i<event_number; i++) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
411 buf += 4; // 定数 30000
0
223b71206888 Initial import
thib
parents:
diff changeset
412 int ptns = read_little_endian_int(buf); buf += 4;
223b71206888 Initial import
thib
parents:
diff changeset
413 buf += ptns*52;
223b71206888 Initial import
thib
parents:
diff changeset
414 }
223b71206888 Initial import
thib
parents:
diff changeset
415 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
416 buf += 4; // 定数 30000
0
223b71206888 Initial import
thib
parents:
diff changeset
417 int ptns = read_little_endian_int(buf); buf += 4;
223b71206888 Initial import
thib
parents:
diff changeset
418 int total_time = 0;
223b71206888 Initial import
thib
parents:
diff changeset
419 int i;
223b71206888 Initial import
thib
parents:
diff changeset
420 for (i=0; i<ptns; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
421 int p = read_little_endian_int(buf+i*52+0*8+4);
223b71206888 Initial import
thib
parents:
diff changeset
422 int x = read_little_endian_int(buf+i*52+1*8+4);
223b71206888 Initial import
thib
parents:
diff changeset
423 int y = read_little_endian_int(buf+i*52+2*8+4);
223b71206888 Initial import
thib
parents:
diff changeset
424 int t = read_little_endian_int(buf+i*52+3*8+4);
223b71206888 Initial import
thib
parents:
diff changeset
425 int a = read_little_endian_int(buf+i*52+4*8+4);
223b71206888 Initial import
thib
parents:
diff changeset
426 x += PosX();
223b71206888 Initial import
thib
parents:
diff changeset
427 y += PosY();
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
428 if (p == -1) { a = 0; p = 0; } // p == -1 ならなにも表示しない
0
223b71206888 Initial import
thib
parents:
diff changeset
429 if (p >= src_pos.size()) {
223b71206888 Initial import
thib
parents:
diff changeset
430 fprintf(stderr,"Reading GAN file %s (G00 %s) : not enough pictures in .G00 file\n", path.c_str(), name.c_str());
223b71206888 Initial import
thib
parents:
diff changeset
431 a = 0; p = 0;
223b71206888 Initial import
thib
parents:
diff changeset
432 }
223b71206888 Initial import
thib
parents:
diff changeset
433 total_time += t;
223b71206888 Initial import
thib
parents:
diff changeset
434 wid->ptns.push_back(AnmAlphaMove::Ptn(Rect(x,y), src_pos[p], a, total_time));
223b71206888 Initial import
thib
parents:
diff changeset
435 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
436 wid->SetPtn(); // パターン登録終了
0
223b71206888 Initial import
thib
parents:
diff changeset
437 attr = Attribute(attr | ANM_PLAYSTART);
223b71206888 Initial import
thib
parents:
diff changeset
438 anm = wid;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
439 }
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
440
0
223b71206888 Initial import
thib
parents:
diff changeset
441 void GrpObj::CreateGanSpecial(Event::Container& event, int event_number, int time) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
442 if (picture == NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
443 fprintf(stderr,"GrpObj::CreateGan() is called before Create()\n");
223b71206888 Initial import
thib
parents:
diff changeset
444 return;
223b71206888 Initial import
thib
parents:
diff changeset
445 }
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
446 if (anm != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
447 anm->Abort();
223b71206888 Initial import
thib
parents:
diff changeset
448 delete anm;
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
449 anm = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
450 }
223b71206888 Initial import
thib
parents:
diff changeset
451
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
452 // アニメーションを行う実体を作成
0
223b71206888 Initial import
thib
parents:
diff changeset
453 AnmAlphaMove* wid = new AnmAlphaMove(event, picture);
223b71206888 Initial import
thib
parents:
diff changeset
454
223b71206888 Initial import
thib
parents:
diff changeset
455 int i;
223b71206888 Initial import
thib
parents:
diff changeset
456 switch(event_number) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
457 case 0: // pattern を 0 から最後まで変化させる
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
458 for (i=0; i<src_pos.size(); i++) {
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
459 wid->ptns.push_back(AnmAlphaMove::Ptn(Rect(PosX(), PosY()), src_pos[i], 255, time*i));
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
460 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
461 wid->SetPtn(); // パターン登録終了
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
462 anm = wid;
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
463 attr = Attribute(attr | ANM_PLAYSTART);
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
464 break;
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
465 default:
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
466 break;
0
223b71206888 Initial import
thib
parents:
diff changeset
467 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
468 }
0
223b71206888 Initial import
thib
parents:
diff changeset
469
223b71206888 Initial import
thib
parents:
diff changeset
470 void GrpObj::SetZoomRotate(int new_zoom, int new_rotate) {
223b71206888 Initial import
thib
parents:
diff changeset
471 if (zoom == new_zoom && rotate == new_rotate) return;
18
4d7486cb20a9 Sync with upstream
thib
parents: 14
diff changeset
472 if ( zoom == -1 || new_zoom == -1) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
473 attr = Attribute(attr | UPDATE_POS); // centering する
18
4d7486cb20a9 Sync with upstream
thib
parents: 14
diff changeset
474 }
4d7486cb20a9 Sync with upstream
thib
parents: 14
diff changeset
475 zoom = new_zoom;
0
223b71206888 Initial import
thib
parents:
diff changeset
476 if (new_rotate != -1) rotate = new_rotate;
223b71206888 Initial import
thib
parents:
diff changeset
477 if (zoom < 0) zoom = 256;
223b71206888 Initial import
thib
parents:
diff changeset
478 if (rotate < 0) rotate = 0;
223b71206888 Initial import
thib
parents:
diff changeset
479 else if (rotate > 360) rotate %= 360;
223b71206888 Initial import
thib
parents:
diff changeset
480
223b71206888 Initial import
thib
parents:
diff changeset
481 attr = Attribute(attr | UPDATE_PICTURE);
223b71206888 Initial import
thib
parents:
diff changeset
482 }
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
483
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
484 void GrpObj::Refresh(GrpObj& parent_obj) {
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
485 //if (&parent_obj != this) printf("Toto\n"); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
486
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
487 GrpObjMap::iterator it;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
488
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
489 for (it = children_obj.begin(); it != children_obj.end(); it++)
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
490 it->second.Refresh(parent_obj);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
491
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
492 if (picture == NULL) return;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
493 if (alpha == 0 || (attr & GrpObj::HIDDEN) || (parent_obj.attr & GrpObj::HIDDEN)) {
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
494 if (attr & GrpObj::ANM_PLAYING) {
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
495 attr = GrpObj::Attribute(attr & ~(GrpObj::ANM_PLAYING));
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
496 if (anm != NULL) anm->Abort();
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
497 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
498 picture->hide();
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
499 } else {
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
500 Update();
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
501 picture->show();
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
502 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
503 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
504
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
505 void GrpObj::_debug_Dump(int id, int indent)
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
506 {
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
507 const char* repr;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
508
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
509 if (indent == 0)
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
510 repr = "obj %04d(%p): name %10s pos %d,%d alpha %d (%d/%d/%d)\n";
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
511 else
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
512 repr = " * obj %04d(%p): name %10s pos %d,%d alpha %d (%d/%d/%d)\n";
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
513
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
514 if (picture != NULL) {
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
515 if (!name.empty())
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
516 fprintf(stderr, repr,
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
517 id, this, name.c_str(), PosX(), PosY(), alpha, attr&GrpObj::HIDDEN ? 1 : 0, 0,
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
518 picture->IsHidden());
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
519 else if (!print_moji.empty())
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
520 fprintf(stderr, repr,
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
521 id, this, print_moji.c_str(), PosX(), PosY(), alpha, attr&GrpObj::HIDDEN ? 1 : 0,
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
522 0, picture->IsHidden());
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
523 else
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
524 fprintf(stderr, repr,
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
525 id, this, "<EMPTY>", PosX(), PosY(), alpha, attr&GrpObj::HIDDEN ? 1 : 0, 0,
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
526 picture->IsHidden());
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
527 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
528
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
529 GrpObjMap::iterator it;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
530 for (it = children_obj.begin(); it != children_obj.end(); it++)
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
531 it->second._debug_Dump(it->first, indent+1);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
532 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
533
0
223b71206888 Initial import
thib
parents:
diff changeset
534 /******************************************************************
223b71206888 Initial import
thib
parents:
diff changeset
535 **
223b71206888 Initial import
thib
parents:
diff changeset
536 ** class ScnGrp*
223b71206888 Initial import
thib
parents:
diff changeset
537 */
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
538 /* Princess Bride: 背景画の一部のみ移動、の実装 */
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
539
0
223b71206888 Initial import
thib
parents:
diff changeset
540 ScnGrpMove::ScnGrpMove(Event::Container& container, PicBase* _pic, PicRoot& _root, Surface* _dest, const Rect& _dest_r, Surface* _src, const Rect& _from, const Rect& _to, int total_time) :
223b71206888 Initial import
thib
parents:
diff changeset
541 WidAnmTime(container, _pic, total_time),
223b71206888 Initial import
thib
parents:
diff changeset
542 dest(_dest), src(_src), root(_root),dest_r(_dest_r), from(_from), to(_to) {
223b71206888 Initial import
thib
parents:
diff changeset
543 int dx = to.lx - from.lx;
223b71206888 Initial import
thib
parents:
diff changeset
544 int dy = to.ty - from.ty;
223b71206888 Initial import
thib
parents:
diff changeset
545 if (dx < 0) dx = -dx;
223b71206888 Initial import
thib
parents:
diff changeset
546 if (dy < 0) dy = -dy;
223b71206888 Initial import
thib
parents:
diff changeset
547 if (dx < dy) dx = dy;
223b71206888 Initial import
thib
parents:
diff changeset
548 if (dx == 0) dx = 1;
223b71206888 Initial import
thib
parents:
diff changeset
549 SetAllCount(dx);
223b71206888 Initial import
thib
parents:
diff changeset
550 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
551
0
223b71206888 Initial import
thib
parents:
diff changeset
552 void ScnGrpMove::Exec(int count) {
223b71206888 Initial import
thib
parents:
diff changeset
553 Rect r(0,0,dest_r.width(),dest_r.height());
223b71206888 Initial import
thib
parents:
diff changeset
554 int dx = to.lx - from.lx;
223b71206888 Initial import
thib
parents:
diff changeset
555 int dy = to.ty - from.ty;
223b71206888 Initial import
thib
parents:
diff changeset
556 int x = dx*count/all_count + from.lx;
223b71206888 Initial import
thib
parents:
diff changeset
557 int y = dy*count/all_count + from.ty;
223b71206888 Initial import
thib
parents:
diff changeset
558 r.rmove(x, y);
223b71206888 Initial import
thib
parents:
diff changeset
559 root.BlitSurface(src, r, dest, dest_r);
223b71206888 Initial import
thib
parents:
diff changeset
560 iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
561 for (it=pic.begin(); it!=pic.end(); it++)
223b71206888 Initial import
thib
parents:
diff changeset
562 (*it)->SetSurface(dest, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
563 }
223b71206888 Initial import
thib
parents:
diff changeset
564
223b71206888 Initial import
thib
parents:
diff changeset
565 void ScnGrpAnm::CalcTotal(void) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
566 /* total time を計算 */
0
223b71206888 Initial import
thib
parents:
diff changeset
567 if (empty()) return;
223b71206888 Initial import
thib
parents:
diff changeset
568 int tm = 0;
223b71206888 Initial import
thib
parents:
diff changeset
569 vector<ScnGrpAnmAtom>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
570 for (it=begin(); it != end(); it++) tm += it->time;
223b71206888 Initial import
thib
parents:
diff changeset
571 total_time = tm;
223b71206888 Initial import
thib
parents:
diff changeset
572 SetAllCount(tm);
223b71206888 Initial import
thib
parents:
diff changeset
573 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
574
0
223b71206888 Initial import
thib
parents:
diff changeset
575 void ScnGrpAnm::Exec(int count) {
223b71206888 Initial import
thib
parents:
diff changeset
576 int tm = 0; vector<ScnGrpAnmAtom>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
577 for (it=begin(); it != end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
578 tm += it->time;
223b71206888 Initial import
thib
parents:
diff changeset
579 if (count < tm) break;
223b71206888 Initial import
thib
parents:
diff changeset
580 }
223b71206888 Initial import
thib
parents:
diff changeset
581 if (it == end()) it--;
223b71206888 Initial import
thib
parents:
diff changeset
582 owner.LoadSurface(it->name.c_str(), 0);
223b71206888 Initial import
thib
parents:
diff changeset
583 }
223b71206888 Initial import
thib
parents:
diff changeset
584
223b71206888 Initial import
thib
parents:
diff changeset
585
223b71206888 Initial import
thib
parents:
diff changeset
586 /*****************************************************
223b71206888 Initial import
thib
parents:
diff changeset
587 *
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
588 * Grp
0
223b71206888 Initial import
thib
parents:
diff changeset
589 *
223b71206888 Initial import
thib
parents:
diff changeset
590 */
223b71206888 Initial import
thib
parents:
diff changeset
591
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
592 #include "music2/music.h"
0
223b71206888 Initial import
thib
parents:
diff changeset
593
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
594 Grp::Grp(Event::Container& _event, PicContainer& _parent, const Flags& f, set<int>& _cgm_data):
0
223b71206888 Initial import
thib
parents:
diff changeset
595 event(_event),
223b71206888 Initial import
thib
parents:
diff changeset
596 flags(f),
223b71206888 Initial import
thib
parents:
diff changeset
597 parent(_parent),
223b71206888 Initial import
thib
parents:
diff changeset
598 status(NORMAL),
223b71206888 Initial import
thib
parents:
diff changeset
599 skip_mode(SKIP_NO),
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
600 cgm_data(_cgm_data)
0
223b71206888 Initial import
thib
parents:
diff changeset
601 {
223b71206888 Initial import
thib
parents:
diff changeset
602 int i;
223b71206888 Initial import
thib
parents:
diff changeset
603 for (i=0; i<MAXPDT; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
604 ssurface[i] = 0;
223b71206888 Initial import
thib
parents:
diff changeset
605 dsurface[i] = 0;
223b71206888 Initial import
thib
parents:
diff changeset
606 }
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
607
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
608 music = MuSys::GetInstance();
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
609 config = AyuSysConfig::GetInstance();
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
610
0
223b71206888 Initial import
thib
parents:
diff changeset
611 screen = parent.create_leaf(Rect(0, 0, parent.Width(), parent.Height()), 0);
223b71206888 Initial import
thib
parents:
diff changeset
612 screen_front = parent.create_leaf(Rect(0, 0, parent.Width(), parent.Height()), 0);
223b71206888 Initial import
thib
parents:
diff changeset
613 surface = parent.Root().NewSurface(parent.Width(), parent.Height(), NO_MASK);
223b71206888 Initial import
thib
parents:
diff changeset
614 surface_update = parent.Root().NewSurface(parent.Width(), parent.Height(), NO_MASK);
223b71206888 Initial import
thib
parents:
diff changeset
615 DSurfaceFill(surface, Rect(*surface), 0, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
616 DSurfaceFill(surface_update, Rect(*surface), 0, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
617 screen->SetSurface(surface, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
618 screen->show();
223b71206888 Initial import
thib
parents:
diff changeset
619 screen_front->hide();
223b71206888 Initial import
thib
parents:
diff changeset
620 screen_front->ZMove(screen);
223b71206888 Initial import
thib
parents:
diff changeset
621
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
622 LoadCgm();
0
223b71206888 Initial import
thib
parents:
diff changeset
623
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
624 RegisterCommand(1, 30, 0, "stackClear", (CmdImpl) &Grp::impl_stackClear);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
625 RegisterCommand(1, 33, 70, "grpBuffer", (CmdImpl) &Grp::impl_grpBuffer);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
626 RegisterCommand(1, 33, 73, "grpOpenBG", (CmdImpl) &Grp::impl_grpOpen);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
627 RegisterCommand(1, 33, 75, "grpMulti", (CmdImpl) &Grp::impl_grpMulti); //FIXME: or not...
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
628 RegisterCommand(1, 33, 76, "grpOpen", (CmdImpl) &Grp::impl_grpOpen);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
629 RegisterCommand(1, 33, 32, "shake", (CmdImpl) &Grp::impl_shake);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
630 RegisterCommand(1, 33, 100, "grpCopy", (CmdImpl) &Grp::impl_grpCopy);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
631 RegisterCommand(1, 33, 1201, "recFill", (CmdImpl) &Grp::impl_recFill);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
632 RegisterCommand(1, 33, 1100, "recCopy", (CmdImpl) &Grp::impl_recCopy);
60
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
633 RegisterCommand(1, 33, 1101, "recMaskCopy", NULL); //TODO: Same thing as recCopy, but using source's alpha
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
634 RegisterCommand(1, 33, 1600, "recAdd", (CmdImpl) &Grp::impl_recAdd);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
635 RegisterCommand(1, 33, 406, "grpPan", (CmdImpl) &Grp::impl_grpPan);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
636
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
637 RegisterCommand(1, 34, 3120, "snmBgScroll", (CmdImpl) &Grp::impl_snmBgScroll);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
638 RegisterCommand(1, 34, 3100, "snmBgPlay", (CmdImpl) &Grp::impl_snmPlay);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
639 RegisterCommand(1, 34, 2100, "snmPlay", (CmdImpl) &Grp::impl_snmPlay);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
640 RegisterCommand(1, 34, 2101, "snmPlayEx", (CmdImpl) &Grp::impl_snmPlay);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
641
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
642 RegisterCommand(1, 4, 1500, "cgGetTotal", (CmdImpl) &Grp::impl_cgGet);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
643 RegisterCommand(1, 4, 1501, "cgGetViewed", (CmdImpl) &Grp::impl_cgGet);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
644 RegisterCommand(1, 4, 1502, "cgGetViewedPcnt", (CmdImpl) &Grp::impl_cgGet);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
645 RegisterCommand(1, 4, 1503, "cgGetFlag", (CmdImpl) &Grp::impl_cgStatus);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
646 RegisterCommand(1, 4, 1504, "cgStatus", (CmdImpl) &Grp::impl_cgStatus);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
647
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
648 RegisterCommand(1, 4, 0x6a4, "CreateInput", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
649 RegisterCommand(1, 4, 0x6ae, "SetInput", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
650
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
651 RegisterCommand(1, 61, 10, "objClear", (CmdImpl) &Grp::impl_objClear);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
652 RegisterCommand(1, 61, 11, "objDelete", (CmdImpl) &Grp::impl_objClear);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
653
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
654 RegisterCommand(1, 71, 1000, "objOfFile", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
655 RegisterCommand(1, 71, 1003, "objOfFileGan", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
656 RegisterCommand(1, 71, 1100, "objOfArea", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
657 RegisterCommand(1, 71, 1200, "objOfText", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
658 RegisterCommand(1, 71, 1300, "objDriftOfFile", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
659 RegisterCommand(1, 71, 1400, "objOfDigits", (CmdImpl) &Grp::impl_createObj);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
660
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
661 RegisterCommand(2, 71, 1000, "subObjOfFile", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
662 RegisterCommand(2, 71, 1003, "subObjOfGan", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
663 RegisterCommand(2, 71, 1100, "subObjOfArea", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
664 RegisterCommand(2, 71, 1200, "subObjOfText", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
665 RegisterCommand(2, 71, 1300, "subObjDriftOfFile", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
666 RegisterCommand(2, 71, 1400, "subObjOfDigits", (CmdImpl) &Grp::impl_createObj);
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
667
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
668 //I suppose it's the same thing as createObj*, but I didn't see it in action. For now, mark it unhandled.
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
669 RegisterCommand(1, 72, 1000, "objBgOfFile", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
670 RegisterCommand(1, 72, 1003, "objBgOfFileGan", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
671 RegisterCommand(1, 72, 1100, "objBgOfArea", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
672 RegisterCommand(1, 72, 1200, "objBgOfText", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
673 RegisterCommand(1, 72, 1300, "objBgDriftOfFile", (CmdImpl) &Grp::impl_createObj);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
674 RegisterCommand(1, 72, 1400, "objBgOfDigits", (CmdImpl) &Grp::impl_createObj);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
675
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
676 RegisterCommand(2, 72, 1000, "subObjBgOfFile", NULL);//FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
677 RegisterCommand(2, 72, 1003, "subObjBgOfGan", NULL);//FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
678 RegisterCommand(2, 72, 1100, "subObjBgOfArea", NULL);//FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
679 RegisterCommand(2, 72, 1200, "subObjBgOfText", NULL);//FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
680 RegisterCommand(2, 72, 1300, "subObjBgDriftOfFile", NULL);//FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
681 RegisterCommand(2, 72, 1400, "subObjBgOfDigits", NULL);//FIXME;
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
682
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
683 RegisterCommand(1, 73, 0, "ganStop?", NULL); //That's what xclannad says, but I'm not sure...
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
684 RegisterCommand(1, 73, 1000, "ganStop", (CmdImpl) &Grp::impl_gan); //That's what rldev says
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
685 RegisterCommand(1, 73, 3, "ganIsPlaying", (CmdImpl) &Grp::impl_gan);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
686 RegisterCommand(1, 73, 2003, "objPlay", (CmdImpl) &Grp::impl_gan);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
687 RegisterCommand(1, 73, 1001, "ganLoop", (CmdImpl) &Grp::impl_gan);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
688 RegisterCommand(1, 73, 1003, "ganPlay", (CmdImpl) &Grp::impl_gan);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
689 RegisterCommand(1, 73, 1005, "ganPlayOnce", (CmdImpl) &Grp::impl_gan);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
690 RegisterCommand(1, 73, 3001, "ganLoop2", (CmdImpl) &Grp::impl_gan);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
691 RegisterCommand(1, 73, 3003, "ganPlay2", (CmdImpl) &Grp::impl_gan);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
692 RegisterCommand(1, 73, 3005, "ganPlayOnce2", (CmdImpl) &Grp::impl_gan);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
693
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
694 RegisterCommand(2, 73, 0, "ganSubStop?", NULL); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
695 RegisterCommand(2, 73, 1000, "ganSubStop", NULL); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
696 RegisterCommand(2, 73, 3, "ganSubIsPlaying", NULL); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
697 RegisterCommand(2, 73, 2003, "objSubPlay", NULL); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
698 RegisterCommand(2, 73, 1001, "ganSubLoop", NULL); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
699 RegisterCommand(2, 73, 1003, "ganSubPlay", NULL); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
700 RegisterCommand(2, 73, 1005, "ganSubPlayOnce", NULL); //FIXME
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
701 RegisterCommand(2, 73, 3001, "ganSubLoop2", (CmdImpl) &Grp::impl_gan); //FIXME
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
702 RegisterCommand(2, 73, 3003, "ganSubPlay2", NULL); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
703 RegisterCommand(2, 73, 3005, "ganSubPlayOnce2", NULL); //FIXME
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
704
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
705
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
706 RegisterCommand(1, 81, 1000, "objMove", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
707 RegisterCommand(1, 82, 1000, "objBgMove", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
708 RegisterCommand(1, 81, 1001, "objLeft", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
709 RegisterCommand(1, 82, 1001, "objBgLeft", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
710 RegisterCommand(1, 81, 1002, "objTop", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
711 RegisterCommand(1, 82, 1002, "objBgTop", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
712 RegisterCommand(1, 81, 1003, "objAlpha", (CmdImpl) &Grp::impl_objAlpha);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
713 RegisterCommand(1, 82, 1003, "objBgAlpha", (CmdImpl) &Grp::impl_objAlpha);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
714 RegisterCommand(1, 81, 1004, "objShow", (CmdImpl) &Grp::impl_objShow);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
715 RegisterCommand(1, 82, 1004, "objBgShow", (CmdImpl) &Grp::impl_objShow);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
716 RegisterCommand(1, 81, 1005, "objDispArea", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
717 RegisterCommand(1, 82, 1005, "objBgDispArea", NULL);
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
718 RegisterCommand(1, 81, 1006, "objAdjust", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
719 RegisterCommand(1, 82, 1006, "objBgAdjust", NULL); //FIXME: (CmdImpl) &Grp::impl_objSetPos);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
720 RegisterCommand(1, 81, 1007, "objAdjustX", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
721 RegisterCommand(1, 82, 1007, "objBgAdjustX", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
722 RegisterCommand(1, 81, 1008, "objAdjustY", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
723 RegisterCommand(1, 82, 1008, "objBgAdjustY", NULL);
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
724 RegisterCommand(1, 81, 2006, "objAdjust2?", NULL); //FIXME: (CmdImpl) &Grp::impl_objSetPos); I don't know if it is usefull or properly implemented
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
725 RegisterCommand(1, 82, 2006, "objBgAdjust2?", NULL); //FIXME: (CmdImpl) &Grp::impl_objSetPos); See above
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
726 RegisterCommand(1, 81, 1016, "objColour", NULL); //FIXME: (CmdImpl) &Grp::impl_objColour);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
727 RegisterCommand(1, 82, 1016, "objBgColour", NULL); //FIXME: (CmdImpl) &Grp::impl_objColour);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
728 RegisterCommand(1, 81, 1017, "objColR", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
729 RegisterCommand(1, 82, 1017, "objBgColR", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
730 RegisterCommand(1, 81, 1018, "objColG", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
731 RegisterCommand(1, 82, 1018, "objBgColG", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
732 RegisterCommand(1, 81, 1019, "objColB", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
733 RegisterCommand(1, 82, 1019, "objBgColB", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
734 RegisterCommand(1, 81, 1020, "objColLevel", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
735 RegisterCommand(1, 82, 1020, "objBgColLevel", NULL);
60
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
736 RegisterCommand(1, 81, 1021, "objComposite", (CmdImpl) &Grp::impl_objComposite); //FIXME: May be broken
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
737 RegisterCommand(1, 82, 1021, "objBgComposite", (CmdImpl) &Grp::impl_objComposite);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
738 RegisterCommand(1, 81, 1024, "objSetText", (CmdImpl) &Grp::impl_objSetText);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
739 RegisterCommand(1, 82, 1024, "objBgSetText", (CmdImpl) &Grp::impl_objSetText);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
740 RegisterCommand(1, 81, 1025, "objTextOpts", (CmdImpl) &Grp::impl_objTextOpts); //FIXME: Incomplete
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
741 RegisterCommand(1, 82, 1025, "objBgTextOpts", (CmdImpl) &Grp::impl_objTextOpts);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
742 RegisterCommand(1, 81, 1032, "objOrder", (CmdImpl) &Grp::impl_objOrder);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
743 RegisterCommand(1, 82, 1032, "objBgOrder", (CmdImpl) &Grp::impl_objOrder);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
744 RegisterCommand(1, 81, 1034, "objDispRect", (CmdImpl) &Grp::impl_objDispArea);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
745 RegisterCommand(1, 82, 1034, "objBgDispRect", (CmdImpl) &Grp::impl_objDispArea);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
746 RegisterCommand(1, 81, 1037, "objSetDigits", (CmdImpl) &Grp::impl_objSetDigits);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
747 RegisterCommand(1, 82, 1037, "objBgSetDigits", (CmdImpl) &Grp::impl_objSetDigits);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
748 RegisterCommand(1, 81, 1038, "objNumOpts", (CmdImpl) &Grp::impl_objNumOpts);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
749 RegisterCommand(1, 82, 1038, "objBgNumOpts", (CmdImpl) &Grp::impl_objNumOpts);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
750 RegisterCommand(1, 81, 1039, "objPattNo", (CmdImpl) &Grp::impl_objPattNo);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
751 RegisterCommand(1, 82, 1039, "objBgPattNo", (CmdImpl) &Grp::impl_objPattNo);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
752 RegisterCommand(1, 81, 1046, "objScale", (CmdImpl) &Grp::impl_objScale); //FIXME: Broken behaviour
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
753 RegisterCommand(1, 82, 1046, "objBgScale", (CmdImpl) &Grp::impl_objScale);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
754 RegisterCommand(1, 81, 1047, "objWidth", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
755 RegisterCommand(1, 82, 1047, "objBgWidth", NULL);
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
756 RegisterCommand(1, 81, 1049, "objRotate", (CmdImpl) &Grp::impl_objRotate);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
757 RegisterCommand(1, 82, 1049, "objBgRotate", (CmdImpl) &Grp::impl_objRotate);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
758
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
759 RegisterCommand(2, 81, 1000, "childObjMove", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
760 RegisterCommand(2, 82, 1000, "childObjBgMove", (CmdImpl) &Grp::impl_objSetPos);
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
761 RegisterCommand(2, 81, 1001, "childObjLeft", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
762 RegisterCommand(2, 82, 1001, "childObjBgLeft", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
763 RegisterCommand(2, 81, 1002, "childObjTop", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
764 RegisterCommand(2, 82, 1002, "childObjBgTop", NULL);
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
765 RegisterCommand(2, 81, 1003, "childObjAlpha", (CmdImpl) &Grp::impl_objAlpha);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
766 RegisterCommand(2, 82, 1003, "childObjBgAlpha", (CmdImpl) &Grp::impl_objAlpha);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
767 RegisterCommand(2, 81, 1004, "childObjShow", (CmdImpl) &Grp::impl_objShow);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
768 RegisterCommand(2, 82, 1004, "childObjBgShow", (CmdImpl) &Grp::impl_objShow);
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
769 RegisterCommand(2, 81, 1005, "childObjDispArea", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
770 RegisterCommand(2, 82, 1005, "childObjBgDispArea", NULL);
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
771 RegisterCommand(2, 81, 1006, "childObjAdjust", (CmdImpl) &Grp::impl_objSetPos);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
772 RegisterCommand(2, 82, 1006, "childObjBgAdjust", (CmdImpl) &Grp::impl_objSetPos);
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
773 RegisterCommand(2, 81, 1007, "childObjAdjustX", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
774 RegisterCommand(2, 82, 1007, "childObjBgAdjustX", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
775 RegisterCommand(2, 81, 1008, "childObjAdjustY", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
776 RegisterCommand(2, 82, 1008, "childObjBgAdjustY", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
777 RegisterCommand(2, 81, 2006, "childObjAdjust2?", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
778 RegisterCommand(2, 82, 2006, "childObjBgAdjust2?", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
779 RegisterCommand(2, 81, 1016, "childObjColour", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
780 RegisterCommand(2, 82, 1016, "childObjBgColour", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
781 RegisterCommand(2, 81, 1017, "childObjColR", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
782 RegisterCommand(2, 82, 1017, "childObjBgColR", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
783 RegisterCommand(2, 81, 1018, "childObjColG", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
784 RegisterCommand(2, 82, 1018, "childObjBgColG", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
785 RegisterCommand(2, 81, 1019, "childObjColB", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
786 RegisterCommand(2, 82, 1019, "childObjBgColB", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
787 RegisterCommand(2, 81, 1020, "childObjColLevel", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
788 RegisterCommand(2, 82, 1020, "childObjBgColLevel", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
789 RegisterCommand(2, 81, 1021, "childObjComposite", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
790 RegisterCommand(2, 82, 1021, "childObjBgComposite", NULL);
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
791 RegisterCommand(2, 81, 1024, "childObjSetText", (CmdImpl) &Grp::impl_objSetText);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
792 RegisterCommand(2, 82, 1024, "childObjBgSetText", (CmdImpl) &Grp::impl_objSetText);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
793 RegisterCommand(2, 81, 1025, "childObjTextOpts", (CmdImpl) &Grp::impl_objTextOpts);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
794 RegisterCommand(2, 82, 1025, "childObjBgTextOpts", (CmdImpl) &Grp::impl_objTextOpts);
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
795 RegisterCommand(2, 81, 1032, "childObjOrder", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
796 RegisterCommand(2, 82, 1032, "childObjBgOrder", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
797 RegisterCommand(2, 81, 1034, "childObjDispRect", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
798 RegisterCommand(2, 82, 1034, "childObjBgDispRect", NULL);
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
799 RegisterCommand(2, 81, 1037, "childObjSetDigits", (CmdImpl) &Grp::impl_objSetDigits);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
800 RegisterCommand(2, 82, 1037, "childObjBgSetDigits", (CmdImpl) &Grp::impl_objSetDigits);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
801 RegisterCommand(2, 81, 1038, "childObjNumOpts", (CmdImpl) &Grp::impl_objNumOpts);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
802 RegisterCommand(2, 82, 1038, "childObjBgNumOpts", (CmdImpl) &Grp::impl_objNumOpts);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
803 RegisterCommand(2, 81, 1039, "childObjPattNo", (CmdImpl) &Grp::impl_objPattNo);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
804 RegisterCommand(2, 82, 1039, "childObjBgPattNo", (CmdImpl) &Grp::impl_objPattNo);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
805 RegisterCommand(2, 81, 1046, "childObjScale", (CmdImpl) &Grp::impl_objScale);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
806 RegisterCommand(2, 82, 1046, "childObjBgScale", (CmdImpl) &Grp::impl_objScale);
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
807 RegisterCommand(2, 81, 1047, "childObjWidth", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
808 RegisterCommand(2, 82, 1047, "childObjBgWidth", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
809 RegisterCommand(2, 81, 1049, "childObjRotate", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
810 RegisterCommand(2, 82, 1049, "childObjBgRotate", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
811
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
812 RegisterCommand(1, 84, 1000, "objGetPos", (CmdImpl) &Grp::impl_objPosDims);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
813 RegisterCommand(1, 84, 1100, "objGetDims", (CmdImpl) &Grp::impl_objPosDims);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
814
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
815 RegisterCommand(2, 84, 1000, "childObjGetPos", (CmdImpl) &Grp::impl_objPosDims);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
816 RegisterCommand(2, 84, 1100, "childObjGetDims", (CmdImpl) &Grp::impl_objPosDims);
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
817
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
818 RegisterCommand(1, 31, 0, "refresh", (CmdImpl) &Grp::impl_refresh);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
819
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
820 RegisterCommand(1, 20, 0, "bgmLoop", (CmdImpl) &Grp::impl_bgmLoop);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
821 RegisterCommand(1, 20, 1, "bgmPlayEx", (CmdImpl) &Grp::impl_bgmLoop); //FIXME: wait
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
822 RegisterCommand(1, 20, 2, "bgmPlay", (CmdImpl) &Grp::impl_bgmLoop);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
823 RegisterCommand(1, 20, 5, "bgmStop", (CmdImpl) &Grp::impl_bgmStop);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
824 RegisterCommand(1, 20, 105, "bgmFadeOut", (CmdImpl) &Grp::impl_bgmStop);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
825
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
826 RegisterCommand(1, 21, 0, "wavPlay", (CmdImpl) &Grp::impl_playWav);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
827 RegisterCommand(1, 21, 1, "wavPlayEx", (CmdImpl) &Grp::impl_playWav);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
828 RegisterCommand(1, 21, 2, "wavLoop", (CmdImpl) &Grp::impl_playWav);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
829 RegisterCommand(1, 21, 3, "wavWait", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
830 RegisterCommand(1, 21, 4, "wavPlaying", NULL);
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
831 RegisterCommand(1, 21, 5, "wavStop", (CmdImpl) &Grp::impl_stopWav);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
832 RegisterCommand(1, 21, 105, "wavFadeout", (CmdImpl) &Grp::impl_stopWav);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
833
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
834 RegisterCommand(1, 22, 0, "sePlay", (CmdImpl) &Grp::impl_playSE);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
835
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
836 RegisterCommand(1, 4, 2230, "SetBgmVolMod", (CmdImpl) &Grp::impl_SetVolMod);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
837 RegisterCommand(1, 4, 2231, "SetKoeVolMod", (CmdImpl) &Grp::impl_SetVolMod);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
838 RegisterCommand(1, 4, 2232, "SetPCMVolMod", (CmdImpl) &Grp::impl_SetVolMod);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
839 RegisterCommand(1, 4, 2233, "SetSeVolMod", (CmdImpl) &Grp::impl_SetVolMod);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
840 RegisterCommand(1, 4, 2330, "BgmVolMod", (CmdImpl) &Grp::impl_GetVolMod);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
841 RegisterCommand(1, 4, 2331, "KoeVolMod", (CmdImpl) &Grp::impl_GetVolMod);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
842 RegisterCommand(1, 4, 2332, "PCMVolMod", (CmdImpl) &Grp::impl_GetVolMod);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
843 RegisterCommand(1, 4, 2333, "SeVolMod", (CmdImpl) &Grp::impl_GetVolMod);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
844
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
845 RegisterCommand(1, 23, 0, "koePlay", (CmdImpl) &Grp::impl_koePlay);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
846 RegisterCommand(1, 23, 1, "koePlayEx", (CmdImpl) &Grp::impl_koePlay); //FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
847 RegisterCommand(1, 23, 7, "koePlayExC", (CmdImpl) &Grp::impl_koePlay); //FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
848 RegisterCommand(1, 23, 8, "koeDoPlay", (CmdImpl) &Grp::impl_koePlay); //FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
849 RegisterCommand(1, 23, 9, "koeDoPlayEx", (CmdImpl) &Grp::impl_koePlay); //FIXME
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
850 RegisterCommand(1, 23, 10, "koeDoPlayExC", (CmdImpl) &Grp::impl_koePlay); //FIXME
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
851
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
852 RegisterCommand(1, 26, 1, "movPlayEx", (CmdImpl) &Grp::impl_movPlay);
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
853 RegisterCommand(1, 26, 20, "movPlayExC", (CmdImpl) &Grp::impl_movPlay);
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
854
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
855 RegisterCommand(1, 61, 14, "objSwap?", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
856 RegisterCommand(1, 62, 14, "objSwap?", NULL);
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
857
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
858 RegisterCommand(1, 4, 1211, "EnableSyscom", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
859 RegisterCommand(1, 4, 1212, "HideSyscom", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
860 RegisterCommand(1, 4, 1213, "DisableSyscom", NULL);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
861
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
862 anm1 = NULL;
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
863 anm2 = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
864 }
223b71206888 Initial import
thib
parents:
diff changeset
865
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
866 Grp::~Grp() {
0
223b71206888 Initial import
thib
parents:
diff changeset
867 map<int,GrpObj>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
868 for (it=grpobj.begin(); it!=grpobj.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
869 PicBase* p = it->second.DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
870 delete p;
223b71206888 Initial import
thib
parents:
diff changeset
871 }
223b71206888 Initial import
thib
parents:
diff changeset
872
223b71206888 Initial import
thib
parents:
diff changeset
873 delete screen;
223b71206888 Initial import
thib
parents:
diff changeset
874 delete screen_front;
223b71206888 Initial import
thib
parents:
diff changeset
875 parent.Root().DeleteSurface(surface);
50
35ce1a30f3f9 * Added va_end where there is a va_start
thib
parents: 48
diff changeset
876 parent.Root().DeleteSurface(surface_update);
0
223b71206888 Initial import
thib
parents:
diff changeset
877 int i;
223b71206888 Initial import
thib
parents:
diff changeset
878 for (i=0; i<MAXPDT; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
879 if (ssurface[i]) parent.Root().DeleteSurface(ssurface[i]);
223b71206888 Initial import
thib
parents:
diff changeset
880 if (dsurface[i]) parent.Root().DeleteSurface(dsurface[i]);
223b71206888 Initial import
thib
parents:
diff changeset
881 }
223b71206888 Initial import
thib
parents:
diff changeset
882 }
223b71206888 Initial import
thib
parents:
diff changeset
883
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
884 Surface* Grp::Dsurface(int pdt) {
0
223b71206888 Initial import
thib
parents:
diff changeset
885 if (pdt == 0) return surface;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
886 if (dsurface[pdt] == 0) { // とりあえず画面の大きさということにする
0
223b71206888 Initial import
thib
parents:
diff changeset
887 if (pdt == WORKPDT)
223b71206888 Initial import
thib
parents:
diff changeset
888 dsurface[pdt] = parent.Root().NewSurface(parent.Width(), parent.Height(), ALPHA_MASK);
223b71206888 Initial import
thib
parents:
diff changeset
889 else
223b71206888 Initial import
thib
parents:
diff changeset
890 dsurface[pdt] = parent.Root().NewSurface(parent.Width(), parent.Height(), NO_MASK);
223b71206888 Initial import
thib
parents:
diff changeset
891 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
892 if (ssurface[pdt]) { // ssurface が存在すれば、dsurface にコピーして返す
0
223b71206888 Initial import
thib
parents:
diff changeset
893 DSurfaceMove(ssurface[pdt], Rect(*ssurface[pdt]), dsurface[pdt], Rect(0,0));
223b71206888 Initial import
thib
parents:
diff changeset
894 parent.Root().DeleteSurface(ssurface[pdt]);
223b71206888 Initial import
thib
parents:
diff changeset
895 ssurface[pdt] = 0;
223b71206888 Initial import
thib
parents:
diff changeset
896 }
223b71206888 Initial import
thib
parents:
diff changeset
897 return dsurface[pdt];
223b71206888 Initial import
thib
parents:
diff changeset
898 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
899
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
900 GrpObj* Grp::GetGraphicObj(int grp, bool fg) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
901 if (fg)
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
902 return &grpobj[grp];
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
903 else
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
904 return &bs_obj[grp];
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
905 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
906
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
907 GrpObj* Grp::GetGraphicObj(int grp, int index, bool fg) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
908 GrpObj* g = GetGraphicObj(grp, fg);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
909 return &g->children_obj[index];
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
910 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
911
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
912 GrpObj* Grp::GetGraphicObjVarMode(Cmd& cmd, int &base_arg, bool fg) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
913 GrpObj* g;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
914 if (cmd.cmd1 == 2) {
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
915 g = GetGraphicObj(cmd.args[base_arg].value, cmd.args[base_arg+1].value, fg);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
916 base_arg += 1;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
917 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
918 else
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
919 g = GetGraphicObj(cmd.args[base_arg].value, fg);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
920 return g;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
921 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
922
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
923 #include <SDL.h>
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
924 Surface* Grp::Ssurface(int pdt) {
0
223b71206888 Initial import
thib
parents:
diff changeset
925 if (pdt == 0) return surface;
223b71206888 Initial import
thib
parents:
diff changeset
926 if (ssurface[pdt]) {
223b71206888 Initial import
thib
parents:
diff changeset
927 return ssurface[pdt];
223b71206888 Initial import
thib
parents:
diff changeset
928 }
223b71206888 Initial import
thib
parents:
diff changeset
929 return Dsurface(pdt);
223b71206888 Initial import
thib
parents:
diff changeset
930 }
223b71206888 Initial import
thib
parents:
diff changeset
931
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
932 void Grp::LoadSurface(const char* str, int pdt) {
0
223b71206888 Initial import
thib
parents:
diff changeset
933 string s = str;
223b71206888 Initial import
thib
parents:
diff changeset
934 if (cgm_info.find(s) != cgm_info.end()) {
223b71206888 Initial import
thib
parents:
diff changeset
935 cgm_data.insert(cgm_info[s]);
223b71206888 Initial import
thib
parents:
diff changeset
936 }
223b71206888 Initial import
thib
parents:
diff changeset
937 Surface* bg = parent.Root().NewSurface(s.c_str());
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
938 if (bg == NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
939 s += ".g00";
223b71206888 Initial import
thib
parents:
diff changeset
940 bg = parent.Root().NewSurface(s.c_str());
223b71206888 Initial import
thib
parents:
diff changeset
941 }
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
942 if (bg != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
943 if (ssurface[pdt]) parent.Root().DeleteSurface(ssurface[pdt]);
223b71206888 Initial import
thib
parents:
diff changeset
944 ssurface[pdt] = bg;
223b71206888 Initial import
thib
parents:
diff changeset
945 if (pdt == 0) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
946 /* とりあえず Princess Bride のアニメーション効果専用 */
0
223b71206888 Initial import
thib
parents:
diff changeset
947 Rect r(*ssurface[0]);
223b71206888 Initial import
thib
parents:
diff changeset
948 Rect dr(*surface);
223b71206888 Initial import
thib
parents:
diff changeset
949 int x = (dr.width()-r.width())/2;
223b71206888 Initial import
thib
parents:
diff changeset
950 int y = (dr.height()-r.height())/2;
223b71206888 Initial import
thib
parents:
diff changeset
951 DSurfaceMove(ssurface[0], r, surface, Rect(x,y));
223b71206888 Initial import
thib
parents:
diff changeset
952 parent.Root().DeleteSurface(ssurface[0]);
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
953 ssurface[0] = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
954 screen->SetSurface(surface, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
955 }
223b71206888 Initial import
thib
parents:
diff changeset
956 } else {
223b71206888 Initial import
thib
parents:
diff changeset
957 if (str[0] != 0)
223b71206888 Initial import
thib
parents:
diff changeset
958 fprintf(stderr,"Cannot find surface %d <- '%s'\n",pdt,str);
223b71206888 Initial import
thib
parents:
diff changeset
959 }
223b71206888 Initial import
thib
parents:
diff changeset
960 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
961
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
962 void Grp::InitSel(void) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
963 int i;
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
964 int args[16];
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
965 char key[10];
0
223b71206888 Initial import
thib
parents:
diff changeset
966 for (i=0; i<999; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
967 sprintf(key, "#SEL.%03d",i);
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
968 if (config->GetParam(key, 15, &args[0], &args[1],
0
223b71206888 Initial import
thib
parents:
diff changeset
969 &args[2], &args[3], &args[4], &args[5], &args[6], &args[7],
223b71206888 Initial import
thib
parents:
diff changeset
970 &args[8], &args[9], &args[10], &args[11], &args[12], &args[13],
223b71206888 Initial import
thib
parents:
diff changeset
971 &args[14])) {
223b71206888 Initial import
thib
parents:
diff changeset
972
223b71206888 Initial import
thib
parents:
diff changeset
973 sprintf(key, "#SELR.%03d", i);
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
974 if (config->GetParam(key, 16, &args[0], &args[1],
0
223b71206888 Initial import
thib
parents:
diff changeset
975 &args[2], &args[3], &args[4], &args[5], &args[6], &args[7],
223b71206888 Initial import
thib
parents:
diff changeset
976 &args[8], &args[9], &args[10], &args[11], &args[12], &args[13],
223b71206888 Initial import
thib
parents:
diff changeset
977 &args[14], &args[15])) continue;
223b71206888 Initial import
thib
parents:
diff changeset
978 }
223b71206888 Initial import
thib
parents:
diff changeset
979 SEL& s = anmtype[i];
223b71206888 Initial import
thib
parents:
diff changeset
980 s.from = Rect(args[0], args[1], args[2]+1, args[3]+1);
223b71206888 Initial import
thib
parents:
diff changeset
981 s.to = Rect(args[4], args[5]);
223b71206888 Initial import
thib
parents:
diff changeset
982 s.time = args[6];
223b71206888 Initial import
thib
parents:
diff changeset
983 s.sel_no = args[7];
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
984 int j;
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
985 for (j=0; j<8; j++) s.args[j] = args[8+j];
0
223b71206888 Initial import
thib
parents:
diff changeset
986 }
223b71206888 Initial import
thib
parents:
diff changeset
987 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
988
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
989 void Grp::SetSkipMode(SkipMode _mode) {
0
223b71206888 Initial import
thib
parents:
diff changeset
990 if ( (skip_mode & SKIP_IN_MENU) && (_mode & SKIP_IN_MENU) == 0) {
223b71206888 Initial import
thib
parents:
diff changeset
991 RefreshObj();
223b71206888 Initial import
thib
parents:
diff changeset
992 } else if ( (skip_mode & SKIP_IN_MENU) == 0 && (_mode & SKIP_IN_MENU) ) {
223b71206888 Initial import
thib
parents:
diff changeset
993 }
223b71206888 Initial import
thib
parents:
diff changeset
994 skip_mode = _mode;
223b71206888 Initial import
thib
parents:
diff changeset
995 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
996
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
997 void Grp::SetObjChanged(int num) {
0
223b71206888 Initial import
thib
parents:
diff changeset
998 changed_obj.insert(num);
223b71206888 Initial import
thib
parents:
diff changeset
999 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1000
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1001 void Grp::RefreshObj(void) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1002 if (!deleted_pic.empty()) {
223b71206888 Initial import
thib
parents:
diff changeset
1003 vector<PicBase*>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
1004 for (it=deleted_pic.begin(); it!=deleted_pic.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1005 if (*it) delete *it;
223b71206888 Initial import
thib
parents:
diff changeset
1006 }
223b71206888 Initial import
thib
parents:
diff changeset
1007 deleted_pic.clear();
223b71206888 Initial import
thib
parents:
diff changeset
1008 }
223b71206888 Initial import
thib
parents:
diff changeset
1009 if (!changed_obj.empty()) {
223b71206888 Initial import
thib
parents:
diff changeset
1010 set<int>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
1011 for (it=changed_obj.begin(); it != changed_obj.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1012 if (grpobj.find(*it) == grpobj.end()) continue;
223b71206888 Initial import
thib
parents:
diff changeset
1013 GrpObj& obj = grpobj[*it];
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1014 obj.Refresh(obj);
0
223b71206888 Initial import
thib
parents:
diff changeset
1015 }
223b71206888 Initial import
thib
parents:
diff changeset
1016 changed_obj.clear();
223b71206888 Initial import
thib
parents:
diff changeset
1017 }
223b71206888 Initial import
thib
parents:
diff changeset
1018 if (reserved_load_surface0.length() != 0) {
223b71206888 Initial import
thib
parents:
diff changeset
1019 LoadSurface(reserved_load_surface0.c_str(), 0);
223b71206888 Initial import
thib
parents:
diff changeset
1020 reserved_load_surface0 = "";
223b71206888 Initial import
thib
parents:
diff changeset
1021 }
223b71206888 Initial import
thib
parents:
diff changeset
1022 screen->ReBlit();
223b71206888 Initial import
thib
parents:
diff changeset
1023 }
223b71206888 Initial import
thib
parents:
diff changeset
1024
223b71206888 Initial import
thib
parents:
diff changeset
1025
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1026 #include <SDL.h>
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1027 void Grp::StartAnm(int type) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1028 SEL sel;
223b71206888 Initial import
thib
parents:
diff changeset
1029
223b71206888 Initial import
thib
parents:
diff changeset
1030 if (anmtype.find(type) == anmtype.end()) {
223b71206888 Initial import
thib
parents:
diff changeset
1031 if (anmtype.find(0) == anmtype.end()) {
223b71206888 Initial import
thib
parents:
diff changeset
1032 sel.sel_no = 1;
223b71206888 Initial import
thib
parents:
diff changeset
1033 sel.from = Rect(*surface);
223b71206888 Initial import
thib
parents:
diff changeset
1034 sel.to = Rect(0,0);
223b71206888 Initial import
thib
parents:
diff changeset
1035 sel.time = 0;
223b71206888 Initial import
thib
parents:
diff changeset
1036 } else {
223b71206888 Initial import
thib
parents:
diff changeset
1037 sel = anmtype[0];
223b71206888 Initial import
thib
parents:
diff changeset
1038 }
223b71206888 Initial import
thib
parents:
diff changeset
1039 } else {
223b71206888 Initial import
thib
parents:
diff changeset
1040 sel = anmtype[type];
223b71206888 Initial import
thib
parents:
diff changeset
1041 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1042 if (anm1 != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1043 fprintf(stderr,"Warning: StartAnm() called before anm1 finished\n");
223b71206888 Initial import
thib
parents:
diff changeset
1044 anm1->Abort();
223b71206888 Initial import
thib
parents:
diff changeset
1045 delete anm1;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1046 anm1 = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
1047 }
223b71206888 Initial import
thib
parents:
diff changeset
1048 map<int,GrpObj>::iterator it;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1049 // 現在表示中のobjectを消去
0
223b71206888 Initial import
thib
parents:
diff changeset
1050 deleted_pic.push_back(screen);
223b71206888 Initial import
thib
parents:
diff changeset
1051 for (it=grpobj.begin(); it!=grpobj.end(); it++) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1052 if (! (it->second.attr & GrpObj::WIPEON)) { // 画像切り替え時に object 削除
0
223b71206888 Initial import
thib
parents:
diff changeset
1053 deleted_pic.push_back(it->second.DeletePic());
223b71206888 Initial import
thib
parents:
diff changeset
1054 } else {
223b71206888 Initial import
thib
parents:
diff changeset
1055 GrpObj& new_obj = bs_obj[it->first];
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1056 if (new_obj.name.empty()) { // 新しい object が存在しなければ内容を引き継ぐ
0
223b71206888 Initial import
thib
parents:
diff changeset
1057 new_obj = it->second;
223b71206888 Initial import
thib
parents:
diff changeset
1058 it->second.DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
1059 } else {
223b71206888 Initial import
thib
parents:
diff changeset
1060 new_obj.attr = GrpObj::Attribute(new_obj.attr | GrpObj::WIPEON);
223b71206888 Initial import
thib
parents:
diff changeset
1061 deleted_pic.push_back(it->second.DeletePic());
223b71206888 Initial import
thib
parents:
diff changeset
1062 }
223b71206888 Initial import
thib
parents:
diff changeset
1063 }
223b71206888 Initial import
thib
parents:
diff changeset
1064 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1065 grpobj.clear(); // 全オブジェクト削除
0
223b71206888 Initial import
thib
parents:
diff changeset
1066
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1067 // 全画像オブジェクトの前にscreen 移動
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1068 // 新しい screen_front を作成しておく
0
223b71206888 Initial import
thib
parents:
diff changeset
1069 screen = screen_front;
223b71206888 Initial import
thib
parents:
diff changeset
1070 screen->hide();
223b71206888 Initial import
thib
parents:
diff changeset
1071 screen->SetSurface(surface_update, 0, 0);
223b71206888 Initial import
thib
parents:
diff changeset
1072 parent.Root().BlitSurface(Dsurface(1), Rect(*surface_update), surface_update, Rect(0,0));
223b71206888 Initial import
thib
parents:
diff changeset
1073
223b71206888 Initial import
thib
parents:
diff changeset
1074 screen_front = parent.create_leaf(Rect(0, 0, parent.Width(), parent.Height()), 0);
223b71206888 Initial import
thib
parents:
diff changeset
1075 screen_front->hide();
223b71206888 Initial import
thib
parents:
diff changeset
1076 screen_front->ZMove(screen);
223b71206888 Initial import
thib
parents:
diff changeset
1077
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1078 // 新しい object へ更新、surface_update へ新しい object を表示
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1079 // (object 作成時は picture は hide されている)
0
223b71206888 Initial import
thib
parents:
diff changeset
1080 for (it=bs_obj.begin(); it!=bs_obj.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1081 grpobj[it->first] = it->second;
223b71206888 Initial import
thib
parents:
diff changeset
1082 it->second.DeletePic();
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1083 CreateObj(it->first);//FIXME: Adapt to groups
0
223b71206888 Initial import
thib
parents:
diff changeset
1084 GrpObj& g = grpobj[it->first];
223b71206888 Initial import
thib
parents:
diff changeset
1085 if (g.picture) {
223b71206888 Initial import
thib
parents:
diff changeset
1086 g.Update();
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
1087 if (g.alpha == 0 || (g.attr & GrpObj::HIDDEN)) ;
0
223b71206888 Initial import
thib
parents:
diff changeset
1088 else g.picture->SimpleBlit(surface_update);
223b71206888 Initial import
thib
parents:
diff changeset
1089 g.picture->hide();
223b71206888 Initial import
thib
parents:
diff changeset
1090 }
223b71206888 Initial import
thib
parents:
diff changeset
1091 }
223b71206888 Initial import
thib
parents:
diff changeset
1092 bs_obj.clear();
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1093 // 画像効果開始
0
223b71206888 Initial import
thib
parents:
diff changeset
1094 switch(sel.sel_no) {
223b71206888 Initial import
thib
parents:
diff changeset
1095 default:
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1096 case 0: case 50: // 0 と 50 の違いが良くわからない
0
223b71206888 Initial import
thib
parents:
diff changeset
1097 if (skip_mode & SKIP_GRP_NOEFFEC)
223b71206888 Initial import
thib
parents:
diff changeset
1098 anm1 = new WidAnmAlpha(event, screen, ALPHA_MAX, ALPHA_MAX, 0);
223b71206888 Initial import
thib
parents:
diff changeset
1099 else if (skip_mode & SKIP_GRP_FAST)
223b71206888 Initial import
thib
parents:
diff changeset
1100 anm1 = new WidAnmAlpha(event, screen, 0, ALPHA_MAX, sel.time/4);
223b71206888 Initial import
thib
parents:
diff changeset
1101 else
223b71206888 Initial import
thib
parents:
diff changeset
1102 anm1 = new WidAnmAlpha(event, screen, 0, ALPHA_MAX, sel.time);
223b71206888 Initial import
thib
parents:
diff changeset
1103 break;
223b71206888 Initial import
thib
parents:
diff changeset
1104 }
223b71206888 Initial import
thib
parents:
diff changeset
1105 if (anm1) anm1->Play();
223b71206888 Initial import
thib
parents:
diff changeset
1106 if (skip_mode & SKIP_GRP_NOEFFEC) AbortAnm();
223b71206888 Initial import
thib
parents:
diff changeset
1107 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1108
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1109 void Grp::StartShake(int total, const int* pattern) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1110 if (anm2) {
223b71206888 Initial import
thib
parents:
diff changeset
1111 fprintf(stderr,"Warning: StartShake() called before another animation finished\n");
223b71206888 Initial import
thib
parents:
diff changeset
1112 anm2->Abort();
223b71206888 Initial import
thib
parents:
diff changeset
1113 delete anm2;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1114 anm2 = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
1115 }
223b71206888 Initial import
thib
parents:
diff changeset
1116 if (skip_mode & SKIP_GRP_NOEFFEC) return;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1117 AnmAlphaMove* new_anm = new AnmAlphaMove(event, &parent); // shake screen では元画面の座標を揺らす
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1118 int i;
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1119 int tm = 0;
0
223b71206888 Initial import
thib
parents:
diff changeset
1120 for (i=0; i<total; i+=3) {
223b71206888 Initial import
thib
parents:
diff changeset
1121 int x = pattern[i];
223b71206888 Initial import
thib
parents:
diff changeset
1122 int y = pattern[i+1];
223b71206888 Initial import
thib
parents:
diff changeset
1123 new_anm->ptns.push_back(AnmAlphaMove::Ptn(Rect(x,y), Rect(0,0), 255, tm));
223b71206888 Initial import
thib
parents:
diff changeset
1124 tm += pattern[i+2];
223b71206888 Initial import
thib
parents:
diff changeset
1125 }
223b71206888 Initial import
thib
parents:
diff changeset
1126 new_anm->ptns.push_back(AnmAlphaMove::Ptn(Rect(0,0), Rect(0,0), 255, tm));
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1127 new_anm->SetPtn(); // パターン登録終了
0
223b71206888 Initial import
thib
parents:
diff changeset
1128 new_anm->Play();
223b71206888 Initial import
thib
parents:
diff changeset
1129 anm2 = new_anm;
223b71206888 Initial import
thib
parents:
diff changeset
1130 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1131
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1132 void Grp::AbortAnm(void) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1133 if (anm1 == NULL) return;
0
223b71206888 Initial import
thib
parents:
diff changeset
1134 anm1->Abort();
223b71206888 Initial import
thib
parents:
diff changeset
1135 delete anm1;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1136 anm1 = NULL;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1137 /* 画像効果終了 */
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1138 /* 古い画面への画像効果があれば消去 */
0
223b71206888 Initial import
thib
parents:
diff changeset
1139 if (anm2 && anm2->pic[0] != screen) {
223b71206888 Initial import
thib
parents:
diff changeset
1140 anm2->Abort();
223b71206888 Initial import
thib
parents:
diff changeset
1141 delete anm2;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1142 anm2 = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
1143 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1144 /* pdt1 -> pdt0 へコピー */
0
223b71206888 Initial import
thib
parents:
diff changeset
1145 DSurfaceMove(dsurface[1], Rect(*dsurface[1]), surface, Rect(0,0));
223b71206888 Initial import
thib
parents:
diff changeset
1146 screen->SetSurface(surface, 0, 0);
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1147 // 画像効果開始時に存在したobjectを消去
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1148 // 新しい object 表示
0
223b71206888 Initial import
thib
parents:
diff changeset
1149 RefreshObj();
223b71206888 Initial import
thib
parents:
diff changeset
1150 return;
223b71206888 Initial import
thib
parents:
diff changeset
1151 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1152
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1153 void Grp::LoadSurface(const char* str) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1154 if (anm1 != NULL) AbortAnm(); // 前の描画が終わってなければ強制終了
0
223b71206888 Initial import
thib
parents:
diff changeset
1155 LoadSurface(str, 1);
223b71206888 Initial import
thib
parents:
diff changeset
1156 bg_name = str;
223b71206888 Initial import
thib
parents:
diff changeset
1157 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1158
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1159 void Grp::LoadSurface(void) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1160 if (anm1 != NULL) AbortAnm(); // 前の描画が終わってなければ強制終了
0
223b71206888 Initial import
thib
parents:
diff changeset
1161 LoadSurface(bg_name.c_str(), 1);
223b71206888 Initial import
thib
parents:
diff changeset
1162 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1163
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1164 void Grp::AddSurface(const char* str) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1165 if (anm1 != NULL) AbortAnm(); // 前の描画が終わってなければ強制終了
0
223b71206888 Initial import
thib
parents:
diff changeset
1166 LoadSurface(bg_name.c_str());
223b71206888 Initial import
thib
parents:
diff changeset
1167
223b71206888 Initial import
thib
parents:
diff changeset
1168 string s = str;
223b71206888 Initial import
thib
parents:
diff changeset
1169 Surface* front = parent.Root().NewSurface(s.c_str());
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1170 if (front == NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1171 s += ".g00";
223b71206888 Initial import
thib
parents:
diff changeset
1172 front = parent.Root().NewSurface(s.c_str());
223b71206888 Initial import
thib
parents:
diff changeset
1173 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1174 if (front != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1175 parent.Root().BlitSurface(front, Rect(*front), Dsurface(1), Rect(0,0));
223b71206888 Initial import
thib
parents:
diff changeset
1176 parent.Root().DeleteSurface(front);
223b71206888 Initial import
thib
parents:
diff changeset
1177 } else {
223b71206888 Initial import
thib
parents:
diff changeset
1178 fprintf(stderr,"Cannot find surface %s\n",str);
223b71206888 Initial import
thib
parents:
diff changeset
1179 }
223b71206888 Initial import
thib
parents:
diff changeset
1180 }
223b71206888 Initial import
thib
parents:
diff changeset
1181
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1182 void Grp::CreateObj(int index) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1183 GrpObjMap::iterator cur = grpobj.find(index);
0
223b71206888 Initial import
thib
parents:
diff changeset
1184 if (cur == grpobj.end()) return;
223b71206888 Initial import
thib
parents:
diff changeset
1185 GrpObj& g = grpobj[index];
223b71206888 Initial import
thib
parents:
diff changeset
1186 g.CreateSurface(&parent);
223b71206888 Initial import
thib
parents:
diff changeset
1187 g.order = index;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1188 if (g.picture == NULL) return; // エラー:surface が存在しない
0
223b71206888 Initial import
thib
parents:
diff changeset
1189 g.picture->hide();
223b71206888 Initial import
thib
parents:
diff changeset
1190 SetObjChanged(index);
223b71206888 Initial import
thib
parents:
diff changeset
1191 ZMoveObj(index);
223b71206888 Initial import
thib
parents:
diff changeset
1192 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1193
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1194 void Grp::CreateSubObj(int grp_index, int index) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1195 GrpObjMap::iterator cur = grpobj.find(grp_index);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1196 if (cur == grpobj.end()) return;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1197 GrpObj* g = &grpobj[grp_index];
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1198 cur = g->children_obj.find(index);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1199 if (cur == g->children_obj.end()) return;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1200 g = &g->children_obj[index];
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1201 g->CreateSurface(&parent);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1202 g->order = index;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1203 if (g->picture == NULL) return; // エラー:surface が存在しない
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1204 g->picture->hide();
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1205 //TODO
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1206 SetObjChanged(grp_index);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1207 /*ZMoveObj(index);*/
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1208 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1209
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1210 void Grp::ZMoveObj(int index) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1211 GrpObjMap::iterator cur = grpobj.find(index);
0
223b71206888 Initial import
thib
parents:
diff changeset
1212 if (cur == grpobj.end()) return;
223b71206888 Initial import
thib
parents:
diff changeset
1213 GrpObj& g = grpobj[index];
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1214 if (g.picture == NULL) return;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1215 // 自分より前に object があれば、その前に表示
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1216 // そうでなければ screen の前に表示
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1217 GrpObjMap::iterator cur_backobj = grpobj.end();
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1218 GrpObjMap::iterator it;
0
223b71206888 Initial import
thib
parents:
diff changeset
1219 for (it = grpobj.begin(); it != grpobj.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1220 if (it == cur) continue;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1221 if (it->second.picture == NULL) continue;
0
223b71206888 Initial import
thib
parents:
diff changeset
1222 if (it->second.order < g.order) {
223b71206888 Initial import
thib
parents:
diff changeset
1223 if (cur_backobj == grpobj.end()) {
223b71206888 Initial import
thib
parents:
diff changeset
1224 cur_backobj = it;
223b71206888 Initial import
thib
parents:
diff changeset
1225 } else if (cur_backobj->second.order < it->second.order) {
223b71206888 Initial import
thib
parents:
diff changeset
1226 cur_backobj = it;
223b71206888 Initial import
thib
parents:
diff changeset
1227 }
223b71206888 Initial import
thib
parents:
diff changeset
1228 }
223b71206888 Initial import
thib
parents:
diff changeset
1229 }
223b71206888 Initial import
thib
parents:
diff changeset
1230 if (cur_backobj == grpobj.end()) {
223b71206888 Initial import
thib
parents:
diff changeset
1231 g.picture->ZMove(screen);
223b71206888 Initial import
thib
parents:
diff changeset
1232 } else {
223b71206888 Initial import
thib
parents:
diff changeset
1233 g.picture->ZMove(cur_backobj->second.picture);
223b71206888 Initial import
thib
parents:
diff changeset
1234 }
223b71206888 Initial import
thib
parents:
diff changeset
1235 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1236
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1237 void Grp::SwapObj(int index1, int index2) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1238 // デフォルト値から order が変更されていた場合のみ、order は保存される
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1239 // まずは両方のobjectをswap
0
223b71206888 Initial import
thib
parents:
diff changeset
1240 if (grpobj.find(index1) == grpobj.end()) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1241 if (grpobj.find(index2) == grpobj.end()) return; // どちらの object も存在しない
0
223b71206888 Initial import
thib
parents:
diff changeset
1242 grpobj[index1] = grpobj[index2];
223b71206888 Initial import
thib
parents:
diff changeset
1243 if (grpobj[index1].order == index2)
223b71206888 Initial import
thib
parents:
diff changeset
1244 grpobj[index1].order = index1;
223b71206888 Initial import
thib
parents:
diff changeset
1245 grpobj[index2].DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
1246 grpobj.erase(index2);
223b71206888 Initial import
thib
parents:
diff changeset
1247 ZMoveObj(index1);
223b71206888 Initial import
thib
parents:
diff changeset
1248 return;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1249 } else if (grpobj.find(index2) == grpobj.end()) { // index2 が存在しない場合
0
223b71206888 Initial import
thib
parents:
diff changeset
1250 grpobj[index2] = grpobj[index1];
223b71206888 Initial import
thib
parents:
diff changeset
1251 if (grpobj[index2].order == index1)
223b71206888 Initial import
thib
parents:
diff changeset
1252 grpobj[index2].order = index2;
223b71206888 Initial import
thib
parents:
diff changeset
1253 grpobj[index1].DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
1254 grpobj.erase(index1);
223b71206888 Initial import
thib
parents:
diff changeset
1255 ZMoveObj(index2);
223b71206888 Initial import
thib
parents:
diff changeset
1256 return;
223b71206888 Initial import
thib
parents:
diff changeset
1257 } else {
223b71206888 Initial import
thib
parents:
diff changeset
1258 GrpObj obj = grpobj[index1];
223b71206888 Initial import
thib
parents:
diff changeset
1259 grpobj[index1] = grpobj[index2];
223b71206888 Initial import
thib
parents:
diff changeset
1260 grpobj[index2].DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
1261 if (grpobj[index1].order == index2)
223b71206888 Initial import
thib
parents:
diff changeset
1262 grpobj[index1].order = index1;
223b71206888 Initial import
thib
parents:
diff changeset
1263 ZMoveObj(index1);
223b71206888 Initial import
thib
parents:
diff changeset
1264 grpobj[index2] = obj;
223b71206888 Initial import
thib
parents:
diff changeset
1265 if (grpobj[index2].order == index1)
223b71206888 Initial import
thib
parents:
diff changeset
1266 grpobj[index2].order = index2;
223b71206888 Initial import
thib
parents:
diff changeset
1267 ZMoveObj(index2);
223b71206888 Initial import
thib
parents:
diff changeset
1268 obj.DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
1269 }
223b71206888 Initial import
thib
parents:
diff changeset
1270 }
223b71206888 Initial import
thib
parents:
diff changeset
1271
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1272 bool Grp::Pressed(int x, int y, void* pointer) { // マウスクリックでキャンセル
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1273 Grp* g = (Grp*)pointer;
0
223b71206888 Initial import
thib
parents:
diff changeset
1274 if (g->status == WAIT_MOVIE)
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
1275 g->music->StopMovie();
0
223b71206888 Initial import
thib
parents:
diff changeset
1276 if (g->status == WAIT_ANM)
223b71206888 Initial import
thib
parents:
diff changeset
1277 g->AbortAnm();
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1278 if (g->status == WAIT_SHAKE && g->anm2 != NULL) {
18
4d7486cb20a9 Sync with upstream
thib
parents: 14
diff changeset
1279 g->anm2->Abort();
0
223b71206888 Initial import
thib
parents:
diff changeset
1280 delete g->anm2;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1281 g->anm2 = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
1282 }
223b71206888 Initial import
thib
parents:
diff changeset
1283 return false; // event deleted
223b71206888 Initial import
thib
parents:
diff changeset
1284 }
223b71206888 Initial import
thib
parents:
diff changeset
1285
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1286 /* mode.cgm の decode 用 */
0
223b71206888 Initial import
thib
parents:
diff changeset
1287 static unsigned char decode_char[256] = {
223b71206888 Initial import
thib
parents:
diff changeset
1288 0x8b, 0xe5, 0x5d, 0xc3, 0xa1, 0xe0, 0x30, 0x44,
223b71206888 Initial import
thib
parents:
diff changeset
1289 0x00, 0x85, 0xc0, 0x74, 0x09, 0x5f, 0x5e, 0x33,
223b71206888 Initial import
thib
parents:
diff changeset
1290 0xc0, 0x5b, 0x8b, 0xe5, 0x5d, 0xc3, 0x8b, 0x45,
223b71206888 Initial import
thib
parents:
diff changeset
1291 0x0c, 0x85, 0xc0, 0x75, 0x14, 0x8b, 0x55, 0xec,
223b71206888 Initial import
thib
parents:
diff changeset
1292 0x83, 0xc2, 0x20, 0x52, 0x6a, 0x00, 0xe8, 0xf5,
223b71206888 Initial import
thib
parents:
diff changeset
1293 0x28, 0x01, 0x00, 0x83, 0xc4, 0x08, 0x89, 0x45,
223b71206888 Initial import
thib
parents:
diff changeset
1294 0x0c, 0x8b, 0x45, 0xe4, 0x6a, 0x00, 0x6a, 0x00,
223b71206888 Initial import
thib
parents:
diff changeset
1295 0x50, 0x53, 0xff, 0x15, 0x34, 0xb1, 0x43, 0x00,
223b71206888 Initial import
thib
parents:
diff changeset
1296 0x8b, 0x45, 0x10, 0x85, 0xc0, 0x74, 0x05, 0x8b,
223b71206888 Initial import
thib
parents:
diff changeset
1297 0x4d, 0xec, 0x89, 0x08, 0x8a, 0x45, 0xf0, 0x84,
223b71206888 Initial import
thib
parents:
diff changeset
1298 0xc0, 0x75, 0x78, 0xa1, 0xe0, 0x30, 0x44, 0x00,
223b71206888 Initial import
thib
parents:
diff changeset
1299 0x8b, 0x7d, 0xe8, 0x8b, 0x75, 0x0c, 0x85, 0xc0,
223b71206888 Initial import
thib
parents:
diff changeset
1300 0x75, 0x44, 0x8b, 0x1d, 0xd0, 0xb0, 0x43, 0x00,
223b71206888 Initial import
thib
parents:
diff changeset
1301 0x85, 0xff, 0x76, 0x37, 0x81, 0xff, 0x00, 0x00,
223b71206888 Initial import
thib
parents:
diff changeset
1302 0x04, 0x00, 0x6a, 0x00, 0x76, 0x43, 0x8b, 0x45,
223b71206888 Initial import
thib
parents:
diff changeset
1303 0xf8, 0x8d, 0x55, 0xfc, 0x52, 0x68, 0x00, 0x00,
223b71206888 Initial import
thib
parents:
diff changeset
1304 0x04, 0x00, 0x56, 0x50, 0xff, 0x15, 0x2c, 0xb1,
223b71206888 Initial import
thib
parents:
diff changeset
1305 0x43, 0x00, 0x6a, 0x05, 0xff, 0xd3, 0xa1, 0xe0,
223b71206888 Initial import
thib
parents:
diff changeset
1306 0x30, 0x44, 0x00, 0x81, 0xef, 0x00, 0x00, 0x04,
223b71206888 Initial import
thib
parents:
diff changeset
1307 0x00, 0x81, 0xc6, 0x00, 0x00, 0x04, 0x00, 0x85,
223b71206888 Initial import
thib
parents:
diff changeset
1308 0xc0, 0x74, 0xc5, 0x8b, 0x5d, 0xf8, 0x53, 0xe8,
223b71206888 Initial import
thib
parents:
diff changeset
1309 0xf4, 0xfb, 0xff, 0xff, 0x8b, 0x45, 0x0c, 0x83,
223b71206888 Initial import
thib
parents:
diff changeset
1310 0xc4, 0x04, 0x5f, 0x5e, 0x5b, 0x8b, 0xe5, 0x5d,
223b71206888 Initial import
thib
parents:
diff changeset
1311 0xc3, 0x8b, 0x55, 0xf8, 0x8d, 0x4d, 0xfc, 0x51,
223b71206888 Initial import
thib
parents:
diff changeset
1312 0x57, 0x56, 0x52, 0xff, 0x15, 0x2c, 0xb1, 0x43,
223b71206888 Initial import
thib
parents:
diff changeset
1313 0x00, 0xeb, 0xd8, 0x8b, 0x45, 0xe8, 0x83, 0xc0,
223b71206888 Initial import
thib
parents:
diff changeset
1314 0x20, 0x50, 0x6a, 0x00, 0xe8, 0x47, 0x28, 0x01,
223b71206888 Initial import
thib
parents:
diff changeset
1315 0x00, 0x8b, 0x7d, 0xe8, 0x89, 0x45, 0xf4, 0x8b,
223b71206888 Initial import
thib
parents:
diff changeset
1316 0xf0, 0xa1, 0xe0, 0x30, 0x44, 0x00, 0x83, 0xc4,
223b71206888 Initial import
thib
parents:
diff changeset
1317 0x08, 0x85, 0xc0, 0x75, 0x56, 0x8b, 0x1d, 0xd0,
223b71206888 Initial import
thib
parents:
diff changeset
1318 0xb0, 0x43, 0x00, 0x85, 0xff, 0x76, 0x49, 0x81,
223b71206888 Initial import
thib
parents:
diff changeset
1319 0xff, 0x00, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x76
223b71206888 Initial import
thib
parents:
diff changeset
1320 };
223b71206888 Initial import
thib
parents:
diff changeset
1321
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1322 void Grp::LoadCgm() {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1323 /* cgm ファイル読み込み */
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
1324 const char* fname = config->GetParaStr("#CGTABLE_FILE");
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1325 if (fname == NULL) return;
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
1326 ARCINFO* info = FileSearcher::GetInstance()->Find(FileSearcher::ALL, fname, "");
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1327 if (info == NULL) return;
0
223b71206888 Initial import
thib
parents:
diff changeset
1328 char* data = info->CopyRead();
223b71206888 Initial import
thib
parents:
diff changeset
1329 int sz = info->Size();
223b71206888 Initial import
thib
parents:
diff changeset
1330 delete info;
223b71206888 Initial import
thib
parents:
diff changeset
1331
223b71206888 Initial import
thib
parents:
diff changeset
1332
8
55b577e5f5b5 Some memory leaks fixed
thib
parents: 5
diff changeset
1333 if ( strncmp(data, "CGTABLE", 7) != 0) {
55b577e5f5b5 Some memory leaks fixed
thib
parents: 5
diff changeset
1334 delete[] data;
55b577e5f5b5 Some memory leaks fixed
thib
parents: 5
diff changeset
1335 return;
55b577e5f5b5 Some memory leaks fixed
thib
parents: 5
diff changeset
1336 }
20
824b89018ea8 * CG completion percentage (maybe not working properly?)
thib
parents: 18
diff changeset
1337 cgm_size = read_little_endian_int(data+0x10);
0
223b71206888 Initial import
thib
parents:
diff changeset
1338
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1339 int i, j;
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1340 // xor 解除
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1341 for (i=0; i < sz-0x20; i++) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1342 data[i+0x20]^=decode_char[i&0xff];
223b71206888 Initial import
thib
parents:
diff changeset
1343 }
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1344 // 展開
0
223b71206888 Initial import
thib
parents:
diff changeset
1345 int dest_size = cgm_size * 36;
223b71206888 Initial import
thib
parents:
diff changeset
1346 char* dest = new char[dest_size+1024];
223b71206888 Initial import
thib
parents:
diff changeset
1347 char* src = data + 0x28;
223b71206888 Initial import
thib
parents:
diff changeset
1348 char* dest_orig = dest;
223b71206888 Initial import
thib
parents:
diff changeset
1349 ARCINFO::Extract2k(dest,src,dest+dest_size,data+sz);
223b71206888 Initial import
thib
parents:
diff changeset
1350 dest = dest_orig;
223b71206888 Initial import
thib
parents:
diff changeset
1351 for (i=0; i<cgm_size; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
1352 char* s = dest + i * 36;
223b71206888 Initial import
thib
parents:
diff changeset
1353 int n = read_little_endian_int(dest + i * 36 + 32);
223b71206888 Initial import
thib
parents:
diff changeset
1354 cgm_info[s] = n;
223b71206888 Initial import
thib
parents:
diff changeset
1355 }
8
55b577e5f5b5 Some memory leaks fixed
thib
parents: 5
diff changeset
1356 delete[] data;
0
223b71206888 Initial import
thib
parents:
diff changeset
1357 delete[] dest_orig;
223b71206888 Initial import
thib
parents:
diff changeset
1358 }
223b71206888 Initial import
thib
parents:
diff changeset
1359
223b71206888 Initial import
thib
parents:
diff changeset
1360 /*****************************************************
223b71206888 Initial import
thib
parents:
diff changeset
1361 *
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1362 * Grp :: Save, Load : セーブファイル処理
0
223b71206888 Initial import
thib
parents:
diff changeset
1363 *
223b71206888 Initial import
thib
parents:
diff changeset
1364 */
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1365 void Grp::Save(std::string& str) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1366 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1367
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1368 void Grp::Load(const char* str) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1369 status = NORMAL;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1370 if (anm1 != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1371 AbortAnm();
223b71206888 Initial import
thib
parents:
diff changeset
1372 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1373 if (anm2 != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1374 anm2->Abort();
223b71206888 Initial import
thib
parents:
diff changeset
1375 delete anm2;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1376 anm2 = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
1377 }
223b71206888 Initial import
thib
parents:
diff changeset
1378 map<int,GrpObj>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
1379 for (it=grpobj.begin(); it!=grpobj.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1380 PicBase* p = it->second.DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
1381 delete p;
223b71206888 Initial import
thib
parents:
diff changeset
1382 }
223b71206888 Initial import
thib
parents:
diff changeset
1383 grpobj.clear();
223b71206888 Initial import
thib
parents:
diff changeset
1384
223b71206888 Initial import
thib
parents:
diff changeset
1385 bg_name = "";
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
1386 music->StopCDROM(100);
0
223b71206888 Initial import
thib
parents:
diff changeset
1387 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1388
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1389 void Grp::SaveSys(string& save) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1390 char buf[1024];
223b71206888 Initial import
thib
parents:
diff changeset
1391 save = "\n[Graphics]\n";
223b71206888 Initial import
thib
parents:
diff changeset
1392 save += "CGM_CG=";
223b71206888 Initial import
thib
parents:
diff changeset
1393
223b71206888 Initial import
thib
parents:
diff changeset
1394 set<int>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
1395 for (it=cgm_data.begin(); it != cgm_data.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1396 sprintf(buf,"%d,",*it);
223b71206888 Initial import
thib
parents:
diff changeset
1397 save += buf;
223b71206888 Initial import
thib
parents:
diff changeset
1398 }
223b71206888 Initial import
thib
parents:
diff changeset
1399 save += "\n";
223b71206888 Initial import
thib
parents:
diff changeset
1400 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1401
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1402 void Grp::LoadSys(const char* save) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1403 cgm_data.clear();
223b71206888 Initial import
thib
parents:
diff changeset
1404 save = strstr(save, "\n[Graphics]\n");
223b71206888 Initial import
thib
parents:
diff changeset
1405
223b71206888 Initial import
thib
parents:
diff changeset
1406 if (save) {
223b71206888 Initial import
thib
parents:
diff changeset
1407 save += strlen("\n[Graphics]\n");
223b71206888 Initial import
thib
parents:
diff changeset
1408 do {
223b71206888 Initial import
thib
parents:
diff changeset
1409 if (save[0] == '[') break; // next section
223b71206888 Initial import
thib
parents:
diff changeset
1410 if (strncmp(save, "CGM_CG=",7) == 0) {
223b71206888 Initial import
thib
parents:
diff changeset
1411 save += 7;
223b71206888 Initial import
thib
parents:
diff changeset
1412 while(isdigit(*save)) {
223b71206888 Initial import
thib
parents:
diff changeset
1413 int n = atoi(save);
223b71206888 Initial import
thib
parents:
diff changeset
1414 cgm_data.insert(n);
223b71206888 Initial import
thib
parents:
diff changeset
1415 save = strchr(save, ',');
223b71206888 Initial import
thib
parents:
diff changeset
1416 if (save) save++;
223b71206888 Initial import
thib
parents:
diff changeset
1417 }
223b71206888 Initial import
thib
parents:
diff changeset
1418 }
223b71206888 Initial import
thib
parents:
diff changeset
1419 save = strchr(save, '\n');
223b71206888 Initial import
thib
parents:
diff changeset
1420 if (save) save++;
223b71206888 Initial import
thib
parents:
diff changeset
1421 } while (save);
223b71206888 Initial import
thib
parents:
diff changeset
1422 }
223b71206888 Initial import
thib
parents:
diff changeset
1423 return;
223b71206888 Initial import
thib
parents:
diff changeset
1424 }
223b71206888 Initial import
thib
parents:
diff changeset
1425
223b71206888 Initial import
thib
parents:
diff changeset
1426
223b71206888 Initial import
thib
parents:
diff changeset
1427 /*****************************************************
223b71206888 Initial import
thib
parents:
diff changeset
1428 *
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1429 * Grp :: Wait , Exec : コマンド実行部
0
223b71206888 Initial import
thib
parents:
diff changeset
1430 *
223b71206888 Initial import
thib
parents:
diff changeset
1431 */
223b71206888 Initial import
thib
parents:
diff changeset
1432 static vector<int> drawn_images;
223b71206888 Initial import
thib
parents:
diff changeset
1433 static int draw_n = 0;
223b71206888 Initial import
thib
parents:
diff changeset
1434 extern bool grpdump_req;
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1435 bool Grp::Wait(unsigned int current_time, Cmd& cmd) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1436 if (grpdump_req) {
223b71206888 Initial import
thib
parents:
diff changeset
1437 grpdump_req = 0;
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1438 GrpObjMap::iterator it;
48
ed6c21dde840 * use correct format (%p) for pointers
thib
parents: 43
diff changeset
1439 fprintf(stderr,"front %p(%d) / %p(%d)\n",screen,screen->IsHidden(),screen_front,screen_front->IsHidden());
0
223b71206888 Initial import
thib
parents:
diff changeset
1440 for (it=grpobj.begin(); it != grpobj.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1441 GrpObj& obj = it->second;
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1442 obj._debug_Dump(it->first, 0);
0
223b71206888 Initial import
thib
parents:
diff changeset
1443 }
223b71206888 Initial import
thib
parents:
diff changeset
1444 std::list<PicBase*>::iterator it2;
223b71206888 Initial import
thib
parents:
diff changeset
1445 for (it2=parent.children.begin(); it2!=parent.children.end();it2++) {
48
ed6c21dde840 * use correct format (%p) for pointers
thib
parents: 43
diff changeset
1446 fprintf(stderr,"%p(%d)\n",*it2,(*it2)->IsHidden());
0
223b71206888 Initial import
thib
parents:
diff changeset
1447 }
223b71206888 Initial import
thib
parents:
diff changeset
1448 RefreshObj();
223b71206888 Initial import
thib
parents:
diff changeset
1449
223b71206888 Initial import
thib
parents:
diff changeset
1450 }
223b71206888 Initial import
thib
parents:
diff changeset
1451 #if 0
223b71206888 Initial import
thib
parents:
diff changeset
1452 if (event.presscount(MOUSE_UP)) {
223b71206888 Initial import
thib
parents:
diff changeset
1453 std::list<PicBase*>::iterator lit;
223b71206888 Initial import
thib
parents:
diff changeset
1454 draw_n++; int i=0;
223b71206888 Initial import
thib
parents:
diff changeset
1455 for (lit=parent.children.end(); lit!=parent.children.begin(); ) {
223b71206888 Initial import
thib
parents:
diff changeset
1456 lit--;
223b71206888 Initial import
thib
parents:
diff changeset
1457 (*lit)->hide();
223b71206888 Initial import
thib
parents:
diff changeset
1458 i++;
223b71206888 Initial import
thib
parents:
diff changeset
1459 if (i >= draw_n) break;
223b71206888 Initial import
thib
parents:
diff changeset
1460 }
223b71206888 Initial import
thib
parents:
diff changeset
1461 if (drawn_images.empty()) {
223b71206888 Initial import
thib
parents:
diff changeset
1462 map<int, GrpObj>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
1463 for (it=grpobj.begin(); it!=grpobj.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1464 if (it->second.picture) {
223b71206888 Initial import
thib
parents:
diff changeset
1465 drawn_images.push_back(it->first);
223b71206888 Initial import
thib
parents:
diff changeset
1466 PicBase* p = it->second.DeletePic();
223b71206888 Initial import
thib
parents:
diff changeset
1467 delete p;
223b71206888 Initial import
thib
parents:
diff changeset
1468 }
223b71206888 Initial import
thib
parents:
diff changeset
1469 }
223b71206888 Initial import
thib
parents:
diff changeset
1470 } else {
223b71206888 Initial import
thib
parents:
diff changeset
1471 vector<int>::iterator it;
223b71206888 Initial import
thib
parents:
diff changeset
1472 for (it=drawn_images.begin(); it!=drawn_images.end(); it++) {
223b71206888 Initial import
thib
parents:
diff changeset
1473 CreateObj(*it);
223b71206888 Initial import
thib
parents:
diff changeset
1474 }
223b71206888 Initial import
thib
parents:
diff changeset
1475 drawn_images.clear();
223b71206888 Initial import
thib
parents:
diff changeset
1476 }
223b71206888 Initial import
thib
parents:
diff changeset
1477 }
223b71206888 Initial import
thib
parents:
diff changeset
1478 #endif
223b71206888 Initial import
thib
parents:
diff changeset
1479 if (status == WAIT_ANM) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1480 if (anm1 != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1481 if (!anm1->IsEnd()) return true;
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
1482 //FIXME: Handle animation loops
0
223b71206888 Initial import
thib
parents:
diff changeset
1483 AbortAnm();
223b71206888 Initial import
thib
parents:
diff changeset
1484 }
223b71206888 Initial import
thib
parents:
diff changeset
1485 } else if (status == WAIT_SHAKE) {
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1486 if (anm2 != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1487 if (!anm2->IsEnd()) return true;
223b71206888 Initial import
thib
parents:
diff changeset
1488 delete anm2;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1489 anm2 = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
1490 }
223b71206888 Initial import
thib
parents:
diff changeset
1491 status = NORMAL;
223b71206888 Initial import
thib
parents:
diff changeset
1492 } else if (status == WAIT_SE) {
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
1493 if (music->IsStopSE()) status = NORMAL;
0
223b71206888 Initial import
thib
parents:
diff changeset
1494 return true;
223b71206888 Initial import
thib
parents:
diff changeset
1495 } else if (status == WAIT_MOVIE) {
53
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
1496 if (music->IsStopMovie()) {
ddbcbd000206 * MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
thib
parents: 52
diff changeset
1497 music->StopMovie();
0
223b71206888 Initial import
thib
parents:
diff changeset
1498 status = NORMAL;
223b71206888 Initial import
thib
parents:
diff changeset
1499 screen->ReBlit();
223b71206888 Initial import
thib
parents:
diff changeset
1500 }
223b71206888 Initial import
thib
parents:
diff changeset
1501 return true;
223b71206888 Initial import
thib
parents:
diff changeset
1502 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1503 if (anm2 != NULL) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1504 if (anm2->IsEnd()) {
223b71206888 Initial import
thib
parents:
diff changeset
1505 delete anm2;
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1506 anm2 = NULL;
0
223b71206888 Initial import
thib
parents:
diff changeset
1507 }
223b71206888 Initial import
thib
parents:
diff changeset
1508 }
223b71206888 Initial import
thib
parents:
diff changeset
1509 return false;
223b71206888 Initial import
thib
parents:
diff changeset
1510 }
223b71206888 Initial import
thib
parents:
diff changeset
1511
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1512 void Grp::DeleteObjPic(int num) { // object の surface のみ削除
0
223b71206888 Initial import
thib
parents:
diff changeset
1513 if (grpobj.find(num) == grpobj.end()) return;
223b71206888 Initial import
thib
parents:
diff changeset
1514 deleted_pic.push_back(grpobj[num].DeletePic());
223b71206888 Initial import
thib
parents:
diff changeset
1515 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1516
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1517 void Grp::DeleteSubObjPic(int num_grp, int num) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1518 if (grpobj.find(num_grp) == grpobj.end()) return;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1519 if (grpobj[num_grp].children_obj.find(num) == grpobj[num_grp].children_obj.end()) return;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1520 deleted_pic.push_back(grpobj[num_grp].children_obj[num].DeletePic());
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1521 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1522
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1523 void Grp::DeleteObj(int num) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1524 if (grpobj.find(num) == grpobj.end()) return;
223b71206888 Initial import
thib
parents:
diff changeset
1525 deleted_pic.push_back(grpobj[num].DeletePic());
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1526 GrpObjMap::iterator it;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1527 for (it = grpobj[num].children_obj.begin(); it != grpobj[num].children_obj.end(); it++) {
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1528 deleted_pic.push_back(it->second.DeletePic());
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1529 }
0
223b71206888 Initial import
thib
parents:
diff changeset
1530 grpobj.erase(num);
223b71206888 Initial import
thib
parents:
diff changeset
1531 }
52
15a18fbe6f21 * Known bugs added to the README
thib
parents: 50
diff changeset
1532
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1533 void Grp::DeleteSubObj(int num_grp, int num) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1534 if (grpobj.find(num_grp) == grpobj.end()) return;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1535 if (grpobj[num_grp].children_obj.find(num) == grpobj[num_grp].children_obj.end()) return;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1536 deleted_pic.push_back(grpobj[num_grp].children_obj[num].DeletePic());
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1537 grpobj[num_grp].children_obj.erase(num);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1538 }
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1539
56
c7bcc0ec2267 * replaced Grp and Text classes by the TextImpl and GrpImpl ones
thib
parents: 55
diff changeset
1540 void Grp::Exec(Cmd& cmd) {
0
223b71206888 Initial import
thib
parents:
diff changeset
1541 if (cmd.cmd_type == CMD_TEXTEND) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1542 music->StopKoe(500); // テキスト終了で声を止める
0
223b71206888 Initial import
thib
parents:
diff changeset
1543 cmd.clear();
223b71206888 Initial import
thib
parents:
diff changeset
1544 return;
223b71206888 Initial import
thib
parents:
diff changeset
1545 }
223b71206888 Initial import
thib
parents:
diff changeset
1546 if (cmd.cmd_type == CMD_WAITFRAMEUPDATE) {
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1547 // wait する場合は RefreshObj() しておく
0
223b71206888 Initial import
thib
parents:
diff changeset
1548 RefreshObj();
223b71206888 Initial import
thib
parents:
diff changeset
1549 }
223b71206888 Initial import
thib
parents:
diff changeset
1550 if (cmd.cmd_type != CMD_OTHER) return;
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
1551
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
1552 CommandHandler::Exec(cmd);
26
f45da03ca631 * Corrected --disable-vorbis in configure.ac
thib
parents: 20
diff changeset
1553
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
1554 //TODO: ???
65
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1555 if (cmd.cmd1 == 1 && cmd.cmd2 == 60 && cmd.cmd3 == 0) { // ??? : KANOGI : 画像オブジェクトの削除?
4416cfac86ae Convert EUC-JP files to UTF8
Thibaut Girka <thib@sitedethib.com>
parents: 60
diff changeset
1556 DeleteObjPic(cmd.args[0].value); // 旧ファイル名のsurfaceを削除
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
1557 GrpObj& g = grpobj[cmd.args[0].value];
0
223b71206888 Initial import
thib
parents:
diff changeset
1558 g.attr = GrpObj::Attribute(g.attr | GrpObj::HIDDEN);
223b71206888 Initial import
thib
parents:
diff changeset
1559 cmd.clear();
223b71206888 Initial import
thib
parents:
diff changeset
1560 }
5
aa0577c1a494 Support for animated things like Botan
thib
parents: 4
diff changeset
1561
60
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
1562 // Refresh changed objects...
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
1563 //FIXME: should may be go away?
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
1564 //Seems it'll work only for objects in the foreground
e16e13d8cd68 Replaced SATURATE -> ADD, implemented objComposite, corrected minor things
Thibaut GIRKA <thib@sitedethib.com>
parents: 56
diff changeset
1565 if ( (cmd.cmd1 == 1 || cmd.cmd1 == 2) && cmd.cmd2 == 81) {
55
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1566 GrpObj* g;
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1567 if (cmd.cmd1 == 2)
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1568 g = GetGraphicObj(cmd.args[0].value, cmd.args[1].value);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1569 else
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1570 g = GetGraphicObj(cmd.args[0].value);
f1a27ee7e03c * started the same changes on scn2k_text.cc
thib
parents: 54
diff changeset
1571 if (g->attr & GrpObj::UPDATE_ALL)
54
d7cde171a1de * scn2k_grp.cc now handles commands in a cleanier way \o/
thib
parents: 53
diff changeset
1572 SetObjChanged(cmd.args[0].value);
0
223b71206888 Initial import
thib
parents:
diff changeset
1573 }
223b71206888 Initial import
thib
parents:
diff changeset
1574 }
223b71206888 Initial import
thib
parents:
diff changeset
1575