annotate xlovesys.cc @ 13:a05bf0823154

Fixes SubStr (RLdev's strsub/strrsub)
author thib
date Wed, 06 Aug 2008 12:34:34 +0000
parents 223b71206888
children 3fe3e5f184b5
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
223b71206888 Initial import
thib
parents:
diff changeset
28 // #define ROOTPATH "/mnt/KEY/CLANNAD"
223b71206888 Initial import
thib
parents:
diff changeset
29 // #define ROOTPATH "/home/uenok/pb"
223b71206888 Initial import
thib
parents:
diff changeset
30 // #define FONT "msgothic.ttc"
223b71206888 Initial import
thib
parents:
diff changeset
31 /* kochi-mincho-subst.ttf あるいは -*-*-*-r-*--24-*-*-*-*-*-jisx0208.1983-* など */
223b71206888 Initial import
thib
parents:
diff changeset
32 /* TrueType Font は /usr/X11R6/lib/X11/fonts/TrueType/ などに存在する必要がある */
223b71206888 Initial import
thib
parents:
diff changeset
33
223b71206888 Initial import
thib
parents:
diff changeset
34 #include<stdio.h>
223b71206888 Initial import
thib
parents:
diff changeset
35 #include<stdlib.h>
223b71206888 Initial import
thib
parents:
diff changeset
36 #include<unistd.h>
223b71206888 Initial import
thib
parents:
diff changeset
37 #include<locale.h>
223b71206888 Initial import
thib
parents:
diff changeset
38
223b71206888 Initial import
thib
parents:
diff changeset
39 #include<SDL.h>
223b71206888 Initial import
thib
parents:
diff changeset
40 #include<vector>
223b71206888 Initial import
thib
parents:
diff changeset
41 #include<getopt.h>
223b71206888 Initial import
thib
parents:
diff changeset
42
223b71206888 Initial import
thib
parents:
diff changeset
43 #include"system/file.h"
223b71206888 Initial import
thib
parents:
diff changeset
44 #include"system/system_config.h"
223b71206888 Initial import
thib
parents:
diff changeset
45 #include"window/widget.h"
223b71206888 Initial import
thib
parents:
diff changeset
46 #include"window/system.h"
223b71206888 Initial import
thib
parents:
diff changeset
47
223b71206888 Initial import
thib
parents:
diff changeset
48 #include"music2/music.h"
223b71206888 Initial import
thib
parents:
diff changeset
49
223b71206888 Initial import
thib
parents:
diff changeset
50 #include"scn2k/scn2k.h"
223b71206888 Initial import
thib
parents:
diff changeset
51 #include"scn2k/scn2k_impl.h"
223b71206888 Initial import
thib
parents:
diff changeset
52
223b71206888 Initial import
thib
parents:
diff changeset
53 const char key_lb_orig[] = {0x4b, 0x45, 0x59, 0x5c, 0x83, 0x8a, 0x83, 0x67, 0x83, 0x8b, 0x83, 0x6f, 0x83, 0x58, 0x83, 0x5e, 0x81, 0x5b, 0x83, 0x59, 0x81, 0x49, 0};
223b71206888 Initial import
thib
parents:
diff changeset
54
223b71206888 Initial import
thib
parents:
diff changeset
55 const char key_lb_new[] = "KEY\\LittleBusters";
223b71206888 Initial import
thib
parents:
diff changeset
56
223b71206888 Initial import
thib
parents:
diff changeset
57
223b71206888 Initial import
thib
parents:
diff changeset
58 extern "C" int main(int argc, char* argv[]); /* SDL.h で定義されるので必要ないはずなんだけど…… */
223b71206888 Initial import
thib
parents:
diff changeset
59
223b71206888 Initial import
thib
parents:
diff changeset
60 int main(int argc, char *argv[]) {
223b71206888 Initial import
thib
parents:
diff changeset
61 AyuSysConfig config;
223b71206888 Initial import
thib
parents:
diff changeset
62 int opt = 0, end = 0, screenmode = 0;
223b71206888 Initial import
thib
parents:
diff changeset
63 char rootPath[1024] = "/mnt/KEY/CLANNAD";
223b71206888 Initial import
thib
parents:
diff changeset
64 char font[1024] = "msgothic.ttc";
223b71206888 Initial import
thib
parents:
diff changeset
65 Uint32 videoOptions = SDL_HWSURFACE;
223b71206888 Initial import
thib
parents:
diff changeset
66
223b71206888 Initial import
thib
parents:
diff changeset
67 while(1) {
223b71206888 Initial import
thib
parents:
diff changeset
68 opt = getopt(argc, argv, "fdt:c:r:vh?");
223b71206888 Initial import
thib
parents:
diff changeset
69 if(opt == -1) {break;}
223b71206888 Initial import
thib
parents:
diff changeset
70
223b71206888 Initial import
thib
parents:
diff changeset
71 switch(opt) {
223b71206888 Initial import
thib
parents:
diff changeset
72 case 'f':
223b71206888 Initial import
thib
parents:
diff changeset
73 videoOptions |= SDL_FULLSCREEN;
223b71206888 Initial import
thib
parents:
diff changeset
74 break;
223b71206888 Initial import
thib
parents:
diff changeset
75 case 'd':
223b71206888 Initial import
thib
parents:
diff changeset
76 videoOptions |= SDL_DOUBLEBUF;
223b71206888 Initial import
thib
parents:
diff changeset
77 break;
223b71206888 Initial import
thib
parents:
diff changeset
78 case 't':
223b71206888 Initial import
thib
parents:
diff changeset
79 strncpy(font, optarg, 1023);
223b71206888 Initial import
thib
parents:
diff changeset
80 break;
223b71206888 Initial import
thib
parents:
diff changeset
81 case 'r':
223b71206888 Initial import
thib
parents:
diff changeset
82 strncpy(rootPath, optarg, 1023);
223b71206888 Initial import
thib
parents:
diff changeset
83 break;
223b71206888 Initial import
thib
parents:
diff changeset
84 case 'v':
223b71206888 Initial import
thib
parents:
diff changeset
85 // FIXME: "VERSION" undeclared?
223b71206888 Initial import
thib
parents:
diff changeset
86 // printf("xclannad %s\n", VERSION);
223b71206888 Initial import
thib
parents:
diff changeset
87 printf("xclannad 0.05e\n");
223b71206888 Initial import
thib
parents:
diff changeset
88 end = 1;
223b71206888 Initial import
thib
parents:
diff changeset
89 break;
223b71206888 Initial import
thib
parents:
diff changeset
90 case 'h':
223b71206888 Initial import
thib
parents:
diff changeset
91 case '?':
223b71206888 Initial import
thib
parents:
diff changeset
92 printf("\nUsage: %s [OPTIONS]\n\n", argv[0]);
223b71206888 Initial import
thib
parents:
diff changeset
93 printf(" -f : full screen mode\n");
223b71206888 Initial import
thib
parents:
diff changeset
94 printf(" -d : double buffer mode\n");
223b71206888 Initial import
thib
parents:
diff changeset
95 printf(" -t : set font (typeface)\n");
223b71206888 Initial import
thib
parents:
diff changeset
96 printf(" -r : set root path (default /mnt/KEY/CLANNAD)\n");
223b71206888 Initial import
thib
parents:
diff changeset
97 printf(" -v : show version and exit\n");
223b71206888 Initial import
thib
parents:
diff changeset
98 printf(" -h -? : show help and exit\n\n");
223b71206888 Initial import
thib
parents:
diff changeset
99 end = 1;
223b71206888 Initial import
thib
parents:
diff changeset
100 break;
223b71206888 Initial import
thib
parents:
diff changeset
101 }
223b71206888 Initial import
thib
parents:
diff changeset
102 }
223b71206888 Initial import
thib
parents:
diff changeset
103 if(end == 1) return 0;
223b71206888 Initial import
thib
parents:
diff changeset
104
223b71206888 Initial import
thib
parents:
diff changeset
105 printf("Settings:\n");
223b71206888 Initial import
thib
parents:
diff changeset
106 printf(" Locale : %s\n", setlocale(LC_ALL, ""));
223b71206888 Initial import
thib
parents:
diff changeset
107 printf(" Root Path : %s\n", rootPath);
223b71206888 Initial import
thib
parents:
diff changeset
108 printf(" Font : %s\n", font);
223b71206888 Initial import
thib
parents:
diff changeset
109 printf("\n");
223b71206888 Initial import
thib
parents:
diff changeset
110
223b71206888 Initial import
thib
parents:
diff changeset
111 file_searcher.InitRoot(rootPath);
223b71206888 Initial import
thib
parents:
diff changeset
112 config.LoadInitFile();
223b71206888 Initial import
thib
parents:
diff changeset
113 const char* regname = config.GetParaStr("#REGNAME");
223b71206888 Initial import
thib
parents:
diff changeset
114 if (strcmp(regname, key_lb_orig) == 0) { // "リトルバスターズ! -> LittleBustersに#REGNAMEを変更
223b71206888 Initial import
thib
parents:
diff changeset
115 config.SetParaStr("#REGNAME", key_lb_new);
223b71206888 Initial import
thib
parents:
diff changeset
116 }
223b71206888 Initial import
thib
parents:
diff changeset
117 SetFont(font);
223b71206888 Initial import
thib
parents:
diff changeset
118
223b71206888 Initial import
thib
parents:
diff changeset
119 MuSys mu(config);
223b71206888 Initial import
thib
parents:
diff changeset
120 mu.InitMusic();
223b71206888 Initial import
thib
parents:
diff changeset
121
223b71206888 Initial import
thib
parents:
diff changeset
122 if(SDL_Init(SDL_INIT_VIDEO)) {
223b71206888 Initial import
thib
parents:
diff changeset
123 printf("Unable to init SDL: %s\n", SDL_GetError());
223b71206888 Initial import
thib
parents:
diff changeset
124 return 1;
223b71206888 Initial import
thib
parents:
diff changeset
125 }
223b71206888 Initial import
thib
parents:
diff changeset
126 atexit(SDL_Quit);
223b71206888 Initial import
thib
parents:
diff changeset
127
223b71206888 Initial import
thib
parents:
diff changeset
128 config.GetParam("#SCREENSIZE_MOD", 1, &screenmode);
223b71206888 Initial import
thib
parents:
diff changeset
129 if (screenmode == 1) {
223b71206888 Initial import
thib
parents:
diff changeset
130 SDL_SetVideoMode(800, 600, 0, videoOptions);
223b71206888 Initial import
thib
parents:
diff changeset
131 } else {
223b71206888 Initial import
thib
parents:
diff changeset
132 SDL_SetVideoMode(640, 480, 0, videoOptions);
223b71206888 Initial import
thib
parents:
diff changeset
133 }
223b71206888 Initial import
thib
parents:
diff changeset
134 // SDL_SetVideoMode(640, 480, 0, videoOptions);
223b71206888 Initial import
thib
parents:
diff changeset
135 // SDL_SetVideoMode(800, 600, 0, SDL_HWSURFACE /*| SDL_FULLSCREEN */);
223b71206888 Initial import
thib
parents:
diff changeset
136 {
223b71206888 Initial import
thib
parents:
diff changeset
137 System::Main main_sys;
223b71206888 Initial import
thib
parents:
diff changeset
138 PicContainer* main_panel = main_sys.root.create_node(Rect(0, 0, main_sys.root.width, main_sys.root.height), 0);
223b71206888 Initial import
thib
parents:
diff changeset
139 main_panel->show();
223b71206888 Initial import
thib
parents:
diff changeset
140 try {
223b71206888 Initial import
thib
parents:
diff changeset
141 Scn2k scn(main_sys.event, *main_panel, mu, config);
223b71206888 Initial import
thib
parents:
diff changeset
142 main_sys.Mainloop();
223b71206888 Initial import
thib
parents:
diff changeset
143 } catch(...) {
223b71206888 Initial import
thib
parents:
diff changeset
144 fprintf(stderr,"System faulted; exit now.\n");
223b71206888 Initial import
thib
parents:
diff changeset
145 }
223b71206888 Initial import
thib
parents:
diff changeset
146 delete main_panel;
223b71206888 Initial import
thib
parents:
diff changeset
147 }
223b71206888 Initial import
thib
parents:
diff changeset
148
223b71206888 Initial import
thib
parents:
diff changeset
149 mu.FinalizeMusic();
223b71206888 Initial import
thib
parents:
diff changeset
150
223b71206888 Initial import
thib
parents:
diff changeset
151 SDL_Quit();
223b71206888 Initial import
thib
parents:
diff changeset
152 }
223b71206888 Initial import
thib
parents:
diff changeset
153