aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/UltraStar.lpr
blob: 06a6f86e72e8ad7e20775d0139451ffb0a5456af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
program UltraStar;

{$DEFINE TRANSLATE}
{$MODE DELPHI}
{$I switches.inc}

uses
  {$ifdef unix}            // http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial
    cthreads,              // THIS MUST be the first used unit !!
    cwstring,
  {$endif}
  {$ifdef MSWINDOWS}       // do not initialize the widgets in linux -> see below
  {$ifdef LCL}
    Interfaces,            // Initialize Lazarus LCL (necessary for usage of LCLIntf, etc.)
                           // WARNING: in linux (with the gtk2 interface) this will change the locale
                           //   settings like LC_NUMERIC (which cannot be reverted, can it? At least I have not managed to do so.).
                           //   As a result external libs like projectM might not be able to parse
                           //   floating-point values anymore (because ',' might be used as decimal-seperator in atof() or strtod()).
                           //   As a result, projectM does not work anymore and crashes because of access violations.
                           // Not initializing Interfaces crashes USDX when widgets should be shown, as done with
                           // MessageBox(). In addition LCL assigns itself as a Signal-handler for almost every
                           // exception (FPE, SEGV, etc.) and wants to show a message-box with some info on
                           // the exception that occured. It will crash a second time because of the missing
                           // widget-set binding (error in winapi.pp).
                           //
                           // Removing the lazarus widget stuff seems to be the only solution but even if just
                           // the LCLIntf unit is included, lazarus catches signals and tries to show the exception-info.
                           // -> So we have to remove all the lazarus stuff except LResources (hope this doesn't influence the signal-handler too)
                           // We can leave the windows-only LCL-stuff in DirWatch and the Midi-classes.
  {$endif}
  {$endif}

  {$I UltraStar.dpr}

  // ***************************************************************************
  //
  //                         Developers PLEASE NOTE !!!!!!!
  //
  //  As of september 2007, I am working towards porting Ultrastar-DX to run
  //  on Linux.  I will be modifiying the source to make it compile in lazarus
  //  on windows & linux and I will make sure that it compiles in delphi still
  //  To help me in this endevour, please can you make a point of remembering
  //  that linux is CASE SENSATIVE, and file / unit names must be as per
  //  the filename exactly.
  //
  //  EG :  opengl12.pas  must not be OpenGL in the uses cluase.
  //
  //  thanks for your help...
  //
  // ***************************************************************************

  // Interesting stuff... :)
  // http://burningsmell.org/sdl_audioin/

begin
  main();
end.