From 4395293d9f61cd699609d867d4df1ec8dff26d38 Mon Sep 17 00:00:00 2001 From: truelight Date: Thu, 23 Dec 2004 15:08:53 +0000 Subject: [PATCH] (svn r1249) -Fix: new files in the last commit had double content --- docs/Readme_OS2.txt | 48 - openttd.tgt | 2091 ------------------------------------------- os/os2/openttd.wpj | 63 -- os2.c | 531 ----------- strgen/strgen.tgt | 123 --- 5 files changed, 2856 deletions(-) diff --git a/docs/Readme_OS2.txt b/docs/Readme_OS2.txt index 97b80fe2ad..2ef9d0e18e 100644 --- a/docs/Readme_OS2.txt +++ b/docs/Readme_OS2.txt @@ -46,51 +46,3 @@ If you have any questions, please contact me (owen@owenrudge.net) and I'll try t - Owen Rudge, 18th December 2004 -OpenTTD: OS/2 version ** CURRENTLY INCOMPLETE ** -===================== - -OpenTTD has been ported to work on OS/2 4.x or later (including eComStation). At the moment, it does not work properly, but it -can compile and work to an extent. - -Compiler --------- - -Open Watcom 1.3 was used to build OpenTTD (earlier versions will NOT work). See http://www.openwatcom.org/ to download it. -It may also be possible to build OpenTTD under OS/2: I attempted this before using Open Watcom, but found the tools available -for OS/2 at the time to be a bit more tricky to get working. - -Due to complexities in my set-up, I actually used the Win32 version of Open Watcom to initially compile OpenTTD for OS/2. There -should be no reason of course why the OS/2 version cannot be used. - -Libraries Required ------------------- - -The following libraries are required. To build zlib and libpng, I simply added the required files (watch out for sample -programs, etc) to an IDE project file and built a library: - -- zlib - http://www.zlib.org/ - contains a makefile for OS/2, but is out of date and uses EMX - -- libpng - http://www.libpng.org/ - contains an EMX/gcc makefile - -- SDL for OS/2 - I used ftp://ftp.netlabs.org/pub/sdl/SDL-1.2.7-src-20040908a.zip - take SDL.dll and SDL.lib from the src/ directory. - -Note that to use the compiled program, you also need FSLib.dll (from src/ in the SDL zip) and a version of the Scitech -Display Drivers or its later incarnation (see www.scitech.com). - -Compiling ---------- - -To compile, open the os/os2/openttd.wpj file in the IDE and build the openttd.exe target. - -TODO: compilation of language files properly - - -** THESE DOCS ARE INCOMPLETE FOR THE MOMENT, WILL BE COMPLETED SOON ** - -If you have any questions, please contact me (owen@owenrudge.net) and I'll try to help you out - -- Owen Rudge, 18th December 2004 - diff --git a/openttd.tgt b/openttd.tgt index 3676db4ffe..775586d3a6 100644 --- a/openttd.tgt +++ b/openttd.tgt @@ -2089,2094 +2089,3 @@ WVList 1 1 0 -40 -targetIdent -0 -MProject -1 -MComponent -0 -2 -WString -4 -OEXE -3 -WString -5 -op2en -1 -0 -0 -4 -MCommand -0 -5 -MCommand -0 -6 -MItem -11 -openttd.exe -7 -WString -4 -OEXE -8 -WVList -8 -9 -MRState -10 -WString -7 -OS2LINK -11 -WString -25 -?????No debug information -1 -1 -12 -MRState -13 -WString -7 -OS2LINK -14 -WString -14 -?????Debug All -1 -0 -15 -MVState -16 -WString -7 -OS2LINK -17 -WString -11 -?????Stack: -1 -18 -WString -7 -2097152 -0 -19 -MVState -20 -WString -7 -OS2LINK -21 -WString -18 -?????Libraries(,): -1 -22 -WString -24 -png.lib zlib.lib sdl.lib -0 -23 -MCState -24 -WString -7 -OS2LINK -25 -WString -13 -?????Map file -0 -0 -26 -MVState -27 -WString -7 -OS2LINK -28 -WString -11 -?????Stack: -0 -29 -WString -7 -4194304 -0 -30 -MVState -31 -WString -7 -OS2LINK -32 -WString -18 -?????Libraries(,): -0 -33 -WString -24 -png.lib zlib.lib sdl.lib -0 -34 -MVState -35 -WString -7 -OS2LINK -36 -WString -17 -o????Description: -0 -37 -WString -7 -OpenTTD -0 -38 -WVList -4 -39 -ActionStates -40 -WString -5 -&Make -41 -WVList -0 -42 -ActionStates -43 -WString -4 -&Run -44 -WVList -0 -45 -ActionStates -46 -WString -6 -&Debug -47 -WVList -0 -48 -ActionStates -49 -WString -7 -Sam&ple -50 -WVList -0 --1 -1 -1 -0 -51 -WPickList -95 -52 -MItem -3 -*.c -53 -WString -4 -COBJ -54 -WVList -14 -55 -MVState -56 -WString -3 -WCC -57 -WString -28 -?????Disable Warning message -1 -58 -WString -3 -202 -0 -59 -MVState -60 -WString -3 -WCC -61 -WString -23 -?????Macro definitions: -1 -62 -WString -50 -ENABLE_NETWORK=1 WITH_ZLIB=1 WITH_PNG=1 WITH_SDL=1 -0 -63 -MRState -64 -WString -3 -WCC -65 -WString -20 -?????Pack structures -1 -0 -66 -MRState -67 -WString -3 -WCC -68 -WString -21 -?????4 byte alignment -1 -1 -69 -MRState -70 -WString -3 -WCC -71 -WString -21 -?????No optimizations -1 -0 -72 -MRState -73 -WString -3 -WCC -74 -WString -24 -?????Space optimizations -1 -1 -75 -MRState -76 -WString -3 -WCC -77 -WString -29 -?????No debugging information -1 -1 -78 -MRState -79 -WString -3 -WCC -80 -WString -24 -?????Full debugging info -1 -0 -81 -MVState -82 -WString -3 -WCC -83 -WString -28 -?????Disable Warning message -0 -84 -WString -3 -202 -0 -85 -MVState -86 -WString -3 -WCC -87 -WString -23 -?????Macro definitions: -0 -88 -WString -50 -ENABLE_NETWORK=1 WITH_ZLIB=1 WITH_PNG=1 WITH_SDL=1 -0 -89 -MRState -90 -WString -3 -WCC -91 -WString -20 -?????Pack structures -0 -0 -92 -MRState -93 -WString -3 -WCC -94 -WString -21 -?????4 byte alignment -0 -1 -95 -MRState -96 -WString -3 -WCC -97 -WString -29 -?????No debugging information -0 -1 -98 -MRState -99 -WString -3 -WCC -100 -WString -28 -?????Line number information -0 -0 -101 -WVList -0 --1 -1 -1 -0 -102 -MItem -4 -ai.c -103 -WString -4 -COBJ -104 -WVList -0 -105 -WVList -0 -52 -1 -1 -0 -106 -MItem -10 -ai_build.c -107 -WString -4 -COBJ -108 -WVList -0 -109 -WVList -0 -52 -1 -1 -0 -110 -MItem -8 -ai_new.c -111 -WString -4 -COBJ -112 -WVList -0 -113 -WVList -0 -52 -1 -1 -0 -114 -MItem -15 -ai_pathfinder.c -115 -WString -4 -COBJ -116 -WVList -0 -117 -WVList -0 -52 -1 -1 -0 -118 -MItem -11 -ai_shared.c -119 -WString -4 -COBJ -120 -WVList -0 -121 -WVList -0 -52 -1 -1 -0 -122 -MItem -14 -aircraft_cmd.c -123 -WString -4 -COBJ -124 -WVList -0 -125 -WVList -0 -52 -1 -1 -0 -126 -MItem -14 -aircraft_gui.c -127 -WString -4 -COBJ -128 -WVList -0 -129 -WVList -0 -52 -1 -1 -0 -130 -MItem -9 -airport.c -131 -WString -4 -COBJ -132 -WVList -0 -133 -WVList -0 -52 -1 -1 -0 -134 -MItem -13 -airport_gui.c -135 -WString -4 -COBJ -136 -WVList -0 -137 -WVList -0 -52 -1 -1 -0 -138 -MItem -8 -aystar.c -139 -WString -4 -COBJ -140 -WVList -0 -141 -WVList -0 -52 -1 -1 -0 -142 -MItem -12 -bridge_gui.c -143 -WString -4 -COBJ -144 -WVList -0 -145 -WVList -0 -52 -1 -1 -0 -146 -MItem -16 -callback_table.c -147 -WString -4 -COBJ -148 -WVList -0 -149 -WVList -0 -52 -1 -1 -0 -150 -MItem -11 -clear_cmd.c -151 -WString -4 -COBJ -152 -WVList -0 -153 -WVList -0 -52 -1 -1 -0 -154 -MItem -9 -command.c -155 -WString -4 -COBJ -156 -WVList -0 -157 -WVList -0 -52 -1 -1 -0 -158 -MItem -9 -console.c -159 -WString -4 -COBJ -160 -WVList -0 -161 -WVList -0 -52 -1 -1 -0 -162 -MItem -14 -console_cmds.c -163 -WString -4 -COBJ -164 -WVList -0 -165 -WVList -0 -52 -1 -1 -0 -166 -MItem -11 -dedicated.c -167 -WString -4 -COBJ -168 -WVList -0 -169 -WVList -0 -52 -1 -1 -0 -170 -MItem -14 -disaster_cmd.c -171 -WString -4 -COBJ -172 -WVList -0 -173 -WVList -0 -52 -1 -1 -0 -174 -MItem -10 -dock_gui.c -175 -WString -4 -COBJ -176 -WVList -0 -177 -WVList -0 -52 -1 -1 -0 -178 -MItem -12 -dummy_land.c -179 -WString -4 -COBJ -180 -WVList -0 -181 -WVList -0 -52 -1 -1 -0 -182 -MItem -9 -economy.c -183 -WString -4 -COBJ -184 -WVList -0 -185 -WVList -0 -52 -1 -1 -0 -186 -MItem -8 -engine.c -187 -WString -4 -COBJ -188 -WVList -0 -189 -WVList -0 -52 -1 -1 -0 -190 -MItem -12 -engine_gui.c -191 -WString -4 -COBJ -192 -WVList -0 -193 -WVList -0 -52 -1 -1 -0 -194 -MItem -8 -fileio.c -195 -WString -4 -COBJ -196 -WVList -0 -197 -WVList -0 -52 -1 -1 -0 -198 -MItem -5 -gfx.c -199 -WString -4 -COBJ -200 -WVList -0 -201 -WVList -0 -52 -1 -1 -0 -202 -MItem -11 -graph_gui.c -203 -WString -4 -COBJ -204 -WVList -0 -205 -WVList -0 -52 -1 -1 -0 -206 -MItem -14 -industry_cmd.c -207 -WString -4 -COBJ -208 -WVList -0 -209 -WVList -0 -52 -1 -1 -0 -210 -MItem -14 -industry_gui.c -211 -WString -4 -COBJ -212 -WVList -0 -213 -WVList -0 -52 -1 -1 -0 -214 -MItem -11 -intro_gui.c -215 -WString -4 -COBJ -216 -WVList -0 -217 -WVList -0 -52 -1 -1 -0 -218 -MItem -11 -landscape.c -219 -WString -4 -COBJ -220 -WVList -0 -221 -WVList -0 -52 -1 -1 -0 -222 -MItem -10 -main_gui.c -223 -WString -4 -COBJ -224 -WVList -0 -225 -WVList -0 -52 -1 -1 -0 -226 -MItem -5 -map.c -227 -WString -4 -COBJ -228 -WVList -0 -229 -WVList -0 -52 -1 -1 -0 -230 -MItem -5 -md5.c -231 -WString -4 -COBJ -232 -WVList -0 -233 -WVList -0 -52 -1 -1 -0 -234 -MItem -9 -minilzo.c -235 -WString -4 -COBJ -236 -WVList -0 -237 -WVList -0 -52 -1 -1 -0 -238 -MItem -6 -misc.c -239 -WString -4 -COBJ -240 -WVList -0 -241 -WVList -0 -52 -1 -1 -0 -242 -MItem -10 -misc_cmd.c -243 -WString -4 -COBJ -244 -WVList -0 -245 -WVList -0 -52 -1 -1 -0 -246 -MItem -10 -misc_gui.c -247 -WString -4 -COBJ -248 -WVList -0 -249 -WVList -0 -52 -1 -1 -0 -250 -MItem -11 -music_gui.c -251 -WString -4 -COBJ -252 -WVList -0 -253 -WVList -0 -52 -1 -1 -0 -254 -MItem -9 -namegen.c -255 -WString -4 -COBJ -256 -WVList -0 -257 -WVList -0 -52 -1 -1 -0 -258 -MItem -9 -network.c -259 -WString -4 -COBJ -260 -WVList -0 -261 -WVList -0 -52 -1 -1 -0 -262 -MItem -16 -network_client.c -263 -WString -4 -COBJ -264 -WVList -0 -265 -WVList -0 -52 -1 -1 -0 -266 -MItem -14 -network_data.c -267 -WString -4 -COBJ -268 -WVList -0 -269 -WVList -0 -52 -1 -1 -0 -270 -MItem -18 -network_gamelist.c -271 -WString -4 -COBJ -272 -WVList -0 -273 -WVList -0 -52 -1 -1 -0 -274 -MItem -13 -network_gui.c -275 -WString -4 -COBJ -276 -WVList -0 -277 -WVList -0 -52 -1 -1 -0 -278 -MItem -16 -network_server.c -279 -WString -4 -COBJ -280 -WVList -0 -281 -WVList -0 -52 -1 -1 -0 -282 -MItem -13 -network_udp.c -283 -WString -4 -COBJ -284 -WVList -0 -285 -WVList -0 -52 -1 -1 -0 -286 -MItem -8 -newgrf.c -287 -WString -4 -COBJ -288 -WVList -0 -289 -WVList -0 -52 -1 -1 -0 -290 -MItem -10 -news_gui.c -291 -WString -4 -COBJ -292 -WVList -0 -293 -WVList -0 -52 -1 -1 -0 -294 -MItem -11 -oldloader.c -295 -WString -4 -COBJ -296 -WVList -0 -297 -WVList -0 -52 -1 -1 -0 -298 -MItem -11 -order_cmd.c -299 -WString -4 -COBJ -300 -WVList -0 -301 -WVList -0 -52 -1 -1 -0 -302 -MItem -11 -order_gui.c -303 -WString -4 -COBJ -304 -WVList -0 -305 -WVList -0 -52 -1 -1 -0 -306 -MItem -5 -os2.c -307 -WString -4 -COBJ -308 -WVList -0 -309 -WVList -0 -52 -1 -1 -0 -310 -MItem -10 -pathfind.c -311 -WString -4 -COBJ -312 -WVList -0 -313 -WVList -0 -52 -1 -1 -0 -314 -MItem -12 -player_gui.c -315 -WString -4 -COBJ -316 -WVList -0 -317 -WVList -0 -52 -1 -1 -0 -318 -MItem -9 -players.c -319 -WString -4 -COBJ -320 -WVList -0 -321 -WVList -0 -52 -1 -1 -0 -322 -MItem -7 -queue.c -323 -WString -4 -COBJ -324 -WVList -0 -325 -WVList -0 -52 -1 -1 -0 -326 -MItem -10 -rail_cmd.c -327 -WString -4 -COBJ -328 -WVList -0 -329 -WVList -0 -52 -1 -1 -0 -330 -MItem -10 -rail_gui.c -331 -WString -4 -COBJ -332 -WVList -0 -333 -WVList -0 -52 -1 -1 -0 -334 -MItem -10 -road_cmd.c -335 -WString -4 -COBJ -336 -WVList -0 -337 -WVList -0 -52 -1 -1 -0 -338 -MItem -10 -road_gui.c -339 -WString -4 -COBJ -340 -WVList -0 -341 -WVList -0 -52 -1 -1 -0 -342 -MItem -13 -roadveh_cmd.c -343 -WString -4 -COBJ -344 -WVList -0 -345 -WVList -0 -52 -1 -1 -0 -346 -MItem -13 -roadveh_gui.c -347 -WString -4 -COBJ -348 -WVList -0 -349 -WVList -0 -52 -1 -1 -0 -350 -MItem -10 -saveload.c -351 -WString -4 -COBJ -352 -WVList -0 -353 -WVList -0 -52 -1 -1 -0 -354 -MItem -12 -screenshot.c -355 -WString -4 -COBJ -356 -WVList -0 -357 -WVList -0 -52 -1 -1 -0 -358 -MItem -5 -sdl.c -359 -WString -4 -COBJ -360 -WVList -0 -361 -WVList -0 -52 -1 -1 -0 -362 -MItem -10 -settings.c -363 -WString -4 -COBJ -364 -WVList -0 -365 -WVList -0 -52 -1 -1 -0 -366 -MItem -14 -settings_gui.c -367 -WString -4 -COBJ -368 -WVList -0 -369 -WVList -0 -52 -1 -1 -0 -370 -MItem -10 -ship_cmd.c -371 -WString -4 -COBJ -372 -WVList -0 -373 -WVList -0 -52 -1 -1 -0 -374 -MItem -10 -ship_gui.c -375 -WString -4 -COBJ -376 -WVList -0 -377 -WVList -0 -52 -1 -1 -0 -378 -MItem -14 -smallmap_gui.c -379 -WString -4 -COBJ -380 -WVList -0 -381 -WVList -0 -52 -1 -1 -0 -382 -MItem -7 -sound.c -383 -WString -4 -COBJ -384 -WVList -0 -385 -WVList -0 -52 -1 -1 -0 -386 -MItem -8 -sprite.c -387 -WString -4 -COBJ -388 -WVList -0 -389 -WVList -0 -52 -1 -1 -0 -390 -MItem -13 -spritecache.c -391 -WString -4 -COBJ -392 -WVList -0 -393 -WVList -0 -52 -1 -1 -0 -394 -MItem -13 -station_cmd.c -395 -WString -4 -COBJ -396 -WVList -0 -397 -WVList -0 -52 -1 -1 -0 -398 -MItem -13 -station_gui.c -399 -WString -4 -COBJ -400 -WVList -0 -401 -WVList -0 -52 -1 -1 -0 -402 -MItem -8 -StdAfx.c -403 -WString -4 -COBJ -404 -WVList -0 -405 -WVList -0 -52 -1 -1 -0 -406 -MItem -9 -strings.c -407 -WString -4 -COBJ -408 -WVList -0 -409 -WVList -0 -52 -1 -1 -0 -410 -MItem -13 -subsidy_gui.c -411 -WString -4 -COBJ -412 -WVList -0 -413 -WVList -0 -52 -1 -1 -0 -414 -MItem -15 -terraform_gui.c -415 -WString -4 -COBJ -416 -WVList -0 -417 -WVList -0 -52 -1 -1 -0 -418 -MItem -9 -texteff.c -419 -WString -4 -COBJ -420 -WVList -0 -421 -WVList -0 -52 -1 -1 -0 -422 -MItem -10 -town_cmd.c -423 -WString -4 -COBJ -424 -WVList -0 -425 -WVList -0 -52 -1 -1 -0 -426 -MItem -10 -town_gui.c -427 -WString -4 -COBJ -428 -WVList -0 -429 -WVList -0 -52 -1 -1 -0 -430 -MItem -11 -train_cmd.c -431 -WString -4 -COBJ -432 -WVList -0 -433 -WVList -0 -52 -1 -1 -0 -434 -MItem -11 -train_gui.c -435 -WString -4 -COBJ -436 -WVList -0 -437 -WVList -0 -52 -1 -1 -0 -438 -MItem -10 -tree_cmd.c -439 -WString -4 -COBJ -440 -WVList -0 -441 -WVList -0 -52 -1 -1 -0 -442 -MItem -5 -ttd.c -443 -WString -4 -COBJ -444 -WVList -0 -445 -WVList -0 -52 -1 -1 -0 -446 -MItem -18 -tunnelbridge_cmd.c -447 -WString -4 -COBJ -448 -WVList -0 -449 -WVList -0 -52 -1 -1 -0 -450 -MItem -15 -unmovable_cmd.c -451 -WString -4 -COBJ -452 -WVList -0 -453 -WVList -0 -52 -1 -1 -0 -454 -MItem -9 -vehicle.c -455 -WString -4 -COBJ -456 -WVList -0 -457 -WVList -0 -52 -1 -1 -0 -458 -MItem -13 -vehicle_gui.c -459 -WString -4 -COBJ -460 -WVList -0 -461 -WVList -0 -52 -1 -1 -0 -462 -MItem -10 -viewport.c -463 -WString -4 -COBJ -464 -WVList -0 -465 -WVList -0 -52 -1 -1 -0 -466 -MItem -11 -water_cmd.c -467 -WString -4 -COBJ -468 -WVList -0 -469 -WVList -0 -52 -1 -1 -0 -470 -MItem -8 -widget.c -471 -WString -4 -COBJ -472 -WVList -0 -473 -WVList -0 -52 -1 -1 -0 -474 -MItem -8 -window.c -475 -WString -4 -COBJ -476 -WVList -0 -477 -WVList -0 -52 -1 -1 -0 diff --git a/os/os2/openttd.wpj b/os/os2/openttd.wpj index 3316eac8b4..f363a28d80 100644 --- a/os/os2/openttd.wpj +++ b/os/os2/openttd.wpj @@ -61,66 +61,3 @@ WFileName 0 2 8 -40 -projectIdent -0 -VpeMain -1 -WRect -0 -40 -10320 -9920 -2 -MProject -3 -MCommand -0 -4 -MCommand -0 -2 -5 -WFileName -17 -..\..\openttd.tgt -6 -WFileName -23 -..\..\strgen\strgen.tgt -7 -WVList -2 -8 -VComponent -9 -WRect -0 -0 -5700 -4240 -0 -0 -10 -WFileName -17 -..\..\openttd.tgt -51 -52 -11 -VComponent -12 -WRect -690 -680 -5700 -4240 -0 -0 -13 -WFileName -23 -..\..\strgen\strgen.tgt -0 -2 -8 diff --git a/os2.c b/os2.c index 4a486dda50..27c37a5e22 100644 --- a/os2.c +++ b/os2.c @@ -529,534 +529,3 @@ void DeterminePaths() mkdir(_path.scenario_dir); } -#include "stdafx.h" -#include "ttd.h" -#include "table/strings.h" -#include "hal.h" - -#include -#include -#include -#include -#include - -#include - -#if defined(WITH_SDL) -#include -#endif - -static char *_fios_path; -static char *_fios_save_path; -static char *_fios_scn_path; -static FiosItem *_fios_items; -static int _fios_count, _fios_alloc; - -static FiosItem *FiosAlloc() -{ - if (_fios_count == _fios_alloc) { - _fios_alloc += 256; - _fios_items = realloc(_fios_items, _fios_alloc * sizeof(FiosItem)); - } - return &_fios_items[_fios_count++]; -} - -int compare_FiosItems (const void *a, const void *b) { - const FiosItem *da = (const FiosItem *) a; - const FiosItem *db = (const FiosItem *) b; - int r; - - if (_savegame_sort_order < 2) // sort by date - r = da->mtime < db->mtime ? -1 : 1; - else - r = stricmp(da->title[0] ? da->title : da->name, db->title[0] ? db->title : db->name); - - if (_savegame_sort_order & 1) r = -r; - return r; -} - - -// Get a list of savegames -FiosItem *FiosGetSavegameList(int *num, int mode) -{ - FiosItem *fios; - DIR *dir; - struct dirent *dirent; - struct stat sb; - int sort_start; - char filename[MAX_PATH]; - - if (_fios_save_path == NULL) { - _fios_save_path = malloc(MAX_PATH); - strcpy(_fios_save_path, _path.save_dir); - } - - if(_game_mode==GM_EDITOR) - _fios_path = _fios_scn_path; - else - _fios_path = _fios_save_path; - - // Parent directory, only if not in root already. - if (_fios_path[1] != 0) { - fios = FiosAlloc(); - fios->type = FIOS_TYPE_PARENT; - fios->mtime = 0; - sprintf(fios->title, ".. (Parent directory)"); - } - - // Show subdirectories first - dir = opendir(_fios_path[0] ? _fios_path : "C:\\"); - if (dir != NULL) { - while ((dirent = readdir(dir))) { - sprintf (filename, "%s\\%s", _fios_path, dirent->d_name); - if (!stat(filename, &sb)) { - if (S_ISDIR(sb.st_mode)) { - if (dirent->d_name[0] != '.') { - fios = FiosAlloc(); - fios->mtime = 0; - fios->type = FIOS_TYPE_DIR; - fios->title[0] = 0; - sprintf(fios->name, "%s\\ (Directory)", dirent->d_name); - } - } - } - } - closedir(dir); - } - - { - /* XXX ugly global variables ... */ - byte order = _savegame_sort_order; - _savegame_sort_order = 2; // sort ascending by name - qsort(_fios_items, _fios_count, sizeof(FiosItem), compare_FiosItems); - _savegame_sort_order = order; - } - - // this is where to start sorting - sort_start = _fios_count; - - /* Show savegame files - * .SAV OpenTTD saved game - * .SS1 Transport Tycoon Deluxe preset game - * .SV1 Transport Tycoon Deluxe (Patch) saved game - * .SV2 Transport Tycoon Deluxe (Patch) saved 2-player game - */ - dir = opendir(_fios_path[0] ? _fios_path : "C:\\"); - if (dir != NULL) { - while ((dirent = readdir(dir))) { - sprintf (filename, "%s\\%s", _fios_path, dirent->d_name); - if (!stat(filename, &sb)) { - if (!S_ISDIR(sb.st_mode)) { - char *t = strrchr(dirent->d_name, '.'); - if (t && !stricmp(t, ".sav")) { // OpenTTD - *t = 0; // cut extension - fios = FiosAlloc(); - fios->type = FIOS_TYPE_FILE; - fios->mtime = sb.st_mtime; - fios->title[0] = 0; - ttd_strlcpy(fios->name, dirent->d_name, sizeof(fios->name)); - } else if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) { - int ext = 0; // start of savegame extensions in _old_extensions[] - if (t && ((ext++, !stricmp(t, ".ss1")) || (ext++, !stricmp(t, ".sv1")) || (ext++, !stricmp(t, ".sv2"))) ) { // TTDLX(Patch) - *t = 0; // cut extension - fios = FiosAlloc(); - fios->old_extension = ext-1; - fios->type = FIOS_TYPE_OLDFILE; - fios->mtime = sb.st_mtime; - ttd_strlcpy(fios->name, dirent->d_name, sizeof(fios->name)); - GetOldSaveGameName(fios->title, filename); - } - } - } - } - } - closedir(dir); - } - - qsort(_fios_items + sort_start, _fios_count - sort_start, sizeof(FiosItem), compare_FiosItems); - - // Drives - { - unsigned save, disk, disk2, total; - - /* save original drive */ - _dos_getdrive(&save); - - /* get available drive letters */ - - for (disk = 1; disk < 27; ++disk) - { - _dos_setdrive(disk, &total); - _dos_getdrive(&disk2); - - if (disk == disk2) - { - fios = FiosAlloc(); - fios->type = FIOS_TYPE_DRIVE; - fios->title[0] = disk + 'A'-1; - fios->title[1] = ':'; - fios->title[2] = 0; - } - } - - _dos_setdrive(save, &total); - } - - *num = _fios_count; - return _fios_items; -} - -// Get a list of scenarios -FiosItem *FiosGetScenarioList(int *num, int mode) -{ - FiosItem *fios; - DIR *dir; - struct dirent *dirent; - struct stat sb; - int sort_start; - char filename[MAX_PATH]; - - if (_fios_scn_path == NULL) { - _fios_scn_path = malloc(MAX_PATH); - strcpy(_fios_scn_path, _path.scenario_dir); - } - _fios_path = _fios_scn_path; - - // Show subdirectories first - dir = opendir(_fios_path[0] ? _fios_path : "C:\\"); - if (dir != NULL) { - while ((dirent = readdir(dir))) { - sprintf (filename, "%s\\%s", _fios_path, dirent->d_name); - if (!stat(filename, &sb)) { - if (S_ISDIR(sb.st_mode)) { - if (dirent->d_name[0] != '.') { - fios = FiosAlloc(); - fios->mtime = 0; - fios->type = FIOS_TYPE_DIR; - fios->title[0] = 0; - sprintf(fios->name, "%s\\ (Directory)", dirent->d_name); - } - } - } - } - closedir(dir); - } - - // this is where to start sorting - sort_start = _fios_count; - - /* Show scenario files - * .SCN OpenTTD style scenario file - * .SV0 Transport Tycoon Deluxe (Patch) scenario - * .SS0 Transport Tycoon Deluxe preset scenario - */ - dir = opendir(_fios_path[0] ? _fios_path : "C:\\"); - if (dir != NULL) { - while ((dirent = readdir(dir))) { - sprintf (filename, "%s\\%s", _fios_path, dirent->d_name); - if (!stat(filename, &sb)) { - if (!S_ISDIR(sb.st_mode)) { - char *t = strrchr(dirent->d_name, '.'); - if (t && !stricmp(t, ".scn")) { // OpenTTD - *t = 0; // cut extension - fios = FiosAlloc(); - fios->type = FIOS_TYPE_SCENARIO; - fios->mtime = sb.st_mtime; - fios->title[0] = 0; - ttd_strlcpy(fios->name, dirent->d_name, sizeof(fios->name)-3); - } else if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO || mode == SLD_NEW_GAME) { - int ext = 3; // start of scenario extensions in _old_extensions[] - if (t && ((ext++, !stricmp(t, ".sv0")) || (ext++, !stricmp(t, ".ss0"))) ) { // TTDLX(Patch) - *t = 0; // cut extension - fios = FiosAlloc(); - fios->old_extension = ext-1; - fios->type = FIOS_TYPE_OLD_SCENARIO; - fios->mtime = sb.st_mtime; - GetOldScenarioGameName(fios->title, filename); - ttd_strlcpy(fios->name, dirent->d_name, sizeof(fios->name)-3); - } - } - } - } - } - closedir(dir); - } - - qsort(_fios_items + sort_start, _fios_count - sort_start, sizeof(FiosItem), compare_FiosItems); - - // Drives - if (mode != SLD_NEW_GAME) - { - unsigned save, disk, disk2, total; - - /* save original drive */ - _dos_getdrive(&save); - - /* get available drive letters */ - - for (disk = 1; disk < 27; ++disk) - { - _dos_setdrive(disk, &total); - _dos_getdrive(&disk2); - - if (disk == disk2) - { - fios = FiosAlloc(); - fios->type = FIOS_TYPE_DRIVE; - fios->title[0] = disk + 'A'-1; - fios->title[1] = ':'; - fios->title[2] = 0; - } - } - - _dos_setdrive(save, &total); - } - - *num = _fios_count; - return _fios_items; -} - - -// Free the list of savegames -void FiosFreeSavegameList() -{ - free(_fios_items); - _fios_items = NULL; - _fios_alloc = _fios_count = 0; -} - -// Browse to -char *FiosBrowseTo(const FiosItem *item) -{ - char *path = _fios_path; - char *s; - - switch(item->type) { - case FIOS_TYPE_PARENT: - s = strrchr(path, '\\'); - if (s != NULL) *s = 0; - break; - - case FIOS_TYPE_DIR: - s = strchr((char*)item->name, '\\'); - if (s) *s = 0; - while (*path) path++; - *path++ = '\\'; - strcpy(path, item->name); - break; - - case FIOS_TYPE_FILE: - FiosMakeSavegameName(str_buffr, item->name); - return str_buffr; - - case FIOS_TYPE_OLDFILE: - sprintf(str_buffr, "%s\\%s.%s", _fios_path, item->name, _old_extensions[item->old_extension]); - return str_buffr; - - case FIOS_TYPE_SCENARIO: - sprintf(str_buffr, "%s\\%s.scn", path, item->name); - return str_buffr; - - case FIOS_TYPE_OLD_SCENARIO: - sprintf(str_buffr, "%s\\%s.%s", path, item->name, _old_extensions[item->old_extension]); - return str_buffr; - } - - return NULL; -} - -// Get descriptive texts. -// Returns a path as well as a -// string describing the path. -StringID FiosGetDescText(const char **path) -{ - struct diskfree_t free; - char drive; - - *path = _fios_path[0] ? _fios_path : "C:\\"; - drive = 'B' - *path[0]; - - _getdiskfree(drive, &free); - - SetDParam(0, free.avail_clusters * free.sectors_per_cluster * free.bytes_per_sector); - return STR_4005_BYTES_FREE; -} - -void FiosMakeSavegameName(char *buf, const char *name) -{ - if(_game_mode==GM_EDITOR) - sprintf(buf, "%s\\%s.scn", _fios_path, name); - else - sprintf(buf, "%s\\%s.sav", _fios_path, name); -} - -void FiosDelete(const char *name) -{ - char *path = str_buffr; - FiosMakeSavegameName(path, name); - unlink(path); -} - -const DriverDesc _video_driver_descs[] = { - {"null", "Null Video Driver", &_null_video_driver, 0}, -#if defined(WITH_SDL) - { "sdl", "SDL Video Driver", &_sdl_video_driver, 1}, -#endif - { "dedicated", "Dedicated Video Driver", &_dedicated_video_driver, 0}, - { NULL, NULL, NULL, 0} -}; - -const DriverDesc _sound_driver_descs[] = { - {"null", "Null Sound Driver", &_null_sound_driver, 0}, -#if defined(WITH_SDL) - { "sdl", "SDL Sound Driver", &_sdl_sound_driver, 1}, -#endif - { NULL, NULL, NULL, 0} -}; - -const DriverDesc _music_driver_descs[] = { - { "null", "Null Music Driver", &_null_music_driver, 0}, - { NULL, NULL, NULL, 0} -}; - -/* GetOSVersion returns the minimal required version of OS to be able to use that driver. - Not needed for *nix. */ -byte GetOSVersion() -{ - return 2; // any arbitrary number bigger then 0 - // numbers lower than 2 breaks default music selection on mac -} - -bool FileExists(const char *filename) -{ - return access(filename, 0) == 0; -} - -static int LanguageCompareFunc(const void *a, const void *b) -{ - return strcmp(*(const char* const *)a, *(const char* const *)b); -} - -int GetLanguageList(char **languages, int max) -{ - DIR *dir; - struct dirent *dirent; - int num = 0; - - dir = opendir(_path.lang_dir); - if (dir != NULL) { - while ((dirent = readdir(dir))) { - char *t = strrchr(dirent->d_name, '.'); - if (t && !strcmp(t, ".lng")) { - languages[num++] = strdup(dirent->d_name); - if (num == max) break; - } - } - closedir(dir); - } - - qsort(languages, num, sizeof(char*), LanguageCompareFunc); - return num; -} - -static void ChangeWorkingDirectory(char *exe) -{ - char *s = strrchr(exe, '\\'); - if (s != NULL) { - *s = 0; - chdir(exe); - *s = '\\'; - } -} - -void ShowInfo(const char *str) -{ - puts(str); -} - -void ShowOSErrorBox(const char *buf) -{ - WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, buf, "OpenTTD", 263, MB_OK | MB_APPLMODAL | MB_MOVEABLE | MB_ERROR); -// TODO: FIX, doesn't always appear -} - -int CDECL main(int argc, char* argv[]) -{ - // change the working directory to enable doubleclicking in UIs - ChangeWorkingDirectory(argv[0]); - - _random_seeds[0][1] = _random_seeds[0][0] = time(NULL); - - - return ttd_main(argc, argv); -} - -void DeterminePaths() -{ - char *s; - - _path.game_data_dir = malloc( MAX_PATH ); - ttd_strlcpy(_path.game_data_dir, GAME_DATA_DIR, MAX_PATH); - #if defined SECOND_DATA_DIR - _path.second_data_dir = malloc( MAX_PATH ); - ttd_strlcpy( _path.second_data_dir, SECOND_DATA_DIR, MAX_PATH); - #endif - -#if defined(USE_HOMEDIR) - { - char *homedir; - homedir = getenv("HOME"); - - if(!homedir) { - struct passwd *pw = getpwuid(getuid()); - if (pw) homedir = pw->pw_dir; - } - - _path.personal_dir = str_fmt("%s" PATHSEP "%s", homedir, PERSONAL_DIR); - } - -#else /* not defined(USE_HOMEDIR) */ - - _path.personal_dir = malloc( MAX_PATH ); - ttd_strlcpy(_path.personal_dir, PERSONAL_DIR, MAX_PATH); - - // check if absolute or relative path - s = strchr(_path.personal_dir, '\\'); - - // add absolute path - if (s==NULL || _path.personal_dir != s) { - getcwd(_path.personal_dir, MAX_PATH); - s = strchr(_path.personal_dir, 0); - *s++ = '\\'; - ttd_strlcpy(s, PERSONAL_DIR, MAX_PATH); - } - -#endif /* defined(USE_HOMEDIR) */ - - s = strchr(_path.personal_dir, 0); - - // append a / ? - if (s[-1] != '\\') { s[0] = '\\'; s[1] = 0; } - - _path.save_dir = str_fmt("%ssave", _path.personal_dir); - _path.autosave_dir = str_fmt("%s\\autosave", _path.save_dir); - _path.scenario_dir = str_fmt("%sscenario", _path.personal_dir); - _path.gm_dir = str_fmt("%sgm\\", _path.game_data_dir); - _path.data_dir = str_fmt("%sdata\\", _path.game_data_dir); - _config_file = str_fmt("%sopenttd.cfg", _path.personal_dir); - -#if defined CUSTOM_LANG_DIR - // sets the search path for lng files to the custom one - _path.lang_dir = malloc( MAX_PATH ); - ttd_strlcpy( _path.lang_dir, CUSTOM_LANG_DIR, MAX_PATH); -#else - _path.lang_dir = str_fmt("%slang\\", _path.game_data_dir); -#endif - - // create necessary folders - mkdir(_path.personal_dir); - mkdir(_path.save_dir); - mkdir(_path.autosave_dir); - mkdir(_path.scenario_dir); -} - diff --git a/strgen/strgen.tgt b/strgen/strgen.tgt index 40d549b606..1ef11fe0fb 100644 --- a/strgen/strgen.tgt +++ b/strgen/strgen.tgt @@ -121,126 +121,3 @@ WVList 1 1 0 -40 -targetIdent -0 -MProject -1 -MComponent -0 -2 -WString -4 -OEXE -3 -WString -5 -oc2en -1 -0 -1 -4 -MCommand -0 -5 -MCommand -0 -6 -MItem -10 -strgen.exe -7 -WString -4 -OEXE -8 -WVList -2 -9 -MRState -10 -WString -7 -OS2LINK -11 -WString -25 -?????No debug information -1 -1 -12 -MRState -13 -WString -7 -OS2LINK -14 -WString -14 -?????Debug All -1 -0 -15 -WVList -0 --1 -1 -1 -0 -16 -WPickList -3 -17 -MItem -3 -*.c -18 -WString -4 -COBJ -19 -WVList -0 -20 -WVList -0 --1 -1 -1 -0 -21 -MItem -8 -stdafx.c -22 -WString -4 -COBJ -23 -WVList -0 -24 -WVList -0 -17 -1 -1 -0 -25 -MItem -8 -strgen.c -26 -WString -4 -COBJ -27 -WVList -0 -28 -WVList -0 -17 -1 -1 -0