diff options
author | Franklin Wei <git@fwei.tk> | 2019-07-07 22:00:20 -0400 |
---|---|---|
committer | Franklin Wei <git@fwei.tk> | 2019-07-09 11:20:55 -0400 |
commit | 3f59fc8b771625aca9c3aefe03cf1038d8461963 (patch) | |
tree | e0623a323613baa0b0993411b38bcaed144b27ed | |
parent | 439a0d1d91fa040d261fc39b87278bc9f5391dcc (diff) | |
download | rockbox-3f59fc8b771625aca9c3aefe03cf1038d8461963.tar.gz rockbox-3f59fc8b771625aca9c3aefe03cf1038d8461963.zip |
Wolfenstein 3-D!
This is a port of Wolf4SDL, which is derived from the original id
software source release. The port runs on top of the SDL plugin
runtime and is loaded as an overlay.
Licensing of the game code is not an issue, as discussed below
(essentially, the Debian project treats Wolf4SDL as GPLv2, with an
email from John Carmack backing it up):
http://forums.rockbox.org/index.php?topic=52872
Included is a copy of MAME's Yamaha OPL sound chip emulator
(fmopl_gpl.c). This file was not part of the original Wolf4SDL source
(which includes a non-GPL'd version), but was rather rebased from from
a later MAME source which had been relicensed to GPLv2.
Change-Id: I64c2ba035e0be7e2f49252f40640641416613439
68 files changed, 44163 insertions, 4 deletions
diff --git a/apps/plugins/CATEGORIES b/apps/plugins/CATEGORIES index 652a0b3a8e..a0527c87e2 100644 --- a/apps/plugins/CATEGORIES +++ b/apps/plugins/CATEGORIES | |||
@@ -180,6 +180,7 @@ wav2wv,viewers | |||
180 | wavplay,viewers | 180 | wavplay,viewers |
181 | wavrecord,apps | 181 | wavrecord,apps |
182 | wavview,viewers | 182 | wavview,viewers |
183 | wolf3d,games | ||
183 | wormlet,games | 184 | wormlet,games |
184 | xobox,games | 185 | xobox,games |
185 | xworld,games | 186 | xworld,games |
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES index 1ae0144866..0ff6eb9c76 100644 --- a/apps/plugins/SOURCES +++ b/apps/plugins/SOURCES | |||
@@ -78,6 +78,7 @@ iriverify.c | |||
78 | (!defined(LCD_STRIDEFORMAT) || (LCD_STRIDEFORMAT != VERTICAL_STRIDE)) | 78 | (!defined(LCD_STRIDEFORMAT) || (LCD_STRIDEFORMAT != VERTICAL_STRIDE)) |
79 | #if (PLUGIN_BUFFER_SIZE > 0x14000) && defined(CPU_ARM) | 79 | #if (PLUGIN_BUFFER_SIZE > 0x14000) && defined(CPU_ARM) |
80 | duke3d.c | 80 | duke3d.c |
81 | wolf3d.c | ||
81 | #endif | 82 | #endif |
82 | #endif | 83 | #endif |
83 | 84 | ||
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS index 055db43b48..04c3d763b2 100644 --- a/apps/plugins/SUBDIRS +++ b/apps/plugins/SUBDIRS | |||
@@ -8,7 +8,6 @@ text_viewer | |||
8 | clock | 8 | clock |
9 | #endif | 9 | #endif |
10 | 10 | ||
11 | |||
12 | /* For all targets with a bitmap display */ | 11 | /* For all targets with a bitmap display */ |
13 | #ifdef HAVE_LCD_BITMAP | 12 | #ifdef HAVE_LCD_BITMAP |
14 | 13 | ||
@@ -22,7 +21,6 @@ xworld | |||
22 | defined(CPU_ARM) | 21 | defined(CPU_ARM) |
23 | sdl | 22 | sdl |
24 | #endif | 23 | #endif |
25 | |||
26 | puzzles | 24 | puzzles |
27 | #endif | 25 | #endif |
28 | 26 | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/Changes-dc.txt b/apps/plugins/sdl/progs/wolf3d/Changes-dc.txt new file mode 100644 index 0000000000..e613b0ab41 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/Changes-dc.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | 1.7 <February 01, 2009> | ||
2 | - Saved game description saved to VMS header | ||
3 | - Adjustments made to LCD | ||
4 | - VMU loading code improved | ||
5 | - Miscellaneous code clean ups | ||
6 | - Work started on new disc check code | ||
7 | |||
8 | 1.6 <October 04, 2008> | ||
9 | - Getting the DC port up-to-date | ||
10 | |||
11 | 1.5 <May 25, 2008> | ||
12 | - Mouse support | ||
13 | - Weapon switch support | ||
14 | - Controllers with C & Z button support | ||
15 | - Command line parameters via 'params.txt' support | ||
16 | - SOD mission pack support via menu | ||
17 | - Commercial CD-ROM swap support | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/Changes.txt b/apps/plugins/sdl/progs/wolf3d/Changes.txt new file mode 100644 index 0000000000..0bf21703af --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/Changes.txt | |||
@@ -0,0 +1,157 @@ | |||
1 | Wolf4SDL v1.7 (released 2011-05-15, revision 256) | ||
2 | - Added support for Mac OS X | ||
3 | (thanks to Chris Ballinger) | ||
4 | - Added support for .sd1 SOD game files as delivered by Steam | ||
5 | by changing --mission parameter slightly | ||
6 | (thanks to Pickle) | ||
7 | - Added --windowed-mouse parameter to start windowed mode with grabbed mouse | ||
8 | (thanks to Jared Breland) | ||
9 | - Rain and snow speed fix (thanks to Tricob) | ||
10 | - Floor/ceiling fix (thanks to Tricob / Adam Biser) | ||
11 | - Fixed moon out of screen bug (thanks to Tricob) | ||
12 | - Rain/snow leaking ceilings fix (thanks to Adam Biser / Tricob) | ||
13 | - Per-user configuration/savegame directories (~/.wolf4sdl) on | ||
14 | Linux like systems per default (thanks to Jared Breland) | ||
15 | - Added --configdir parameter | ||
16 | - Use SDL_DOUBLEBUF for vsync to avoid or at least reduce flickering | ||
17 | (thanks to Greg Ayrton for the hint, use --nodblbuf to disable it) | ||
18 | - Removed remainings of the frame rate counter on screen, when disabled | ||
19 | - Don't quit game when using TAB+E with --tedlevel | ||
20 | - Added --extravbls parameter | ||
21 | - Changed default for "extra VBLs" from 1 to 0 | ||
22 | - Fixed missing umask parameter for open with O_CREAT | ||
23 | (bug reported by Daniel Fass) | ||
24 | - Fixed support for 1.0 shareware data files | ||
25 | (bug reported by Marcus Naylor) | ||
26 | - Fixed xtile and ytile not being valid in HitHorizWall and HitVertWall, | ||
27 | respectively. This caused problems with some tutorials. | ||
28 | - Removed unused HitHorizPWall and HitVertPWall. | ||
29 | |||
30 | Wolf4SDL v1.6 (released 2008-09-01, revision 233) | ||
31 | - Fixed songs not really supporting more than 64kb | ||
32 | - Try to recognize whether data files don't fit to program version | ||
33 | instead of just using them and probably crash | ||
34 | (can be disabled with --ignorenumchunks) | ||
35 | - Fizzle fade now works for resolutions up to 8191x4095 | ||
36 | (thanks to Xilinx, Inc. for the list of maximum-length LFSR counters) | ||
37 | - Fixed demos being dependent on actual duration of GETGATLINGSND | ||
38 | (fixes second demo, which even rarely worked in vanilla Wolf3D) | ||
39 | - Fixed demos by disabling some bugfixes during recording and playback | ||
40 | (see PLAYDEMOLIKEORIGINAL define in version.h) | ||
41 | - Removed system menu on Windows in windowed mode to avoid ALT to open it | ||
42 | - Fixed palette issues occurring on some Windows systems by using the | ||
43 | "best" color depth reported by libSDL per default (also see --bits option) | ||
44 | - Fixed directional 3d sprites on architectures only allowing aligned memory | ||
45 | access (bug reported by Pickle) | ||
46 | - Fixed remaining status bar after end of demo in 320x240s resolutions | ||
47 | (bug reported by Pickle) | ||
48 | - Removed last busy waiting (fixes very unstable framerates on machines with | ||
49 | stricter schedulers like FreeBSD; thanks to Tron for making me notice) | ||
50 | - Fixed compiling of SOD on case sensitive file systems | ||
51 | (thanks to Michael) | ||
52 | |||
53 | Wolf4SDL v1.5 (released 2008-05-25, revision 215) | ||
54 | - Reduced minimum distance to back of moving pushwall to PLAYERSIZE | ||
55 | - Fixed pushwall rendering when player's eye is in the pushwall back tile | ||
56 | (bug reported by Pickle) | ||
57 | - Enable 'End game' menu item also when using --tedlevel | ||
58 | - Removed some unneccessary fade outs | ||
59 | (DrawPlayScreen does not call VW_FadeOut anymore!!) | ||
60 | - When using 'End game', 'View scores' does not directly show up anymore | ||
61 | - Fixed quickload/quicksave not working when started with --tedlevel (vanilla | ||
62 | bug). This now also only checks for save games once at startup (may speed | ||
63 | up entering the menu on Dreamcast) | ||
64 | - Fixed drawing moving pushwalls viewed at acute angles near the level border | ||
65 | - Fixed vanilla bug hiding bonus items on same tile as player, when he cannot | ||
66 | pick them up (e.g. medikit at 100% health) (thanks to Pickle for noticing) | ||
67 | - Added GP2X specific code by Pickle | ||
68 | - Reimplemented picture grabber to support all screen resolutions | ||
69 | (<TAB>+P in debug mode) | ||
70 | - Added --resf option to force to use unsupported resolutions >= 320x200 | ||
71 | - Added support for resolutions being a multiple of 320x240 | ||
72 | (thanks for your help, Pickle!) | ||
73 | - Fixed crash when cheat-hurting oneself to death (bug reported by Tricob) | ||
74 | - Cleaned up id_sd.cpp (kept PC speaker stuff for future reference) | ||
75 | - Added move buttons (invalidates config file, only hardcoded yet) | ||
76 | - Added joystick support to US_LineInput used for highscore names | ||
77 | and save games | ||
78 | - Added US_Printf and US_CPrintf (works just like printf) | ||
79 | - Fixed wrong surface locks/unlocks | ||
80 | - Added Visual C++ 6 support | ||
81 | - Removed some useless VW_WaitVBLs (Thanks to TexZK) | ||
82 | - Added some asserts in id_vl.cpp to check for screen access out of bounds | ||
83 | - Fixed BJ face popping up in fullsize mode sometimes | ||
84 | (Thanks to Andy_Nonymous) | ||
85 | - Rewrote page manager to support page >= 64kB | ||
86 | and to correctly handle sounds >= 4kB | ||
87 | - Improved SOD mission packs support (Thanks to fackue) | ||
88 | - Updated Code::Blocks search paths to ..\SDL-devel\ | ||
89 | - Added version.h to Dev-C++ and Code::Blocks project file | ||
90 | - Fixed some files being read in text mode on MinGW | ||
91 | |||
92 | Wolf4SDL v1.4 (released 2008-03-10, revision 164) | ||
93 | - Added MinGW/MSYS compatibility | ||
94 | - Updated Code::Blocks project | ||
95 | - Updated Dev-C++ project and added a README-devcpp.txt | ||
96 | - Fixed some busy waiting situations | ||
97 | - Added directional 3D sprites support (USE_DIR3DSPR) | ||
98 | - Added support for Spear mission packs (by fackue) | ||
99 | - Added support for Wolf3D full v1.1 and shareware v1.0, v1.1 and v1.2 | ||
100 | - Added shading support (USE_SHADING) | ||
101 | - Added object flags (see objflag_t enum in wl_def.h) | ||
102 | - Reintroduced version.h | ||
103 | - Increased MAXVISABLE from 50 to 250 | ||
104 | - Added outside atmosphere features (USE_STARSKY, USE_RAIN, USE_SNOW) | ||
105 | - Added cloud sky support (USE_CLOUDSKY) | ||
106 | - Added support for SoD demo | ||
107 | - Fixed SoD on systems with case sensitive filenames | ||
108 | - Added DarkOne's/Adam's multi-textured floors/ceiling (USE_FLOORCEILINGTEX) | ||
109 | - Added parallax sky support (USE_PARALLAX define) | ||
110 | - Introduced level feature flags (USE_FEATUREFLAGS define) | ||
111 | - Added high resolution support (USE_HIRES define) | ||
112 | - Added support for music > 64 kB as supported by WDC | ||
113 | - Added --samplerate and --audiobuffer parameters | ||
114 | - Added support for GP2X (ARM processor, thanks to Pickle) | ||
115 | - Added support for Dreamcast (SH-4 processor, thanks to fackue) | ||
116 | - Added joystick support (up to 32 buttons) | ||
117 | |||
118 | Wolf4SDL v1.3 (released 2008-01-20, revision 113) | ||
119 | - Added parameter for SOD to disable copy protection quiz | ||
120 | - F12 now also grabs the mouse (for keyboards without scrolllock) | ||
121 | - Fixed out of bounds array access in key processing | ||
122 | |||
123 | Wolf4SDL v1.2 (released 2008-01-09, revision 108) | ||
124 | - Fixed fading for 'End Game' | ||
125 | - Corrected fading speed | ||
126 | - Added Spear of Destiny compile support | ||
127 | - Reimplemented palette file (Sorry...) | ||
128 | - Fixed end game crash, when player did not die yet | ||
129 | (Thanks to Agent87 for noticing this bug!) | ||
130 | - Added full size screen feature | ||
131 | - Added project files for Code::Blocks and Dev-C++ | ||
132 | (Thanks to Codetech84!) | ||
133 | - Made it MinGW compatible | ||
134 | - Fixed demo fading issues | ||
135 | - Reformatted many source code files | ||
136 | - Resolved all warnings reported by VC++ 8 and GCC | ||
137 | - Fixed crash when starting the game with no sound >effects< | ||
138 | (Thanks to Agent87 for noticing this bug!) | ||
139 | - Always grab mouse when started in fullscreen | ||
140 | - Map left and right alt, shift and ctrl keys to the same keys | ||
141 | - Fix numpad keys with numlock off | ||
142 | - Fixed a buffer overflow causing a crash | ||
143 | |||
144 | Wolf4SDL v1.1 (released 2007-12-28, revision 70) | ||
145 | - Fixed Pause | ||
146 | - Fixed IN_Ack() | ||
147 | - Added command line parameters for windowed mode and screen resolution | ||
148 | - Reimplemented command line parameters (try --help) | ||
149 | - Improved scaled "Get Psyched" progress bar graphic | ||
150 | - Improved scaled screen borders | ||
151 | - Fixed "Fade in black screen" bug | ||
152 | - Avoid asserts when shutting down with an error | ||
153 | - Use software surfaces to reduce problems with palette on Windows | ||
154 | - Windows: Statically links to MSVCR80.DLL now to avoid missing files | ||
155 | |||
156 | Wolf4SDL v1.0 (released 2007-12-26, revision 53) | ||
157 | - Initial release | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/README-GP2X.txt b/apps/plugins/sdl/progs/wolf3d/README-GP2X.txt new file mode 100644 index 0000000000..41ca30ec36 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/README-GP2X.txt | |||
@@ -0,0 +1,70 @@ | |||
1 | Wolf4SDL by Moritz "Ripper" Kroll (http://www.chaos-software.de.vu) | ||
2 | Original Wolfenstein 3D by id Software (http://www.idsoftware.com) | ||
3 | GP2X support by Pickle | ||
4 | |||
5 | Source and Windows Binary: http://www.stud.uni-karlsruhe.de/~uvaue/chaos/downloads.html | ||
6 | GP2X Binary: http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,20,2479 | ||
7 | |||
8 | SUMMARY: | ||
9 | See main README.txt | ||
10 | |||
11 | |||
12 | GP2X CONTROLS: | ||
13 | Directional: these are mapped to the arrow keys. | ||
14 | A : mapped to space, which opens doors | ||
15 | B : mapped to left shift, which enables running. Also mapped | ||
16 | to key n, for the NO response in the menu. | ||
17 | X : mapped to left control, which enables shooting. | ||
18 | Y : mapped to the number keys, to select weapons. It cycles | ||
19 | through each weapon in order. Also mapped to key y, for | ||
20 | the YES responses in the menu. | ||
21 | ** NOTE: In "enter text" mode each button sends its letter, | ||
22 | for example a=a, y=y | ||
23 | |||
24 | Select: mapped to the escape key | ||
25 | Start: mapped to the enter key | ||
26 | Select+Start: mapped to pause | ||
27 | |||
28 | Shoulder Left: this is mapped in a way to strafe left | ||
29 | Shoulder Right: this is mapped in a way to strafe right | ||
30 | ** NOTE: If you press both the left and right shoulder buttons the statusbar | ||
31 | will be shown in the fullscreen mode described above. | ||
32 | |||
33 | Volume Buttons: raise and lower the volume. | ||
34 | |||
35 | Either Volume Button + Select: show fps | ||
36 | Either Volume Button + Start: take a screenshot | ||
37 | |||
38 | |||
39 | ** NOTE: The directional stick is given precedence over the strafe keys. | ||
40 | For example if you hold the shoulder right to strafe right and you | ||
41 | then move the stick right you will stop strafing and turn. If you | ||
42 | then release the stick you will resume strafing the right. | ||
43 | (I've tested this and it seems to work fairly well) | ||
44 | |||
45 | |||
46 | INSTALL: | ||
47 | Pick your Wolf4SDL binary and copy the files at the root of the zip to any | ||
48 | folder together with the data files of the according game (e.g. *.WL6 for | ||
49 | Wolfenstein 3D or *.SOD for Spear of Destiny). | ||
50 | The binaries do not restart the GP2X menu application. | ||
51 | If you use GMenu2x, select the wrapper option for your icon. | ||
52 | If you use the GPH menu, you will have to create your own script to restart it. | ||
53 | |||
54 | |||
55 | Compiling from source code: | ||
56 | I used the Code::Blocks dev kit. (http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,14,2295) | ||
57 | You can use the template example. Add all of the source files to the project. | ||
58 | Under build options (pick your GP2X compilier) and under "Compilier Settings" | ||
59 | -> "Defines" add GP2X. Just press the build button. | ||
60 | The Makefile should also work for linux type environments, although I have | ||
61 | not tried it this way. If you use it, the GP2X define should be added to the | ||
62 | Makefile using CFLAGS += -DGP2X. | ||
63 | |||
64 | I also added the compiler flags | ||
65 | "-fmerge-all-constants -ffast-math -funswitch-loops" | ||
66 | which give a good performance increase. | ||
67 | For Code::Blocks put this line in "Compiler Settings" - "Other Options". | ||
68 | |||
69 | PERFORMANCE: | ||
70 | The game runs good at 200 Mhz. | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/README-dc.txt b/apps/plugins/sdl/progs/wolf3d/README-dc.txt new file mode 100644 index 0000000000..ebdf44635d --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/README-dc.txt | |||
@@ -0,0 +1,85 @@ | |||
1 | Wolf4SDL\DC 1.7 | ||
2 | ported to Dreamcast by dcbasic | ||
3 | |||
4 | A port of Wolf4SDL by Moritz "Ripper" Kroll. | ||
5 | |||
6 | What's new in 1.7: | ||
7 | - See Changes-dc.txt | ||
8 | |||
9 | Instructions: | ||
10 | - Extract the Wolf4SDL\DC archive to it's own folder. | ||
11 | - Put your *.wl6 files inside /cd/data/wolf3d (if you have a commercial CD-ROM | ||
12 | release of Wolfenstein you can skip this step). | ||
13 | - If you want to use the command line, create a text file called 'args.txt' | ||
14 | (without quotes) in the /cd/data/wolf3d folder and add any valid | ||
15 | arguments. Please keep them on one line. | ||
16 | - Download and install BootDreams (http://dchelp.dcemulation.org/?BootDreams). | ||
17 | - Open the folder you extracted Wolf4SDL\DC to in BootDreams. | ||
18 | - Select a task. If you'd like to burn Wolf4SDL\DC directly to a CD-R, select | ||
19 | the CDRecord task and set the disc format to either Audio\Data or Data\Data | ||
20 | (both do essentially the same thing). | ||
21 | - Click Process. | ||
22 | - If you created a CD image, burn it with the appropriate burning program | ||
23 | e.g. Alcohol 120%. | ||
24 | - Pop the CD-R in your Dreamcast and play. | ||
25 | - If you have a commercial CD-ROM, wait until you're asked to swap in your | ||
26 | copy of Wolfenstein 3D, swap your copy in, press start and play. | ||
27 | |||
28 | Valid Arguments: | ||
29 | --goobers (Wolfenstein 3D only) | ||
30 | --debugkeys (Spear of Destiny only) | ||
31 | --goodtimes (Spear of Destiny only) | ||
32 | --nowait | ||
33 | --baby | ||
34 | --easy | ||
35 | --normal | ||
36 | --hard | ||
37 | --tedlevel <level> | ||
38 | --res <width> <height> (default 320x200) | ||
39 | --resf <width> <height> | ||
40 | --bits <screen_bits> (default 8) | ||
41 | --dblbuf | ||
42 | --extravbls <vbls> | ||
43 | --samplerate <rate> (default 11025) | ||
44 | --audiobuffer <size> (default 4096) | ||
45 | |||
46 | Notes: | ||
47 | - The --res argument will also except '640 400' but will slow rendering down | ||
48 | greatly. The width must be a multiple of 320 and the height must be a | ||
49 | multiple of 200 or 240. | ||
50 | - The --resf argument will force the passed screen resolution but may result | ||
51 | in graphic corruption. | ||
52 | - The default samplerate is 11025 to keep the extra SOD missions from running | ||
53 | out of memory. Wolfenstein 3D and the original SOD mission will happily run | ||
54 | with the samplerate set to 22050. | ||
55 | - The --dblbuf argument works but slows speed down by about 10 frames. | ||
56 | |||
57 | Compiling: | ||
58 | This port was developed under Code::Blocks 8.02 with the DC Dev ISO R4 | ||
59 | integrated within it. I've also included a Makefile in case you don't use | ||
60 | Code::Blocks. You will need SDL and SDL mixer to compile Wolf4SDL\DC. | ||
61 | |||
62 | DC Dev ISO can be downloaded from here: | ||
63 | http://dcemulation.org/?title=DC_Dev_ISO | ||
64 | |||
65 | It contains everything you need to compile Wolf4SDL. It includes Code::Blocks | ||
66 | 8.02 and a tool to integrate Code::Blocks with DC Dev ISO. It uses Cygwin as | ||
67 | the terminal environment and includes the DC compilers and all the SDL | ||
68 | libraries that are needed to compile Wolf4SDL. | ||
69 | |||
70 | To compile Wolf4SDL\DC under Code::Blocks, extract the source to it's own | ||
71 | folder, open 'Wolf4SDL-DC.cbp' and goto 'Build' | 'Build'. | ||
72 | |||
73 | To compile Wolf4SDL\DC using the supplied Makefile, extract the source to it's | ||
74 | own directory in C:\cygwin\usr\local\dc and type 'make -f Makefile.dc' in your | ||
75 | terminal while inside the folder Wolf4SDL\DC was extracted to. By default the | ||
76 | Makefile will create a scrambled 1ST_READ.BIN, unscrambled Wolf4SDL.bin and of | ||
77 | course, Wolf4SDL.elf. | ||
78 | |||
79 | Credits & Thanks: | ||
80 | - OneThiryt8 for which parts of this port was based on his port, sdlWolf | ||
81 | - BlueCrab who wrote parts of the swap disc menu | ||
82 | - BlackAura for which I stole parts of his menu code from nxDoom | ||
83 | - Ripper for such a clean and friendly Wolfenstein 3D engine | ||
84 | - Bero for the Dreamcast port of SDL, which this port uses | ||
85 | - Dan Potter and team for KOS, which this port uses | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/README-devcpp.txt b/apps/plugins/sdl/progs/wolf3d/README-devcpp.txt new file mode 100644 index 0000000000..e013c48c3e --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/README-devcpp.txt | |||
@@ -0,0 +1,43 @@ | |||
1 | This file explains how you can compile Wolf4SDL using Bloodshed's Dev-C++. | ||
2 | Keep in mind, that Dev-C++ is a dead project since 2005. The recommended way | ||
3 | to compile Wolf4SDL on Windows is using Visual Studio 2005 C++ or the free | ||
4 | Visual C++ 2005 Express. But for dial-up users Dev-C++ is probably still a | ||
5 | good option. | ||
6 | |||
7 | Needed files: | ||
8 | - "Dev-C++ 5.0 Beta 9.2 (4.9.9.2)" with Mingw/GCC 3.4.2 (about 9 MB) | ||
9 | http://www.bloodshed.net/dev/devcpp.html | ||
10 | - SDL-1.2.13-1chaos.DevPak (544 kB) | ||
11 | http://www.chaos-software.de.vu -> Downloads | ||
12 | - SDL_mixer-1.2.6-2mol.DevPak (347 kB) | ||
13 | http://sourceforge.net/project/showfiles.php?group_id=94270&package_id=151751 | ||
14 | |||
15 | Installation: | ||
16 | - Install Dev-C++ to C:\Dev-Cpp | ||
17 | - Open Wolf4SDL.dev | ||
18 | - Go to "Tools" -> "Package Manager" | ||
19 | - Click on the "Install" button in the toolbar | ||
20 | - Select "SDL-1.2.13-1chaos.DevPak" (where ever you saved it) | ||
21 | - Some "Next" buttons and a "Finish" button later... | ||
22 | - Click on the "Install" button in the toolbar | ||
23 | - Select "SDL_mixer-1.2.6-2mol.DevPak" (where ever you saved it) | ||
24 | - Some "Next" buttons and a "Finish" button later... | ||
25 | - Close the Package Manager | ||
26 | |||
27 | Data file setup: | ||
28 | - Copy the data files (e.g. *.WL6) you want to use to the Wolf4SDL | ||
29 | source code folder | ||
30 | - If you want to use the data files of the full Activision version of | ||
31 | Wolfenstein 3D v1.4, you can just skip to the next section | ||
32 | - Otherwise open "version.h" and comment/uncomment the definitions | ||
33 | according to the description given in this file | ||
34 | |||
35 | Compiling Wolf4SDL: | ||
36 | - Compile via "Execute" -> "Compile" | ||
37 | - No errors should be displayed | ||
38 | - Run Wolf4SDL via "Execute" -> "Run" | ||
39 | |||
40 | Troubleshooting: | ||
41 | - If you get an error message "undefined reference to `__cpu_features_init'", | ||
42 | make sure, there is no c:\mingw folder. Otherwise Dev-C++ will mix different | ||
43 | versions of MinGW libraries... | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/README.txt b/apps/plugins/sdl/progs/wolf3d/README.txt new file mode 100644 index 0000000000..c6683ec543 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/README.txt | |||
@@ -0,0 +1,224 @@ | |||
1 | Wolf4SDL by Moritz "Ripper" Kroll (http://www.chaos-software.de.vu) | ||
2 | Original Wolfenstein 3D by id Software (http://www.idsoftware.com) | ||
3 | ============================================================================= | ||
4 | |||
5 | Wolf4SDL is an open-source port of id Software's classic first-person shooter | ||
6 | Wolfenstein 3D to the cross-plattform multimedia library "Simple DirectMedia | ||
7 | Layer (SDL)" (http://www.libsdl.org). It is meant to keep the original feel | ||
8 | while taking advantage of some improvements mentioned in the list below. | ||
9 | |||
10 | |||
11 | Main features: | ||
12 | -------------- | ||
13 | |||
14 | - Cross-plattform: | ||
15 | Supported operating systems are at least: | ||
16 | - Windows 98, Windows ME, Windows 2000, Windows XP, Windows Vista | ||
17 | (32 and 64 bit), Windows 7 (32 and 64 bit) | ||
18 | - Linux | ||
19 | - BSD variants | ||
20 | - Mac OS X (x86) | ||
21 | - KallistiOS (used for Dreamcast) | ||
22 | Only little endian platforms like x86, ARM and SH-4 are supported, yet. | ||
23 | |||
24 | - AdLib sounds and music: | ||
25 | This port includes the OPL2 emulator from MAME, so you can not only | ||
26 | hear the AdLib sounds but also music without any AdLib-compatible | ||
27 | soundcard in near to perfect quality! | ||
28 | |||
29 | - Multichannel digitized sounds: | ||
30 | Digitized sounds play on 8 channels! So in a fire fight you will | ||
31 | always hear, when a guard opens the door behind you ;) | ||
32 | |||
33 | - Higher screen resolutions: | ||
34 | Aside from the original 320x200 resolution, Wolf4SDL currently | ||
35 | supports any resolutions being multiples of 320x200 or 320x240, | ||
36 | the default being 640x400. | ||
37 | Unlike some other ports, Wolf4SDL does NOT apply any bilinear | ||
38 | or similar filtering, so the graphics are NOT blurred but | ||
39 | pixelated just as we love it. | ||
40 | |||
41 | - Fully playable with only a game controller: | ||
42 | Wolf4SDL can be played completely without a keyboard. At least two | ||
43 | buttons are required (shoot/YES and open door/NO), but five or more | ||
44 | are recommended (run, strafe, ESC). | ||
45 | |||
46 | Additional features: | ||
47 | -------------------- | ||
48 | |||
49 | - Two additional view sizes: | ||
50 | Wolf4SDL supports one view size using the full width of the screen | ||
51 | and showing the status bar, like in Mac-enstein, and one view size | ||
52 | filling the whole screen (press TAB to see the status bar). | ||
53 | |||
54 | - (Nearly) unlimited sound and song lengths: | ||
55 | Mod developers are not restricted to 64kB for digitized sounds and | ||
56 | IMF songs anymore, so longer songs and digitized sounds with better | ||
57 | quality are possible. | ||
58 | |||
59 | - Resuming ingame music: | ||
60 | When you come back to the game from the menu or load a save game, the | ||
61 | music will be resumed where it was suspended rather than started from | ||
62 | the beginning. | ||
63 | |||
64 | - Freely movable pushwalls: | ||
65 | Moving pushwalls can be viewed from all sides, allowing mod developers | ||
66 | to place them with fewer restrictions. The player can also follow the | ||
67 | pushwall directly instead of having to wait until the pushwall has left | ||
68 | a whole tile. | ||
69 | |||
70 | - Optional integrated features for mod developers: | ||
71 | Wolf4SDL already contains the shading, directional 3D sprites, | ||
72 | floor and ceiling textures, high resolution textures/sprites, | ||
73 | parallax sky, cloud sky and outside atmosphere features, which | ||
74 | can be easily activated in version.h. | ||
75 | |||
76 | |||
77 | The following versions of Wolfenstein 3D data files are currently supported | ||
78 | by the source code (choose the version by commenting/uncommenting lines in | ||
79 | version.h as described in that file): | ||
80 | |||
81 | - Wolfenstein 3D v1.1 full Apogee | ||
82 | - Wolfenstein 3D v1.4 full Apogee (not tested) | ||
83 | - Wolfenstein 3D v1.4 full GT/ID/Activision | ||
84 | - Wolfenstein 3D v1.0 shareware Apogee | ||
85 | - Wolfenstein 3D v1.1 shareware Apogee | ||
86 | - Wolfenstein 3D v1.2 shareware Apogee | ||
87 | - Wolfenstein 3D v1.4 shareware | ||
88 | - Spear of Destiny full | ||
89 | - Spear of Destiny demo | ||
90 | - Spear of Destiny - Mission 2: Return to Danger (not tested) | ||
91 | - Spear of Destiny - Mission 3: Ultimate Challenge (not tested) | ||
92 | |||
93 | |||
94 | How to play: | ||
95 | ------------ | ||
96 | |||
97 | To play Wolfenstein 3D with Wolf4SDL, you just have to copy the original data | ||
98 | files (e.g. *.WL6) into the same directory as the Wolf4SDL executable. | ||
99 | Please make sure, that you use the correct version of the executable with the | ||
100 | according data files version as the differences are hardcoded into the binary! | ||
101 | |||
102 | On Windows SDL.dll and SDL_mixer.dll must also be copied into this directory. | ||
103 | They are also available at http://www.chaos-software.de.vu | ||
104 | |||
105 | If you play in windowed mode (--windowed parameter), press SCROLLLOCK or F12 | ||
106 | to grab the mouse. Press it again to release the mouse. | ||
107 | |||
108 | |||
109 | Usage: | ||
110 | ------ | ||
111 | |||
112 | Wolf4SDL supports the following command line options: | ||
113 | --help This help page | ||
114 | --tedlevel <level> Starts the game in the given level | ||
115 | --baby Sets the difficulty to baby for tedlevel | ||
116 | --easy Sets the difficulty to easy for tedlevel | ||
117 | --normal Sets the difficulty to normal for tedlevel | ||
118 | --hard Sets the difficulty to hard for tedlevel | ||
119 | --nowait Skips intro screens | ||
120 | --windowed[-mouse] Starts the game in a window [and grabs mouse] | ||
121 | --res <width> <height> Sets the screen resolution | ||
122 | (must be multiple of 320x200 or 320x240) | ||
123 | --resf <w> <h> Sets any screen resolution >= 320x200 | ||
124 | (which may result in graphic errors) | ||
125 | --bits <b> Sets the screen color depth | ||
126 | (Use this when you have palette/fading problem | ||
127 | or perhaps to optimize speed on old systems. | ||
128 | Allowed: 8, 16, 24, 32, default: "best" depth) | ||
129 | --nodblbuf Don't use SDL's double buffering | ||
130 | --extravbls <vbls> Sets a delay after each frame, which may help to | ||
131 | reduce flickering (SDL does not support vsync...) | ||
132 | (unit is currently 8 ms, default: 0) | ||
133 | --joystick <index> Use the index-th joystick if available | ||
134 | --joystickhat <index> Enables movement with the given coolie hat | ||
135 | --samplerate <rate> Sets the sound sample rate (given in Hz) | ||
136 | --audiobuffer <size> Sets the size of the audio buffer (-> sound latency) | ||
137 | (given in bytes) | ||
138 | --ignorenumchunks Ignores the number of chunks in VGAHEAD.* | ||
139 | (may be useful for some broken mods) | ||
140 | --configdir <dir> Directory where config file and save games are stored | ||
141 | (Windows default: current directory, | ||
142 | others: $HOME/.wolf4sdl) | ||
143 | |||
144 | For Spear of Destiny the following additional options are available: | ||
145 | --mission <mission> Mission number to play (1-3) | ||
146 | --goodtimes Disable copy protection quiz | ||
147 | |||
148 | |||
149 | Compiling from source code: | ||
150 | --------------------------- | ||
151 | |||
152 | The current version of the source code is available in the svn repository at: | ||
153 | svn://tron.homeunix.org:3690/wolf3d/trunk | ||
154 | |||
155 | The following ways of compiling the source code are supported: | ||
156 | - Makefile (for Linux, BSD variants and MinGW/MSYS) | ||
157 | - Visual C++ 2008 (Wolf4SDL.VC9.sln and Wolf4SDL.VC9.vcproj) | ||
158 | - Visual C++ 2005 (Wolf4SDL.sln and Wolf4SDL.vcproj) | ||
159 | - Visual C++ 6 (Wolf4SDL.dsw and Wolf4SDL.dsp) | ||
160 | - Code::Blocks 8.02 (Wolf4SDL.cbp) | ||
161 | - Dev-C++ 5.0 Beta 9.2 (4.9.9.2) (Wolf4SDL.dev) (see README-devcpp.txt) | ||
162 | - Xcode (for Mac OS X, macosx/Wolf4SDL.xcodeproj/project.pbxproj) | ||
163 | - Special compiling for Dreamcast (see README-dc.txt) | ||
164 | - Special compiling for GP2X (see README-GP2X.txt) | ||
165 | |||
166 | To compile the source code you need the development libraries of | ||
167 | - SDL (http://www.libsdl.org/download-1.2.php) and | ||
168 | - SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/) | ||
169 | and have to adjust the include and library paths in the projects accordingly. | ||
170 | |||
171 | Please note, that there is no official SDL_mixer development pack for MinGW, | ||
172 | yet, but you can get the needed files from a Dev-C++ package here: | ||
173 | http://sourceforge.net/project/showfiles.php?group_id=94270&package_id=151751 | ||
174 | Just rename the file extension from ".devpack" to ".tar.bz2" and unpack it | ||
175 | with for example WinRAR. Then add the directories include/SDL and lib to the | ||
176 | according search paths in your project. | ||
177 | |||
178 | IMPORTANT: Do not forget to take care of version.h! | ||
179 | By default it compiles for "Wolfenstein 3D v1.4 full GT/ID/Activision"! | ||
180 | |||
181 | |||
182 | TODOs: | ||
183 | ------ | ||
184 | |||
185 | - Add PC speaker emulation | ||
186 | - Center non-ingame screens for resolutions being a multiple of 320x240 | ||
187 | - Add support for any graphic resolution >= 320x200 | ||
188 | |||
189 | |||
190 | Known bugs: | ||
191 | ----------- | ||
192 | |||
193 | - None! ;D | ||
194 | |||
195 | |||
196 | Troubleshooting: | ||
197 | ---------------- | ||
198 | |||
199 | - If your frame rate is low, consider using the original screen resolution | ||
200 | (--res 320 200) or lowering the sound quality (--samplerate 22050) | ||
201 | |||
202 | |||
203 | Credits: | ||
204 | -------- | ||
205 | |||
206 | - Special thanks to id Software! Without the source code we would still have | ||
207 | to pelt Wolfenstein 3D with hex editors and disassemblers ;D | ||
208 | - Special thanks to the MAME developer team for providing the source code | ||
209 | of the OPL2 emulator! | ||
210 | - Many thanks to "Der Tron" for hosting the svn repository, making Wolf4SDL | ||
211 | FreeBSD compatible, testing, bugfixing and cleaning up the code! | ||
212 | - Thanks to Chris for his improvements on Wolf4GW, on which Wolf4SDL bases. | ||
213 | - Thanks to Pickle for the GP2X support and help on 320x240 support | ||
214 | - Thanks to fackue for the Dreamcast support | ||
215 | - Thanks to Chris Ballinger for the Mac OS X support | ||
216 | - Thanks to Xilinx, Inc. for providing a list of maximum-length LFSR counters | ||
217 | used for higher resolutions of fizzle fade | ||
218 | |||
219 | |||
220 | Licenses: | ||
221 | --------- | ||
222 | |||
223 | - The original source code of Wolfenstein 3D: license-id.txt | ||
224 | - The OPL2 emulator (fmopl.cpp): license-mame.txt | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/audiosod.h b/apps/plugins/sdl/progs/wolf3d/audiosod.h new file mode 100644 index 0000000000..1798ed4061 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/audiosod.h | |||
@@ -0,0 +1,142 @@ | |||
1 | ///////////////////////////////////////////////// | ||
2 | // | ||
3 | // MUSE Header for .SOD | ||
4 | // Created Thu Aug 13 09:25:58 1992 | ||
5 | // | ||
6 | ///////////////////////////////////////////////// | ||
7 | |||
8 | #define NUMSOUNDS 81 | ||
9 | #define NUMSNDCHUNKS 267 | ||
10 | |||
11 | // | ||
12 | // Sound names & indexes | ||
13 | // | ||
14 | typedef enum { | ||
15 | HITWALLSND, // 0 | ||
16 | MISSILEHITSND, // 1 | ||
17 | SELECTITEMSND, // 2 | ||
18 | GHOSTSIGHTSND, // 3 | ||
19 | MOVEGUN2SND, // 4 | ||
20 | MOVEGUN1SND, // 5 | ||
21 | NOWAYSND, // 6 | ||
22 | NAZIHITPLAYERSND, // 7 | ||
23 | MISSILEFIRESND, // 8 | ||
24 | PLAYERDEATHSND, // 9 | ||
25 | DOGDEATHSND, // 10 | ||
26 | ATKGATLINGSND, // 11 | ||
27 | GETKEYSND, // 12 | ||
28 | NOITEMSND, // 13 | ||
29 | WALK1SND, // 14 | ||
30 | WALK2SND, // 15 | ||
31 | TAKEDAMAGESND, // 16 | ||
32 | GAMEOVERSND, // 17 | ||
33 | OPENDOORSND, // 18 | ||
34 | CLOSEDOORSND, // 19 | ||
35 | DONOTHINGSND, // 20 | ||
36 | HALTSND, // 21 | ||
37 | DEATHSCREAM2SND, // 22 | ||
38 | ATKKNIFESND, // 23 | ||
39 | ATKPISTOLSND, // 24 | ||
40 | DEATHSCREAM3SND, // 25 | ||
41 | ATKMACHINEGUNSND, // 26 | ||
42 | HITENEMYSND, // 27 | ||
43 | SHOOTDOORSND, // 28 | ||
44 | DEATHSCREAM1SND, // 29 | ||
45 | GETMACHINESND, // 30 | ||
46 | GETAMMOSND, // 31 | ||
47 | SHOOTSND, // 32 | ||
48 | HEALTH1SND, // 33 | ||
49 | HEALTH2SND, // 34 | ||
50 | BONUS1SND, // 35 | ||
51 | BONUS2SND, // 36 | ||
52 | BONUS3SND, // 37 | ||
53 | GETGATLINGSND, // 38 | ||
54 | ESCPRESSEDSND, // 39 | ||
55 | LEVELDONESND, // 40 | ||
56 | DOGBARKSND, // 41 | ||
57 | ENDBONUS1SND, // 42 | ||
58 | ENDBONUS2SND, // 43 | ||
59 | BONUS1UPSND, // 44 | ||
60 | BONUS4SND, // 45 | ||
61 | PUSHWALLSND, // 46 | ||
62 | NOBONUSSND, // 47 | ||
63 | PERCENT100SND, // 48 | ||
64 | BOSSACTIVESND, // 49 | ||
65 | DEATHSCREAM4SND, // 50 | ||
66 | SCHUTZADSND, // 51 | ||
67 | AHHHGSND, // 52 | ||
68 | DEATHSCREAM5SND, // 53 | ||
69 | DEATHSCREAM7SND, // 54 | ||
70 | DEATHSCREAM8SND, // 55 | ||
71 | LEBENSND, // 56 | ||
72 | DEATHSCREAM6SND, // 57 | ||
73 | NAZIFIRESND, // 58 | ||
74 | BOSSFIRESND, // 59 | ||
75 | SSFIRESND, // 60 | ||
76 | SLURPIESND, // 61 | ||
77 | GHOSTFADESND, // 62 | ||
78 | DEATHSCREAM9SND, // 63 | ||
79 | GETAMMOBOXSND, // 64 | ||
80 | ANGELSIGHTSND, // 65 | ||
81 | SPIONSND, // 66 | ||
82 | NEINSOVASSND, // 67 | ||
83 | DOGATTACKSND, // 68 | ||
84 | ANGELFIRESND, // 69 | ||
85 | TRANSSIGHTSND, // 70 | ||
86 | TRANSDEATHSND, // 71 | ||
87 | WILHELMSIGHTSND, // 72 | ||
88 | WILHELMDEATHSND, // 73 | ||
89 | UBERDEATHSND, // 74 | ||
90 | KNIGHTSIGHTSND, // 75 | ||
91 | KNIGHTDEATHSND, // 76 | ||
92 | ANGELDEATHSND, // 77 | ||
93 | KNIGHTMISSILESND, // 78 | ||
94 | GETSPEARSND, // 79 | ||
95 | ANGELTIREDSND, // 80 | ||
96 | LASTSOUND | ||
97 | } soundnames; | ||
98 | |||
99 | // | ||
100 | // Base offsets | ||
101 | // | ||
102 | #define STARTPCSOUNDS 0 | ||
103 | #define STARTADLIBSOUNDS 81 | ||
104 | #define STARTDIGISOUNDS 162 | ||
105 | #define STARTMUSIC 243 | ||
106 | |||
107 | // | ||
108 | // Music names & indexes | ||
109 | // | ||
110 | typedef enum { | ||
111 | XFUNKIE_MUS, // 0 | ||
112 | DUNGEON_MUS, // 1 | ||
113 | XDEATH_MUS, // 2 | ||
114 | GETTHEM_MUS, // 3 | ||
115 | XTIPTOE_MUS, // 4 | ||
116 | GOINGAFT_MUS, // 5 | ||
117 | URAHERO_MUS, // 6 | ||
118 | XTHEEND_MUS, // 7 | ||
119 | NAZI_OMI_MUS, // 8 | ||
120 | POW_MUS, // 9 | ||
121 | TWELFTH_MUS, // 10 | ||
122 | SEARCHN_MUS, // 11 | ||
123 | SUSPENSE_MUS, // 12 | ||
124 | ZEROHOUR_MUS, // 13 | ||
125 | WONDERIN_MUS, // 14 | ||
126 | ULTIMATE_MUS, // 15 | ||
127 | ENDLEVEL_MUS, // 16 | ||
128 | XEVIL_MUS, // 17 | ||
129 | XJAZNAZI_MUS, // 18 | ||
130 | COPYPRO_MUS, // 19 | ||
131 | XAWARD_MUS, // 20 | ||
132 | XPUTIT_MUS, // 21 | ||
133 | XGETYOU_MUS, // 22 | ||
134 | XTOWER2_MUS, // 23 | ||
135 | LASTMUSIC | ||
136 | } musicnames; | ||
137 | |||
138 | ///////////////////////////////////////////////// | ||
139 | // | ||
140 | // Thanks for playing with MUSE! | ||
141 | // | ||
142 | ///////////////////////////////////////////////// | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/audiowl6.h b/apps/plugins/sdl/progs/wolf3d/audiowl6.h new file mode 100644 index 0000000000..a29248dac6 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/audiowl6.h | |||
@@ -0,0 +1,153 @@ | |||
1 | ///////////////////////////////////////////////// | ||
2 | // | ||
3 | // MUSE Header for .WL6 | ||
4 | // Created Tue Jul 14 15:04:53 1992 | ||
5 | // | ||
6 | ///////////////////////////////////////////////// | ||
7 | |||
8 | // | ||
9 | // Sound names & indexes | ||
10 | // | ||
11 | typedef enum { | ||
12 | HITWALLSND, // 0 | ||
13 | SELECTWPNSND, // 1 | ||
14 | SELECTITEMSND, // 2 | ||
15 | HEARTBEATSND, // 3 | ||
16 | MOVEGUN2SND, // 4 | ||
17 | MOVEGUN1SND, // 5 | ||
18 | NOWAYSND, // 6 | ||
19 | NAZIHITPLAYERSND, // 7 | ||
20 | SCHABBSTHROWSND, // 8 | ||
21 | PLAYERDEATHSND, // 9 | ||
22 | DOGDEATHSND, // 10 | ||
23 | ATKGATLINGSND, // 11 | ||
24 | GETKEYSND, // 12 | ||
25 | NOITEMSND, // 13 | ||
26 | WALK1SND, // 14 | ||
27 | WALK2SND, // 15 | ||
28 | TAKEDAMAGESND, // 16 | ||
29 | GAMEOVERSND, // 17 | ||
30 | OPENDOORSND, // 18 | ||
31 | CLOSEDOORSND, // 19 | ||
32 | DONOTHINGSND, // 20 | ||
33 | HALTSND, // 21 | ||
34 | DEATHSCREAM2SND, // 22 | ||
35 | ATKKNIFESND, // 23 | ||
36 | ATKPISTOLSND, // 24 | ||
37 | DEATHSCREAM3SND, // 25 | ||
38 | ATKMACHINEGUNSND, // 26 | ||
39 | HITENEMYSND, // 27 | ||
40 | SHOOTDOORSND, // 28 | ||
41 | DEATHSCREAM1SND, // 29 | ||
42 | GETMACHINESND, // 30 | ||
43 | GETAMMOSND, // 31 | ||
44 | SHOOTSND, // 32 | ||
45 | HEALTH1SND, // 33 | ||
46 | HEALTH2SND, // 34 | ||
47 | BONUS1SND, // 35 | ||
48 | BONUS2SND, // 36 | ||
49 | BONUS3SND, // 37 | ||
50 | GETGATLINGSND, // 38 | ||
51 | ESCPRESSEDSND, // 39 | ||
52 | LEVELDONESND, // 40 | ||
53 | DOGBARKSND, // 41 | ||
54 | ENDBONUS1SND, // 42 | ||
55 | ENDBONUS2SND, // 43 | ||
56 | BONUS1UPSND, // 44 | ||
57 | BONUS4SND, // 45 | ||
58 | PUSHWALLSND, // 46 | ||
59 | NOBONUSSND, // 47 | ||
60 | PERCENT100SND, // 48 | ||
61 | BOSSACTIVESND, // 49 | ||
62 | MUTTISND, // 50 | ||
63 | SCHUTZADSND, // 51 | ||
64 | AHHHGSND, // 52 | ||
65 | DIESND, // 53 | ||
66 | EVASND, // 54 | ||
67 | GUTENTAGSND, // 55 | ||
68 | LEBENSND, // 56 | ||
69 | SCHEISTSND, // 57 | ||
70 | NAZIFIRESND, // 58 | ||
71 | BOSSFIRESND, // 59 | ||
72 | SSFIRESND, // 60 | ||
73 | SLURPIESND, // 61 | ||
74 | TOT_HUNDSND, // 62 | ||
75 | MEINGOTTSND, // 63 | ||
76 | SCHABBSHASND, // 64 | ||
77 | HITLERHASND, // 65 | ||
78 | SPIONSND, // 66 | ||
79 | NEINSOVASSND, // 67 | ||
80 | DOGATTACKSND, // 68 | ||
81 | FLAMETHROWERSND, // 69 | ||
82 | MECHSTEPSND, // 70 | ||
83 | GOOBSSND, // 71 | ||
84 | YEAHSND, // 72 | ||
85 | #ifndef APOGEE_1_0 | ||
86 | DEATHSCREAM4SND, // 73 | ||
87 | DEATHSCREAM5SND, // 74 | ||
88 | DEATHSCREAM6SND, // 75 | ||
89 | DEATHSCREAM7SND, // 76 | ||
90 | DEATHSCREAM8SND, // 77 | ||
91 | DEATHSCREAM9SND, // 78 | ||
92 | DONNERSND, // 79 | ||
93 | EINESND, // 80 | ||
94 | ERLAUBENSND, // 81 | ||
95 | KEINSND, // 82 | ||
96 | MEINSND, // 83 | ||
97 | ROSESND, // 84 | ||
98 | MISSILEFIRESND, // 85 | ||
99 | MISSILEHITSND, // 86 | ||
100 | #endif | ||
101 | LASTSOUND | ||
102 | } soundnames; | ||
103 | |||
104 | // | ||
105 | // Base offsets | ||
106 | // | ||
107 | #define STARTPCSOUNDS 0 | ||
108 | #define STARTADLIBSOUNDS LASTSOUND | ||
109 | #define STARTDIGISOUNDS (2*LASTSOUND) | ||
110 | #define STARTMUSIC (3*LASTSOUND) | ||
111 | |||
112 | // | ||
113 | // Music names & indexes | ||
114 | // | ||
115 | typedef enum { | ||
116 | CORNER_MUS, // 0 | ||
117 | DUNGEON_MUS, // 1 | ||
118 | WARMARCH_MUS, // 2 | ||
119 | GETTHEM_MUS, // 3 | ||
120 | HEADACHE_MUS, // 4 | ||
121 | HITLWLTZ_MUS, // 5 | ||
122 | INTROCW3_MUS, // 6 | ||
123 | NAZI_NOR_MUS, // 7 | ||
124 | NAZI_OMI_MUS, // 8 | ||
125 | POW_MUS, // 9 | ||
126 | SALUTE_MUS, // 10 | ||
127 | SEARCHN_MUS, // 11 | ||
128 | SUSPENSE_MUS, // 12 | ||
129 | VICTORS_MUS, // 13 | ||
130 | WONDERIN_MUS, // 14 | ||
131 | FUNKYOU_MUS, // 15 | ||
132 | ENDLEVEL_MUS, // 16 | ||
133 | GOINGAFT_MUS, // 17 | ||
134 | PREGNANT_MUS, // 18 | ||
135 | ULTIMATE_MUS, // 19 | ||
136 | NAZI_RAP_MUS, // 20 | ||
137 | ZEROHOUR_MUS, // 21 | ||
138 | TWELFTH_MUS, // 22 | ||
139 | ROSTER_MUS, // 23 | ||
140 | URAHERO_MUS, // 24 | ||
141 | VICMARCH_MUS, // 25 | ||
142 | PACMAN_MUS, // 26 | ||
143 | LASTMUSIC | ||
144 | } musicnames; | ||
145 | |||
146 | #define NUMSOUNDS LASTSOUND | ||
147 | #define NUMSNDCHUNKS (STARTMUSIC + LASTMUSIC) | ||
148 | |||
149 | ///////////////////////////////////////////////// | ||
150 | // | ||
151 | // Thanks for playing with MUSE! | ||
152 | // | ||
153 | ///////////////////////////////////////////////// | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/f_spear.h b/apps/plugins/sdl/progs/wolf3d/f_spear.h new file mode 100644 index 0000000000..8043d605fb --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/f_spear.h | |||
@@ -0,0 +1,76 @@ | |||
1 | #define STR_ENDGAME1 "We owe you a great debt, Mr. Blazkowicz." | ||
2 | #define STR_ENDGAME2 "You have served your country well." | ||
3 | #define STR_ENDGAME3 "With the spear gone, the Allies will finally" | ||
4 | #define STR_ENDGAME4 "by able to destroy Hitler..." | ||
5 | |||
6 | #define STR_COPY1 "That's close, but not close enough to get" | ||
7 | #define STR_COPY2 "you into the game." | ||
8 | |||
9 | #define STR_COPY3 "Wow, you must have the early version of the" | ||
10 | #define STR_COPY4 "manual with the totally false information in it." | ||
11 | |||
12 | #define STR_COPY5 "I would let you into the game, but seeing" | ||
13 | #define STR_COPY6 "as that was not at all the right answer..." | ||
14 | |||
15 | #define STR_COPY7 "It's just too bad we can't get together on" | ||
16 | #define STR_COPY8 "this one. Sorry." | ||
17 | |||
18 | #define STR_COPY9 "Hey, you're just SO off base!" | ||
19 | |||
20 | #define STR_COPY10 "You know, I once typed that myself when" | ||
21 | #define STR_COPY11 "I was your age." | ||
22 | |||
23 | #define STR_COPY12 "Nops. Zero points. Zugga." | ||
24 | |||
25 | #define STR_COPY13 "Yeah...right." | ||
26 | |||
27 | #define STR_COPY14 "You must like these quizzes." | ||
28 | |||
29 | #define STR_COPY15 "Could be called \"PixelMeister\"?" | ||
30 | |||
31 | #define STR_COPY16 "Might engineer some software?" | ||
32 | |||
33 | #define STR_COPY17 "Would be found" | ||
34 | #define STR_COPY18 "directing creatively?" | ||
35 | |||
36 | #define STR_COPY19 "Might be found" | ||
37 | #define STR_COPY20 "handling operations?" | ||
38 | |||
39 | #define STR_COPY21 "Has a name familiar" | ||
40 | #define STR_COPY22 "to your weatherman?" | ||
41 | |||
42 | #define STR_NOPE1 "Welcome to the DOS prompt, pirate!" | ||
43 | #define STR_NOPE2 "Eat hot DOS prompt, goober!" | ||
44 | #define STR_NOPE3 "Ya know, this program doesn't cost that much." | ||
45 | #define STR_NOPE4 "Hey...weren't you just AT this DOS prompt?" | ||
46 | #define STR_NOPE5 "What's a nice user like you doin' at a DOS prompt like this?" | ||
47 | #define STR_NOPE6 "Well, I'm sure you just \"misplaced\" the manual..." | ||
48 | #define STR_NOPE7 "Run me again when you've boned up on your manual a bit." | ||
49 | #define STR_NOPE8 "Nice try, but no Spear." | ||
50 | #define STR_NOPE9 "That information is in the Spear of Destiny manual, by the way." | ||
51 | |||
52 | #define STR_MISC1 "Under \"Killing the Enemy\", what" | ||
53 | #define STR_MISC2 "type of enemy is pictured?" | ||
54 | |||
55 | #define STR_MISC3 "How many eyelets are on B.J.'s" | ||
56 | #define STR_MISC4 "boots? (see page 2)" | ||
57 | |||
58 | #define STR_MISC5 "The word \"minister\" appears in" | ||
59 | #define STR_MISC6 "what gray shape on page 2?" | ||
60 | |||
61 | #define STR_MISC7 "How many bullets does B.J. have" | ||
62 | #define STR_MISC8 "on the screen-shot in the middle" | ||
63 | #define STR_MISC9 "of page 9?" | ||
64 | |||
65 | #define STR_STAR "star" | ||
66 | #define STR_DEBRIEF " DEBRIEFING\n SESSION\n" | ||
67 | #define STR_ENEMY1 "Name the member of the" | ||
68 | #define STR_ENEMY2 "enemy forces shown above" | ||
69 | |||
70 | #define STR_CHECKMAN "CHECK YER MANUAL!" | ||
71 | #define STR_MAN1 "Which manual page" | ||
72 | #define STR_MAN2 "is the Options Menu" | ||
73 | #define STR_MAN3 "function" | ||
74 | #define STR_MAN4 "on?" | ||
75 | |||
76 | #define STR_ID1 "Which member of Id Software:" | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/fmopl.h b/apps/plugins/sdl/progs/wolf3d/fmopl.h new file mode 100644 index 0000000000..f6a9c13590 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/fmopl.h | |||
@@ -0,0 +1,4 @@ | |||
1 | #define USE_GPL 1 | ||
2 | #if USE_GPL | ||
3 | #include "fmopl_gpl.h" | ||
4 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/fmopl_gpl.c b/apps/plugins/sdl/progs/wolf3d/fmopl_gpl.c new file mode 100644 index 0000000000..41178d6bd9 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/fmopl_gpl.c | |||
@@ -0,0 +1,2565 @@ | |||
1 | /* | ||
2 | * Rockbox notes: | ||
3 | * | ||
4 | * This file is originally from the MAME project, from after their | ||
5 | * GPLv2 relicense. I (Franklin Wei) have made some modifications | ||
6 | * since then to make it work with the Wolf4SDL source. Notably, I | ||
7 | * corrected the behavior of YM3812Write() to write directly to the | ||
8 | * registers. Additionally, I fixed an unaligned write in OPL_CALC_CH | ||
9 | * which caused terrible output on ARM. | ||
10 | */ | ||
11 | |||
12 | // license:GPL-2.0+ | ||
13 | // copyright-holders:Jarek Burczynski,Tatsuyuki Satoh | ||
14 | /* | ||
15 | ** | ||
16 | ** File: fmopl.c - software implementation of FM sound generator | ||
17 | ** types OPL and OPL2 | ||
18 | ** | ||
19 | ** Copyright Jarek Burczynski (bujar at mame dot net) | ||
20 | ** Copyright Tatsuyuki Satoh , MultiArcadeMachineEmulator development | ||
21 | ** | ||
22 | ** Version 0.72 | ||
23 | ** | ||
24 | |||
25 | Revision History: | ||
26 | |||
27 | 04-08-2003 Jarek Burczynski: | ||
28 | - removed BFRDY hack. BFRDY is busy flag, and it should be 0 only when the chip | ||
29 | handles memory read/write or during the adpcm synthesis when the chip | ||
30 | requests another byte of ADPCM data. | ||
31 | |||
32 | 24-07-2003 Jarek Burczynski: | ||
33 | - added a small hack for Y8950 status BFRDY flag (bit 3 should be set after | ||
34 | some (unknown) delay). Right now it's always set. | ||
35 | |||
36 | 14-06-2003 Jarek Burczynski: | ||
37 | - implemented all of the status register flags in Y8950 emulation | ||
38 | - renamed y8950_set_delta_t_memory() parameters from _rom_ to _mem_ since | ||
39 | they can be either RAM or ROM | ||
40 | |||
41 | 08-10-2002 Jarek Burczynski (thanks to Dox for the YM3526 chip) | ||
42 | - corrected ym3526_read() to always set bit 2 and bit 1 | ||
43 | to HIGH state - identical to ym3812_read (verified on real YM3526) | ||
44 | |||
45 | 04-28-2002 Jarek Burczynski: | ||
46 | - binary exact Envelope Generator (verified on real YM3812); | ||
47 | compared to YM2151: the EG clock is equal to internal_clock, | ||
48 | rates are 2 times slower and volume resolution is one bit less | ||
49 | - modified interface functions (they no longer return pointer - | ||
50 | that's internal to the emulator now): | ||
51 | - new wrapper functions for OPLCreate: ym3526_init(), ym3812_init() and y8950_init() | ||
52 | - corrected 'off by one' error in feedback calculations (when feedback is off) | ||
53 | - enabled waveform usage (credit goes to Vlad Romascanu and zazzal22) | ||
54 | - speeded up noise generator calculations (Nicola Salmoria) | ||
55 | |||
56 | 03-24-2002 Jarek Burczynski (thanks to Dox for the YM3812 chip) | ||
57 | Complete rewrite (all verified on real YM3812): | ||
58 | - corrected sin_tab and tl_tab data | ||
59 | - corrected operator output calculations | ||
60 | - corrected waveform_select_enable register; | ||
61 | simply: ignore all writes to waveform_select register when | ||
62 | waveform_select_enable == 0 and do not change the waveform previously selected. | ||
63 | - corrected KSR handling | ||
64 | - corrected Envelope Generator: attack shape, Sustain mode and | ||
65 | Percussive/Non-percussive modes handling | ||
66 | - Envelope Generator rates are two times slower now | ||
67 | - LFO amplitude (tremolo) and phase modulation (vibrato) | ||
68 | - rhythm sounds phase generation | ||
69 | - white noise generator (big thanks to Olivier Galibert for mentioning Berlekamp-Massey algorithm) | ||
70 | - corrected key on/off handling (the 'key' signal is ORed from three sources: FM, rhythm and CSM) | ||
71 | - funky details (like ignoring output of operator 1 in BD rhythm sound when connect == 1) | ||
72 | |||
73 | 12-28-2001 Acho A. Tang | ||
74 | - reflected Delta-T EOS status on Y8950 status port. | ||
75 | - fixed subscription range of attack/decay tables | ||
76 | |||
77 | |||
78 | To do: | ||
79 | add delay before key off in CSM mode (see CSMKeyControll) | ||
80 | verify volume of the FM part on the Y8950 | ||
81 | */ | ||
82 | |||
83 | #include "fmopl.h" | ||
84 | |||
85 | |||
86 | |||
87 | /* output final shift */ | ||
88 | #if (OPL_SAMPLE_BITS==16) | ||
89 | #define FINAL_SH (0) | ||
90 | #define MAXOUT (+32767) | ||
91 | #define MINOUT (-32768) | ||
92 | #else | ||
93 | #define FINAL_SH (8) | ||
94 | #define MAXOUT (+127) | ||
95 | #define MINOUT (-128) | ||
96 | #endif | ||
97 | |||
98 | |||
99 | #define FREQ_SH 16 /* 16.16 fixed point (frequency calculations) */ | ||
100 | #define EG_SH 16 /* 16.16 fixed point (EG timing) */ | ||
101 | #define LFO_SH 24 /* 8.24 fixed point (LFO calculations) */ | ||
102 | #define TIMER_SH 16 /* 16.16 fixed point (timers calculations) */ | ||
103 | |||
104 | #define FREQ_MASK ((1<<FREQ_SH)-1) | ||
105 | |||
106 | /* envelope output entries */ | ||
107 | #define ENV_BITS 10 | ||
108 | #define ENV_LEN (1<<ENV_BITS) | ||
109 | #define ENV_STEP (128.0/ENV_LEN) | ||
110 | |||
111 | #define MAX_ATT_INDEX ((1<<(ENV_BITS-1))-1) /*511*/ | ||
112 | #define MIN_ATT_INDEX (0) | ||
113 | |||
114 | /* sinwave entries */ | ||
115 | #define SIN_BITS 10 | ||
116 | #define SIN_LEN (1<<SIN_BITS) | ||
117 | #define SIN_MASK (SIN_LEN-1) | ||
118 | |||
119 | #define TL_RES_LEN (256) /* 8 bits addressing (real chip) */ | ||
120 | |||
121 | |||
122 | |||
123 | /* register number to channel number , slot offset */ | ||
124 | #define SLOT1 0 | ||
125 | #define SLOT2 1 | ||
126 | |||
127 | /* Envelope Generator phases */ | ||
128 | |||
129 | #define EG_ATT 4 | ||
130 | #define EG_DEC 3 | ||
131 | #define EG_SUS 2 | ||
132 | #define EG_REL 1 | ||
133 | #define EG_OFF 0 | ||
134 | |||
135 | |||
136 | /* save output as raw 16-bit sample */ | ||
137 | |||
138 | /*#define SAVE_SAMPLE*/ | ||
139 | |||
140 | #ifdef SAVE_SAMPLE | ||
141 | static signed int acc_calc(signed int value) | ||
142 | { | ||
143 | if (value>=0) | ||
144 | { | ||
145 | if (value < 0x0200) | ||
146 | return (value & ~0); | ||
147 | if (value < 0x0400) | ||
148 | return (value & ~1); | ||
149 | if (value < 0x0800) | ||
150 | return (value & ~3); | ||
151 | if (value < 0x1000) | ||
152 | return (value & ~7); | ||
153 | if (value < 0x2000) | ||
154 | return (value & ~15); | ||
155 | if (value < 0x4000) | ||
156 | return (value & ~31); | ||
157 | return (value & ~63); | ||
158 | } | ||
159 | /*else value < 0*/ | ||
160 | if (value > -0x0200) | ||
161 | return (~abs(value) & ~0); | ||
162 | if (value > -0x0400) | ||
163 | return (~abs(value) & ~1); | ||
164 | if (value > -0x0800) | ||
165 | return (~abs(value) & ~3); | ||
166 | if (value > -0x1000) | ||
167 | return (~abs(value) & ~7); | ||
168 | if (value > -0x2000) | ||
169 | return (~abs(value) & ~15); | ||
170 | if (value > -0x4000) | ||
171 | return (~abs(value) & ~31); | ||
172 | return (~abs(value) & ~63); | ||
173 | } | ||
174 | |||
175 | |||
176 | static FILE *sample[1]; | ||
177 | #if 1 /*save to MONO file */ | ||
178 | #define SAVE_ALL_CHANNELS \ | ||
179 | { signed int pom = acc_calc(lt); \ | ||
180 | fputc((unsigned short)pom&0xff,sample[0]); \ | ||
181 | fputc(((unsigned short)pom>>8)&0xff,sample[0]); \ | ||
182 | } | ||
183 | #else /*save to STEREO file */ | ||
184 | #define SAVE_ALL_CHANNELS \ | ||
185 | { signed int pom = lt; \ | ||
186 | fputc((unsigned short)pom&0xff,sample[0]); \ | ||
187 | fputc(((unsigned short)pom>>8)&0xff,sample[0]); \ | ||
188 | pom = rt; \ | ||
189 | fputc((unsigned short)pom&0xff,sample[0]); \ | ||
190 | fputc(((unsigned short)pom>>8)&0xff,sample[0]); \ | ||
191 | } | ||
192 | #endif | ||
193 | #endif | ||
194 | |||
195 | #define LOG_CYM_FILE 0 | ||
196 | static FILE * cymfile = NULL; | ||
197 | |||
198 | |||
199 | |||
200 | #define OPL_TYPE_WAVESEL 0x01 /* waveform select */ | ||
201 | #define OPL_TYPE_ADPCM 0x02 /* DELTA-T ADPCM unit */ | ||
202 | #define OPL_TYPE_KEYBOARD 0x04 /* keyboard interface */ | ||
203 | #define OPL_TYPE_IO 0x08 /* I/O port */ | ||
204 | |||
205 | /* ---------- Generic interface section ---------- */ | ||
206 | #define OPL_TYPE_YM3526 (0) | ||
207 | #define OPL_TYPE_YM3812 (OPL_TYPE_WAVESEL) | ||
208 | #define OPL_TYPE_Y8950 (OPL_TYPE_ADPCM|OPL_TYPE_KEYBOARD|OPL_TYPE_IO) | ||
209 | |||
210 | |||
211 | |||
212 | struct OPL_SLOT | ||
213 | { | ||
214 | UINT32 ar; /* attack rate: AR<<2 */ | ||
215 | UINT32 dr; /* decay rate: DR<<2 */ | ||
216 | UINT32 rr; /* release rate:RR<<2 */ | ||
217 | UINT8 KSR; /* key scale rate */ | ||
218 | UINT8 ksl; /* keyscale level */ | ||
219 | UINT8 ksr; /* key scale rate: kcode>>KSR */ | ||
220 | UINT8 mul; /* multiple: mul_tab[ML] */ | ||
221 | |||
222 | /* Phase Generator */ | ||
223 | UINT32 Cnt; /* frequency counter */ | ||
224 | UINT32 Incr; /* frequency counter step */ | ||
225 | UINT8 FB; /* feedback shift value */ | ||
226 | INT32 *connect1; /* slot1 output pointer */ | ||
227 | INT32 op1_out[2]; /* slot1 output for feedback */ | ||
228 | UINT8 CON; /* connection (algorithm) type */ | ||
229 | |||
230 | /* Envelope Generator */ | ||
231 | UINT8 eg_type; /* percussive/non-percussive mode */ | ||
232 | UINT8 state; /* phase type */ | ||
233 | UINT32 TL; /* total level: TL << 2 */ | ||
234 | INT32 TLL; /* adjusted now TL */ | ||
235 | INT32 volume; /* envelope counter */ | ||
236 | UINT32 sl; /* sustain level: sl_tab[SL] */ | ||
237 | UINT8 eg_sh_ar; /* (attack state) */ | ||
238 | UINT8 eg_sel_ar; /* (attack state) */ | ||
239 | UINT8 eg_sh_dr; /* (decay state) */ | ||
240 | UINT8 eg_sel_dr; /* (decay state) */ | ||
241 | UINT8 eg_sh_rr; /* (release state) */ | ||
242 | UINT8 eg_sel_rr; /* (release state) */ | ||
243 | UINT32 key; /* 0 = KEY OFF, >0 = KEY ON */ | ||
244 | |||
245 | /* LFO */ | ||
246 | UINT32 AMmask; /* LFO Amplitude Modulation enable mask */ | ||
247 | UINT8 vib; /* LFO Phase Modulation enable flag (active high)*/ | ||
248 | |||
249 | /* waveform select */ | ||
250 | UINT16 wavetable; | ||
251 | }; | ||
252 | |||
253 | typedef struct OPL_SLOT OPL_SLOT; | ||
254 | |||
255 | struct OPL_CH | ||
256 | { | ||
257 | OPL_SLOT SLOT[2]; | ||
258 | /* phase generator state */ | ||
259 | UINT32 block_fnum; /* block+fnum */ | ||
260 | UINT32 fc; /* Freq. Increment base */ | ||
261 | UINT32 ksl_base; /* KeyScaleLevel Base step */ | ||
262 | UINT8 kcode; /* key code (for key scaling) */ | ||
263 | }; | ||
264 | |||
265 | typedef struct OPL_CH OPL_CH; | ||
266 | |||
267 | /* OPL state */ | ||
268 | struct FM_OPL | ||
269 | { | ||
270 | // moved to beginning to fix alignment | ||
271 | signed int phase_modulation __attribute__((aligned)); /* phase modulation input (SLOT 2) */ | ||
272 | signed int output[1] __attribute__((aligned)); | ||
273 | |||
274 | /* FM channel slots */ | ||
275 | OPL_CH P_CH[9]; /* OPL/OPL2 chips have 9 channels*/ | ||
276 | |||
277 | UINT32 eg_cnt; /* global envelope generator counter */ | ||
278 | UINT32 eg_timer; /* global envelope generator counter works at frequency = chipclock/72 */ | ||
279 | UINT32 eg_timer_add; /* step of eg_timer */ | ||
280 | UINT32 eg_timer_overflow; /* envelope generator timer overlfows every 1 sample (on real chip) */ | ||
281 | |||
282 | UINT8 rhythm; /* Rhythm mode */ | ||
283 | |||
284 | UINT32 fn_tab[1024]; /* fnumber->increment counter */ | ||
285 | |||
286 | /* LFO */ | ||
287 | UINT32 LFO_AM; | ||
288 | INT32 LFO_PM; | ||
289 | |||
290 | UINT8 lfo_am_depth; | ||
291 | UINT8 lfo_pm_depth_range; | ||
292 | UINT32 lfo_am_cnt; | ||
293 | UINT32 lfo_am_inc; | ||
294 | UINT32 lfo_pm_cnt; | ||
295 | UINT32 lfo_pm_inc; | ||
296 | |||
297 | UINT32 noise_rng; /* 23 bit noise shift register */ | ||
298 | UINT32 noise_p; /* current noise 'phase' */ | ||
299 | UINT32 noise_f; /* current noise period */ | ||
300 | |||
301 | UINT8 wavesel; /* waveform select enable flag */ | ||
302 | |||
303 | UINT32 T[2]; /* timer counters */ | ||
304 | UINT8 st[2]; /* timer enable */ | ||
305 | |||
306 | #if BUILD_Y8950 | ||
307 | /* Delta-T ADPCM unit (Y8950) */ | ||
308 | |||
309 | YM_DELTAT *deltat; | ||
310 | |||
311 | /* Keyboard and I/O ports interface */ | ||
312 | UINT8 portDirection; | ||
313 | UINT8 portLatch; | ||
314 | OPL_PORTHANDLER_R porthandler_r; | ||
315 | OPL_PORTHANDLER_W porthandler_w; | ||
316 | void * port_param; | ||
317 | OPL_PORTHANDLER_R keyboardhandler_r; | ||
318 | OPL_PORTHANDLER_W keyboardhandler_w; | ||
319 | void * keyboard_param; | ||
320 | #endif | ||
321 | |||
322 | /* external event callback handlers */ | ||
323 | OPL_TIMERHANDLER timer_handler; /* TIMER handler */ | ||
324 | void *TimerParam; /* TIMER parameter */ | ||
325 | OPL_IRQHANDLER IRQHandler; /* IRQ handler */ | ||
326 | void *IRQParam; /* IRQ parameter */ | ||
327 | OPL_UPDATEHANDLER UpdateHandler;/* stream update handler */ | ||
328 | void *UpdateParam; /* stream update parameter */ | ||
329 | |||
330 | UINT8 type; /* chip type */ | ||
331 | UINT8 address; /* address register */ | ||
332 | UINT8 status; /* status flag */ | ||
333 | UINT8 statusmask; /* status mask */ | ||
334 | UINT8 mode; /* Reg.08 : CSM,notesel,etc. */ | ||
335 | |||
336 | UINT32 clock; /* master clock (Hz) */ | ||
337 | UINT32 rate; /* sampling rate (Hz) */ | ||
338 | double freqbase; /* frequency base */ | ||
339 | double TimerBase; /* Timer base time (==sampling time)*/ | ||
340 | device_t *device; | ||
341 | |||
342 | #if BUILD_Y8950 | ||
343 | INT32 output_deltat[4]; /* for Y8950 DELTA-T, chip is mono, that 4 here is just for safety */ | ||
344 | #endif | ||
345 | } __attribute__((aligned)); | ||
346 | |||
347 | typedef struct FM_OPL FM_OPL; | ||
348 | |||
349 | /* mapping of register number (offset) to slot number used by the emulator */ | ||
350 | static const int slot_array[32]= | ||
351 | { | ||
352 | 0, 2, 4, 1, 3, 5,-1,-1, | ||
353 | 6, 8,10, 7, 9,11,-1,-1, | ||
354 | 12,14,16,13,15,17,-1,-1, | ||
355 | -1,-1,-1,-1,-1,-1,-1,-1 | ||
356 | }; | ||
357 | |||
358 | /* key scale level */ | ||
359 | /* table is 3dB/octave , DV converts this into 6dB/octave */ | ||
360 | /* 0.1875 is bit 0 weight of the envelope counter (volume) expressed in the 'decibel' scale */ | ||
361 | #define DV (0.1875/2.0) | ||
362 | static const UINT32 ksl_tab[8*16]= | ||
363 | { | ||
364 | /* OCT 0 */ | ||
365 | 0.000/DV, 0.000/DV, 0.000/DV, 0.000/DV, | ||
366 | 0.000/DV, 0.000/DV, 0.000/DV, 0.000/DV, | ||
367 | 0.000/DV, 0.000/DV, 0.000/DV, 0.000/DV, | ||
368 | 0.000/DV, 0.000/DV, 0.000/DV, 0.000/DV, | ||
369 | /* OCT 1 */ | ||
370 | 0.000/DV, 0.000/DV, 0.000/DV, 0.000/DV, | ||
371 | 0.000/DV, 0.000/DV, 0.000/DV, 0.000/DV, | ||
372 | 0.000/DV, 0.750/DV, 1.125/DV, 1.500/DV, | ||
373 | 1.875/DV, 2.250/DV, 2.625/DV, 3.000/DV, | ||
374 | /* OCT 2 */ | ||
375 | 0.000/DV, 0.000/DV, 0.000/DV, 0.000/DV, | ||
376 | 0.000/DV, 1.125/DV, 1.875/DV, 2.625/DV, | ||
377 | 3.000/DV, 3.750/DV, 4.125/DV, 4.500/DV, | ||
378 | 4.875/DV, 5.250/DV, 5.625/DV, 6.000/DV, | ||
379 | /* OCT 3 */ | ||
380 | 0.000/DV, 0.000/DV, 0.000/DV, 1.875/DV, | ||
381 | 3.000/DV, 4.125/DV, 4.875/DV, 5.625/DV, | ||
382 | 6.000/DV, 6.750/DV, 7.125/DV, 7.500/DV, | ||
383 | 7.875/DV, 8.250/DV, 8.625/DV, 9.000/DV, | ||
384 | /* OCT 4 */ | ||
385 | 0.000/DV, 0.000/DV, 3.000/DV, 4.875/DV, | ||
386 | 6.000/DV, 7.125/DV, 7.875/DV, 8.625/DV, | ||
387 | 9.000/DV, 9.750/DV,10.125/DV,10.500/DV, | ||
388 | 10.875/DV,11.250/DV,11.625/DV,12.000/DV, | ||
389 | /* OCT 5 */ | ||
390 | 0.000/DV, 3.000/DV, 6.000/DV, 7.875/DV, | ||
391 | 9.000/DV,10.125/DV,10.875/DV,11.625/DV, | ||
392 | 12.000/DV,12.750/DV,13.125/DV,13.500/DV, | ||
393 | 13.875/DV,14.250/DV,14.625/DV,15.000/DV, | ||
394 | /* OCT 6 */ | ||
395 | 0.000/DV, 6.000/DV, 9.000/DV,10.875/DV, | ||
396 | 12.000/DV,13.125/DV,13.875/DV,14.625/DV, | ||
397 | 15.000/DV,15.750/DV,16.125/DV,16.500/DV, | ||
398 | 16.875/DV,17.250/DV,17.625/DV,18.000/DV, | ||
399 | /* OCT 7 */ | ||
400 | 0.000/DV, 9.000/DV,12.000/DV,13.875/DV, | ||
401 | 15.000/DV,16.125/DV,16.875/DV,17.625/DV, | ||
402 | 18.000/DV,18.750/DV,19.125/DV,19.500/DV, | ||
403 | 19.875/DV,20.250/DV,20.625/DV,21.000/DV | ||
404 | }; | ||
405 | #undef DV | ||
406 | |||
407 | /* 0 / 3.0 / 1.5 / 6.0 dB/OCT */ | ||
408 | static const UINT32 ksl_shift[4] = { 31, 1, 2, 0 }; | ||
409 | |||
410 | |||
411 | /* sustain level table (3dB per step) */ | ||
412 | /* 0 - 15: 0, 3, 6, 9,12,15,18,21,24,27,30,33,36,39,42,93 (dB)*/ | ||
413 | #define SC(db) (UINT32) ( db * (2.0/ENV_STEP) ) | ||
414 | static const UINT32 sl_tab[16]={ | ||
415 | SC( 0),SC( 1),SC( 2),SC(3 ),SC(4 ),SC(5 ),SC(6 ),SC( 7), | ||
416 | SC( 8),SC( 9),SC(10),SC(11),SC(12),SC(13),SC(14),SC(31) | ||
417 | }; | ||
418 | #undef SC | ||
419 | |||
420 | |||
421 | #define RATE_STEPS (8) | ||
422 | static const unsigned char eg_inc[15*RATE_STEPS]={ | ||
423 | /*cycle:0 1 2 3 4 5 6 7*/ | ||
424 | |||
425 | /* 0 */ 0,1, 0,1, 0,1, 0,1, /* rates 00..12 0 (increment by 0 or 1) */ | ||
426 | /* 1 */ 0,1, 0,1, 1,1, 0,1, /* rates 00..12 1 */ | ||
427 | /* 2 */ 0,1, 1,1, 0,1, 1,1, /* rates 00..12 2 */ | ||
428 | /* 3 */ 0,1, 1,1, 1,1, 1,1, /* rates 00..12 3 */ | ||
429 | |||
430 | /* 4 */ 1,1, 1,1, 1,1, 1,1, /* rate 13 0 (increment by 1) */ | ||
431 | /* 5 */ 1,1, 1,2, 1,1, 1,2, /* rate 13 1 */ | ||
432 | /* 6 */ 1,2, 1,2, 1,2, 1,2, /* rate 13 2 */ | ||
433 | /* 7 */ 1,2, 2,2, 1,2, 2,2, /* rate 13 3 */ | ||
434 | |||
435 | /* 8 */ 2,2, 2,2, 2,2, 2,2, /* rate 14 0 (increment by 2) */ | ||
436 | /* 9 */ 2,2, 2,4, 2,2, 2,4, /* rate 14 1 */ | ||
437 | /*10 */ 2,4, 2,4, 2,4, 2,4, /* rate 14 2 */ | ||
438 | /*11 */ 2,4, 4,4, 2,4, 4,4, /* rate 14 3 */ | ||
439 | |||
440 | /*12 */ 4,4, 4,4, 4,4, 4,4, /* rates 15 0, 15 1, 15 2, 15 3 (increment by 4) */ | ||
441 | /*13 */ 8,8, 8,8, 8,8, 8,8, /* rates 15 2, 15 3 for attack */ | ||
442 | /*14 */ 0,0, 0,0, 0,0, 0,0, /* infinity rates for attack and decay(s) */ | ||
443 | }; | ||
444 | |||
445 | |||
446 | #define O(a) (a*RATE_STEPS) | ||
447 | |||
448 | /*note that there is no O(13) in this table - it's directly in the code */ | ||
449 | static const unsigned char eg_rate_select[16+64+16]={ /* Envelope Generator rates (16 + 64 rates + 16 RKS) */ | ||
450 | /* 16 infinite time rates */ | ||
451 | O(14),O(14),O(14),O(14),O(14),O(14),O(14),O(14), | ||
452 | O(14),O(14),O(14),O(14),O(14),O(14),O(14),O(14), | ||
453 | |||
454 | /* rates 00-12 */ | ||
455 | O( 0),O( 1),O( 2),O( 3), | ||
456 | O( 0),O( 1),O( 2),O( 3), | ||
457 | O( 0),O( 1),O( 2),O( 3), | ||
458 | O( 0),O( 1),O( 2),O( 3), | ||
459 | O( 0),O( 1),O( 2),O( 3), | ||
460 | O( 0),O( 1),O( 2),O( 3), | ||
461 | O( 0),O( 1),O( 2),O( 3), | ||
462 | O( 0),O( 1),O( 2),O( 3), | ||
463 | O( 0),O( 1),O( 2),O( 3), | ||
464 | O( 0),O( 1),O( 2),O( 3), | ||
465 | O( 0),O( 1),O( 2),O( 3), | ||
466 | O( 0),O( 1),O( 2),O( 3), | ||
467 | O( 0),O( 1),O( 2),O( 3), | ||
468 | |||
469 | /* rate 13 */ | ||
470 | O( 4),O( 5),O( 6),O( 7), | ||
471 | |||
472 | /* rate 14 */ | ||
473 | O( 8),O( 9),O(10),O(11), | ||
474 | |||
475 | /* rate 15 */ | ||
476 | O(12),O(12),O(12),O(12), | ||
477 | |||
478 | /* 16 dummy rates (same as 15 3) */ | ||
479 | O(12),O(12),O(12),O(12),O(12),O(12),O(12),O(12), | ||
480 | O(12),O(12),O(12),O(12),O(12),O(12),O(12),O(12), | ||
481 | |||
482 | }; | ||
483 | #undef O | ||
484 | |||
485 | /*rate 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 */ | ||
486 | /*shift 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0 */ | ||
487 | /*mask 4095, 2047, 1023, 511, 255, 127, 63, 31, 15, 7, 3, 1, 0, 0, 0, 0 */ | ||
488 | |||
489 | #define O(a) (a*1) | ||
490 | static const unsigned char eg_rate_shift[16+64+16]={ /* Envelope Generator counter shifts (16 + 64 rates + 16 RKS) */ | ||
491 | /* 16 infinite time rates */ | ||
492 | O(0),O(0),O(0),O(0),O(0),O(0),O(0),O(0), | ||
493 | O(0),O(0),O(0),O(0),O(0),O(0),O(0),O(0), | ||
494 | |||
495 | /* rates 00-12 */ | ||
496 | O(12),O(12),O(12),O(12), | ||
497 | O(11),O(11),O(11),O(11), | ||
498 | O(10),O(10),O(10),O(10), | ||
499 | O( 9),O( 9),O( 9),O( 9), | ||
500 | O( 8),O( 8),O( 8),O( 8), | ||
501 | O( 7),O( 7),O( 7),O( 7), | ||
502 | O( 6),O( 6),O( 6),O( 6), | ||
503 | O( 5),O( 5),O( 5),O( 5), | ||
504 | O( 4),O( 4),O( 4),O( 4), | ||
505 | O( 3),O( 3),O( 3),O( 3), | ||
506 | O( 2),O( 2),O( 2),O( 2), | ||
507 | O( 1),O( 1),O( 1),O( 1), | ||
508 | O( 0),O( 0),O( 0),O( 0), | ||
509 | |||
510 | /* rate 13 */ | ||
511 | O( 0),O( 0),O( 0),O( 0), | ||
512 | |||
513 | /* rate 14 */ | ||
514 | O( 0),O( 0),O( 0),O( 0), | ||
515 | |||
516 | /* rate 15 */ | ||
517 | O( 0),O( 0),O( 0),O( 0), | ||
518 | |||
519 | /* 16 dummy rates (same as 15 3) */ | ||
520 | O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0), | ||
521 | O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0), | ||
522 | |||
523 | }; | ||
524 | #undef O | ||
525 | |||
526 | |||
527 | /* multiple table */ | ||
528 | #define ML 2 | ||
529 | static const UINT8 mul_tab[16]= { | ||
530 | /* 1/2, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,10,12,12,15,15 */ | ||
531 | ML/2, 1*ML, 2*ML, 3*ML, 4*ML, 5*ML, 6*ML, 7*ML, | ||
532 | 8*ML, 9*ML,10*ML,10*ML,12*ML,12*ML,15*ML,15*ML | ||
533 | }; | ||
534 | #undef ML | ||
535 | |||
536 | /* TL_TAB_LEN is calculated as: | ||
537 | * 12 - sinus amplitude bits (Y axis) | ||
538 | * 2 - sinus sign bit (Y axis) | ||
539 | * TL_RES_LEN - sinus resolution (X axis) | ||
540 | */ | ||
541 | #define TL_TAB_LEN (12*2*TL_RES_LEN) | ||
542 | static signed int tl_tab[TL_TAB_LEN]; | ||
543 | |||
544 | #define ENV_QUIET (TL_TAB_LEN>>4) | ||
545 | |||
546 | /* sin waveform table in 'decibel' scale */ | ||
547 | /* four waveforms on OPL2 type chips */ | ||
548 | static unsigned int sin_tab[SIN_LEN * 4]; | ||
549 | |||
550 | |||
551 | /* LFO Amplitude Modulation table (verified on real YM3812) | ||
552 | 27 output levels (triangle waveform); 1 level takes one of: 192, 256 or 448 samples | ||
553 | |||
554 | Length: 210 elements. | ||
555 | |||
556 | Each of the elements has to be repeated | ||
557 | exactly 64 times (on 64 consecutive samples). | ||
558 | The whole table takes: 64 * 210 = 13440 samples. | ||
559 | |||
560 | When AM = 1 data is used directly | ||
561 | When AM = 0 data is divided by 4 before being used (losing precision is important) | ||
562 | */ | ||
563 | |||
564 | #define LFO_AM_TAB_ELEMENTS 210 | ||
565 | |||
566 | static const UINT8 lfo_am_table[LFO_AM_TAB_ELEMENTS] = { | ||
567 | 0,0,0,0,0,0,0, | ||
568 | 1,1,1,1, | ||
569 | 2,2,2,2, | ||
570 | 3,3,3,3, | ||
571 | 4,4,4,4, | ||
572 | 5,5,5,5, | ||
573 | 6,6,6,6, | ||
574 | 7,7,7,7, | ||
575 | 8,8,8,8, | ||
576 | 9,9,9,9, | ||
577 | 10,10,10,10, | ||
578 | 11,11,11,11, | ||
579 | 12,12,12,12, | ||
580 | 13,13,13,13, | ||
581 | 14,14,14,14, | ||
582 | 15,15,15,15, | ||
583 | 16,16,16,16, | ||
584 | 17,17,17,17, | ||
585 | 18,18,18,18, | ||
586 | 19,19,19,19, | ||
587 | 20,20,20,20, | ||
588 | 21,21,21,21, | ||
589 | 22,22,22,22, | ||
590 | 23,23,23,23, | ||
591 | 24,24,24,24, | ||
592 | 25,25,25,25, | ||
593 | 26,26,26, | ||
594 | 25,25,25,25, | ||
595 | 24,24,24,24, | ||
596 | 23,23,23,23, | ||
597 | 22,22,22,22, | ||
598 | 21,21,21,21, | ||
599 | 20,20,20,20, | ||
600 | 19,19,19,19, | ||
601 | 18,18,18,18, | ||
602 | 17,17,17,17, | ||
603 | 16,16,16,16, | ||
604 | 15,15,15,15, | ||
605 | 14,14,14,14, | ||
606 | 13,13,13,13, | ||
607 | 12,12,12,12, | ||
608 | 11,11,11,11, | ||
609 | 10,10,10,10, | ||
610 | 9,9,9,9, | ||
611 | 8,8,8,8, | ||
612 | 7,7,7,7, | ||
613 | 6,6,6,6, | ||
614 | 5,5,5,5, | ||
615 | 4,4,4,4, | ||
616 | 3,3,3,3, | ||
617 | 2,2,2,2, | ||
618 | 1,1,1,1 | ||
619 | }; | ||
620 | |||
621 | /* LFO Phase Modulation table (verified on real YM3812) */ | ||
622 | static const INT8 lfo_pm_table[8*8*2] = { | ||
623 | /* FNUM2/FNUM = 00 0xxxxxxx (0x0000) */ | ||
624 | 0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 0*/ | ||
625 | 0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 1*/ | ||
626 | |||
627 | /* FNUM2/FNUM = 00 1xxxxxxx (0x0080) */ | ||
628 | 0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 0*/ | ||
629 | 1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 1*/ | ||
630 | |||
631 | /* FNUM2/FNUM = 01 0xxxxxxx (0x0100) */ | ||
632 | 1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 0*/ | ||
633 | 2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 1*/ | ||
634 | |||
635 | /* FNUM2/FNUM = 01 1xxxxxxx (0x0180) */ | ||
636 | 1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 0*/ | ||
637 | 3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 1*/ | ||
638 | |||
639 | /* FNUM2/FNUM = 10 0xxxxxxx (0x0200) */ | ||
640 | 2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 0*/ | ||
641 | 4, 2, 0,-2,-4,-2, 0, 2, /*LFO PM depth = 1*/ | ||
642 | |||
643 | /* FNUM2/FNUM = 10 1xxxxxxx (0x0280) */ | ||
644 | 2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 0*/ | ||
645 | 5, 2, 0,-2,-5,-2, 0, 2, /*LFO PM depth = 1*/ | ||
646 | |||
647 | /* FNUM2/FNUM = 11 0xxxxxxx (0x0300) */ | ||
648 | 3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 0*/ | ||
649 | 6, 3, 0,-3,-6,-3, 0, 3, /*LFO PM depth = 1*/ | ||
650 | |||
651 | /* FNUM2/FNUM = 11 1xxxxxxx (0x0380) */ | ||
652 | 3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 0*/ | ||
653 | 7, 3, 0,-3,-7,-3, 0, 3 /*LFO PM depth = 1*/ | ||
654 | }; | ||
655 | |||
656 | |||
657 | /* lock level of common table */ | ||
658 | static int num_lock = 0; | ||
659 | |||
660 | |||
661 | #define SLOT7_1 (&OPL->P_CH[7].SLOT[SLOT1]) | ||
662 | #define SLOT7_2 (&OPL->P_CH[7].SLOT[SLOT2]) | ||
663 | #define SLOT8_1 (&OPL->P_CH[8].SLOT[SLOT1]) | ||
664 | #define SLOT8_2 (&OPL->P_CH[8].SLOT[SLOT2]) | ||
665 | |||
666 | |||
667 | |||
668 | |||
669 | static int limit( int val, int max, int min ) { | ||
670 | if ( val > max ) | ||
671 | val = max; | ||
672 | else if ( val < min ) | ||
673 | val = min; | ||
674 | |||
675 | return val; | ||
676 | } | ||
677 | |||
678 | |||
679 | /* status set and IRQ handling */ | ||
680 | static void OPL_STATUS_SET(FM_OPL *OPL,int flag) | ||
681 | { | ||
682 | /* set status flag */ | ||
683 | OPL->status |= flag; | ||
684 | if(!(OPL->status & 0x80)) | ||
685 | { | ||
686 | if(OPL->status & OPL->statusmask) | ||
687 | { /* IRQ on */ | ||
688 | OPL->status |= 0x80; | ||
689 | /* callback user interrupt handler (IRQ is OFF to ON) */ | ||
690 | if(OPL->IRQHandler) (OPL->IRQHandler)(OPL->IRQParam,1); | ||
691 | } | ||
692 | } | ||
693 | } | ||
694 | |||
695 | /* status reset and IRQ handling */ | ||
696 | static void OPL_STATUS_RESET(FM_OPL *OPL,int flag) | ||
697 | { | ||
698 | /* reset status flag */ | ||
699 | OPL->status &=~flag; | ||
700 | if((OPL->status & 0x80)) | ||
701 | { | ||
702 | if (!(OPL->status & OPL->statusmask) ) | ||
703 | { | ||
704 | OPL->status &= 0x7f; | ||
705 | /* callback user interrupt handler (IRQ is ON to OFF) */ | ||
706 | if(OPL->IRQHandler) (OPL->IRQHandler)(OPL->IRQParam,0); | ||
707 | } | ||
708 | } | ||
709 | } | ||
710 | |||
711 | /* IRQ mask set */ | ||
712 | static void OPL_STATUSMASK_SET(FM_OPL *OPL,int flag) | ||
713 | { | ||
714 | OPL->statusmask = flag; | ||
715 | /* IRQ handling check */ | ||
716 | OPL_STATUS_SET(OPL,0); | ||
717 | OPL_STATUS_RESET(OPL,0); | ||
718 | } | ||
719 | |||
720 | |||
721 | /* advance LFO to next sample */ | ||
722 | static void advance_lfo(FM_OPL *OPL) | ||
723 | { | ||
724 | UINT8 tmp; | ||
725 | |||
726 | /* LFO */ | ||
727 | OPL->lfo_am_cnt += OPL->lfo_am_inc; | ||
728 | // if (OPL->lfo_am_cnt >= ((UINT32)LFO_AM_TAB_ELEMENTS<<LFO_SH) ) /* lfo_am_table is 210 elements long */ | ||
729 | // OPL->lfo_am_cnt -= ((UINT32)LFO_AM_TAB_ELEMENTS<<LFO_SH); | ||
730 | if (OPL->lfo_am_cnt >= (LFO_AM_TAB_ELEMENTS<<LFO_SH) ) /* lfo_am_table is 210 elements long */ | ||
731 | OPL->lfo_am_cnt -= (LFO_AM_TAB_ELEMENTS<<LFO_SH); | ||
732 | |||
733 | tmp = lfo_am_table[ OPL->lfo_am_cnt >> LFO_SH ]; | ||
734 | |||
735 | if (OPL->lfo_am_depth) | ||
736 | OPL->LFO_AM = tmp; | ||
737 | else | ||
738 | OPL->LFO_AM = tmp>>2; | ||
739 | |||
740 | OPL->lfo_pm_cnt += OPL->lfo_pm_inc; | ||
741 | OPL->LFO_PM = ((OPL->lfo_pm_cnt>>LFO_SH) & 7) | OPL->lfo_pm_depth_range; | ||
742 | } | ||
743 | |||
744 | /* advance to next sample */ | ||
745 | static void advance(FM_OPL *OPL) | ||
746 | { | ||
747 | OPL_CH *CH; | ||
748 | OPL_SLOT *op; | ||
749 | int i; | ||
750 | |||
751 | OPL->eg_timer += OPL->eg_timer_add; | ||
752 | |||
753 | while (OPL->eg_timer >= OPL->eg_timer_overflow) | ||
754 | { | ||
755 | OPL->eg_timer -= OPL->eg_timer_overflow; | ||
756 | |||
757 | OPL->eg_cnt++; | ||
758 | |||
759 | for (i=0; i<9*2; i++) | ||
760 | { | ||
761 | CH = &OPL->P_CH[i/2]; | ||
762 | op = &CH->SLOT[i&1]; | ||
763 | |||
764 | /* Envelope Generator */ | ||
765 | switch(op->state) | ||
766 | { | ||
767 | case EG_ATT: /* attack phase */ | ||
768 | if ( !(OPL->eg_cnt & ((1<<op->eg_sh_ar)-1) ) ) | ||
769 | { | ||
770 | op->volume += (~op->volume * | ||
771 | (eg_inc[op->eg_sel_ar + ((OPL->eg_cnt>>op->eg_sh_ar)&7)]) | ||
772 | ) >>3; | ||
773 | |||
774 | if (op->volume <= MIN_ATT_INDEX) | ||
775 | { | ||
776 | op->volume = MIN_ATT_INDEX; | ||
777 | op->state = EG_DEC; | ||
778 | } | ||
779 | |||
780 | } | ||
781 | break; | ||
782 | |||
783 | case EG_DEC: /* decay phase */ | ||
784 | if ( !(OPL->eg_cnt & ((1<<op->eg_sh_dr)-1) ) ) | ||
785 | { | ||
786 | op->volume += eg_inc[op->eg_sel_dr + ((OPL->eg_cnt>>op->eg_sh_dr)&7)]; | ||
787 | |||
788 | if ( (UINT32) op->volume >= op->sl ) | ||
789 | op->state = EG_SUS; | ||
790 | |||
791 | } | ||
792 | break; | ||
793 | |||
794 | case EG_SUS: /* sustain phase */ | ||
795 | |||
796 | /* this is important behaviour: | ||
797 | one can change percusive/non-percussive modes on the fly and | ||
798 | the chip will remain in sustain phase - verified on real YM3812 */ | ||
799 | |||
800 | if(op->eg_type) /* non-percussive mode */ | ||
801 | { | ||
802 | /* do nothing */ | ||
803 | } | ||
804 | else /* percussive mode */ | ||
805 | { | ||
806 | /* during sustain phase chip adds Release Rate (in percussive mode) */ | ||
807 | if ( !(OPL->eg_cnt & ((1<<op->eg_sh_rr)-1) ) ) | ||
808 | { | ||
809 | op->volume += eg_inc[op->eg_sel_rr + ((OPL->eg_cnt>>op->eg_sh_rr)&7)]; | ||
810 | |||
811 | if ( op->volume >= MAX_ATT_INDEX ) | ||
812 | op->volume = MAX_ATT_INDEX; | ||
813 | } | ||
814 | /* else do nothing in sustain phase */ | ||
815 | } | ||
816 | break; | ||
817 | |||
818 | case EG_REL: /* release phase */ | ||
819 | if ( !(OPL->eg_cnt & ((1<<op->eg_sh_rr)-1) ) ) | ||
820 | { | ||
821 | op->volume += eg_inc[op->eg_sel_rr + ((OPL->eg_cnt>>op->eg_sh_rr)&7)]; | ||
822 | |||
823 | if ( op->volume >= MAX_ATT_INDEX ) | ||
824 | { | ||
825 | op->volume = MAX_ATT_INDEX; | ||
826 | op->state = EG_OFF; | ||
827 | } | ||
828 | |||
829 | } | ||
830 | break; | ||
831 | |||
832 | default: | ||
833 | break; | ||
834 | } | ||
835 | } | ||
836 | } | ||
837 | |||
838 | for (i=0; i<9*2; i++) | ||
839 | { | ||
840 | CH = &OPL->P_CH[i/2]; | ||
841 | op = &CH->SLOT[i&1]; | ||
842 | |||
843 | /* Phase Generator */ | ||
844 | if(op->vib) | ||
845 | { | ||
846 | UINT8 block; | ||
847 | unsigned int block_fnum = CH->block_fnum; | ||
848 | |||
849 | unsigned int fnum_lfo = (block_fnum&0x0380) >> 7; | ||
850 | |||
851 | signed int lfo_fn_table_index_offset = lfo_pm_table[OPL->LFO_PM + 16*fnum_lfo ]; | ||
852 | |||
853 | if (lfo_fn_table_index_offset) /* LFO phase modulation active */ | ||
854 | { | ||
855 | block_fnum += lfo_fn_table_index_offset; | ||
856 | block = (block_fnum&0x1c00) >> 10; | ||
857 | op->Cnt += (OPL->fn_tab[block_fnum&0x03ff] >> (7-block)) * op->mul; | ||
858 | } | ||
859 | else /* LFO phase modulation = zero */ | ||
860 | { | ||
861 | op->Cnt += op->Incr; | ||
862 | } | ||
863 | } | ||
864 | else /* LFO phase modulation disabled for this operator */ | ||
865 | { | ||
866 | op->Cnt += op->Incr; | ||
867 | } | ||
868 | } | ||
869 | |||
870 | /* The Noise Generator of the YM3812 is 23-bit shift register. | ||
871 | * Period is equal to 2^23-2 samples. | ||
872 | * Register works at sampling frequency of the chip, so output | ||
873 | * can change on every sample. | ||
874 | * | ||
875 | * Output of the register and input to the bit 22 is: | ||
876 | * bit0 XOR bit14 XOR bit15 XOR bit22 | ||
877 | * | ||
878 | * Simply use bit 22 as the noise output. | ||
879 | */ | ||
880 | |||
881 | OPL->noise_p += OPL->noise_f; | ||
882 | i = OPL->noise_p >> FREQ_SH; /* number of events (shifts of the shift register) */ | ||
883 | OPL->noise_p &= FREQ_MASK; | ||
884 | while (i) | ||
885 | { | ||
886 | /* | ||
887 | UINT32 j; | ||
888 | j = ( (OPL->noise_rng) ^ (OPL->noise_rng>>14) ^ (OPL->noise_rng>>15) ^ (OPL->noise_rng>>22) ) & 1; | ||
889 | OPL->noise_rng = (j<<22) | (OPL->noise_rng>>1); | ||
890 | */ | ||
891 | |||
892 | /* | ||
893 | Instead of doing all the logic operations above, we | ||
894 | use a trick here (and use bit 0 as the noise output). | ||
895 | The difference is only that the noise bit changes one | ||
896 | step ahead. This doesn't matter since we don't know | ||
897 | what is real state of the noise_rng after the reset. | ||
898 | */ | ||
899 | |||
900 | if (OPL->noise_rng & 1) OPL->noise_rng ^= 0x800302; | ||
901 | OPL->noise_rng >>= 1; | ||
902 | |||
903 | i--; | ||
904 | } | ||
905 | } | ||
906 | |||
907 | |||
908 | static signed int op_calc(UINT32 phase, unsigned int env, signed int pm, unsigned int wave_tab) | ||
909 | { | ||
910 | UINT32 p; | ||
911 | |||
912 | p = (env<<4) + sin_tab[wave_tab + ((((signed int)((phase & ~FREQ_MASK) + (pm<<16))) >> FREQ_SH ) & SIN_MASK) ]; | ||
913 | |||
914 | if (p >= TL_TAB_LEN) | ||
915 | return 0; | ||
916 | return tl_tab[p]; | ||
917 | } | ||
918 | |||
919 | static signed int op_calc1(UINT32 phase, unsigned int env, signed int pm, unsigned int wave_tab) | ||
920 | { | ||
921 | UINT32 p; | ||
922 | |||
923 | p = (env<<4) + sin_tab[wave_tab + ((((signed int)((phase & ~FREQ_MASK) + pm )) >> FREQ_SH ) & SIN_MASK) ]; | ||
924 | |||
925 | if (p >= TL_TAB_LEN) | ||
926 | return 0; | ||
927 | return tl_tab[p]; | ||
928 | } | ||
929 | |||
930 | |||
931 | #define volume_calc(OP) ((OP)->TLL + ((UINT32)(OP)->volume) + (OPL->LFO_AM & (OP)->AMmask)) | ||
932 | |||
933 | /* calculate output */ | ||
934 | static void OPL_CALC_CH( FM_OPL *OPL, OPL_CH *CH ) | ||
935 | { | ||
936 | OPL_SLOT *SLOT; | ||
937 | unsigned int env; | ||
938 | signed int out; | ||
939 | |||
940 | OPL->phase_modulation = 0; | ||
941 | |||
942 | /* SLOT 1 */ | ||
943 | SLOT = &CH->SLOT[SLOT1]; | ||
944 | env = volume_calc(SLOT); | ||
945 | out = SLOT->op1_out[0] + SLOT->op1_out[1]; | ||
946 | SLOT->op1_out[0] = SLOT->op1_out[1]; | ||
947 | |||
948 | //INT32 a; | ||
949 | //memcpy(&a, SLOT->connect1, sizeof(a)); | ||
950 | //a += SLOT->op1_out[0]; | ||
951 | //memcpy(SLOT->connect1, &a, sizeof(a)); | ||
952 | |||
953 | *SLOT->connect1 += SLOT->op1_out[0]; // alignment issue on arm | ||
954 | SLOT->op1_out[1] = 0; | ||
955 | if( env < ENV_QUIET ) | ||
956 | { | ||
957 | if (!SLOT->FB) | ||
958 | out = 0; | ||
959 | SLOT->op1_out[1] = op_calc1(SLOT->Cnt, env, (out<<SLOT->FB), SLOT->wavetable ); | ||
960 | } | ||
961 | /* SLOT 2 */ | ||
962 | SLOT++; | ||
963 | env = volume_calc(SLOT); | ||
964 | if( env < ENV_QUIET ) | ||
965 | { | ||
966 | OPL->output[0] += op_calc(SLOT->Cnt, env, OPL->phase_modulation, SLOT->wavetable); | ||
967 | } | ||
968 | } | ||
969 | |||
970 | /* | ||
971 | operators used in the rhythm sounds generation process: | ||
972 | |||
973 | Envelope Generator: | ||
974 | |||
975 | channel operator register number Bass High Snare Tom Top | ||
976 | / slot number TL ARDR SLRR Wave Drum Hat Drum Tom Cymbal | ||
977 | 6 / 0 12 50 70 90 f0 + | ||
978 | 6 / 1 15 53 73 93 f3 + | ||
979 | 7 / 0 13 51 71 91 f1 + | ||
980 | 7 / 1 16 54 74 94 f4 + | ||
981 | 8 / 0 14 52 72 92 f2 + | ||
982 | 8 / 1 17 55 75 95 f5 + | ||
983 | |||
984 | Phase Generator: | ||
985 | |||
986 | channel operator register number Bass High Snare Tom Top | ||
987 | / slot number MULTIPLE Drum Hat Drum Tom Cymbal | ||
988 | 6 / 0 12 30 + | ||
989 | 6 / 1 15 33 + | ||
990 | 7 / 0 13 31 + + + | ||
991 | 7 / 1 16 34 ----- n o t u s e d ----- | ||
992 | 8 / 0 14 32 + | ||
993 | 8 / 1 17 35 + + | ||
994 | |||
995 | channel operator register number Bass High Snare Tom Top | ||
996 | number number BLK/FNUM2 FNUM Drum Hat Drum Tom Cymbal | ||
997 | 6 12,15 B6 A6 + | ||
998 | |||
999 | 7 13,16 B7 A7 + + + | ||
1000 | |||
1001 | 8 14,17 B8 A8 + + + | ||
1002 | |||
1003 | */ | ||
1004 | |||
1005 | /* calculate rhythm */ | ||
1006 | |||
1007 | static void OPL_CALC_RH( FM_OPL *OPL, OPL_CH *CH, unsigned int noise ) | ||
1008 | { | ||
1009 | OPL_SLOT *SLOT; | ||
1010 | signed int out; | ||
1011 | unsigned int env; | ||
1012 | |||
1013 | |||
1014 | /* Bass Drum (verified on real YM3812): | ||
1015 | - depends on the channel 6 'connect' register: | ||
1016 | when connect = 0 it works the same as in normal (non-rhythm) mode (op1->op2->out) | ||
1017 | when connect = 1 _only_ operator 2 is present on output (op2->out), operator 1 is ignored | ||
1018 | - output sample always is multiplied by 2 | ||
1019 | */ | ||
1020 | |||
1021 | OPL->phase_modulation = 0; | ||
1022 | /* SLOT 1 */ | ||
1023 | SLOT = &CH[6].SLOT[SLOT1]; | ||
1024 | env = volume_calc(SLOT); | ||
1025 | |||
1026 | out = SLOT->op1_out[0] + SLOT->op1_out[1]; | ||
1027 | SLOT->op1_out[0] = SLOT->op1_out[1]; | ||
1028 | |||
1029 | if (!SLOT->CON) | ||
1030 | OPL->phase_modulation = SLOT->op1_out[0]; | ||
1031 | /* else ignore output of operator 1 */ | ||
1032 | |||
1033 | SLOT->op1_out[1] = 0; | ||
1034 | if( env < ENV_QUIET ) | ||
1035 | { | ||
1036 | if (!SLOT->FB) | ||
1037 | out = 0; | ||
1038 | SLOT->op1_out[1] = op_calc1(SLOT->Cnt, env, (out<<SLOT->FB), SLOT->wavetable ); | ||
1039 | } | ||
1040 | |||
1041 | /* SLOT 2 */ | ||
1042 | SLOT++; | ||
1043 | env = volume_calc(SLOT); | ||
1044 | if( env < ENV_QUIET ) | ||
1045 | OPL->output[0] += op_calc(SLOT->Cnt, env, OPL->phase_modulation, SLOT->wavetable) * 2; | ||
1046 | |||
1047 | |||
1048 | /* Phase generation is based on: */ | ||
1049 | /* HH (13) channel 7->slot 1 combined with channel 8->slot 2 (same combination as TOP CYMBAL but different output phases) */ | ||
1050 | /* SD (16) channel 7->slot 1 */ | ||
1051 | /* TOM (14) channel 8->slot 1 */ | ||
1052 | /* TOP (17) channel 7->slot 1 combined with channel 8->slot 2 (same combination as HIGH HAT but different output phases) */ | ||
1053 | |||
1054 | /* Envelope generation based on: */ | ||
1055 | /* HH channel 7->slot1 */ | ||
1056 | /* SD channel 7->slot2 */ | ||
1057 | /* TOM channel 8->slot1 */ | ||
1058 | /* TOP channel 8->slot2 */ | ||
1059 | |||
1060 | |||
1061 | /* The following formulas can be well optimized. | ||
1062 | I leave them in direct form for now (in case I've missed something). | ||
1063 | */ | ||
1064 | |||
1065 | /* High Hat (verified on real YM3812) */ | ||
1066 | env = volume_calc(SLOT7_1); | ||
1067 | if( env < ENV_QUIET ) | ||
1068 | { | ||
1069 | /* high hat phase generation: | ||
1070 | phase = d0 or 234 (based on frequency only) | ||
1071 | phase = 34 or 2d0 (based on noise) | ||
1072 | */ | ||
1073 | |||
1074 | /* base frequency derived from operator 1 in channel 7 */ | ||
1075 | unsigned char bit7 = ((SLOT7_1->Cnt>>FREQ_SH)>>7)&1; | ||
1076 | unsigned char bit3 = ((SLOT7_1->Cnt>>FREQ_SH)>>3)&1; | ||
1077 | unsigned char bit2 = ((SLOT7_1->Cnt>>FREQ_SH)>>2)&1; | ||
1078 | |||
1079 | unsigned char res1 = (bit2 ^ bit7) | bit3; | ||
1080 | |||
1081 | /* when res1 = 0 phase = 0x000 | 0xd0; */ | ||
1082 | /* when res1 = 1 phase = 0x200 | (0xd0>>2); */ | ||
1083 | UINT32 phase = res1 ? (0x200|(0xd0>>2)) : 0xd0; | ||
1084 | |||
1085 | /* enable gate based on frequency of operator 2 in channel 8 */ | ||
1086 | unsigned char bit5e= ((SLOT8_2->Cnt>>FREQ_SH)>>5)&1; | ||
1087 | unsigned char bit3e= ((SLOT8_2->Cnt>>FREQ_SH)>>3)&1; | ||
1088 | |||
1089 | unsigned char res2 = (bit3e ^ bit5e); | ||
1090 | |||
1091 | /* when res2 = 0 pass the phase from calculation above (res1); */ | ||
1092 | /* when res2 = 1 phase = 0x200 | (0xd0>>2); */ | ||
1093 | if (res2) | ||
1094 | phase = (0x200|(0xd0>>2)); | ||
1095 | |||
1096 | |||
1097 | /* when phase & 0x200 is set and noise=1 then phase = 0x200|0xd0 */ | ||
1098 | /* when phase & 0x200 is set and noise=0 then phase = 0x200|(0xd0>>2), ie no change */ | ||
1099 | if (phase&0x200) | ||
1100 | { | ||
1101 | if (noise) | ||
1102 | phase = 0x200|0xd0; | ||
1103 | } | ||
1104 | else | ||
1105 | /* when phase & 0x200 is clear and noise=1 then phase = 0xd0>>2 */ | ||
1106 | /* when phase & 0x200 is clear and noise=0 then phase = 0xd0, ie no change */ | ||
1107 | { | ||
1108 | if (noise) | ||
1109 | phase = 0xd0>>2; | ||
1110 | } | ||
1111 | |||
1112 | OPL->output[0] += op_calc(phase<<FREQ_SH, env, 0, SLOT7_1->wavetable) * 2; | ||
1113 | } | ||
1114 | |||
1115 | /* Snare Drum (verified on real YM3812) */ | ||
1116 | env = volume_calc(SLOT7_2); | ||
1117 | if( env < ENV_QUIET ) | ||
1118 | { | ||
1119 | /* base frequency derived from operator 1 in channel 7 */ | ||
1120 | unsigned char bit8 = ((SLOT7_1->Cnt>>FREQ_SH)>>8)&1; | ||
1121 | |||
1122 | /* when bit8 = 0 phase = 0x100; */ | ||
1123 | /* when bit8 = 1 phase = 0x200; */ | ||
1124 | UINT32 phase = bit8 ? 0x200 : 0x100; | ||
1125 | |||
1126 | /* Noise bit XOR'es phase by 0x100 */ | ||
1127 | /* when noisebit = 0 pass the phase from calculation above */ | ||
1128 | /* when noisebit = 1 phase ^= 0x100; */ | ||
1129 | /* in other words: phase ^= (noisebit<<8); */ | ||
1130 | if (noise) | ||
1131 | phase ^= 0x100; | ||
1132 | |||
1133 | OPL->output[0] += op_calc(phase<<FREQ_SH, env, 0, SLOT7_2->wavetable) * 2; | ||
1134 | } | ||
1135 | |||
1136 | /* Tom Tom (verified on real YM3812) */ | ||
1137 | env = volume_calc(SLOT8_1); | ||
1138 | if( env < ENV_QUIET ) | ||
1139 | OPL->output[0] += op_calc(SLOT8_1->Cnt, env, 0, SLOT8_1->wavetable) * 2; | ||
1140 | |||
1141 | /* Top Cymbal (verified on real YM3812) */ | ||
1142 | env = volume_calc(SLOT8_2); | ||
1143 | if( env < ENV_QUIET ) | ||
1144 | { | ||
1145 | /* base frequency derived from operator 1 in channel 7 */ | ||
1146 | unsigned char bit7 = ((SLOT7_1->Cnt>>FREQ_SH)>>7)&1; | ||
1147 | unsigned char bit3 = ((SLOT7_1->Cnt>>FREQ_SH)>>3)&1; | ||
1148 | unsigned char bit2 = ((SLOT7_1->Cnt>>FREQ_SH)>>2)&1; | ||
1149 | |||
1150 | unsigned char res1 = (bit2 ^ bit7) | bit3; | ||
1151 | |||
1152 | /* when res1 = 0 phase = 0x000 | 0x100; */ | ||
1153 | /* when res1 = 1 phase = 0x200 | 0x100; */ | ||
1154 | UINT32 phase = res1 ? 0x300 : 0x100; | ||
1155 | |||
1156 | /* enable gate based on frequency of operator 2 in channel 8 */ | ||
1157 | unsigned char bit5e= ((SLOT8_2->Cnt>>FREQ_SH)>>5)&1; | ||
1158 | unsigned char bit3e= ((SLOT8_2->Cnt>>FREQ_SH)>>3)&1; | ||
1159 | |||
1160 | unsigned char res2 = (bit3e ^ bit5e); | ||
1161 | /* when res2 = 0 pass the phase from calculation above (res1); */ | ||
1162 | /* when res2 = 1 phase = 0x200 | 0x100; */ | ||
1163 | if (res2) | ||
1164 | phase = 0x300; | ||
1165 | |||
1166 | OPL->output[0] += op_calc(phase<<FREQ_SH, env, 0, SLOT8_2->wavetable) * 2; | ||
1167 | } | ||
1168 | } | ||
1169 | |||
1170 | |||
1171 | /* generic table initialize */ | ||
1172 | static int init_tables(void) | ||
1173 | { | ||
1174 | signed int i,x; | ||
1175 | signed int n; | ||
1176 | double o,m; | ||
1177 | |||
1178 | |||
1179 | for (x=0; x<TL_RES_LEN; x++) | ||
1180 | { | ||
1181 | m = (1<<16) / pow(2, (x+1) * (ENV_STEP/4.0) / 8.0); | ||
1182 | m = floor(m); | ||
1183 | |||
1184 | /* we never reach (1<<16) here due to the (x+1) */ | ||
1185 | /* result fits within 16 bits at maximum */ | ||
1186 | |||
1187 | n = (int)m; /* 16 bits here */ | ||
1188 | n >>= 4; /* 12 bits here */ | ||
1189 | if (n&1) /* round to nearest */ | ||
1190 | n = (n>>1)+1; | ||
1191 | else | ||
1192 | n = n>>1; | ||
1193 | /* 11 bits here (rounded) */ | ||
1194 | n <<= 1; /* 12 bits here (as in real chip) */ | ||
1195 | tl_tab[ x*2 + 0 ] = n; | ||
1196 | tl_tab[ x*2 + 1 ] = -tl_tab[ x*2 + 0 ]; | ||
1197 | |||
1198 | for (i=1; i<12; i++) | ||
1199 | { | ||
1200 | tl_tab[ x*2+0 + i*2*TL_RES_LEN ] = tl_tab[ x*2+0 ]>>i; | ||
1201 | tl_tab[ x*2+1 + i*2*TL_RES_LEN ] = -tl_tab[ x*2+0 + i*2*TL_RES_LEN ]; | ||
1202 | } | ||
1203 | #if 0 | ||
1204 | logerror("tl %04i", x*2); | ||
1205 | for (i=0; i<12; i++) | ||
1206 | logerror(", [%02i] %5i", i*2, tl_tab[ x*2 /*+1*/ + i*2*TL_RES_LEN ] ); | ||
1207 | logerror("\n"); | ||
1208 | #endif | ||
1209 | } | ||
1210 | /*logerror("FMOPL.C: TL_TAB_LEN = %i elements (%i bytes)\n",TL_TAB_LEN, (int)sizeof(tl_tab));*/ | ||
1211 | |||
1212 | |||
1213 | for (i=0; i<SIN_LEN; i++) | ||
1214 | { | ||
1215 | /* non-standard sinus */ | ||
1216 | m = sin( ((i*2)+1) * M_PI / SIN_LEN ); /* checked against the real chip */ | ||
1217 | |||
1218 | /* we never reach zero here due to ((i*2)+1) */ | ||
1219 | |||
1220 | if (m>0.0) | ||
1221 | o = 8*log(1.0/m)/log(2.0); /* convert to 'decibels' */ | ||
1222 | else | ||
1223 | o = 8*log(-1.0/m)/log(2.0); /* convert to 'decibels' */ | ||
1224 | |||
1225 | o = o / (ENV_STEP/4); | ||
1226 | |||
1227 | n = (int)(2.0*o); | ||
1228 | if (n&1) /* round to nearest */ | ||
1229 | n = (n>>1)+1; | ||
1230 | else | ||
1231 | n = n>>1; | ||
1232 | |||
1233 | sin_tab[ i ] = n*2 + (m>=0.0? 0: 1 ); | ||
1234 | |||
1235 | /*logerror("FMOPL.C: sin [%4i (hex=%03x)]= %4i (tl_tab value=%5i)\n", i, i, sin_tab[i], tl_tab[sin_tab[i]] );*/ | ||
1236 | } | ||
1237 | |||
1238 | for (i=0; i<SIN_LEN; i++) | ||
1239 | { | ||
1240 | /* waveform 1: __ __ */ | ||
1241 | /* / \____/ \____*/ | ||
1242 | /* output only first half of the sinus waveform (positive one) */ | ||
1243 | |||
1244 | if (i & (1<<(SIN_BITS-1)) ) | ||
1245 | sin_tab[1*SIN_LEN+i] = TL_TAB_LEN; | ||
1246 | else | ||
1247 | sin_tab[1*SIN_LEN+i] = sin_tab[i]; | ||
1248 | |||
1249 | /* waveform 2: __ __ __ __ */ | ||
1250 | /* / \/ \/ \/ \*/ | ||
1251 | /* abs(sin) */ | ||
1252 | |||
1253 | sin_tab[2*SIN_LEN+i] = sin_tab[i & (SIN_MASK>>1) ]; | ||
1254 | |||
1255 | /* waveform 3: _ _ _ _ */ | ||
1256 | /* / |_/ |_/ |_/ |_*/ | ||
1257 | /* abs(output only first quarter of the sinus waveform) */ | ||
1258 | |||
1259 | if (i & (1<<(SIN_BITS-2)) ) | ||
1260 | sin_tab[3*SIN_LEN+i] = TL_TAB_LEN; | ||
1261 | else | ||
1262 | sin_tab[3*SIN_LEN+i] = sin_tab[i & (SIN_MASK>>2)]; | ||
1263 | |||
1264 | /*logerror("FMOPL.C: sin1[%4i]= %4i (tl_tab value=%5i)\n", i, sin_tab[1*SIN_LEN+i], tl_tab[sin_tab[1*SIN_LEN+i]] ); | ||
1265 | logerror("FMOPL.C: sin2[%4i]= %4i (tl_tab value=%5i)\n", i, sin_tab[2*SIN_LEN+i], tl_tab[sin_tab[2*SIN_LEN+i]] ); | ||
1266 | logerror("FMOPL.C: sin3[%4i]= %4i (tl_tab value=%5i)\n", i, sin_tab[3*SIN_LEN+i], tl_tab[sin_tab[3*SIN_LEN+i]] );*/ | ||
1267 | } | ||
1268 | /*logerror("FMOPL.C: ENV_QUIET= %08x (dec*8=%i)\n", ENV_QUIET, ENV_QUIET*8 );*/ | ||
1269 | |||
1270 | |||
1271 | #ifdef SAVE_SAMPLE | ||
1272 | sample[0]=fopen("sampsum.pcm","wb"); | ||
1273 | #endif | ||
1274 | |||
1275 | return 1; | ||
1276 | } | ||
1277 | |||
1278 | static void OPLCloseTable( void ) | ||
1279 | { | ||
1280 | #ifdef SAVE_SAMPLE | ||
1281 | fclose(sample[0]); | ||
1282 | #endif | ||
1283 | } | ||
1284 | |||
1285 | |||
1286 | |||
1287 | static void OPL_initalize(FM_OPL *OPL) | ||
1288 | { | ||
1289 | int i; | ||
1290 | |||
1291 | /* frequency base */ | ||
1292 | OPL->freqbase = (OPL->rate) ? ((double)OPL->clock / 72.0) / OPL->rate : 0; | ||
1293 | #if 0 | ||
1294 | OPL->rate = (double)OPL->clock / 72.0; | ||
1295 | OPL->freqbase = 1.0; | ||
1296 | #endif | ||
1297 | |||
1298 | /*logerror("freqbase=%f\n", OPL->freqbase);*/ | ||
1299 | |||
1300 | /* Timer base time */ | ||
1301 | OPL->TimerBase = 1.0 / ((double)OPL->clock / 72.0 ); | ||
1302 | |||
1303 | /* make fnumber -> increment counter table */ | ||
1304 | for( i=0 ; i < 1024 ; i++ ) | ||
1305 | { | ||
1306 | /* opn phase increment counter = 20bit */ | ||
1307 | OPL->fn_tab[i] = (UINT32)( (double)i * 64 * OPL->freqbase * (1<<(FREQ_SH-10)) ); /* -10 because chip works with 10.10 fixed point, while we use 16.16 */ | ||
1308 | #if 0 | ||
1309 | logerror("FMOPL.C: fn_tab[%4i] = %08x (dec=%8i)\n", | ||
1310 | i, OPL->fn_tab[i]>>6, OPL->fn_tab[i]>>6 ); | ||
1311 | #endif | ||
1312 | } | ||
1313 | |||
1314 | #if 0 | ||
1315 | for( i=0 ; i < 16 ; i++ ) | ||
1316 | { | ||
1317 | logerror("FMOPL.C: sl_tab[%i] = %08x\n", | ||
1318 | i, sl_tab[i] ); | ||
1319 | } | ||
1320 | for( i=0 ; i < 8 ; i++ ) | ||
1321 | { | ||
1322 | int j; | ||
1323 | logerror("FMOPL.C: ksl_tab[oct=%2i] =",i); | ||
1324 | for (j=0; j<16; j++) | ||
1325 | { | ||
1326 | logerror("%08x ", (UINT32)(ksl_tab[i*16+j]) ); | ||
1327 | } | ||
1328 | logerror("\n"); | ||
1329 | } | ||
1330 | #endif | ||
1331 | |||
1332 | |||
1333 | /* Amplitude modulation: 27 output levels (triangle waveform); 1 level takes one of: 192, 256 or 448 samples */ | ||
1334 | /* One entry from LFO_AM_TABLE lasts for 64 samples */ | ||
1335 | OPL->lfo_am_inc = (UINT32) ((1.0 / 64.0 ) * (1<<LFO_SH) * OPL->freqbase); | ||
1336 | |||
1337 | /* Vibrato: 8 output levels (triangle waveform); 1 level takes 1024 samples */ | ||
1338 | OPL->lfo_pm_inc = (UINT32) ((1.0 / 1024.0) * (1<<LFO_SH) * OPL->freqbase); | ||
1339 | |||
1340 | /*logerror ("OPL->lfo_am_inc = %8x ; OPL->lfo_pm_inc = %8x\n", OPL->lfo_am_inc, OPL->lfo_pm_inc);*/ | ||
1341 | |||
1342 | /* Noise generator: a step takes 1 sample */ | ||
1343 | OPL->noise_f = (UINT32) ((1.0 / 1.0) * (1<<FREQ_SH) * OPL->freqbase); | ||
1344 | |||
1345 | OPL->eg_timer_add = (UINT32) ((1<<EG_SH) * OPL->freqbase); | ||
1346 | OPL->eg_timer_overflow = ( 1 ) * (1<<EG_SH); | ||
1347 | /*logerror("OPLinit eg_timer_add=%8x eg_timer_overflow=%8x\n", OPL->eg_timer_add, OPL->eg_timer_overflow);*/ | ||
1348 | |||
1349 | } | ||
1350 | |||
1351 | static void FM_KEYON(OPL_SLOT *SLOT, UINT32 key_set) | ||
1352 | { | ||
1353 | if( !SLOT->key ) | ||
1354 | { | ||
1355 | /* restart Phase Generator */ | ||
1356 | SLOT->Cnt = 0; | ||
1357 | /* phase -> Attack */ | ||
1358 | SLOT->state = EG_ATT; | ||
1359 | } | ||
1360 | SLOT->key |= key_set; | ||
1361 | } | ||
1362 | |||
1363 | static void FM_KEYOFF(OPL_SLOT *SLOT, UINT32 key_clr) | ||
1364 | { | ||
1365 | if( SLOT->key ) | ||
1366 | { | ||
1367 | SLOT->key &= key_clr; | ||
1368 | |||
1369 | if( !SLOT->key ) | ||
1370 | { | ||
1371 | /* phase -> Release */ | ||
1372 | if (SLOT->state>EG_REL) | ||
1373 | SLOT->state = EG_REL; | ||
1374 | } | ||
1375 | } | ||
1376 | } | ||
1377 | |||
1378 | /* update phase increment counter of operator (also update the EG rates if necessary) */ | ||
1379 | static void CALC_FCSLOT(OPL_CH *CH,OPL_SLOT *SLOT) | ||
1380 | { | ||
1381 | int ksr; | ||
1382 | |||
1383 | /* (frequency) phase increment counter */ | ||
1384 | SLOT->Incr = CH->fc * SLOT->mul; | ||
1385 | ksr = CH->kcode >> SLOT->KSR; | ||
1386 | |||
1387 | if( SLOT->ksr != ksr ) | ||
1388 | { | ||
1389 | SLOT->ksr = ksr; | ||
1390 | |||
1391 | /* calculate envelope generator rates */ | ||
1392 | if ((SLOT->ar + SLOT->ksr) < 16+62) | ||
1393 | { | ||
1394 | SLOT->eg_sh_ar = eg_rate_shift [SLOT->ar + SLOT->ksr ]; | ||
1395 | SLOT->eg_sel_ar = eg_rate_select[SLOT->ar + SLOT->ksr ]; | ||
1396 | } | ||
1397 | else | ||
1398 | { | ||
1399 | SLOT->eg_sh_ar = 0; | ||
1400 | SLOT->eg_sel_ar = 13*RATE_STEPS; | ||
1401 | } | ||
1402 | SLOT->eg_sh_dr = eg_rate_shift [SLOT->dr + SLOT->ksr ]; | ||
1403 | SLOT->eg_sel_dr = eg_rate_select[SLOT->dr + SLOT->ksr ]; | ||
1404 | SLOT->eg_sh_rr = eg_rate_shift [SLOT->rr + SLOT->ksr ]; | ||
1405 | SLOT->eg_sel_rr = eg_rate_select[SLOT->rr + SLOT->ksr ]; | ||
1406 | } | ||
1407 | } | ||
1408 | |||
1409 | /* set multi,am,vib,EG-TYP,KSR,mul */ | ||
1410 | static void set_mul(FM_OPL *OPL,int slot,int v) | ||
1411 | { | ||
1412 | OPL_CH *CH = &OPL->P_CH[slot/2]; | ||
1413 | OPL_SLOT *SLOT = &CH->SLOT[slot&1]; | ||
1414 | |||
1415 | SLOT->mul = mul_tab[v&0x0f]; | ||
1416 | SLOT->KSR = (v&0x10) ? 0 : 2; | ||
1417 | SLOT->eg_type = (v&0x20); | ||
1418 | SLOT->vib = (v&0x40); | ||
1419 | SLOT->AMmask = (v&0x80) ? ~0 : 0; | ||
1420 | CALC_FCSLOT(CH,SLOT); | ||
1421 | } | ||
1422 | |||
1423 | /* set ksl & tl */ | ||
1424 | static void set_ksl_tl(FM_OPL *OPL,int slot,int v) | ||
1425 | { | ||
1426 | #if 0 | ||
1427 | OPL_CH *CH = &OPL->P_CH[slot/2]; | ||
1428 | OPL_SLOT *SLOT = &CH->SLOT[slot&1]; | ||
1429 | |||
1430 | SLOT->ksl = ksl_shift[v >> 6]; | ||
1431 | SLOT->TL = (v&0x3f)<<(ENV_BITS-1-7); /* 7 bits TL (bit 6 = always 0) */ | ||
1432 | |||
1433 | SLOT->TLL = SLOT->TL + (CH->ksl_base>>SLOT->ksl); | ||
1434 | #else | ||
1435 | OPL_CH *CH = &OPL->P_CH[slot/2]; | ||
1436 | OPL_SLOT *SLOT = &CH->SLOT[slot&1]; | ||
1437 | int ksl = v>>6; /* 0 / 1.5 / 3.0 / 6.0 dB/OCT */ | ||
1438 | |||
1439 | SLOT->ksl = ksl ? 3-ksl : 31; | ||
1440 | SLOT->TL = (v&0x3f)<<(ENV_BITS-1-7); /* 7 bits TL (bit 6 = always 0) */ | ||
1441 | |||
1442 | SLOT->TLL = SLOT->TL + (CH->ksl_base>>SLOT->ksl); | ||
1443 | #endif | ||
1444 | } | ||
1445 | |||
1446 | /* set attack rate & decay rate */ | ||
1447 | static void set_ar_dr(FM_OPL *OPL,int slot,int v) | ||
1448 | { | ||
1449 | OPL_CH *CH = &OPL->P_CH[slot/2]; | ||
1450 | OPL_SLOT *SLOT = &CH->SLOT[slot&1]; | ||
1451 | |||
1452 | SLOT->ar = (v>>4) ? 16 + ((v>>4) <<2) : 0; | ||
1453 | |||
1454 | if ((SLOT->ar + SLOT->ksr) < 16+62) | ||
1455 | { | ||
1456 | SLOT->eg_sh_ar = eg_rate_shift [SLOT->ar + SLOT->ksr ]; | ||
1457 | SLOT->eg_sel_ar = eg_rate_select[SLOT->ar + SLOT->ksr ]; | ||
1458 | } | ||
1459 | else | ||
1460 | { | ||
1461 | SLOT->eg_sh_ar = 0; | ||
1462 | SLOT->eg_sel_ar = 13*RATE_STEPS; | ||
1463 | } | ||
1464 | |||
1465 | SLOT->dr = (v&0x0f)? 16 + ((v&0x0f)<<2) : 0; | ||
1466 | SLOT->eg_sh_dr = eg_rate_shift [SLOT->dr + SLOT->ksr ]; | ||
1467 | SLOT->eg_sel_dr = eg_rate_select[SLOT->dr + SLOT->ksr ]; | ||
1468 | } | ||
1469 | |||
1470 | /* set sustain level & release rate */ | ||
1471 | static void set_sl_rr(FM_OPL *OPL,int slot,int v) | ||
1472 | { | ||
1473 | OPL_CH *CH = &OPL->P_CH[slot/2]; | ||
1474 | OPL_SLOT *SLOT = &CH->SLOT[slot&1]; | ||
1475 | |||
1476 | SLOT->sl = sl_tab[ v>>4 ]; | ||
1477 | |||
1478 | SLOT->rr = (v&0x0f)? 16 + ((v&0x0f)<<2) : 0; | ||
1479 | SLOT->eg_sh_rr = eg_rate_shift [SLOT->rr + SLOT->ksr ]; | ||
1480 | SLOT->eg_sel_rr = eg_rate_select[SLOT->rr + SLOT->ksr ]; | ||
1481 | } | ||
1482 | |||
1483 | |||
1484 | /* write a value v to register r on OPL chip */ | ||
1485 | static void OPLWriteReg(FM_OPL *OPL, int r, int v) | ||
1486 | { | ||
1487 | OPL_CH *CH; | ||
1488 | int slot; | ||
1489 | int block_fnum; | ||
1490 | |||
1491 | |||
1492 | /* adjust bus to 8 bits */ | ||
1493 | r &= 0xff; | ||
1494 | v &= 0xff; | ||
1495 | |||
1496 | if (LOG_CYM_FILE && (cymfile) && (r!=0) ) | ||
1497 | { | ||
1498 | fprintf(cymfile, "%02x = %02x\n", r, v); | ||
1499 | } | ||
1500 | |||
1501 | |||
1502 | switch(r&0xe0) | ||
1503 | { | ||
1504 | case 0x00: /* 00-1f:control */ | ||
1505 | switch(r&0x1f) | ||
1506 | { | ||
1507 | case 0x01: /* waveform select enable */ | ||
1508 | if(OPL->type&OPL_TYPE_WAVESEL) | ||
1509 | { | ||
1510 | OPL->wavesel = v&0x20; | ||
1511 | /* do not change the waveform previously selected */ | ||
1512 | } | ||
1513 | break; | ||
1514 | case 0x02: /* Timer 1 */ | ||
1515 | OPL->T[0] = (256-v)*4; | ||
1516 | break; | ||
1517 | case 0x03: /* Timer 2 */ | ||
1518 | OPL->T[1] = (256-v)*16; | ||
1519 | break; | ||
1520 | case 0x04: /* IRQ clear / mask and Timer enable */ | ||
1521 | if(v&0x80) | ||
1522 | { /* IRQ flag clear */ | ||
1523 | OPL_STATUS_RESET(OPL,0x7f-0x08); /* don't reset BFRDY flag or we will have to call deltat module to set the flag */ | ||
1524 | } | ||
1525 | else | ||
1526 | { /* set IRQ mask ,timer enable*/ | ||
1527 | UINT8 st1 = v&1; | ||
1528 | UINT8 st2 = (v>>1)&1; | ||
1529 | |||
1530 | /* IRQRST,T1MSK,t2MSK,EOSMSK,BRMSK,x,ST2,ST1 */ | ||
1531 | OPL_STATUS_RESET(OPL, v & (0x78-0x08) ); | ||
1532 | OPL_STATUSMASK_SET(OPL, (~v) & 0x78 ); | ||
1533 | |||
1534 | /* timer 2 */ | ||
1535 | if(OPL->st[1] != st2) | ||
1536 | { | ||
1537 | double period = st2 ? (double)OPL->T[1]*OPL->TimerBase : 0.0; | ||
1538 | //double period = st2 ? (OPL->TimerBase * OPL->T[1]) : 0; | ||
1539 | OPL->st[1] = st2; | ||
1540 | if (OPL->timer_handler) (OPL->timer_handler)(1,period); | ||
1541 | } | ||
1542 | /* timer 1 */ | ||
1543 | if(OPL->st[0] != st1) | ||
1544 | { | ||
1545 | double period = st1 ? (double)OPL->T[0]*OPL->TimerBase : 0.0; | ||
1546 | //double period = st1 ? (OPL->TimerBase * OPL->T[0]) : 0; | ||
1547 | OPL->st[0] = st1; | ||
1548 | if (OPL->timer_handler) (OPL->timer_handler)(0,period); | ||
1549 | } | ||
1550 | } | ||
1551 | break; | ||
1552 | #if BUILD_Y8950 | ||
1553 | case 0x06: /* Key Board OUT */ | ||
1554 | if(OPL->type&OPL_TYPE_KEYBOARD) | ||
1555 | { | ||
1556 | if(OPL->keyboardhandler_w) | ||
1557 | OPL->keyboardhandler_w(OPL->keyboard_param,v); | ||
1558 | else | ||
1559 | { | ||
1560 | //OPL->device->logerror("Y8950: write unmapped KEYBOARD port\n"); | ||
1561 | } | ||
1562 | } | ||
1563 | break; | ||
1564 | case 0x07: /* DELTA-T control 1 : START,REC,MEMDATA,REPT,SPOFF,x,x,RST */ | ||
1565 | if(OPL->type&OPL_TYPE_ADPCM) | ||
1566 | YM_DELTAT_ADPCM_Write(OPL->deltat,r-0x07,v); | ||
1567 | break; | ||
1568 | #endif | ||
1569 | case 0x08: /* MODE,DELTA-T control 2 : CSM,NOTESEL,x,x,smpl,da/ad,64k,rom */ | ||
1570 | OPL->mode = v; | ||
1571 | #if BUILD_Y8950 | ||
1572 | if(OPL->type&OPL_TYPE_ADPCM) | ||
1573 | YM_DELTAT_ADPCM_Write(OPL->deltat,r-0x07,v&0x0f); /* mask 4 LSBs in register 08 for DELTA-T unit */ | ||
1574 | #endif | ||
1575 | break; | ||
1576 | |||
1577 | #if BUILD_Y8950 | ||
1578 | case 0x09: /* START ADD */ | ||
1579 | case 0x0a: | ||
1580 | case 0x0b: /* STOP ADD */ | ||
1581 | case 0x0c: | ||
1582 | case 0x0d: /* PRESCALE */ | ||
1583 | case 0x0e: | ||
1584 | case 0x0f: /* ADPCM data write */ | ||
1585 | case 0x10: /* DELTA-N */ | ||
1586 | case 0x11: /* DELTA-N */ | ||
1587 | case 0x12: /* ADPCM volume */ | ||
1588 | if(OPL->type&OPL_TYPE_ADPCM) | ||
1589 | YM_DELTAT_ADPCM_Write(OPL->deltat,r-0x07,v); | ||
1590 | break; | ||
1591 | |||
1592 | case 0x15: /* DAC data high 8 bits (F7,F6...F2) */ | ||
1593 | case 0x16: /* DAC data low 2 bits (F1, F0 in bits 7,6) */ | ||
1594 | case 0x17: /* DAC data shift (S2,S1,S0 in bits 2,1,0) */ | ||
1595 | //OPL->device->logerror("FMOPL.C: DAC data register written, but not implemented reg=%02x val=%02x\n",r,v); | ||
1596 | break; | ||
1597 | |||
1598 | case 0x18: /* I/O CTRL (Direction) */ | ||
1599 | if(OPL->type&OPL_TYPE_IO) | ||
1600 | OPL->portDirection = v&0x0f; | ||
1601 | break; | ||
1602 | case 0x19: /* I/O DATA */ | ||
1603 | if(OPL->type&OPL_TYPE_IO) | ||
1604 | { | ||
1605 | OPL->portLatch = v; | ||
1606 | if(OPL->porthandler_w) | ||
1607 | OPL->porthandler_w(OPL->port_param,v&OPL->portDirection); | ||
1608 | } | ||
1609 | break; | ||
1610 | #endif | ||
1611 | default: | ||
1612 | //OPL->device->logerror("FMOPL.C: write to unknown register: %02x\n",r); | ||
1613 | break; | ||
1614 | } | ||
1615 | break; | ||
1616 | case 0x20: /* am ON, vib ON, ksr, eg_type, mul */ | ||
1617 | slot = slot_array[r&0x1f]; | ||
1618 | if(slot < 0) return; | ||
1619 | set_mul(OPL,slot,v); | ||
1620 | break; | ||
1621 | case 0x40: | ||
1622 | slot = slot_array[r&0x1f]; | ||
1623 | if(slot < 0) return; | ||
1624 | set_ksl_tl(OPL,slot,v); | ||
1625 | break; | ||
1626 | case 0x60: | ||
1627 | slot = slot_array[r&0x1f]; | ||
1628 | if(slot < 0) return; | ||
1629 | set_ar_dr(OPL,slot,v); | ||
1630 | break; | ||
1631 | case 0x80: | ||
1632 | slot = slot_array[r&0x1f]; | ||
1633 | if(slot < 0) return; | ||
1634 | set_sl_rr(OPL,slot,v); | ||
1635 | break; | ||
1636 | case 0xa0: | ||
1637 | if (r == 0xbd) /* am depth, vibrato depth, r,bd,sd,tom,tc,hh */ | ||
1638 | { | ||
1639 | OPL->lfo_am_depth = v & 0x80; | ||
1640 | OPL->lfo_pm_depth_range = (v&0x40) ? 8 : 0; | ||
1641 | |||
1642 | OPL->rhythm = v&0x3f; | ||
1643 | |||
1644 | if(OPL->rhythm&0x20) | ||
1645 | { | ||
1646 | /* BD key on/off */ | ||
1647 | if(v&0x10) | ||
1648 | { | ||
1649 | FM_KEYON (&OPL->P_CH[6].SLOT[SLOT1], 2); | ||
1650 | FM_KEYON (&OPL->P_CH[6].SLOT[SLOT2], 2); | ||
1651 | } | ||
1652 | else | ||
1653 | { | ||
1654 | FM_KEYOFF(&OPL->P_CH[6].SLOT[SLOT1],~2); | ||
1655 | FM_KEYOFF(&OPL->P_CH[6].SLOT[SLOT2],~2); | ||
1656 | } | ||
1657 | /* HH key on/off */ | ||
1658 | if(v&0x01) FM_KEYON (&OPL->P_CH[7].SLOT[SLOT1], 2); | ||
1659 | else FM_KEYOFF(&OPL->P_CH[7].SLOT[SLOT1],~2); | ||
1660 | /* SD key on/off */ | ||
1661 | if(v&0x08) FM_KEYON (&OPL->P_CH[7].SLOT[SLOT2], 2); | ||
1662 | else FM_KEYOFF(&OPL->P_CH[7].SLOT[SLOT2],~2); | ||
1663 | /* TOM key on/off */ | ||
1664 | if(v&0x04) FM_KEYON (&OPL->P_CH[8].SLOT[SLOT1], 2); | ||
1665 | else FM_KEYOFF(&OPL->P_CH[8].SLOT[SLOT1],~2); | ||
1666 | /* TOP-CY key on/off */ | ||
1667 | if(v&0x02) FM_KEYON (&OPL->P_CH[8].SLOT[SLOT2], 2); | ||
1668 | else FM_KEYOFF(&OPL->P_CH[8].SLOT[SLOT2],~2); | ||
1669 | } | ||
1670 | else | ||
1671 | { | ||
1672 | /* BD key off */ | ||
1673 | FM_KEYOFF(&OPL->P_CH[6].SLOT[SLOT1],~2); | ||
1674 | FM_KEYOFF(&OPL->P_CH[6].SLOT[SLOT2],~2); | ||
1675 | /* HH key off */ | ||
1676 | FM_KEYOFF(&OPL->P_CH[7].SLOT[SLOT1],~2); | ||
1677 | /* SD key off */ | ||
1678 | FM_KEYOFF(&OPL->P_CH[7].SLOT[SLOT2],~2); | ||
1679 | /* TOM key off */ | ||
1680 | FM_KEYOFF(&OPL->P_CH[8].SLOT[SLOT1],~2); | ||
1681 | /* TOP-CY off */ | ||
1682 | FM_KEYOFF(&OPL->P_CH[8].SLOT[SLOT2],~2); | ||
1683 | } | ||
1684 | return; | ||
1685 | } | ||
1686 | /* keyon,block,fnum */ | ||
1687 | if( (r&0x0f) > 8) return; | ||
1688 | CH = &OPL->P_CH[r&0x0f]; | ||
1689 | if(!(r&0x10)) | ||
1690 | { /* a0-a8 */ | ||
1691 | block_fnum = (CH->block_fnum&0x1f00) | v; | ||
1692 | } | ||
1693 | else | ||
1694 | { /* b0-b8 */ | ||
1695 | block_fnum = ((v&0x1f)<<8) | (CH->block_fnum&0xff); | ||
1696 | |||
1697 | if(v&0x20) | ||
1698 | { | ||
1699 | FM_KEYON (&CH->SLOT[SLOT1], 1); | ||
1700 | FM_KEYON (&CH->SLOT[SLOT2], 1); | ||
1701 | } | ||
1702 | else | ||
1703 | { | ||
1704 | FM_KEYOFF(&CH->SLOT[SLOT1],~1); | ||
1705 | FM_KEYOFF(&CH->SLOT[SLOT2],~1); | ||
1706 | } | ||
1707 | } | ||
1708 | /* update */ | ||
1709 | if(CH->block_fnum != (UINT32) block_fnum) | ||
1710 | { | ||
1711 | UINT8 block = block_fnum >> 10; | ||
1712 | |||
1713 | CH->block_fnum = block_fnum; | ||
1714 | |||
1715 | CH->ksl_base = (UINT32)(ksl_tab[block_fnum>>6]); | ||
1716 | CH->fc = OPL->fn_tab[block_fnum&0x03ff] >> (7-block); | ||
1717 | |||
1718 | /* BLK 2,1,0 bits -> bits 3,2,1 of kcode */ | ||
1719 | CH->kcode = (CH->block_fnum&0x1c00)>>9; | ||
1720 | |||
1721 | /* the info below is actually opposite to what is stated in the Manuals (verifed on real YM3812) */ | ||
1722 | /* if notesel == 0 -> lsb of kcode is bit 10 (MSB) of fnum */ | ||
1723 | /* if notesel == 1 -> lsb of kcode is bit 9 (MSB-1) of fnum */ | ||
1724 | if (OPL->mode&0x40) | ||
1725 | CH->kcode |= (CH->block_fnum&0x100)>>8; /* notesel == 1 */ | ||
1726 | else | ||
1727 | CH->kcode |= (CH->block_fnum&0x200)>>9; /* notesel == 0 */ | ||
1728 | |||
1729 | /* refresh Total Level in both SLOTs of this channel */ | ||
1730 | CH->SLOT[SLOT1].TLL = CH->SLOT[SLOT1].TL + (CH->ksl_base>>CH->SLOT[SLOT1].ksl); | ||
1731 | CH->SLOT[SLOT2].TLL = CH->SLOT[SLOT2].TL + (CH->ksl_base>>CH->SLOT[SLOT2].ksl); | ||
1732 | |||
1733 | /* refresh frequency counter in both SLOTs of this channel */ | ||
1734 | CALC_FCSLOT(CH,&CH->SLOT[SLOT1]); | ||
1735 | CALC_FCSLOT(CH,&CH->SLOT[SLOT2]); | ||
1736 | } | ||
1737 | break; | ||
1738 | case 0xc0: | ||
1739 | /* FB,C */ | ||
1740 | if( (r&0x0f) > 8) return; | ||
1741 | CH = &OPL->P_CH[r&0x0f]; | ||
1742 | CH->SLOT[SLOT1].FB = (v>>1)&7 ? ((v>>1)&7) + 7 : 0; | ||
1743 | CH->SLOT[SLOT1].CON = v&1; | ||
1744 | CH->SLOT[SLOT1].connect1 = CH->SLOT[SLOT1].CON ? &OPL->output[0] : &OPL->phase_modulation; | ||
1745 | break; | ||
1746 | case 0xe0: /* waveform select */ | ||
1747 | /* simply ignore write to the waveform select register if selecting not enabled in test register */ | ||
1748 | if(OPL->wavesel) | ||
1749 | { | ||
1750 | slot = slot_array[r&0x1f]; | ||
1751 | if(slot < 0) return; | ||
1752 | CH = &OPL->P_CH[slot/2]; | ||
1753 | |||
1754 | CH->SLOT[slot&1].wavetable = (v&0x03)*SIN_LEN; | ||
1755 | } | ||
1756 | break; | ||
1757 | } | ||
1758 | } | ||
1759 | |||
1760 | static TIMER_CALLBACK( cymfile_callback ) | ||
1761 | { | ||
1762 | if (cymfile) | ||
1763 | { | ||
1764 | //fputc( (unsigned char)0, cymfile ); | ||
1765 | } | ||
1766 | } | ||
1767 | |||
1768 | /* lock/unlock for common table */ | ||
1769 | static int OPL_LockTable(device_t *device) | ||
1770 | { | ||
1771 | num_lock++; | ||
1772 | if(num_lock>1) return 0; | ||
1773 | |||
1774 | /* first time */ | ||
1775 | |||
1776 | /* allocate total level table (128kb space) */ | ||
1777 | if( !init_tables() ) | ||
1778 | { | ||
1779 | num_lock--; | ||
1780 | return -1; | ||
1781 | } | ||
1782 | |||
1783 | if (LOG_CYM_FILE) | ||
1784 | { | ||
1785 | cymfile = fopen("/3812_.cym","w"); | ||
1786 | if (cymfile) | ||
1787 | { | ||
1788 | //device->machine().scheduler().timer_pulse ( double::from_hz(110), FUNC(cymfile_callback)); /*110 Hz pulse timer*/ | ||
1789 | } | ||
1790 | else | ||
1791 | { | ||
1792 | //device->logerror("Could not create file 3812_.cym\n"); | ||
1793 | } | ||
1794 | } | ||
1795 | |||
1796 | return 0; | ||
1797 | } | ||
1798 | |||
1799 | static void OPL_UnLockTable(void) | ||
1800 | { | ||
1801 | if(num_lock) num_lock--; | ||
1802 | if(num_lock) return; | ||
1803 | |||
1804 | /* last time */ | ||
1805 | |||
1806 | OPLCloseTable(); | ||
1807 | |||
1808 | if (cymfile) | ||
1809 | fclose (cymfile); | ||
1810 | cymfile = NULL; | ||
1811 | } | ||
1812 | |||
1813 | static void OPLResetChip(FM_OPL *OPL) | ||
1814 | { | ||
1815 | int c,s; | ||
1816 | int i; | ||
1817 | |||
1818 | OPL->eg_timer = 0; | ||
1819 | OPL->eg_cnt = 0; | ||
1820 | |||
1821 | OPL->noise_rng = 1; /* noise shift register */ | ||
1822 | OPL->mode = 0; /* normal mode */ | ||
1823 | OPL_STATUS_RESET(OPL,0x7f); | ||
1824 | |||
1825 | /* reset with register write */ | ||
1826 | OPLWriteReg(OPL,0x01,0); /* wavesel disable */ | ||
1827 | OPLWriteReg(OPL,0x02,0); /* Timer1 */ | ||
1828 | OPLWriteReg(OPL,0x03,0); /* Timer2 */ | ||
1829 | OPLWriteReg(OPL,0x04,0); /* IRQ mask clear */ | ||
1830 | for(i = 0xff ; i >= 0x20 ; i-- ) OPLWriteReg(OPL,i,0); | ||
1831 | |||
1832 | /* reset operator parameters */ | ||
1833 | for( c = 0 ; c < 9 ; c++ ) | ||
1834 | { | ||
1835 | OPL_CH *CH = &OPL->P_CH[c]; | ||
1836 | for(s = 0 ; s < 2 ; s++ ) | ||
1837 | { | ||
1838 | /* wave table */ | ||
1839 | CH->SLOT[s].wavetable = 0; | ||
1840 | CH->SLOT[s].state = EG_OFF; | ||
1841 | CH->SLOT[s].volume = MAX_ATT_INDEX; | ||
1842 | } | ||
1843 | } | ||
1844 | #if BUILD_Y8950 | ||
1845 | if(OPL->type&OPL_TYPE_ADPCM) | ||
1846 | { | ||
1847 | YM_DELTAT *DELTAT = OPL->deltat; | ||
1848 | |||
1849 | DELTAT->freqbase = OPL->freqbase; | ||
1850 | DELTAT->output_pointer = &OPL->output_deltat[0]; | ||
1851 | DELTAT->portshift = 5; | ||
1852 | DELTAT->output_range = 1<<23; | ||
1853 | YM_DELTAT_ADPCM_Reset(DELTAT,0,YM_DELTAT_EMULATION_MODE_NORMAL,OPL->device); | ||
1854 | } | ||
1855 | #endif | ||
1856 | } | ||
1857 | |||
1858 | |||
1859 | static void OPL_postload(FM_OPL *OPL) | ||
1860 | { | ||
1861 | int slot, ch; | ||
1862 | |||
1863 | for( ch=0 ; ch < 9 ; ch++ ) | ||
1864 | { | ||
1865 | OPL_CH *CH = &OPL->P_CH[ch]; | ||
1866 | |||
1867 | /* Look up key scale level */ | ||
1868 | UINT32 block_fnum = CH->block_fnum; | ||
1869 | CH->ksl_base = (UINT32)(ksl_tab[block_fnum >> 6]); | ||
1870 | CH->fc = OPL->fn_tab[block_fnum & 0x03ff] >> (7 - (block_fnum >> 10)); | ||
1871 | |||
1872 | for( slot=0 ; slot < 2 ; slot++ ) | ||
1873 | { | ||
1874 | OPL_SLOT *SLOT = &CH->SLOT[slot]; | ||
1875 | |||
1876 | /* Calculate key scale rate */ | ||
1877 | SLOT->ksr = CH->kcode >> SLOT->KSR; | ||
1878 | |||
1879 | /* Calculate attack, decay and release rates */ | ||
1880 | if ((SLOT->ar + SLOT->ksr) < 16+62) | ||
1881 | { | ||
1882 | SLOT->eg_sh_ar = eg_rate_shift [SLOT->ar + SLOT->ksr ]; | ||
1883 | SLOT->eg_sel_ar = eg_rate_select[SLOT->ar + SLOT->ksr ]; | ||
1884 | } | ||
1885 | else | ||
1886 | { | ||
1887 | SLOT->eg_sh_ar = 0; | ||
1888 | SLOT->eg_sel_ar = 13*RATE_STEPS; | ||
1889 | } | ||
1890 | SLOT->eg_sh_dr = eg_rate_shift [SLOT->dr + SLOT->ksr ]; | ||
1891 | SLOT->eg_sel_dr = eg_rate_select[SLOT->dr + SLOT->ksr ]; | ||
1892 | SLOT->eg_sh_rr = eg_rate_shift [SLOT->rr + SLOT->ksr ]; | ||
1893 | SLOT->eg_sel_rr = eg_rate_select[SLOT->rr + SLOT->ksr ]; | ||
1894 | |||
1895 | /* Calculate phase increment */ | ||
1896 | SLOT->Incr = CH->fc * SLOT->mul; | ||
1897 | |||
1898 | /* Total level */ | ||
1899 | SLOT->TLL = SLOT->TL + (CH->ksl_base >> SLOT->ksl); | ||
1900 | |||
1901 | /* Connect output */ | ||
1902 | SLOT->connect1 = SLOT->CON ? &OPL->output[0] : &OPL->phase_modulation; | ||
1903 | } | ||
1904 | } | ||
1905 | #if BUILD_Y8950 | ||
1906 | if ( (OPL->type & OPL_TYPE_ADPCM) && (OPL->deltat) ) | ||
1907 | { | ||
1908 | // We really should call the postlod function for the YM_DELTAT, but it's hard without registers | ||
1909 | // (see the way the YM2610 does it) | ||
1910 | //YM_DELTAT_postload(OPL->deltat, REGS); | ||
1911 | } | ||
1912 | #endif | ||
1913 | } | ||
1914 | |||
1915 | |||
1916 | static void OPLsave_state_channel(device_t *device, OPL_CH *CH) | ||
1917 | { | ||
1918 | } | ||
1919 | |||
1920 | |||
1921 | /* Register savestate for a virtual YM3812/YM3526Y8950 */ | ||
1922 | |||
1923 | static void OPL_save_state(FM_OPL *OPL, device_t *device) | ||
1924 | { | ||
1925 | } | ||
1926 | |||
1927 | |||
1928 | /* Create one of virtual YM3812/YM3526/Y8950 */ | ||
1929 | /* 'clock' is chip clock in Hz */ | ||
1930 | /* 'rate' is sampling rate */ | ||
1931 | static FM_OPL *OPLCreate(device_t *device, UINT32 clock, UINT32 rate, int type) | ||
1932 | { | ||
1933 | char *ptr; | ||
1934 | FM_OPL *OPL; | ||
1935 | int state_size; | ||
1936 | |||
1937 | if (OPL_LockTable(device) == -1) return NULL; | ||
1938 | |||
1939 | /* calculate OPL state size */ | ||
1940 | state_size = sizeof(FM_OPL); | ||
1941 | |||
1942 | #if BUILD_Y8950 | ||
1943 | if (type&OPL_TYPE_ADPCM) state_size+= sizeof(YM_DELTAT); | ||
1944 | #endif | ||
1945 | |||
1946 | /* allocate memory block */ | ||
1947 | ptr = malloc(state_size); | ||
1948 | |||
1949 | if(!ptr) | ||
1950 | return NULL; | ||
1951 | |||
1952 | memset(ptr, 0, state_size); | ||
1953 | |||
1954 | OPL = (FM_OPL *)ptr; | ||
1955 | |||
1956 | /* GCC behaves weirdly... check that it's not acting up */ | ||
1957 | |||
1958 | if((UINT32)OPL & 3 == 0) | ||
1959 | printf("OPL is word-aligned"); | ||
1960 | if((UINT32)(OPL->output) & 3 == 0) | ||
1961 | printf("output is word-aligned"); | ||
1962 | |||
1963 | ptr += sizeof(FM_OPL); | ||
1964 | |||
1965 | #if BUILD_Y8950 | ||
1966 | if (type&OPL_TYPE_ADPCM) | ||
1967 | { | ||
1968 | OPL->deltat = (YM_DELTAT *)ptr; | ||
1969 | } | ||
1970 | ptr += sizeof(YM_DELTAT); | ||
1971 | #endif | ||
1972 | |||
1973 | OPL->device = device; | ||
1974 | OPL->type = type; | ||
1975 | OPL->clock = clock; | ||
1976 | OPL->rate = rate; | ||
1977 | |||
1978 | /* init global tables */ | ||
1979 | OPL_initalize(OPL); | ||
1980 | |||
1981 | return OPL; | ||
1982 | } | ||
1983 | |||
1984 | /* Destroy one of virtual YM3812 */ | ||
1985 | static void OPLDestroy(FM_OPL *OPL) | ||
1986 | { | ||
1987 | OPL_UnLockTable(); | ||
1988 | free(OPL); | ||
1989 | } | ||
1990 | |||
1991 | /* Optional handlers */ | ||
1992 | |||
1993 | static void OPLSetTimerHandler(FM_OPL *OPL,OPL_TIMERHANDLER timer_handler,void *param) | ||
1994 | { | ||
1995 | OPL->timer_handler = timer_handler; | ||
1996 | OPL->TimerParam = param; | ||
1997 | } | ||
1998 | static void OPLSetIRQHandler(FM_OPL *OPL,OPL_IRQHANDLER IRQHandler,void *param) | ||
1999 | { | ||
2000 | OPL->IRQHandler = IRQHandler; | ||
2001 | OPL->IRQParam = param; | ||
2002 | } | ||
2003 | static void OPLSetUpdateHandler(FM_OPL *OPL,OPL_UPDATEHANDLER UpdateHandler,void *param) | ||
2004 | { | ||
2005 | OPL->UpdateHandler = UpdateHandler; | ||
2006 | OPL->UpdateParam = param; | ||
2007 | } | ||
2008 | |||
2009 | static int OPLWrite(FM_OPL *OPL,int a,int v) | ||
2010 | { | ||
2011 | if( !(a&1) ) | ||
2012 | { /* address port */ | ||
2013 | OPL->address = v & 0xff; | ||
2014 | } | ||
2015 | else | ||
2016 | { /* data port */ | ||
2017 | if(OPL->UpdateHandler) OPL->UpdateHandler(OPL->UpdateParam,0); | ||
2018 | OPLWriteReg(OPL,OPL->address,v); | ||
2019 | } | ||
2020 | return OPL->status>>7; | ||
2021 | } | ||
2022 | |||
2023 | static unsigned char OPLRead(FM_OPL *OPL,int a) | ||
2024 | { | ||
2025 | if( !(a&1) ) | ||
2026 | { | ||
2027 | /* status port */ | ||
2028 | |||
2029 | #if BUILD_Y8950 | ||
2030 | |||
2031 | if(OPL->type&OPL_TYPE_ADPCM) /* Y8950 */ | ||
2032 | { | ||
2033 | return (OPL->status & (OPL->statusmask|0x80)) | (OPL->deltat->PCM_BSY&1); | ||
2034 | } | ||
2035 | |||
2036 | #endif | ||
2037 | |||
2038 | /* OPL and OPL2 */ | ||
2039 | return OPL->status & (OPL->statusmask|0x80); | ||
2040 | } | ||
2041 | |||
2042 | #if BUILD_Y8950 | ||
2043 | /* data port */ | ||
2044 | switch(OPL->address) | ||
2045 | { | ||
2046 | case 0x05: /* KeyBoard IN */ | ||
2047 | if(OPL->type&OPL_TYPE_KEYBOARD) | ||
2048 | { | ||
2049 | if(OPL->keyboardhandler_r) | ||
2050 | return OPL->keyboardhandler_r(OPL->keyboard_param); | ||
2051 | else | ||
2052 | OPL->device->logerror("Y8950: read unmapped KEYBOARD port\n"); | ||
2053 | } | ||
2054 | return 0; | ||
2055 | |||
2056 | case 0x0f: /* ADPCM-DATA */ | ||
2057 | if(OPL->type&OPL_TYPE_ADPCM) | ||
2058 | { | ||
2059 | UINT8 val; | ||
2060 | |||
2061 | val = YM_DELTAT_ADPCM_Read(OPL->deltat); | ||
2062 | /*logerror("Y8950: read ADPCM value read=%02x\n",val);*/ | ||
2063 | return val; | ||
2064 | } | ||
2065 | return 0; | ||
2066 | |||
2067 | case 0x19: /* I/O DATA */ | ||
2068 | if(OPL->type&OPL_TYPE_IO) | ||
2069 | { | ||
2070 | if(OPL->porthandler_r) | ||
2071 | return OPL->porthandler_r(OPL->port_param); | ||
2072 | else | ||
2073 | OPL->device->logerror("Y8950:read unmapped I/O port\n"); | ||
2074 | } | ||
2075 | return 0; | ||
2076 | case 0x1a: /* PCM-DATA */ | ||
2077 | if(OPL->type&OPL_TYPE_ADPCM) | ||
2078 | { | ||
2079 | OPL->device->logerror("Y8950 A/D convertion is accessed but not implemented !\n"); | ||
2080 | return 0x80; /* 2's complement PCM data - result from A/D convertion */ | ||
2081 | } | ||
2082 | return 0; | ||
2083 | } | ||
2084 | #endif | ||
2085 | |||
2086 | return 0xff; | ||
2087 | } | ||
2088 | |||
2089 | /* CSM Key Controll */ | ||
2090 | static void CSMKeyControll(OPL_CH *CH) | ||
2091 | { | ||
2092 | FM_KEYON (&CH->SLOT[SLOT1], 4); | ||
2093 | FM_KEYON (&CH->SLOT[SLOT2], 4); | ||
2094 | |||
2095 | /* The key off should happen exactly one sample later - not implemented correctly yet */ | ||
2096 | |||
2097 | FM_KEYOFF(&CH->SLOT[SLOT1], ~4); | ||
2098 | FM_KEYOFF(&CH->SLOT[SLOT2], ~4); | ||
2099 | } | ||
2100 | |||
2101 | |||
2102 | static int OPLTimerOver(FM_OPL *OPL,int c) | ||
2103 | { | ||
2104 | if( c ) | ||
2105 | { /* Timer B */ | ||
2106 | OPL_STATUS_SET(OPL,0x20); | ||
2107 | } | ||
2108 | else | ||
2109 | { /* Timer A */ | ||
2110 | OPL_STATUS_SET(OPL,0x40); | ||
2111 | /* CSM mode key,TL controll */ | ||
2112 | if( OPL->mode & 0x80 ) | ||
2113 | { /* CSM mode total level latch and auto key on */ | ||
2114 | int ch; | ||
2115 | if(OPL->UpdateHandler) OPL->UpdateHandler(OPL->UpdateParam,0); | ||
2116 | for(ch=0; ch<9; ch++) | ||
2117 | CSMKeyControll( &OPL->P_CH[ch] ); | ||
2118 | } | ||
2119 | } | ||
2120 | /* reload timer */ | ||
2121 | if (OPL->timer_handler) (OPL->timer_handler)(c,OPL->TimerBase * OPL->T[c]); | ||
2122 | return OPL->status>>7; | ||
2123 | } | ||
2124 | |||
2125 | |||
2126 | #define MAX_OPL_CHIPS 2 | ||
2127 | |||
2128 | |||
2129 | #if (BUILD_YM3812) | ||
2130 | |||
2131 | void * YM3812Init(device_t *device, UINT32 clock, UINT32 rate) | ||
2132 | { | ||
2133 | /* emulator create */ | ||
2134 | FM_OPL *YM3812 = OPLCreate(device,clock,rate,OPL_TYPE_YM3812); | ||
2135 | if (YM3812) | ||
2136 | { | ||
2137 | OPL_save_state(YM3812, device); | ||
2138 | YM3812ResetChip(YM3812); | ||
2139 | } | ||
2140 | return YM3812; | ||
2141 | } | ||
2142 | |||
2143 | void YM3812Shutdown(void *chip) | ||
2144 | { | ||
2145 | FM_OPL *YM3812 = (FM_OPL *)chip; | ||
2146 | |||
2147 | /* emulator shutdown */ | ||
2148 | OPLDestroy(YM3812); | ||
2149 | } | ||
2150 | void YM3812ResetChip(void *chip) | ||
2151 | { | ||
2152 | FM_OPL *YM3812 = (FM_OPL *)chip; | ||
2153 | OPLResetChip(YM3812); | ||
2154 | } | ||
2155 | |||
2156 | int YM3812Write(void *chip, int a, int v) | ||
2157 | { | ||
2158 | FM_OPL *YM3812 = (FM_OPL *)chip; | ||
2159 | |||
2160 | OPLWriteReg(YM3812, a, v); | ||
2161 | return (YM3812->status>>7); | ||
2162 | |||
2163 | // technically correct, but breaks Wolf4SDL - FW19 | ||
2164 | //return OPLWrite(YM3812, a, v); | ||
2165 | } | ||
2166 | |||
2167 | unsigned char YM3812Read(void *chip, int a) | ||
2168 | { | ||
2169 | FM_OPL *YM3812 = (FM_OPL *)chip; | ||
2170 | /* YM3812 always returns bit2 and bit1 in HIGH state */ | ||
2171 | return OPLRead(YM3812, a) | 0x06 ; | ||
2172 | } | ||
2173 | int YM3812TimerOver(void *chip, int c) | ||
2174 | { | ||
2175 | FM_OPL *YM3812 = (FM_OPL *)chip; | ||
2176 | return OPLTimerOver(YM3812, c); | ||
2177 | } | ||
2178 | |||
2179 | void YM3812SetTimerHandler(void *chip, OPL_TIMERHANDLER timer_handler, void *param) | ||
2180 | { | ||
2181 | FM_OPL *YM3812 = (FM_OPL *)chip; | ||
2182 | OPLSetTimerHandler(YM3812, timer_handler, param); | ||
2183 | } | ||
2184 | void YM3812SetIRQHandler(void *chip,OPL_IRQHANDLER IRQHandler,void *param) | ||
2185 | { | ||
2186 | FM_OPL *YM3812 = (FM_OPL *)chip; | ||
2187 | OPLSetIRQHandler(YM3812, IRQHandler, param); | ||
2188 | } | ||
2189 | void YM3812SetUpdateHandler(void *chip,OPL_UPDATEHANDLER UpdateHandler,void *param) | ||
2190 | { | ||
2191 | FM_OPL *YM3812 = (FM_OPL *)chip; | ||
2192 | OPLSetUpdateHandler(YM3812, UpdateHandler, param); | ||
2193 | } | ||
2194 | |||
2195 | |||
2196 | /* | ||
2197 | ** Generate samples for one of the YM3812's | ||
2198 | ** | ||
2199 | ** 'which' is the virtual YM3812 number | ||
2200 | ** '*buffer' is the output buffer pointer | ||
2201 | ** 'length' is the number of samples that should be generated | ||
2202 | */ | ||
2203 | void YM3812UpdateOne(void *chip, OPLSAMPLE *buffer, int length) | ||
2204 | { | ||
2205 | FM_OPL *OPL = (FM_OPL *)chip; | ||
2206 | UINT8 rhythm = OPL->rhythm&0x20; | ||
2207 | OPLSAMPLE *buf = buffer; | ||
2208 | int i; | ||
2209 | |||
2210 | for( i=0; i < length ; i++ ) | ||
2211 | { | ||
2212 | int lt; | ||
2213 | |||
2214 | OPL->output[0] = 0; | ||
2215 | |||
2216 | advance_lfo(OPL); | ||
2217 | |||
2218 | /* FM part */ | ||
2219 | OPL_CALC_CH(OPL, &OPL->P_CH[0]); | ||
2220 | OPL_CALC_CH(OPL, &OPL->P_CH[1]); | ||
2221 | OPL_CALC_CH(OPL, &OPL->P_CH[2]); | ||
2222 | OPL_CALC_CH(OPL, &OPL->P_CH[3]); | ||
2223 | OPL_CALC_CH(OPL, &OPL->P_CH[4]); | ||
2224 | OPL_CALC_CH(OPL, &OPL->P_CH[5]); | ||
2225 | |||
2226 | if(!rhythm) | ||
2227 | { | ||
2228 | OPL_CALC_CH(OPL, &OPL->P_CH[6]); | ||
2229 | OPL_CALC_CH(OPL, &OPL->P_CH[7]); | ||
2230 | OPL_CALC_CH(OPL, &OPL->P_CH[8]); | ||
2231 | } | ||
2232 | else /* Rhythm part */ | ||
2233 | { | ||
2234 | OPL_CALC_RH(OPL, &OPL->P_CH[0], (OPL->noise_rng>>0)&1 ); | ||
2235 | } | ||
2236 | |||
2237 | lt = OPL->output[0]; | ||
2238 | |||
2239 | //lt >>= FINAL_SH; | ||
2240 | lt <<= 2; | ||
2241 | |||
2242 | /* limit check */ | ||
2243 | lt = limit( lt , MAXOUT, MINOUT ); | ||
2244 | |||
2245 | #ifdef SAVE_SAMPLE | ||
2246 | if (which==0) | ||
2247 | { | ||
2248 | SAVE_ALL_CHANNELS | ||
2249 | } | ||
2250 | #endif | ||
2251 | |||
2252 | /* store to sound buffer */ | ||
2253 | //buf[i] = lt; | ||
2254 | |||
2255 | buf[i*2] = lt; // stereo version | ||
2256 | buf[i*2+1] = lt; | ||
2257 | |||
2258 | advance(OPL); | ||
2259 | } | ||
2260 | } | ||
2261 | #endif /* BUILD_YM3812 */ | ||
2262 | |||
2263 | // Rockbox: we don't care about the rest. | ||
2264 | |||
2265 | #if (BUILD_YM3526) | ||
2266 | |||
2267 | void *ym3526_init(device_t *device, UINT32 clock, UINT32 rate) | ||
2268 | { | ||
2269 | /* emulator create */ | ||
2270 | FM_OPL *YM3526 = OPLCreate(device,clock,rate,OPL_TYPE_YM3526); | ||
2271 | if (YM3526) | ||
2272 | { | ||
2273 | OPL_save_state(YM3526, device); | ||
2274 | ym3526_reset_chip(YM3526); | ||
2275 | } | ||
2276 | return YM3526; | ||
2277 | } | ||
2278 | |||
2279 | void ym3526_shutdown(void *chip) | ||
2280 | { | ||
2281 | FM_OPL *YM3526 = (FM_OPL *)chip; | ||
2282 | /* emulator shutdown */ | ||
2283 | OPLDestroy(YM3526); | ||
2284 | } | ||
2285 | void ym3526_reset_chip(void *chip) | ||
2286 | { | ||
2287 | FM_OPL *YM3526 = (FM_OPL *)chip; | ||
2288 | OPLResetChip(YM3526); | ||
2289 | } | ||
2290 | |||
2291 | int ym3526_write(void *chip, int a, int v) | ||
2292 | { | ||
2293 | FM_OPL *YM3526 = (FM_OPL *)chip; | ||
2294 | return OPLWrite(YM3526, a, v); | ||
2295 | } | ||
2296 | |||
2297 | unsigned char ym3526_read(void *chip, int a) | ||
2298 | { | ||
2299 | FM_OPL *YM3526 = (FM_OPL *)chip; | ||
2300 | /* YM3526 always returns bit2 and bit1 in HIGH state */ | ||
2301 | return OPLRead(YM3526, a) | 0x06 ; | ||
2302 | } | ||
2303 | int ym3526_timer_over(void *chip, int c) | ||
2304 | { | ||
2305 | FM_OPL *YM3526 = (FM_OPL *)chip; | ||
2306 | return OPLTimerOver(YM3526, c); | ||
2307 | } | ||
2308 | |||
2309 | void ym3526_set_timer_handler(void *chip, OPL_TIMERHANDLER timer_handler, void *param) | ||
2310 | { | ||
2311 | FM_OPL *YM3526 = (FM_OPL *)chip; | ||
2312 | OPLSetTimerHandler(YM3526, timer_handler, param); | ||
2313 | } | ||
2314 | void ym3526_set_irq_handler(void *chip,OPL_IRQHANDLER IRQHandler,void *param) | ||
2315 | { | ||
2316 | FM_OPL *YM3526 = (FM_OPL *)chip; | ||
2317 | OPLSetIRQHandler(YM3526, IRQHandler, param); | ||
2318 | } | ||
2319 | void ym3526_set_update_handler(void *chip,OPL_UPDATEHANDLER UpdateHandler,void *param) | ||
2320 | { | ||
2321 | FM_OPL *YM3526 = (FM_OPL *)chip; | ||
2322 | OPLSetUpdateHandler(YM3526, UpdateHandler, param); | ||
2323 | } | ||
2324 | |||
2325 | |||
2326 | /* | ||
2327 | ** Generate samples for one of the YM3526's | ||
2328 | ** | ||
2329 | ** 'which' is the virtual YM3526 number | ||
2330 | ** '*buffer' is the output buffer pointer | ||
2331 | ** 'length' is the number of samples that should be generated | ||
2332 | */ | ||
2333 | void ym3526_update_one(void *chip, OPLSAMPLE *buffer, int length) | ||
2334 | { | ||
2335 | FM_OPL *OPL = (FM_OPL *)chip; | ||
2336 | UINT8 rhythm = OPL->rhythm&0x20; | ||
2337 | OPLSAMPLE *buf = buffer; | ||
2338 | int i; | ||
2339 | |||
2340 | for( i=0; i < length ; i++ ) | ||
2341 | { | ||
2342 | int lt; | ||
2343 | |||
2344 | OPL->output[0] = 0; | ||
2345 | |||
2346 | advance_lfo(OPL); | ||
2347 | |||
2348 | /* FM part */ | ||
2349 | OPL_CALC_CH(OPL, &OPL->P_CH[0]); | ||
2350 | OPL_CALC_CH(OPL, &OPL->P_CH[1]); | ||
2351 | OPL_CALC_CH(OPL, &OPL->P_CH[2]); | ||
2352 | OPL_CALC_CH(OPL, &OPL->P_CH[3]); | ||
2353 | OPL_CALC_CH(OPL, &OPL->P_CH[4]); | ||
2354 | OPL_CALC_CH(OPL, &OPL->P_CH[5]); | ||
2355 | |||
2356 | if(!rhythm) | ||
2357 | { | ||
2358 | OPL_CALC_CH(OPL, &OPL->P_CH[6]); | ||
2359 | OPL_CALC_CH(OPL, &OPL->P_CH[7]); | ||
2360 | OPL_CALC_CH(OPL, &OPL->P_CH[8]); | ||
2361 | } | ||
2362 | else /* Rhythm part */ | ||
2363 | { | ||
2364 | OPL_CALC_RH(OPL, &OPL->P_CH[0], (OPL->noise_rng>>0)&1 ); | ||
2365 | } | ||
2366 | |||
2367 | lt = OPL->output[0]; | ||
2368 | |||
2369 | lt >>= FINAL_SH; | ||
2370 | |||
2371 | /* limit check */ | ||
2372 | lt = limit( lt , MAXOUT, MINOUT ); | ||
2373 | |||
2374 | #ifdef SAVE_SAMPLE | ||
2375 | if (which==0) | ||
2376 | { | ||
2377 | SAVE_ALL_CHANNELS | ||
2378 | } | ||
2379 | #endif | ||
2380 | |||
2381 | /* store to sound buffer */ | ||
2382 | buf[i] = lt; | ||
2383 | |||
2384 | advance(OPL); | ||
2385 | } | ||
2386 | |||
2387 | } | ||
2388 | #endif /* BUILD_YM3526 */ | ||
2389 | |||
2390 | |||
2391 | |||
2392 | |||
2393 | #if BUILD_Y8950 | ||
2394 | |||
2395 | static void Y8950_deltat_status_set(void *chip, UINT8 changebits) | ||
2396 | { | ||
2397 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2398 | OPL_STATUS_SET(Y8950, changebits); | ||
2399 | } | ||
2400 | static void Y8950_deltat_status_reset(void *chip, UINT8 changebits) | ||
2401 | { | ||
2402 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2403 | OPL_STATUS_RESET(Y8950, changebits); | ||
2404 | } | ||
2405 | |||
2406 | void *y8950_init(device_t *device, UINT32 clock, UINT32 rate) | ||
2407 | { | ||
2408 | /* emulator create */ | ||
2409 | FM_OPL *Y8950 = OPLCreate(device,clock,rate,OPL_TYPE_Y8950); | ||
2410 | if (Y8950) | ||
2411 | { | ||
2412 | Y8950->deltat->status_set_handler = Y8950_deltat_status_set; | ||
2413 | Y8950->deltat->status_reset_handler = Y8950_deltat_status_reset; | ||
2414 | Y8950->deltat->status_change_which_chip = Y8950; | ||
2415 | Y8950->deltat->status_change_EOS_bit = 0x10; /* status flag: set bit4 on End Of Sample */ | ||
2416 | Y8950->deltat->status_change_BRDY_bit = 0x08; /* status flag: set bit3 on BRDY (End Of: ADPCM analysis/synthesis, memory reading/writing) */ | ||
2417 | |||
2418 | /*Y8950->deltat->write_time = 10.0 / clock;*/ /* a single byte write takes 10 cycles of main clock */ | ||
2419 | /*Y8950->deltat->read_time = 8.0 / clock;*/ /* a single byte read takes 8 cycles of main clock */ | ||
2420 | /* reset */ | ||
2421 | OPL_save_state(Y8950, device); | ||
2422 | y8950_reset_chip(Y8950); | ||
2423 | } | ||
2424 | |||
2425 | return Y8950; | ||
2426 | } | ||
2427 | |||
2428 | void y8950_shutdown(void *chip) | ||
2429 | { | ||
2430 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2431 | /* emulator shutdown */ | ||
2432 | OPLDestroy(Y8950); | ||
2433 | } | ||
2434 | void y8950_reset_chip(void *chip) | ||
2435 | { | ||
2436 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2437 | OPLResetChip(Y8950); | ||
2438 | } | ||
2439 | |||
2440 | int y8950_write(void *chip, int a, int v) | ||
2441 | { | ||
2442 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2443 | return OPLWrite(Y8950, a, v); | ||
2444 | } | ||
2445 | |||
2446 | unsigned char y8950_read(void *chip, int a) | ||
2447 | { | ||
2448 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2449 | return OPLRead(Y8950, a); | ||
2450 | } | ||
2451 | int y8950_timer_over(void *chip, int c) | ||
2452 | { | ||
2453 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2454 | return OPLTimerOver(Y8950, c); | ||
2455 | } | ||
2456 | |||
2457 | void y8950_set_timer_handler(void *chip, OPL_TIMERHANDLER timer_handler, void *param) | ||
2458 | { | ||
2459 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2460 | OPLSetTimerHandler(Y8950, timer_handler, param); | ||
2461 | } | ||
2462 | void y8950_set_irq_handler(void *chip,OPL_IRQHANDLER IRQHandler,void *param) | ||
2463 | { | ||
2464 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2465 | OPLSetIRQHandler(Y8950, IRQHandler, param); | ||
2466 | } | ||
2467 | void y8950_set_update_handler(void *chip,OPL_UPDATEHANDLER UpdateHandler,void *param) | ||
2468 | { | ||
2469 | FM_OPL *Y8950 = (FM_OPL *)chip; | ||
2470 | OPLSetUpdateHandler(Y8950, UpdateHandler, param); | ||
2471 | } | ||
2472 | |||
2473 | void y8950_set_delta_t_memory(void *chip, void * deltat_mem_ptr, int deltat_mem_size ) | ||
2474 | { | ||
2475 | FM_OPL *OPL = (FM_OPL *)chip; | ||
2476 | OPL->deltat->memory = (UINT8 *)(deltat_mem_ptr); | ||
2477 | OPL->deltat->memory_size = deltat_mem_size; | ||
2478 | } | ||
2479 | |||
2480 | /* | ||
2481 | ** Generate samples for one of the Y8950's | ||
2482 | ** | ||
2483 | ** 'which' is the virtual Y8950 number | ||
2484 | ** '*buffer' is the output buffer pointer | ||
2485 | ** 'length' is the number of samples that should be generated | ||
2486 | */ | ||
2487 | void y8950_update_one(void *chip, OPLSAMPLE *buffer, int length) | ||
2488 | { | ||
2489 | int i; | ||
2490 | FM_OPL *OPL = (FM_OPL *)chip; | ||
2491 | UINT8 rhythm = OPL->rhythm&0x20; | ||
2492 | YM_DELTAT *DELTAT = OPL->deltat; | ||
2493 | OPLSAMPLE *buf = buffer; | ||
2494 | |||
2495 | for( i=0; i < length ; i++ ) | ||
2496 | { | ||
2497 | int lt; | ||
2498 | |||
2499 | OPL->output[0] = 0; | ||
2500 | OPL->output_deltat[0] = 0; | ||
2501 | |||
2502 | advance_lfo(OPL); | ||
2503 | |||
2504 | /* deltaT ADPCM */ | ||
2505 | if( DELTAT->portstate&0x80 ) | ||
2506 | YM_DELTAT_ADPCM_CALC(DELTAT); | ||
2507 | |||
2508 | /* FM part */ | ||
2509 | OPL_CALC_CH(OPL, &OPL->P_CH[0]); | ||
2510 | OPL_CALC_CH(OPL, &OPL->P_CH[1]); | ||
2511 | OPL_CALC_CH(OPL, &OPL->P_CH[2]); | ||
2512 | OPL_CALC_CH(OPL, &OPL->P_CH[3]); | ||
2513 | OPL_CALC_CH(OPL, &OPL->P_CH[4]); | ||
2514 | OPL_CALC_CH(OPL, &OPL->P_CH[5]); | ||
2515 | |||
2516 | if(!rhythm) | ||
2517 | { | ||
2518 | OPL_CALC_CH(OPL, &OPL->P_CH[6]); | ||
2519 | OPL_CALC_CH(OPL, &OPL->P_CH[7]); | ||
2520 | OPL_CALC_CH(OPL, &OPL->P_CH[8]); | ||
2521 | } | ||
2522 | else /* Rhythm part */ | ||
2523 | { | ||
2524 | OPL_CALC_RH(OPL, &OPL->P_CH[0], (OPL->noise_rng>>0)&1 ); | ||
2525 | } | ||
2526 | |||
2527 | lt = OPL->output[0] + (OPL->output_deltat[0]>>11); | ||
2528 | |||
2529 | lt >>= FINAL_SH; | ||
2530 | |||
2531 | /* limit check */ | ||
2532 | lt = limit( lt , MAXOUT, MINOUT ); | ||
2533 | |||
2534 | #ifdef SAVE_SAMPLE | ||
2535 | if (which==0) | ||
2536 | { | ||
2537 | SAVE_ALL_CHANNELS | ||
2538 | } | ||
2539 | #endif | ||
2540 | |||
2541 | /* store to sound buffer */ | ||
2542 | buf[i] = lt; | ||
2543 | |||
2544 | advance(OPL); | ||
2545 | } | ||
2546 | |||
2547 | } | ||
2548 | |||
2549 | void y8950_set_port_handler(void *chip,OPL_PORTHANDLER_W PortHandler_w,OPL_PORTHANDLER_R PortHandler_r,void * param) | ||
2550 | { | ||
2551 | FM_OPL *OPL = (FM_OPL *)chip; | ||
2552 | OPL->porthandler_w = PortHandler_w; | ||
2553 | OPL->porthandler_r = PortHandler_r; | ||
2554 | OPL->port_param = param; | ||
2555 | } | ||
2556 | |||
2557 | void y8950_set_keyboard_handler(void *chip,OPL_PORTHANDLER_W KeyboardHandler_w,OPL_PORTHANDLER_R KeyboardHandler_r,void * param) | ||
2558 | { | ||
2559 | FM_OPL *OPL = (FM_OPL *)chip; | ||
2560 | OPL->keyboardhandler_w = KeyboardHandler_w; | ||
2561 | OPL->keyboardhandler_r = KeyboardHandler_r; | ||
2562 | OPL->keyboard_param = param; | ||
2563 | } | ||
2564 | |||
2565 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/fmopl_gpl.h b/apps/plugins/sdl/progs/wolf3d/fmopl_gpl.h new file mode 100644 index 0000000000..c340a17a7d --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/fmopl_gpl.h | |||
@@ -0,0 +1,117 @@ | |||
1 | #ifndef __FMOPL_H_ | ||
2 | #define __FMOPL_H_ | ||
3 | |||
4 | #include "wl_def.h" | ||
5 | |||
6 | #define HAS_YM3812 1 | ||
7 | |||
8 | /* --- select emulation chips --- */ | ||
9 | #define BUILD_YM3812 (HAS_YM3812) | ||
10 | #define BUILD_YM3526 (HAS_YM3526) | ||
11 | #define BUILD_Y8950 (HAS_Y8950) | ||
12 | |||
13 | /* select output bits size of output : 8 or 16 */ | ||
14 | #define OPL_SAMPLE_BITS 16 | ||
15 | |||
16 | /* compiler dependence */ | ||
17 | #ifndef OSD_CPU_H | ||
18 | #define OSD_CPU_H | ||
19 | typedef unsigned char UINT8; /* unsigned 8bit */ | ||
20 | typedef unsigned short UINT16; /* unsigned 16bit */ | ||
21 | typedef unsigned int UINT32; /* unsigned 32bit */ | ||
22 | typedef signed char INT8; /* signed 8bit */ | ||
23 | typedef signed short INT16; /* signed 16bit */ | ||
24 | typedef signed int INT32; /* signed 32bit */ | ||
25 | #endif | ||
26 | |||
27 | #if (OPL_SAMPLE_BITS==16) | ||
28 | typedef INT16 OPLSAMPLE; | ||
29 | #endif | ||
30 | #if (OPL_SAMPLE_BITS==8) | ||
31 | typedef INT8 OPLSAMPLE; | ||
32 | #endif | ||
33 | |||
34 | |||
35 | typedef void (*OPL_TIMERHANDLER)(int channel,double interval_Sec); | ||
36 | typedef void (*OPL_IRQHANDLER)(int param,int irq); | ||
37 | typedef void (*OPL_UPDATEHANDLER)(int param,int min_interval_us); | ||
38 | typedef void (*OPL_PORTHANDLER_W)(int param,unsigned char data); | ||
39 | typedef unsigned char (*OPL_PORTHANDLER_R)(int param); | ||
40 | |||
41 | |||
42 | #if BUILD_YM3812 | ||
43 | |||
44 | |||
45 | typedef void device_t; | ||
46 | void *YM3812Init(device_t *junk, UINT32 clock, UINT32 rate); | ||
47 | void YM3812Shutdown(void *chip); | ||
48 | void YM3812ResetChip(void *chip); | ||
49 | int YM3812Write(void *chip, int a, int v); | ||
50 | unsigned char YM3812Read(void *chip, int a); | ||
51 | void YM3812Mute(void *chip,int channel,bool mute); | ||
52 | int YM3812TimerOver(void *chip, int c); | ||
53 | void YM3812UpdateOne(void *chip, INT16 *buffer, int length); | ||
54 | |||
55 | // not used | ||
56 | //void YM3812SetTimerHandler(void *chip, OPL_TIMERHANDLER TimerHandler, int channelOffset); | ||
57 | //void YM3812SetIRQHandler(void *chip, OPL_IRQHANDLER IRQHandler, int param); | ||
58 | //void YM3812SetUpdateHandler(void *chip, OPL_UPDATEHANDLER UpdateHandler, int param); | ||
59 | |||
60 | #endif | ||
61 | |||
62 | |||
63 | #if BUILD_YM3526 | ||
64 | |||
65 | /* | ||
66 | ** Initialize YM3526 emulator(s). | ||
67 | ** | ||
68 | ** 'num' is the number of virtual YM3526's to allocate | ||
69 | ** 'clock' is the chip clock in Hz | ||
70 | ** 'rate' is sampling rate | ||
71 | */ | ||
72 | int YM3526Init(int num, int clock, int rate); | ||
73 | /* shutdown the YM3526 emulators*/ | ||
74 | void YM3526Shutdown(void); | ||
75 | void YM3526ResetChip(int which); | ||
76 | int YM3526Write(int which, int a, int v); | ||
77 | unsigned char YM3526Read(int which, int a); | ||
78 | int YM3526TimerOver(int which, int c); | ||
79 | /* | ||
80 | ** Generate samples for one of the YM3526's | ||
81 | ** | ||
82 | ** 'which' is the virtual YM3526 number | ||
83 | ** '*buffer' is the output buffer pointer | ||
84 | ** 'length' is the number of samples that should be generated | ||
85 | */ | ||
86 | void YM3526UpdateOne(int which, INT16 *buffer, int length); | ||
87 | |||
88 | void YM3526SetTimerHandler(int which, OPL_TIMERHANDLER TimerHandler, int channelOffset); | ||
89 | void YM3526SetIRQHandler(int which, OPL_IRQHANDLER IRQHandler, int param); | ||
90 | void YM3526SetUpdateHandler(int which, OPL_UPDATEHANDLER UpdateHandler, int param); | ||
91 | |||
92 | #endif | ||
93 | |||
94 | |||
95 | #if BUILD_Y8950 | ||
96 | |||
97 | /* Y8950 port handlers */ | ||
98 | void Y8950SetPortHandler(int which, OPL_PORTHANDLER_W PortHandler_w, OPL_PORTHANDLER_R PortHandler_r, int param); | ||
99 | void Y8950SetKeyboardHandler(int which, OPL_PORTHANDLER_W KeyboardHandler_w, OPL_PORTHANDLER_R KeyboardHandler_r, int param); | ||
100 | void Y8950SetDeltaTMemory(int which, void * deltat_mem_ptr, int deltat_mem_size ); | ||
101 | |||
102 | int Y8950Init (int num, int clock, int rate); | ||
103 | void Y8950Shutdown (void); | ||
104 | void Y8950ResetChip (int which); | ||
105 | int Y8950Write (int which, int a, int v); | ||
106 | unsigned char Y8950Read (int which, int a); | ||
107 | int Y8950TimerOver (int which, int c); | ||
108 | void Y8950UpdateOne (int which, INT16 *buffer, int length); | ||
109 | |||
110 | void Y8950SetTimerHandler (int which, OPL_TIMERHANDLER TimerHandler, int channelOffset); | ||
111 | void Y8950SetIRQHandler (int which, OPL_IRQHANDLER IRQHandler, int param); | ||
112 | void Y8950SetUpdateHandler (int which, OPL_UPDATEHANDLER UpdateHandler, int param); | ||
113 | |||
114 | #endif | ||
115 | |||
116 | |||
117 | #endif /* __FMOPL_H_ */ | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/foreign.h b/apps/plugins/sdl/progs/wolf3d/foreign.h new file mode 100644 index 0000000000..b0f2f2197f --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/foreign.h | |||
@@ -0,0 +1,131 @@ | |||
1 | #define QUITSUR "Are you sure you want\n"\ | ||
2 | "to quit this great game?" | ||
3 | |||
4 | #define CURGAME "You are currently in\n"\ | ||
5 | "a game. Continuing will\n"\ | ||
6 | "erase old game. Ok?" | ||
7 | |||
8 | #define GAMESVD "There's already a game\n"\ | ||
9 | "saved at this position.\n"\ | ||
10 | " Overwrite?" | ||
11 | |||
12 | #define ENDGAMESTR "Are you sure you want\n"\ | ||
13 | "to end the game you\n"\ | ||
14 | "are playing? (Y or N):" | ||
15 | |||
16 | #define STR_NG "New Game" | ||
17 | #define STR_SD "Sound" | ||
18 | #define STR_CL "Control" | ||
19 | #define STR_LG "Load Game" | ||
20 | #define STR_SG "Save Game" | ||
21 | #define STR_CV "Change View" | ||
22 | #define STR_VS "View Scores" | ||
23 | #define STR_EG "End Game" | ||
24 | #define STR_BD "Back to Demo" | ||
25 | #define STR_QT "Quit" | ||
26 | |||
27 | #define STR_LOADING "Loading" | ||
28 | #define STR_SAVING "Saving" | ||
29 | |||
30 | #define STR_GAME "Game" | ||
31 | #define STR_DEMO "Demo" | ||
32 | #define STR_LGC "Load Game called\n\"" | ||
33 | #define STR_EMPTY "empty" | ||
34 | #define STR_CALIB "Calibrate" | ||
35 | #define STR_JOYST "Joystick" | ||
36 | #define STR_MOVEJOY "Move joystick to\nupper left and\npress button 0\n" | ||
37 | #define STR_MOVEJOY2 "Move joystick to\nlower right and\npress button 1\n" | ||
38 | #define STR_ESCEXIT "ESC to exit" | ||
39 | |||
40 | #define STR_NONE "None" | ||
41 | #define STR_PC "PC Speaker" | ||
42 | #define STR_ALSB "AdLib/Sound Blaster" | ||
43 | #define STR_DISNEY "Disney Sound Source" | ||
44 | #define STR_SB "Sound Blaster" | ||
45 | |||
46 | #define STR_MOUSEEN "Mouse Enabled" | ||
47 | #define STR_JOYEN "Joystick Enabled" | ||
48 | #define STR_PORT2 "Use joystick port 2" | ||
49 | #define STR_GAMEPAD "Gravis GamePad Enabled" | ||
50 | #define STR_SENS "Mouse Sensitivity" | ||
51 | #define STR_CUSTOM "Customize controls" | ||
52 | |||
53 | #define STR_DADDY "Can I play, Daddy?" | ||
54 | #define STR_HURTME "Don't hurt me." | ||
55 | #define STR_BRINGEM "Bring 'em on!" | ||
56 | #define STR_DEATH "I am Death incarnate!" | ||
57 | |||
58 | #define STR_MOUSEADJ "Adjust Mouse Sensitivity" | ||
59 | #define STR_SLOW "Slow" | ||
60 | #define STR_FAST "Fast" | ||
61 | |||
62 | #define STR_CRUN "Run" | ||
63 | #define STR_COPEN "Open" | ||
64 | #define STR_CFIRE "Fire" | ||
65 | #define STR_CSTRAFE "Strafe" | ||
66 | |||
67 | #define STR_LEFT "Left" | ||
68 | #define STR_RIGHT "Right" | ||
69 | #define STR_FRWD "Frwd" | ||
70 | #define STR_BKWD "Bkwrd" | ||
71 | #define STR_THINK "Thinking" | ||
72 | |||
73 | #define STR_SIZE1 "Use arrows to size" | ||
74 | #define STR_SIZE2 "ENTER to accept" | ||
75 | #define STR_SIZE3 "ESC to cancel" | ||
76 | |||
77 | #define STR_YOUWIN "you win!" | ||
78 | |||
79 | #define STR_TOTALTIME "total time" | ||
80 | |||
81 | #define STR_RATKILL "kill %" | ||
82 | #define STR_RATSECRET "secret %" | ||
83 | #define STR_RATTREASURE "treasure %" | ||
84 | |||
85 | #define STR_BONUS "bonus" | ||
86 | #define STR_TIME "time" | ||
87 | #define STR_PAR " par" | ||
88 | |||
89 | #define STR_RAT2KILL "kill ratio %" | ||
90 | #define STR_RAT2SECRET "secret ratio %" | ||
91 | #define STR_RAT2TREASURE "treasure ratio %" | ||
92 | |||
93 | #define STR_DEFEATED "defeated!" | ||
94 | |||
95 | #define STR_CHEATER1 "You now have 100% Health," | ||
96 | #define STR_CHEATER2 "99 Ammo and both Keys!" | ||
97 | #define STR_CHEATER3 "Note that you have basically" | ||
98 | #define STR_CHEATER4 "eliminated your chances of" | ||
99 | #define STR_CHEATER5 "getting a high score!" | ||
100 | |||
101 | #define STR_NOSPACE1 "There is not enough space" | ||
102 | #define STR_NOSPACE2 "on your disk to Save Game!" | ||
103 | |||
104 | #define STR_SAVECHT1 "Your Save Game file is," | ||
105 | #define STR_SAVECHT2 "shall we say, \"corrupted\"." | ||
106 | #define STR_SAVECHT3 "But I'll let you go on and" | ||
107 | #define STR_SAVECHT4 "play anyway...." | ||
108 | |||
109 | #define STR_SEEAGAIN "Let's see that again!" | ||
110 | |||
111 | #ifdef SPEAR | ||
112 | #define ENDSTR1 "Heroes don't quit, but\ngo ahead and press " YESBUTTONNAME "\nif you aren't one." | ||
113 | #define ENDSTR2 "Press " YESBUTTONNAME " to quit,\nor press " NOBUTTONNAME " to enjoy\nmore violent diversion." | ||
114 | #define ENDSTR3 "Depressing the " YESBUTTONNAME " key means\nyou must return to the\nhumdrum workday world." | ||
115 | #define ENDSTR4 "Hey, quit or play,\n" YESBUTTONNAME " or " NOBUTTONNAME ":\nit's your choice." | ||
116 | #define ENDSTR5 "Sure you don't want to\nwaste a few more\nproductive hours?" | ||
117 | #define ENDSTR6 "I think you had better\nplay some more. Please\npress " NOBUTTONNAME "...please?" | ||
118 | #define ENDSTR7 "If you are tough, press " NOBUTTONNAME ".\nIf not, press " YESBUTTONNAME " daintily." | ||
119 | #define ENDSTR8 "I'm thinkin' that\nyou might wanna press " NOBUTTONNAME "\nto play more. You do it." | ||
120 | #define ENDSTR9 "Sure. Fine. Quit.\nSee if we care.\nGet it over with.\nPress " YESBUTTONNAME "." | ||
121 | #else | ||
122 | #define ENDSTR1 "Dost thou wish to\nleave with such hasty\nabandon?" | ||
123 | #define ENDSTR2 "Chickening out...\nalready?" | ||
124 | #define ENDSTR3 "Press " NOBUTTONNAME " for more carnage.\nPress " YESBUTTONNAME " to be a weenie." | ||
125 | #define ENDSTR4 "So, you think you can\nquit this easily, huh?" | ||
126 | #define ENDSTR5 "Press " NOBUTTONNAME " to save the world.\nPress " YESBUTTONNAME " to abandon it in\nits hour of need." | ||
127 | #define ENDSTR6 "Press " NOBUTTONNAME " if you are brave.\nPress " YESBUTTONNAME " to cower in shame." | ||
128 | #define ENDSTR7 "Heroes, press " NOBUTTONNAME ".\nWimps, press " YESBUTTONNAME "." | ||
129 | #define ENDSTR8 "You are at an intersection.\nA sign says, 'Press " YESBUTTONNAME " to quit.'\n>" | ||
130 | #define ENDSTR9 "For guns and glory, press " NOBUTTONNAME ".\nFor work and worry, press " YESBUTTONNAME "." | ||
131 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/gfxv_apo.h b/apps/plugins/sdl/progs/wolf3d/gfxv_apo.h new file mode 100644 index 0000000000..7352f88e6e --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/gfxv_apo.h | |||
@@ -0,0 +1,244 @@ | |||
1 | ////////////////////////////////////// | ||
2 | // | ||
3 | // Graphics .H file for Apogee v1.4 | ||
4 | // IGRAB-ed on Sun May 03 01:19:32 1992 | ||
5 | // | ||
6 | ////////////////////////////////////// | ||
7 | |||
8 | typedef enum { | ||
9 | // Lump Start | ||
10 | H_BJPIC=3, | ||
11 | H_CASTLEPIC, // 4 | ||
12 | H_KEYBOARDPIC, // 5 | ||
13 | H_JOYPIC, // 6 | ||
14 | H_HEALPIC, // 7 | ||
15 | H_TREASUREPIC, // 8 | ||
16 | H_GUNPIC, // 9 | ||
17 | H_KEYPIC, // 10 | ||
18 | H_BLAZEPIC, // 11 | ||
19 | H_WEAPON1234PIC, // 12 | ||
20 | H_WOLFLOGOPIC, // 13 | ||
21 | H_VISAPIC, // 14 | ||
22 | H_MCPIC, // 15 | ||
23 | H_IDLOGOPIC, // 16 | ||
24 | H_TOPWINDOWPIC, // 17 | ||
25 | H_LEFTWINDOWPIC, // 18 | ||
26 | H_RIGHTWINDOWPIC, // 19 | ||
27 | H_BOTTOMINFOPIC, // 20 | ||
28 | #if !defined(APOGEE_1_0) && !defined(APOGEE_1_1) && !defined(APOGEE_1_2) | ||
29 | H_SPEARADPIC, // 21 | ||
30 | #endif | ||
31 | // Lump Start | ||
32 | C_OPTIONSPIC, // 22 | ||
33 | C_CURSOR1PIC, // 23 | ||
34 | C_CURSOR2PIC, // 24 | ||
35 | C_NOTSELECTEDPIC, // 25 | ||
36 | C_SELECTEDPIC, // 26 | ||
37 | C_FXTITLEPIC, // 27 | ||
38 | C_DIGITITLEPIC, // 28 | ||
39 | C_MUSICTITLEPIC, // 29 | ||
40 | C_MOUSELBACKPIC, // 30 | ||
41 | C_BABYMODEPIC, // 31 | ||
42 | C_EASYPIC, // 32 | ||
43 | C_NORMALPIC, // 33 | ||
44 | C_HARDPIC, // 34 | ||
45 | C_LOADSAVEDISKPIC, // 35 | ||
46 | C_DISKLOADING1PIC, // 36 | ||
47 | C_DISKLOADING2PIC, // 37 | ||
48 | C_CONTROLPIC, // 38 | ||
49 | C_CUSTOMIZEPIC, // 39 | ||
50 | C_LOADGAMEPIC, // 40 | ||
51 | C_SAVEGAMEPIC, // 41 | ||
52 | C_EPISODE1PIC, // 42 | ||
53 | C_EPISODE2PIC, // 43 | ||
54 | C_EPISODE3PIC, // 44 | ||
55 | C_EPISODE4PIC, // 45 | ||
56 | C_EPISODE5PIC, // 46 | ||
57 | C_EPISODE6PIC, // 47 | ||
58 | C_CODEPIC, // 48 | ||
59 | #ifndef APOGEE_1_0 | ||
60 | C_TIMECODEPIC, // 49 | ||
61 | C_LEVELPIC, // 50 | ||
62 | C_NAMEPIC, // 51 | ||
63 | C_SCOREPIC, // 52 | ||
64 | #if !defined(APOGEE_1_1) && !defined(APOGEE_1_2) | ||
65 | C_JOY1PIC, // 53 | ||
66 | C_JOY2PIC, // 54 | ||
67 | #endif | ||
68 | #else | ||
69 | C_TIMECODEPIC=C_CODEPIC, // 47 | ||
70 | #endif | ||
71 | // Lump Start | ||
72 | L_GUYPIC, // 55 | ||
73 | L_COLONPIC, // 56 | ||
74 | L_NUM0PIC, // 57 | ||
75 | L_NUM1PIC, // 58 | ||
76 | L_NUM2PIC, // 59 | ||
77 | L_NUM3PIC, // 60 | ||
78 | L_NUM4PIC, // 61 | ||
79 | L_NUM5PIC, // 62 | ||
80 | L_NUM6PIC, // 63 | ||
81 | L_NUM7PIC, // 64 | ||
82 | L_NUM8PIC, // 65 | ||
83 | L_NUM9PIC, // 66 | ||
84 | L_PERCENTPIC, // 67 | ||
85 | L_APIC, // 68 | ||
86 | L_BPIC, // 69 | ||
87 | L_CPIC, // 70 | ||
88 | L_DPIC, // 71 | ||
89 | L_EPIC, // 72 | ||
90 | L_FPIC, // 73 | ||
91 | L_GPIC, // 74 | ||
92 | L_HPIC, // 75 | ||
93 | L_IPIC, // 76 | ||
94 | L_JPIC, // 77 | ||
95 | L_KPIC, // 78 | ||
96 | L_LPIC, // 79 | ||
97 | L_MPIC, // 80 | ||
98 | L_NPIC, // 81 | ||
99 | L_OPIC, // 82 | ||
100 | L_PPIC, // 83 | ||
101 | L_QPIC, // 84 | ||
102 | L_RPIC, // 85 | ||
103 | L_SPIC, // 86 | ||
104 | L_TPIC, // 87 | ||
105 | L_UPIC, // 88 | ||
106 | L_VPIC, // 89 | ||
107 | L_WPIC, // 90 | ||
108 | L_XPIC, // 91 | ||
109 | L_YPIC, // 92 | ||
110 | L_ZPIC, // 93 | ||
111 | L_EXPOINTPIC, // 94 | ||
112 | #ifndef APOGEE_1_0 | ||
113 | L_APOSTROPHEPIC, // 95 | ||
114 | #endif | ||
115 | L_GUY2PIC, // 96 | ||
116 | L_BJWINSPIC, // 97 | ||
117 | STATUSBARPIC, // 98 | ||
118 | TITLEPIC, // 99 | ||
119 | PG13PIC, // 100 | ||
120 | CREDITSPIC, // 101 | ||
121 | HIGHSCORESPIC, // 102 | ||
122 | // Lump Start | ||
123 | KNIFEPIC, // 103 | ||
124 | GUNPIC, // 104 | ||
125 | MACHINEGUNPIC, // 105 | ||
126 | GATLINGGUNPIC, // 106 | ||
127 | NOKEYPIC, // 107 | ||
128 | GOLDKEYPIC, // 108 | ||
129 | SILVERKEYPIC, // 109 | ||
130 | N_BLANKPIC, // 110 | ||
131 | N_0PIC, // 111 | ||
132 | N_1PIC, // 112 | ||
133 | N_2PIC, // 113 | ||
134 | N_3PIC, // 114 | ||
135 | N_4PIC, // 115 | ||
136 | N_5PIC, // 116 | ||
137 | N_6PIC, // 117 | ||
138 | N_7PIC, // 118 | ||
139 | N_8PIC, // 119 | ||
140 | N_9PIC, // 120 | ||
141 | FACE1APIC, // 121 | ||
142 | FACE1BPIC, // 122 | ||
143 | FACE1CPIC, // 123 | ||
144 | FACE2APIC, // 124 | ||
145 | FACE2BPIC, // 125 | ||
146 | FACE2CPIC, // 126 | ||
147 | FACE3APIC, // 127 | ||
148 | FACE3BPIC, // 128 | ||
149 | FACE3CPIC, // 129 | ||
150 | FACE4APIC, // 130 | ||
151 | FACE4BPIC, // 131 | ||
152 | FACE4CPIC, // 132 | ||
153 | FACE5APIC, // 133 | ||
154 | FACE5BPIC, // 134 | ||
155 | FACE5CPIC, // 135 | ||
156 | FACE6APIC, // 136 | ||
157 | FACE6BPIC, // 137 | ||
158 | FACE6CPIC, // 138 | ||
159 | FACE7APIC, // 139 | ||
160 | FACE7BPIC, // 140 | ||
161 | FACE7CPIC, // 141 | ||
162 | FACE8APIC, // 142 | ||
163 | GOTGATLINGPIC, // 143 | ||
164 | MUTANTBJPIC, // 144 | ||
165 | PAUSEDPIC, // 145 | ||
166 | GETPSYCHEDPIC, // 146 | ||
167 | |||
168 | TILE8, // 147 | ||
169 | |||
170 | ORDERSCREEN, // 148 | ||
171 | ERRORSCREEN, // 149 | ||
172 | T_HELPART, // 150 | ||
173 | #ifdef APOGEE_1_0 | ||
174 | T_ENDART1, // 143 | ||
175 | #endif | ||
176 | T_DEMO0, // 151 | ||
177 | T_DEMO1, // 152 | ||
178 | T_DEMO2, // 153 | ||
179 | T_DEMO3, // 154 | ||
180 | #ifndef APOGEE_1_0 | ||
181 | T_ENDART1, // 155 | ||
182 | T_ENDART2, // 156 | ||
183 | T_ENDART3, // 157 | ||
184 | T_ENDART4, // 158 | ||
185 | T_ENDART5, // 159 | ||
186 | T_ENDART6, // 160 | ||
187 | #endif | ||
188 | |||
189 | ENUMEND | ||
190 | } graphicnums; | ||
191 | |||
192 | // | ||
193 | // Data LUMPs | ||
194 | // | ||
195 | #define README_LUMP_START H_BJPIC | ||
196 | #define README_LUMP_END H_BOTTOMINFOPIC | ||
197 | |||
198 | #define CONTROLS_LUMP_START C_OPTIONSPIC | ||
199 | #define CONTROLS_LUMP_END (L_GUYPIC - 1) | ||
200 | |||
201 | #define LEVELEND_LUMP_START L_GUYPIC | ||
202 | #define LEVELEND_LUMP_END L_BJWINSPIC | ||
203 | |||
204 | #define LATCHPICS_LUMP_START KNIFEPIC | ||
205 | #define LATCHPICS_LUMP_END GETPSYCHEDPIC | ||
206 | |||
207 | |||
208 | // | ||
209 | // Amount of each data item | ||
210 | // | ||
211 | #define NUMCHUNKS ENUMEND | ||
212 | #define NUMFONT 2 | ||
213 | #define NUMFONTM 0 | ||
214 | #define NUMPICS (GETPSYCHEDPIC - NUMFONT) | ||
215 | #define NUMPICM 0 | ||
216 | #define NUMSPRITES 0 | ||
217 | #define NUMTILE8 72 | ||
218 | #define NUMTILE8M 0 | ||
219 | #define NUMTILE16 0 | ||
220 | #define NUMTILE16M 0 | ||
221 | #define NUMTILE32 0 | ||
222 | #define NUMTILE32M 0 | ||
223 | #define NUMEXTERNS 13 | ||
224 | // | ||
225 | // File offsets for data items | ||
226 | // | ||
227 | #define STRUCTPIC 0 | ||
228 | |||
229 | #define STARTFONT 1 | ||
230 | #define STARTFONTM 3 | ||
231 | #define STARTPICS 3 | ||
232 | #define STARTPICM TILE8 | ||
233 | #define STARTSPRITES TILE8 | ||
234 | #define STARTTILE8 TILE8 | ||
235 | #define STARTTILE8M ORDERSCREEN | ||
236 | #define STARTTILE16 ORDERSCREEN | ||
237 | #define STARTTILE16M ORDERSCREEN | ||
238 | #define STARTTILE32 ORDERSCREEN | ||
239 | #define STARTTILE32M ORDERSCREEN | ||
240 | #define STARTEXTERNS ORDERSCREEN | ||
241 | |||
242 | // | ||
243 | // Thank you for using IGRAB! | ||
244 | // | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/gfxv_sod.h b/apps/plugins/sdl/progs/wolf3d/gfxv_sod.h new file mode 100644 index 0000000000..8c82a89696 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/gfxv_sod.h | |||
@@ -0,0 +1,290 @@ | |||
1 | ////////////////////////////////////// | ||
2 | // | ||
3 | // Graphics .H file for .SOD | ||
4 | // IGRAB-ed on Thu Oct 08 20:38:29 1992 | ||
5 | // | ||
6 | ////////////////////////////////////// | ||
7 | |||
8 | typedef enum { | ||
9 | // Lump Start | ||
10 | C_BACKDROPPIC=3, | ||
11 | C_MOUSELBACKPIC, // 4 | ||
12 | C_CURSOR1PIC, // 5 | ||
13 | C_CURSOR2PIC, // 6 | ||
14 | C_NOTSELECTEDPIC, // 7 | ||
15 | C_SELECTEDPIC, // 8 | ||
16 | // Lump Start | ||
17 | C_CUSTOMIZEPIC, // 9 | ||
18 | C_JOY1PIC, // 10 | ||
19 | C_JOY2PIC, // 11 | ||
20 | C_MOUSEPIC, // 12 | ||
21 | C_JOYSTICKPIC, // 13 | ||
22 | C_KEYBOARDPIC, // 14 | ||
23 | C_CONTROLPIC, // 15 | ||
24 | // Lump Start | ||
25 | C_OPTIONSPIC, // 16 | ||
26 | // Lump Start | ||
27 | C_FXTITLEPIC, // 17 | ||
28 | C_DIGITITLEPIC, // 18 | ||
29 | C_MUSICTITLEPIC, // 19 | ||
30 | // Lump Start | ||
31 | C_HOWTOUGHPIC, // 20 | ||
32 | C_BABYMODEPIC, // 21 | ||
33 | C_EASYPIC, // 22 | ||
34 | C_NORMALPIC, // 23 | ||
35 | C_HARDPIC, // 24 | ||
36 | // Lump Start | ||
37 | C_DISKLOADING1PIC, // 25 | ||
38 | C_DISKLOADING2PIC, // 26 | ||
39 | C_LOADGAMEPIC, // 27 | ||
40 | C_SAVEGAMEPIC, // 28 | ||
41 | // Lump Start | ||
42 | HIGHSCORESPIC, // 29 | ||
43 | C_WONSPEARPIC, // 30 | ||
44 | #ifndef SPEARDEMO | ||
45 | // Lump Start | ||
46 | BJCOLLAPSE1PIC, // 31 | ||
47 | BJCOLLAPSE2PIC, // 32 | ||
48 | BJCOLLAPSE3PIC, // 33 | ||
49 | BJCOLLAPSE4PIC, // 34 | ||
50 | ENDPICPIC, // 35 | ||
51 | #endif | ||
52 | // Lump Start | ||
53 | L_GUYPIC, // 36 | ||
54 | L_COLONPIC, // 37 | ||
55 | L_NUM0PIC, // 38 | ||
56 | L_NUM1PIC, // 39 | ||
57 | L_NUM2PIC, // 40 | ||
58 | L_NUM3PIC, // 41 | ||
59 | L_NUM4PIC, // 42 | ||
60 | L_NUM5PIC, // 43 | ||
61 | L_NUM6PIC, // 44 | ||
62 | L_NUM7PIC, // 45 | ||
63 | L_NUM8PIC, // 46 | ||
64 | L_NUM9PIC, // 47 | ||
65 | L_PERCENTPIC, // 48 | ||
66 | L_APIC, // 49 | ||
67 | L_BPIC, // 50 | ||
68 | L_CPIC, // 51 | ||
69 | L_DPIC, // 52 | ||
70 | L_EPIC, // 53 | ||
71 | L_FPIC, // 54 | ||
72 | L_GPIC, // 55 | ||
73 | L_HPIC, // 56 | ||
74 | L_IPIC, // 57 | ||
75 | L_JPIC, // 58 | ||
76 | L_KPIC, // 59 | ||
77 | L_LPIC, // 60 | ||
78 | L_MPIC, // 61 | ||
79 | L_NPIC, // 62 | ||
80 | L_OPIC, // 63 | ||
81 | L_PPIC, // 64 | ||
82 | L_QPIC, // 65 | ||
83 | L_RPIC, // 66 | ||
84 | L_SPIC, // 67 | ||
85 | L_TPIC, // 68 | ||
86 | L_UPIC, // 69 | ||
87 | L_VPIC, // 70 | ||
88 | L_WPIC, // 71 | ||
89 | L_XPIC, // 72 | ||
90 | L_YPIC, // 73 | ||
91 | L_ZPIC, // 74 | ||
92 | L_EXPOINTPIC, // 75 | ||
93 | L_APOSTROPHEPIC, // 76 | ||
94 | L_GUY2PIC, // 77 | ||
95 | L_BJWINSPIC, // 78 | ||
96 | // Lump Start | ||
97 | TITLE1PIC, // 79 | ||
98 | TITLE2PIC, // 80 | ||
99 | #ifndef SPEARDEMO | ||
100 | // Lump Start | ||
101 | ENDSCREEN11PIC, // 81 | ||
102 | // Lump Start | ||
103 | ENDSCREEN12PIC, // 82 | ||
104 | ENDSCREEN3PIC, // 83 | ||
105 | ENDSCREEN4PIC, // 84 | ||
106 | ENDSCREEN5PIC, // 85 | ||
107 | ENDSCREEN6PIC, // 86 | ||
108 | ENDSCREEN7PIC, // 87 | ||
109 | ENDSCREEN8PIC, // 88 | ||
110 | ENDSCREEN9PIC, // 89 | ||
111 | #endif | ||
112 | STATUSBARPIC, // 90 | ||
113 | PG13PIC, // 91 | ||
114 | CREDITSPIC, // 92 | ||
115 | #ifndef SPEARDEMO | ||
116 | // Lump Start | ||
117 | IDGUYS1PIC, // 93 | ||
118 | IDGUYS2PIC, // 94 | ||
119 | // Lump Start | ||
120 | COPYPROTTOPPIC, // 95 | ||
121 | COPYPROTBOXPIC, // 96 | ||
122 | BOSSPIC1PIC, // 97 | ||
123 | BOSSPIC2PIC, // 98 | ||
124 | BOSSPIC3PIC, // 99 | ||
125 | BOSSPIC4PIC, // 100 | ||
126 | #endif | ||
127 | // Lump Start | ||
128 | KNIFEPIC, // 101 | ||
129 | GUNPIC, // 102 | ||
130 | MACHINEGUNPIC, // 103 | ||
131 | GATLINGGUNPIC, // 104 | ||
132 | NOKEYPIC, // 105 | ||
133 | GOLDKEYPIC, // 106 | ||
134 | SILVERKEYPIC, // 107 | ||
135 | N_BLANKPIC, // 108 | ||
136 | N_0PIC, // 109 | ||
137 | N_1PIC, // 110 | ||
138 | N_2PIC, // 111 | ||
139 | N_3PIC, // 112 | ||
140 | N_4PIC, // 113 | ||
141 | N_5PIC, // 114 | ||
142 | N_6PIC, // 115 | ||
143 | N_7PIC, // 116 | ||
144 | N_8PIC, // 117 | ||
145 | N_9PIC, // 118 | ||
146 | FACE1APIC, // 119 | ||
147 | FACE1BPIC, // 120 | ||
148 | FACE1CPIC, // 121 | ||
149 | FACE2APIC, // 122 | ||
150 | FACE2BPIC, // 123 | ||
151 | FACE2CPIC, // 124 | ||
152 | FACE3APIC, // 125 | ||
153 | FACE3BPIC, // 126 | ||
154 | FACE3CPIC, // 127 | ||
155 | FACE4APIC, // 128 | ||
156 | FACE4BPIC, // 129 | ||
157 | FACE4CPIC, // 130 | ||
158 | FACE5APIC, // 131 | ||
159 | FACE5BPIC, // 132 | ||
160 | FACE5CPIC, // 133 | ||
161 | FACE6APIC, // 134 | ||
162 | FACE6BPIC, // 135 | ||
163 | FACE6CPIC, // 136 | ||
164 | FACE7APIC, // 137 | ||
165 | FACE7BPIC, // 138 | ||
166 | FACE7CPIC, // 139 | ||
167 | FACE8APIC, // 140 | ||
168 | GOTGATLINGPIC, // 141 | ||
169 | GODMODEFACE1PIC, // 142 | ||
170 | GODMODEFACE2PIC, // 143 | ||
171 | GODMODEFACE3PIC, // 144 | ||
172 | BJWAITING1PIC, // 145 | ||
173 | BJWAITING2PIC, // 146 | ||
174 | BJOUCHPIC, // 147 | ||
175 | PAUSEDPIC, // 148 | ||
176 | GETPSYCHEDPIC, // 149 | ||
177 | |||
178 | TILE8, // 150 | ||
179 | |||
180 | ORDERSCREEN, // 151 | ||
181 | ERRORSCREEN, // 152 | ||
182 | TITLEPALETTE, // 153 | ||
183 | #ifndef SPEARDEMO | ||
184 | END1PALETTE, // 154 | ||
185 | END2PALETTE, // 155 | ||
186 | END3PALETTE, // 156 | ||
187 | END4PALETTE, // 157 | ||
188 | END5PALETTE, // 158 | ||
189 | END6PALETTE, // 159 | ||
190 | END7PALETTE, // 160 | ||
191 | END8PALETTE, // 161 | ||
192 | END9PALETTE, // 162 | ||
193 | IDGUYSPALETTE, // 163 | ||
194 | #endif | ||
195 | T_DEMO0, // 164 | ||
196 | #ifndef SPEARDEMO | ||
197 | T_DEMO1, // 165 | ||
198 | T_DEMO2, // 166 | ||
199 | T_DEMO3, // 167 | ||
200 | T_ENDART1, // 168 | ||
201 | #endif | ||
202 | ENUMEND | ||
203 | } graphicnums; | ||
204 | |||
205 | // | ||
206 | // Data LUMPs | ||
207 | // | ||
208 | #define BACKDROP_LUMP_START 3 | ||
209 | #define BACKDROP_LUMP_END 8 | ||
210 | |||
211 | #define CONTROL_LUMP_START 9 | ||
212 | #define CONTROL_LUMP_END 15 | ||
213 | |||
214 | #define OPTIONS_LUMP_START 16 | ||
215 | #define OPTIONS_LUMP_END 16 | ||
216 | |||
217 | #define SOUND_LUMP_START 17 | ||
218 | #define SOUND_LUMP_END 19 | ||
219 | |||
220 | #define NEWGAME_LUMP_START 20 | ||
221 | #define NEWGAME_LUMP_END 24 | ||
222 | |||
223 | #define LOADSAVE_LUMP_START 25 | ||
224 | #define LOADSAVE_LUMP_END 28 | ||
225 | |||
226 | #define HIGHSCORES_LUMP_START 29 | ||
227 | #define HIGHSCORES_LUMP_END 30 | ||
228 | |||
229 | #define ENDGAME_LUMP_START 31 | ||
230 | #define ENDGAME_LUMP_END 35 | ||
231 | |||
232 | #define LEVELEND_LUMP_START L_GUYPIC | ||
233 | #define LEVELEND_LUMP_END L_BJWINSPIC | ||
234 | |||
235 | #define TITLESCREEN_LUMP_START TITLE1PIC | ||
236 | #define TITLESCREEN_LUMP_END TITLE2PIC | ||
237 | |||
238 | #define ENDGAME1_LUMP_START ENDSCREEN11PIC | ||
239 | #define ENDGAME1_LUMP_END ENDSCREEN11PIC | ||
240 | |||
241 | #define ENDGAME2_LUMP_START ENDSCREEN12PIC | ||
242 | #define ENDGAME2_LUMP_END ENDSCREEN12PIC | ||
243 | |||
244 | #define EASTEREGG_LUMP_START IDGUYS1PIC | ||
245 | #define EASTEREGG_LUMP_END IDGUYS2PIC | ||
246 | |||
247 | #define COPYPROT_LUMP_START COPYPROTTOPPIC | ||
248 | #define COPYPROT_LUMP_END BOSSPIC4PIC | ||
249 | |||
250 | #define LATCHPICS_LUMP_START KNIFEPIC | ||
251 | #define LATCHPICS_LUMP_END GETPSYCHEDPIC | ||
252 | |||
253 | |||
254 | // | ||
255 | // Amount of each data item | ||
256 | // | ||
257 | #define NUMCHUNKS ENUMEND | ||
258 | #define NUMFONT 2 | ||
259 | #define NUMFONTM 0 | ||
260 | #define NUMPICS (GETPSYCHEDPIC - NUMFONT) | ||
261 | #define NUMPICM 0 | ||
262 | #define NUMSPRITES 0 | ||
263 | #define NUMTILE8 72 | ||
264 | #define NUMTILE8M 0 | ||
265 | #define NUMTILE16 0 | ||
266 | #define NUMTILE16M 0 | ||
267 | #define NUMTILE32 0 | ||
268 | #define NUMTILE32M 0 | ||
269 | #define NUMEXTERNS 18 | ||
270 | // | ||
271 | // File offsets for data items | ||
272 | // | ||
273 | #define STRUCTPIC 0 | ||
274 | |||
275 | #define STARTFONT 1 | ||
276 | #define STARTFONTM 3 | ||
277 | #define STARTPICS 3 | ||
278 | #define STARTPICM TILE8 | ||
279 | #define STARTSPRITES TILE8 | ||
280 | #define STARTTILE8 TILE8 | ||
281 | #define STARTTILE8M ORDERSCREEN | ||
282 | #define STARTTILE16 ORDERSCREEN | ||
283 | #define STARTTILE16M ORDERSCREEN | ||
284 | #define STARTTILE32 ORDERSCREEN | ||
285 | #define STARTTILE32M ORDERSCREEN | ||
286 | #define STARTEXTERNS ORDERSCREEN | ||
287 | |||
288 | // | ||
289 | // Thank you for using IGRAB! | ||
290 | // | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/gfxv_wl6.h b/apps/plugins/sdl/progs/wolf3d/gfxv_wl6.h new file mode 100644 index 0000000000..f1403ba265 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/gfxv_wl6.h | |||
@@ -0,0 +1,216 @@ | |||
1 | ////////////////////////////////////// | ||
2 | // | ||
3 | // Graphics .H file for .WL6 | ||
4 | // IGRAB-ed on Wed Apr 13 06:58:44 1994 | ||
5 | // | ||
6 | ////////////////////////////////////// | ||
7 | |||
8 | typedef enum { | ||
9 | // Lump Start | ||
10 | H_BJPIC=3, | ||
11 | H_CASTLEPIC, // 4 | ||
12 | H_BLAZEPIC, // 5 | ||
13 | H_TOPWINDOWPIC, // 6 | ||
14 | H_LEFTWINDOWPIC, // 7 | ||
15 | H_RIGHTWINDOWPIC, // 8 | ||
16 | H_BOTTOMINFOPIC, // 9 | ||
17 | // Lump Start | ||
18 | C_OPTIONSPIC, // 10 | ||
19 | C_CURSOR1PIC, // 11 | ||
20 | C_CURSOR2PIC, // 12 | ||
21 | C_NOTSELECTEDPIC, // 13 | ||
22 | C_SELECTEDPIC, // 14 | ||
23 | C_FXTITLEPIC, // 15 | ||
24 | C_DIGITITLEPIC, // 16 | ||
25 | C_MUSICTITLEPIC, // 17 | ||
26 | C_MOUSELBACKPIC, // 18 | ||
27 | C_BABYMODEPIC, // 19 | ||
28 | C_EASYPIC, // 20 | ||
29 | C_NORMALPIC, // 21 | ||
30 | C_HARDPIC, // 22 | ||
31 | C_LOADSAVEDISKPIC, // 23 | ||
32 | C_DISKLOADING1PIC, // 24 | ||
33 | C_DISKLOADING2PIC, // 25 | ||
34 | C_CONTROLPIC, // 26 | ||
35 | C_CUSTOMIZEPIC, // 27 | ||
36 | C_LOADGAMEPIC, // 28 | ||
37 | C_SAVEGAMEPIC, // 29 | ||
38 | C_EPISODE1PIC, // 30 | ||
39 | C_EPISODE2PIC, // 31 | ||
40 | C_EPISODE3PIC, // 32 | ||
41 | C_EPISODE4PIC, // 33 | ||
42 | C_EPISODE5PIC, // 34 | ||
43 | C_EPISODE6PIC, // 35 | ||
44 | C_CODEPIC, // 36 | ||
45 | C_TIMECODEPIC, // 37 | ||
46 | C_LEVELPIC, // 38 | ||
47 | C_NAMEPIC, // 39 | ||
48 | C_SCOREPIC, // 40 | ||
49 | C_JOY1PIC, // 41 | ||
50 | C_JOY2PIC, // 42 | ||
51 | // Lump Start | ||
52 | L_GUYPIC, // 43 | ||
53 | L_COLONPIC, // 44 | ||
54 | L_NUM0PIC, // 45 | ||
55 | L_NUM1PIC, // 46 | ||
56 | L_NUM2PIC, // 47 | ||
57 | L_NUM3PIC, // 48 | ||
58 | L_NUM4PIC, // 49 | ||
59 | L_NUM5PIC, // 50 | ||
60 | L_NUM6PIC, // 51 | ||
61 | L_NUM7PIC, // 52 | ||
62 | L_NUM8PIC, // 53 | ||
63 | L_NUM9PIC, // 54 | ||
64 | L_PERCENTPIC, // 55 | ||
65 | L_APIC, // 56 | ||
66 | L_BPIC, // 57 | ||
67 | L_CPIC, // 58 | ||
68 | L_DPIC, // 59 | ||
69 | L_EPIC, // 60 | ||
70 | L_FPIC, // 61 | ||
71 | L_GPIC, // 62 | ||
72 | L_HPIC, // 63 | ||
73 | L_IPIC, // 64 | ||
74 | L_JPIC, // 65 | ||
75 | L_KPIC, // 66 | ||
76 | L_LPIC, // 67 | ||
77 | L_MPIC, // 68 | ||
78 | L_NPIC, // 69 | ||
79 | L_OPIC, // 70 | ||
80 | L_PPIC, // 71 | ||
81 | L_QPIC, // 72 | ||
82 | L_RPIC, // 73 | ||
83 | L_SPIC, // 74 | ||
84 | L_TPIC, // 75 | ||
85 | L_UPIC, // 76 | ||
86 | L_VPIC, // 77 | ||
87 | L_WPIC, // 78 | ||
88 | L_XPIC, // 79 | ||
89 | L_YPIC, // 80 | ||
90 | L_ZPIC, // 81 | ||
91 | L_EXPOINTPIC, // 82 | ||
92 | L_APOSTROPHEPIC, // 83 | ||
93 | L_GUY2PIC, // 84 | ||
94 | L_BJWINSPIC, // 85 | ||
95 | STATUSBARPIC, // 86 | ||
96 | TITLEPIC, // 87 | ||
97 | PG13PIC, // 88 | ||
98 | CREDITSPIC, // 89 | ||
99 | HIGHSCORESPIC, // 90 | ||
100 | // Lump Start | ||
101 | KNIFEPIC, // 91 | ||
102 | GUNPIC, // 92 | ||
103 | MACHINEGUNPIC, // 93 | ||
104 | GATLINGGUNPIC, // 94 | ||
105 | NOKEYPIC, // 95 | ||
106 | GOLDKEYPIC, // 96 | ||
107 | SILVERKEYPIC, // 97 | ||
108 | N_BLANKPIC, // 98 | ||
109 | N_0PIC, // 99 | ||
110 | N_1PIC, // 100 | ||
111 | N_2PIC, // 101 | ||
112 | N_3PIC, // 102 | ||
113 | N_4PIC, // 103 | ||
114 | N_5PIC, // 104 | ||
115 | N_6PIC, // 105 | ||
116 | N_7PIC, // 106 | ||
117 | N_8PIC, // 107 | ||
118 | N_9PIC, // 108 | ||
119 | FACE1APIC, // 109 | ||
120 | FACE1BPIC, // 110 | ||
121 | FACE1CPIC, // 111 | ||
122 | FACE2APIC, // 112 | ||
123 | FACE2BPIC, // 113 | ||
124 | FACE2CPIC, // 114 | ||
125 | FACE3APIC, // 115 | ||
126 | FACE3BPIC, // 116 | ||
127 | FACE3CPIC, // 117 | ||
128 | FACE4APIC, // 118 | ||
129 | FACE4BPIC, // 119 | ||
130 | FACE4CPIC, // 120 | ||
131 | FACE5APIC, // 121 | ||
132 | FACE5BPIC, // 122 | ||
133 | FACE5CPIC, // 123 | ||
134 | FACE6APIC, // 124 | ||
135 | FACE6BPIC, // 125 | ||
136 | FACE6CPIC, // 126 | ||
137 | FACE7APIC, // 127 | ||
138 | FACE7BPIC, // 128 | ||
139 | FACE7CPIC, // 129 | ||
140 | FACE8APIC, // 130 | ||
141 | GOTGATLINGPIC, // 131 | ||
142 | MUTANTBJPIC, // 132 | ||
143 | PAUSEDPIC, // 133 | ||
144 | GETPSYCHEDPIC, // 134 | ||
145 | |||
146 | |||
147 | |||
148 | ORDERSCREEN=136, | ||
149 | ERRORSCREEN, // 137 | ||
150 | T_HELPART, // 138 | ||
151 | T_DEMO0, // 139 | ||
152 | T_DEMO1, // 140 | ||
153 | T_DEMO2, // 141 | ||
154 | T_DEMO3, // 142 | ||
155 | T_ENDART1, // 143 | ||
156 | T_ENDART2, // 144 | ||
157 | T_ENDART3, // 145 | ||
158 | T_ENDART4, // 146 | ||
159 | T_ENDART5, // 147 | ||
160 | T_ENDART6, // 148 | ||
161 | ENUMEND | ||
162 | } graphicnums; | ||
163 | |||
164 | // | ||
165 | // Data LUMPs | ||
166 | // | ||
167 | #define README_LUMP_START 3 | ||
168 | #define README_LUMP_END 9 | ||
169 | |||
170 | #define CONTROLS_LUMP_START 10 | ||
171 | #define CONTROLS_LUMP_END 42 | ||
172 | |||
173 | #define LEVELEND_LUMP_START 43 | ||
174 | #define LEVELEND_LUMP_END 85 | ||
175 | |||
176 | #define LATCHPICS_LUMP_START 91 | ||
177 | #define LATCHPICS_LUMP_END 134 | ||
178 | |||
179 | |||
180 | // | ||
181 | // Amount of each data item | ||
182 | // | ||
183 | #define NUMCHUNKS 149 | ||
184 | #define NUMFONT 2 | ||
185 | #define NUMFONTM 0 | ||
186 | #define NUMPICS 132 | ||
187 | #define NUMPICM 0 | ||
188 | #define NUMSPRITES 0 | ||
189 | #define NUMTILE8 72 | ||
190 | #define NUMTILE8M 0 | ||
191 | #define NUMTILE16 0 | ||
192 | #define NUMTILE16M 0 | ||
193 | #define NUMTILE32 0 | ||
194 | #define NUMTILE32M 0 | ||
195 | #define NUMEXTERNS 13 | ||
196 | // | ||
197 | // File offsets for data items | ||
198 | // | ||
199 | #define STRUCTPIC 0 | ||
200 | |||
201 | #define STARTFONT 1 | ||
202 | #define STARTFONTM 3 | ||
203 | #define STARTPICS 3 | ||
204 | #define STARTPICM 135 | ||
205 | #define STARTSPRITES 135 | ||
206 | #define STARTTILE8 135 | ||
207 | #define STARTTILE8M 136 | ||
208 | #define STARTTILE16 136 | ||
209 | #define STARTTILE16M 136 | ||
210 | #define STARTTILE32 136 | ||
211 | #define STARTTILE32M 136 | ||
212 | #define STARTEXTERNS 136 | ||
213 | |||
214 | // | ||
215 | // Thank you for using IGRAB! | ||
216 | // | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/gp2x.h b/apps/plugins/sdl/progs/wolf3d/gp2x.h new file mode 100644 index 0000000000..f8b3557a41 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/gp2x.h | |||
@@ -0,0 +1,51 @@ | |||
1 | #ifndef GP2X_H | ||
2 | #define GP2X_H | ||
3 | |||
4 | #include <SDL/SDL.h> | ||
5 | #include <sys/ioctl.h> | ||
6 | #include <sys/soundcard.h> | ||
7 | #include <fcntl.h> | ||
8 | #include <unistd.h> | ||
9 | |||
10 | #include "wl_def.h" | ||
11 | |||
12 | #define GP2X_BUTTON_UP (0) | ||
13 | #define GP2X_BUTTON_DOWN (4) | ||
14 | #define GP2X_BUTTON_LEFT (2) | ||
15 | #define GP2X_BUTTON_RIGHT (6) | ||
16 | #define GP2X_BUTTON_UPLEFT (1) | ||
17 | #define GP2X_BUTTON_UPRIGHT (7) | ||
18 | #define GP2X_BUTTON_DOWNLEFT (3) | ||
19 | #define GP2X_BUTTON_DOWNRIGHT (5) | ||
20 | #define GP2X_BUTTON_CLICK (18) | ||
21 | #define GP2X_BUTTON_A (12) | ||
22 | #define GP2X_BUTTON_B (13) | ||
23 | #define GP2X_BUTTON_X (15) | ||
24 | #define GP2X_BUTTON_Y (14) | ||
25 | #define GP2X_BUTTON_L (11) | ||
26 | #define GP2X_BUTTON_R (10) | ||
27 | #define GP2X_BUTTON_START (8) | ||
28 | #define GP2X_BUTTON_SELECT (9) | ||
29 | #define GP2X_BUTTON_VOLUP (16) | ||
30 | #define GP2X_BUTTON_VOLDOWN (17) | ||
31 | |||
32 | #define VOLUME_MIN 0 | ||
33 | #define VOLUME_MAX 100 | ||
34 | #define VOLUME_CHANGE_RATE 2 | ||
35 | #define VOLUME_NOCHG 0 | ||
36 | #define VOLUME_DOWN 1 | ||
37 | #define VOLUME_UP 2 | ||
38 | #define KEY_DOWN 1 | ||
39 | #define KEY_UP 0 | ||
40 | |||
41 | void GP2X_Init(); | ||
42 | void GP2X_Shutdown(); | ||
43 | void GP2X_StartMMUHack(); | ||
44 | |||
45 | void GP2X_AdjustVolume( int direction ); | ||
46 | void GP2X_ButtonDown( int button ); | ||
47 | void GP2X_ButtonUp( int button ); | ||
48 | void Screenshot( void ); | ||
49 | void SetKeyboard( unsigned int key, int press ); | ||
50 | |||
51 | #endif // GP2X_H | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_ca.c b/apps/plugins/sdl/progs/wolf3d/id_ca.c new file mode 100644 index 0000000000..c6131a9882 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_ca.c | |||
@@ -0,0 +1,1113 @@ | |||
1 | // ID_CA.C | ||
2 | |||
3 | // this has been customized for WOLF | ||
4 | |||
5 | /* | ||
6 | ============================================================================= | ||
7 | |||
8 | Id Software Caching Manager | ||
9 | --------------------------- | ||
10 | |||
11 | Must be started BEFORE the memory manager, because it needs to get the headers | ||
12 | loaded into the data segment | ||
13 | |||
14 | ============================================================================= | ||
15 | */ | ||
16 | |||
17 | #include <SDL.h> | ||
18 | |||
19 | |||
20 | #include "wl_def.h" | ||
21 | #pragma hdrstop | ||
22 | |||
23 | #define THREEBYTEGRSTARTS | ||
24 | |||
25 | /* | ||
26 | ============================================================================= | ||
27 | |||
28 | LOCAL CONSTANTS | ||
29 | |||
30 | ============================================================================= | ||
31 | */ | ||
32 | |||
33 | typedef struct | ||
34 | { | ||
35 | word bit0,bit1; // 0-255 is a character, > is a pointer to a node | ||
36 | } huffnode; | ||
37 | |||
38 | |||
39 | typedef struct | ||
40 | { | ||
41 | word RLEWtag; | ||
42 | int32_t headeroffsets[100]; | ||
43 | } mapfiletype; | ||
44 | |||
45 | |||
46 | /* | ||
47 | ============================================================================= | ||
48 | |||
49 | GLOBAL VARIABLES | ||
50 | |||
51 | ============================================================================= | ||
52 | */ | ||
53 | |||
54 | #define BUFFERSIZE 0x1000 | ||
55 | static int32_t bufferseg[BUFFERSIZE/4]; | ||
56 | |||
57 | int mapon; | ||
58 | |||
59 | word *mapsegs[MAPPLANES]; | ||
60 | static maptype* mapheaderseg[NUMMAPS]; | ||
61 | byte *audiosegs[NUMSNDCHUNKS]; | ||
62 | byte *grsegs[NUMCHUNKS]; | ||
63 | |||
64 | word RLEWtag; | ||
65 | |||
66 | int numEpisodesMissing = 0; | ||
67 | |||
68 | /* | ||
69 | ============================================================================= | ||
70 | |||
71 | LOCAL VARIABLES | ||
72 | |||
73 | ============================================================================= | ||
74 | */ | ||
75 | |||
76 | char extension[5]; // Need a string, not constant to change cache files | ||
77 | char graphext[5]; | ||
78 | char audioext[5]; | ||
79 | static const char gheadname[] = DATADIR "vgahead."; | ||
80 | static const char gfilename[] = DATADIR "vgagraph."; | ||
81 | static const char gdictname[] = DATADIR "vgadict."; | ||
82 | static const char mheadname[] = DATADIR "maphead."; | ||
83 | static const char mfilename[] = DATADIR "maptemp."; | ||
84 | static const char mfilecama[] = DATADIR "gamemaps."; | ||
85 | static const char aheadname[] = DATADIR "audiohed."; | ||
86 | static const char afilename[] = DATADIR "audiot."; | ||
87 | |||
88 | void CA_CannotOpen(const char *string); | ||
89 | |||
90 | static int32_t grstarts[NUMCHUNKS + 1]; | ||
91 | static int32_t* audiostarts; // array of offsets in audio / audiot | ||
92 | |||
93 | #ifdef GRHEADERLINKED | ||
94 | huffnode *grhuffman; | ||
95 | #else | ||
96 | huffnode grhuffman[255]; | ||
97 | #endif | ||
98 | |||
99 | int grhandle = -1; // handle to EGAGRAPH | ||
100 | int maphandle = -1; // handle to MAPTEMP / GAMEMAPS | ||
101 | int audiohandle = -1; // handle to AUDIOT / AUDIO | ||
102 | |||
103 | int32_t chunkcomplen,chunkexplen; | ||
104 | |||
105 | SDMode oldsoundmode; | ||
106 | |||
107 | |||
108 | static int32_t GRFILEPOS(const size_t idx) | ||
109 | { | ||
110 | assert(idx < lengthof(grstarts)); | ||
111 | return grstarts[idx]; | ||
112 | } | ||
113 | |||
114 | /* | ||
115 | ============================================================================= | ||
116 | |||
117 | LOW LEVEL ROUTINES | ||
118 | |||
119 | ============================================================================= | ||
120 | */ | ||
121 | |||
122 | /* | ||
123 | ============================ | ||
124 | = | ||
125 | = CAL_GetGrChunkLength | ||
126 | = | ||
127 | = Gets the length of an explicit length chunk (not tiles) | ||
128 | = The file pointer is positioned so the compressed data can be read in next. | ||
129 | = | ||
130 | ============================ | ||
131 | */ | ||
132 | |||
133 | void CAL_GetGrChunkLength (int chunk) | ||
134 | { | ||
135 | lseek(grhandle,GRFILEPOS(chunk),SEEK_SET); | ||
136 | read(grhandle,&chunkexplen,sizeof(chunkexplen)); | ||
137 | chunkcomplen = GRFILEPOS(chunk+1)-GRFILEPOS(chunk)-4; | ||
138 | } | ||
139 | |||
140 | |||
141 | /* | ||
142 | ========================== | ||
143 | = | ||
144 | = CA_WriteFile | ||
145 | = | ||
146 | = Writes a file from a memory buffer | ||
147 | = | ||
148 | ========================== | ||
149 | */ | ||
150 | |||
151 | boolean CA_WriteFile (const char *filename, void *ptr, int32_t length) | ||
152 | { | ||
153 | const int handle = open(filename, O_CREAT | O_WRONLY | O_BINARY, 0644); | ||
154 | if (handle == -1) | ||
155 | return false; | ||
156 | |||
157 | if (!write (handle,ptr,length)) | ||
158 | { | ||
159 | close (handle); | ||
160 | return false; | ||
161 | } | ||
162 | close (handle); | ||
163 | return true; | ||
164 | } | ||
165 | |||
166 | |||
167 | |||
168 | /* | ||
169 | ========================== | ||
170 | = | ||
171 | = CA_LoadFile | ||
172 | = | ||
173 | = Allocate space for and load a file | ||
174 | = | ||
175 | ========================== | ||
176 | */ | ||
177 | |||
178 | boolean CA_LoadFile (const char *filename, memptr *ptr) | ||
179 | { | ||
180 | int32_t size; | ||
181 | |||
182 | const int handle = open(filename, O_RDONLY | O_BINARY); | ||
183 | if (handle == -1) | ||
184 | return false; | ||
185 | |||
186 | size = lseek(handle, 0, SEEK_END); | ||
187 | lseek(handle, 0, SEEK_SET); | ||
188 | *ptr=malloc(size); | ||
189 | CHECKMALLOCRESULT(*ptr); | ||
190 | if (!read (handle,*ptr,size)) | ||
191 | { | ||
192 | close (handle); | ||
193 | return false; | ||
194 | } | ||
195 | close (handle); | ||
196 | return true; | ||
197 | } | ||
198 | |||
199 | /* | ||
200 | ============================================================================ | ||
201 | |||
202 | COMPRESSION routines, see JHUFF.C for more | ||
203 | |||
204 | ============================================================================ | ||
205 | */ | ||
206 | |||
207 | static void CAL_HuffExpand(byte *source, byte *dest, int32_t length, huffnode *hufftable) | ||
208 | { | ||
209 | byte *end; | ||
210 | huffnode *headptr, *huffptr; | ||
211 | |||
212 | if(!length || !dest) | ||
213 | { | ||
214 | Quit("length or dest is null!"); | ||
215 | return; | ||
216 | } | ||
217 | |||
218 | headptr = hufftable+254; // head node is always node 254 | ||
219 | |||
220 | int written = 0; | ||
221 | |||
222 | end=dest+length; | ||
223 | |||
224 | byte val = *source++; | ||
225 | byte mask = 1; | ||
226 | word nodeval; | ||
227 | huffptr = headptr; | ||
228 | while(1) | ||
229 | { | ||
230 | if(!(val & mask)) | ||
231 | nodeval = huffptr->bit0; | ||
232 | else | ||
233 | nodeval = huffptr->bit1; | ||
234 | if(mask==0x80) | ||
235 | { | ||
236 | val = *source++; | ||
237 | mask = 1; | ||
238 | } | ||
239 | else mask <<= 1; | ||
240 | |||
241 | if(nodeval<256) | ||
242 | { | ||
243 | *dest++ = (byte) nodeval; | ||
244 | written++; | ||
245 | huffptr = headptr; | ||
246 | if(dest>=end) break; | ||
247 | } | ||
248 | else | ||
249 | { | ||
250 | huffptr = hufftable + (nodeval - 256); | ||
251 | } | ||
252 | } | ||
253 | } | ||
254 | |||
255 | /* | ||
256 | ====================== | ||
257 | = | ||
258 | = CAL_CarmackExpand | ||
259 | = | ||
260 | = Length is the length of the EXPANDED data | ||
261 | = | ||
262 | ====================== | ||
263 | */ | ||
264 | |||
265 | #define NEARTAG 0xa7 | ||
266 | #define FARTAG 0xa8 | ||
267 | |||
268 | void CAL_CarmackExpand (byte *source, word *dest, int length) | ||
269 | { | ||
270 | word ch,chhigh,count,offset; | ||
271 | byte *inptr; | ||
272 | word *copyptr, *outptr; | ||
273 | |||
274 | length/=2; | ||
275 | |||
276 | inptr = (byte *) source; | ||
277 | outptr = dest; | ||
278 | |||
279 | while (length>0) | ||
280 | { | ||
281 | ch = READWORD(&inptr); | ||
282 | chhigh = ch>>8; | ||
283 | if (chhigh == NEARTAG) | ||
284 | { | ||
285 | count = ch&0xff; | ||
286 | if (!count) | ||
287 | { // have to insert a word containing the tag byte | ||
288 | ch |= *inptr++; | ||
289 | *outptr++ = ch; | ||
290 | length--; | ||
291 | } | ||
292 | else | ||
293 | { | ||
294 | offset = *inptr++; | ||
295 | copyptr = outptr - offset; | ||
296 | length -= count; | ||
297 | if(length<0) return; | ||
298 | while (count--) | ||
299 | *outptr++ = *copyptr++; | ||
300 | } | ||
301 | } | ||
302 | else if (chhigh == FARTAG) | ||
303 | { | ||
304 | count = ch&0xff; | ||
305 | if (!count) | ||
306 | { // have to insert a word containing the tag byte | ||
307 | ch |= *inptr++; | ||
308 | *outptr++ = ch; | ||
309 | length --; | ||
310 | } | ||
311 | else | ||
312 | { | ||
313 | offset = READWORD(&inptr); | ||
314 | copyptr = dest + offset; | ||
315 | length -= count; | ||
316 | if(length<0) return; | ||
317 | while (count--) | ||
318 | *outptr++ = *copyptr++; | ||
319 | } | ||
320 | } | ||
321 | else | ||
322 | { | ||
323 | *outptr++ = ch; | ||
324 | length --; | ||
325 | } | ||
326 | } | ||
327 | } | ||
328 | |||
329 | /* | ||
330 | ====================== | ||
331 | = | ||
332 | = CA_RLEWcompress | ||
333 | = | ||
334 | ====================== | ||
335 | */ | ||
336 | |||
337 | int32_t CA_RLEWCompress (word *source, int32_t length, word *dest, word rlewtag) | ||
338 | { | ||
339 | word value,count; | ||
340 | unsigned i; | ||
341 | word *start,*end; | ||
342 | |||
343 | start = dest; | ||
344 | |||
345 | end = source + (length+1)/2; | ||
346 | |||
347 | // | ||
348 | // compress it | ||
349 | // | ||
350 | do | ||
351 | { | ||
352 | count = 1; | ||
353 | value = *source++; | ||
354 | while (*source == value && source<end) | ||
355 | { | ||
356 | count++; | ||
357 | source++; | ||
358 | } | ||
359 | if (count>3 || value == rlewtag) | ||
360 | { | ||
361 | // | ||
362 | // send a tag / count / value string | ||
363 | // | ||
364 | *dest++ = rlewtag; | ||
365 | *dest++ = count; | ||
366 | *dest++ = value; | ||
367 | } | ||
368 | else | ||
369 | { | ||
370 | // | ||
371 | // send word without compressing | ||
372 | // | ||
373 | for (i=1;i<=count;i++) | ||
374 | *dest++ = value; | ||
375 | } | ||
376 | |||
377 | } while (source<end); | ||
378 | |||
379 | return (int32_t)(2*(dest-start)); | ||
380 | } | ||
381 | |||
382 | |||
383 | /* | ||
384 | ====================== | ||
385 | = | ||
386 | = CA_RLEWexpand | ||
387 | = length is EXPANDED length | ||
388 | = | ||
389 | ====================== | ||
390 | */ | ||
391 | |||
392 | void CA_RLEWexpand (word *source, word *dest, int32_t length, word rlewtag) | ||
393 | { | ||
394 | word value,count,i; | ||
395 | word *end=dest+length/2; | ||
396 | |||
397 | // | ||
398 | // expand it | ||
399 | // | ||
400 | do | ||
401 | { | ||
402 | value = *source++; | ||
403 | if (value != rlewtag) | ||
404 | // | ||
405 | // uncompressed | ||
406 | // | ||
407 | *dest++=value; | ||
408 | else | ||
409 | { | ||
410 | // | ||
411 | // compressed string | ||
412 | // | ||
413 | count = *source++; | ||
414 | value = *source++; | ||
415 | for (i=1;i<=count;i++) | ||
416 | *dest++ = value; | ||
417 | } | ||
418 | } while (dest<end); | ||
419 | } | ||
420 | |||
421 | |||
422 | |||
423 | /* | ||
424 | ============================================================================= | ||
425 | |||
426 | CACHE MANAGER ROUTINES | ||
427 | |||
428 | ============================================================================= | ||
429 | */ | ||
430 | |||
431 | |||
432 | /* | ||
433 | ====================== | ||
434 | = | ||
435 | = CAL_SetupGrFile | ||
436 | = | ||
437 | ====================== | ||
438 | */ | ||
439 | |||
440 | void CAL_SetupGrFile (void) | ||
441 | { | ||
442 | char fname[13 + sizeof(DATADIR)]; | ||
443 | int handle; | ||
444 | byte *compseg; | ||
445 | |||
446 | #ifdef GRHEADERLINKED | ||
447 | |||
448 | grhuffman = (huffnode *)&EGAdict; | ||
449 | grstarts = (int32_t _seg *)FP_SEG(&EGAhead); | ||
450 | |||
451 | #else | ||
452 | |||
453 | // | ||
454 | // load ???dict.ext (huffman dictionary for graphics files) | ||
455 | // | ||
456 | |||
457 | strcpy(fname,gdictname); | ||
458 | strcat(fname,graphext); | ||
459 | |||
460 | handle = open(fname, O_RDONLY | O_BINARY); | ||
461 | if (handle == -1) | ||
462 | CA_CannotOpen(fname); | ||
463 | |||
464 | read(handle, grhuffman, sizeof(grhuffman)); | ||
465 | close(handle); | ||
466 | |||
467 | // load the data offsets from ???head.ext | ||
468 | strcpy(fname,gheadname); | ||
469 | strcat(fname,graphext); | ||
470 | |||
471 | handle = open(fname, O_RDONLY | O_BINARY); | ||
472 | if (handle == -1) | ||
473 | CA_CannotOpen(fname); | ||
474 | |||
475 | long headersize = lseek(handle, 0, SEEK_END); | ||
476 | lseek(handle, 0, SEEK_SET); | ||
477 | |||
478 | #ifndef APOGEE_1_0 | ||
479 | int expectedsize = lengthof(grstarts) - numEpisodesMissing; | ||
480 | #else | ||
481 | int expectedsize = lengthof(grstarts); | ||
482 | #endif | ||
483 | |||
484 | if(!param_ignorenumchunks && headersize / 3 != (long) expectedsize) | ||
485 | Quit("Wolf4SDL was not compiled for these data files:\n" | ||
486 | "%s contains a wrong number of offsets (%i instead of %i)!\n\n" | ||
487 | "Please check whether you are using the right executable!\n" | ||
488 | "(For mod developers: perhaps you forgot to update NUMCHUNKS?)", | ||
489 | fname, headersize / 3, expectedsize); | ||
490 | |||
491 | byte data[lengthof(grstarts) * 3]; | ||
492 | read(handle, data, sizeof(data)); | ||
493 | close(handle); | ||
494 | |||
495 | const byte* d = data; | ||
496 | for (int32_t* i = grstarts; i != endof(grstarts); ++i) | ||
497 | { | ||
498 | const int32_t val = d[0] | d[1] << 8 | d[2] << 16; | ||
499 | *i = (val == 0x00FFFFFF ? -1 : val); | ||
500 | d += 3; | ||
501 | } | ||
502 | #endif | ||
503 | |||
504 | // | ||
505 | // Open the graphics file, leaving it open until the game is finished | ||
506 | // | ||
507 | strcpy(fname,gfilename); | ||
508 | strcat(fname,graphext); | ||
509 | |||
510 | grhandle = open(fname, O_RDONLY | O_BINARY); | ||
511 | if (grhandle == -1) | ||
512 | CA_CannotOpen(fname); | ||
513 | |||
514 | |||
515 | // | ||
516 | // load the pic and sprite headers into the arrays in the data segment | ||
517 | // | ||
518 | pictable=(pictabletype *) malloc(NUMPICS*sizeof(pictabletype)); | ||
519 | CHECKMALLOCRESULT(pictable); | ||
520 | CAL_GetGrChunkLength(STRUCTPIC); // position file pointer | ||
521 | compseg=(byte *) malloc(chunkcomplen); | ||
522 | CHECKMALLOCRESULT(compseg); | ||
523 | read (grhandle,compseg,chunkcomplen); | ||
524 | CAL_HuffExpand(compseg, (byte*)pictable, NUMPICS * sizeof(pictabletype), grhuffman); | ||
525 | free(compseg); | ||
526 | } | ||
527 | |||
528 | //========================================================================== | ||
529 | |||
530 | |||
531 | /* | ||
532 | ====================== | ||
533 | = | ||
534 | = CAL_SetupMapFile | ||
535 | = | ||
536 | ====================== | ||
537 | */ | ||
538 | |||
539 | void CAL_SetupMapFile (void) | ||
540 | { | ||
541 | int i; | ||
542 | int handle; | ||
543 | int32_t length,pos; | ||
544 | char fname[13 + sizeof(DATADIR)]; | ||
545 | |||
546 | // | ||
547 | // load maphead.ext (offsets and tileinfo for map file) | ||
548 | // | ||
549 | strcpy(fname,mheadname); | ||
550 | strcat(fname,extension); | ||
551 | |||
552 | handle = open(fname, O_RDONLY | O_BINARY); | ||
553 | if (handle == -1) | ||
554 | CA_CannotOpen(fname); | ||
555 | |||
556 | length = NUMMAPS*4+2; // used to be "filelength(handle);" | ||
557 | mapfiletype *tinf=(mapfiletype *) malloc(sizeof(mapfiletype)); | ||
558 | CHECKMALLOCRESULT(tinf); | ||
559 | read(handle, tinf, length); | ||
560 | close(handle); | ||
561 | |||
562 | RLEWtag=tinf->RLEWtag; | ||
563 | |||
564 | // | ||
565 | // open the data file | ||
566 | // | ||
567 | #ifdef CARMACIZED | ||
568 | strcpy(fname, mfilecama); | ||
569 | strcat(fname, extension); | ||
570 | |||
571 | maphandle = open(fname, O_RDONLY | O_BINARY); | ||
572 | if (maphandle == -1) | ||
573 | CA_CannotOpen(fname); | ||
574 | #else | ||
575 | strcpy(fname,mfilename); | ||
576 | strcat(fname,extension); | ||
577 | |||
578 | maphandle = open(fname, O_RDONLY | O_BINARY); | ||
579 | if (maphandle == -1) | ||
580 | CA_CannotOpen(fname); | ||
581 | #endif | ||
582 | |||
583 | // | ||
584 | // load all map header | ||
585 | // | ||
586 | for (i=0;i<NUMMAPS;i++) | ||
587 | { | ||
588 | pos = tinf->headeroffsets[i]; | ||
589 | if (pos<0) // $FFFFFFFF start is a sparse map | ||
590 | continue; | ||
591 | |||
592 | mapheaderseg[i]=(maptype *) malloc(sizeof(maptype)); | ||
593 | CHECKMALLOCRESULT(mapheaderseg[i]); | ||
594 | lseek(maphandle,pos,SEEK_SET); | ||
595 | read (maphandle,(memptr)mapheaderseg[i],sizeof(maptype)); | ||
596 | } | ||
597 | |||
598 | free(tinf); | ||
599 | |||
600 | // | ||
601 | // allocate space for 3 64*64 planes | ||
602 | // | ||
603 | for (i=0;i<MAPPLANES;i++) | ||
604 | { | ||
605 | mapsegs[i]=(word *) malloc(maparea*2); | ||
606 | CHECKMALLOCRESULT(mapsegs[i]); | ||
607 | } | ||
608 | } | ||
609 | |||
610 | |||
611 | //========================================================================== | ||
612 | |||
613 | |||
614 | /* | ||
615 | ====================== | ||
616 | = | ||
617 | = CAL_SetupAudioFile | ||
618 | = | ||
619 | ====================== | ||
620 | */ | ||
621 | |||
622 | void CAL_SetupAudioFile (void) | ||
623 | { | ||
624 | char fname[13 + sizeof(DATADIR)]; | ||
625 | |||
626 | // | ||
627 | // load audiohed.ext (offsets for audio file) | ||
628 | // | ||
629 | strcpy(fname,aheadname); | ||
630 | strcat(fname,audioext); | ||
631 | |||
632 | void* ptr; | ||
633 | if (!CA_LoadFile(fname, &ptr)) | ||
634 | CA_CannotOpen(fname); | ||
635 | audiostarts = (int32_t*)ptr; | ||
636 | |||
637 | // | ||
638 | // open the data file | ||
639 | // | ||
640 | strcpy(fname,afilename); | ||
641 | strcat(fname,audioext); | ||
642 | |||
643 | audiohandle = open(fname, O_RDONLY | O_BINARY); | ||
644 | if (audiohandle == -1) | ||
645 | CA_CannotOpen(fname); | ||
646 | } | ||
647 | |||
648 | //========================================================================== | ||
649 | |||
650 | |||
651 | /* | ||
652 | ====================== | ||
653 | = | ||
654 | = CA_Startup | ||
655 | = | ||
656 | = Open all files and load in headers | ||
657 | = | ||
658 | ====================== | ||
659 | */ | ||
660 | |||
661 | void CA_Startup (void) | ||
662 | { | ||
663 | #ifdef PROFILE | ||
664 | unlink ("PROFILE.TXT"); | ||
665 | profilehandle = open("PROFILE.TXT", O_CREAT | O_WRONLY | O_TEXT); | ||
666 | #endif | ||
667 | |||
668 | CAL_SetupMapFile (); | ||
669 | CAL_SetupGrFile (); | ||
670 | CAL_SetupAudioFile (); | ||
671 | |||
672 | mapon = -1; | ||
673 | } | ||
674 | |||
675 | //========================================================================== | ||
676 | |||
677 | |||
678 | /* | ||
679 | ====================== | ||
680 | = | ||
681 | = CA_Shutdown | ||
682 | = | ||
683 | = Closes all files | ||
684 | = | ||
685 | ====================== | ||
686 | */ | ||
687 | |||
688 | void CA_Shutdown (void) | ||
689 | { | ||
690 | int i,start; | ||
691 | |||
692 | if(maphandle != -1) | ||
693 | close(maphandle); | ||
694 | if(grhandle != -1) | ||
695 | close(grhandle); | ||
696 | if(audiohandle != -1) | ||
697 | close(audiohandle); | ||
698 | |||
699 | for(i=0; i<NUMCHUNKS; i++) | ||
700 | UNCACHEGRCHUNK(i); | ||
701 | free(pictable); | ||
702 | |||
703 | switch(oldsoundmode) | ||
704 | { | ||
705 | case sdm_Off: | ||
706 | return; | ||
707 | case sdm_PC: | ||
708 | start = STARTPCSOUNDS; | ||
709 | break; | ||
710 | case sdm_AdLib: | ||
711 | start = STARTADLIBSOUNDS; | ||
712 | break; | ||
713 | } | ||
714 | |||
715 | for(i=0; i<NUMSOUNDS; i++,start++) | ||
716 | UNCACHEAUDIOCHUNK(start); | ||
717 | } | ||
718 | |||
719 | //=========================================================================== | ||
720 | |||
721 | /* | ||
722 | ====================== | ||
723 | = | ||
724 | = CA_CacheAudioChunk | ||
725 | = | ||
726 | ====================== | ||
727 | */ | ||
728 | |||
729 | int32_t CA_CacheAudioChunk (int chunk) | ||
730 | { | ||
731 | #ifdef SOUND_ENABLE | ||
732 | int32_t pos = audiostarts[chunk]; | ||
733 | int32_t size = audiostarts[chunk+1]-pos; | ||
734 | |||
735 | if (audiosegs[chunk]) | ||
736 | return size; // already in memory | ||
737 | |||
738 | audiosegs[chunk]=(byte *) malloc(size); | ||
739 | CHECKMALLOCRESULT(audiosegs[chunk]); | ||
740 | |||
741 | lseek(audiohandle,pos,SEEK_SET); | ||
742 | read(audiohandle,audiosegs[chunk],size); | ||
743 | |||
744 | return size; | ||
745 | #endif | ||
746 | return 0; | ||
747 | } | ||
748 | |||
749 | void CA_CacheAdlibSoundChunk (int chunk) | ||
750 | { | ||
751 | #ifdef SOUND_ENABLE | ||
752 | int32_t pos = audiostarts[chunk]; | ||
753 | int32_t size = audiostarts[chunk+1]-pos; | ||
754 | |||
755 | if (audiosegs[chunk]) | ||
756 | return; // already in memory | ||
757 | |||
758 | lseek(audiohandle, pos, SEEK_SET); | ||
759 | read(audiohandle, bufferseg, ORIG_ADLIBSOUND_SIZE - 1); // without data[1] | ||
760 | |||
761 | AdLibSound *sound = (AdLibSound *) malloc(size + sizeof(AdLibSound) - ORIG_ADLIBSOUND_SIZE); | ||
762 | CHECKMALLOCRESULT(sound); | ||
763 | |||
764 | byte *ptr = (byte *) bufferseg; | ||
765 | sound->common.length = READLONGWORD(&ptr); | ||
766 | sound->common.priority = READWORD(&ptr); | ||
767 | sound->inst.mChar = *ptr++; | ||
768 | sound->inst.cChar = *ptr++; | ||
769 | sound->inst.mScale = *ptr++; | ||
770 | sound->inst.cScale = *ptr++; | ||
771 | sound->inst.mAttack = *ptr++; | ||
772 | sound->inst.cAttack = *ptr++; | ||
773 | sound->inst.mSus = *ptr++; | ||
774 | sound->inst.cSus = *ptr++; | ||
775 | sound->inst.mWave = *ptr++; | ||
776 | sound->inst.cWave = *ptr++; | ||
777 | sound->inst.nConn = *ptr++; | ||
778 | sound->inst.voice = *ptr++; | ||
779 | sound->inst.mode = *ptr++; | ||
780 | sound->inst.unused[0] = *ptr++; | ||
781 | sound->inst.unused[1] = *ptr++; | ||
782 | sound->inst.unused[2] = *ptr++; | ||
783 | sound->block = *ptr++; | ||
784 | |||
785 | read(audiohandle, sound->data, size - ORIG_ADLIBSOUND_SIZE + 1); // + 1 because of byte data[1] | ||
786 | |||
787 | audiosegs[chunk]=(byte *) sound; | ||
788 | #endif | ||
789 | } | ||
790 | |||
791 | //=========================================================================== | ||
792 | |||
793 | /* | ||
794 | ====================== | ||
795 | = | ||
796 | = CA_LoadAllSounds | ||
797 | = | ||
798 | = Purges all sounds, then loads all new ones (mode switch) | ||
799 | = | ||
800 | ====================== | ||
801 | */ | ||
802 | |||
803 | void CA_LoadAllSounds (void) | ||
804 | { | ||
805 | #ifdef SOUND_ENABLE | ||
806 | unsigned start,i; | ||
807 | |||
808 | switch (oldsoundmode) | ||
809 | { | ||
810 | case sdm_Off: | ||
811 | goto cachein; | ||
812 | case sdm_PC: | ||
813 | start = STARTPCSOUNDS; | ||
814 | break; | ||
815 | case sdm_AdLib: | ||
816 | start = STARTADLIBSOUNDS; | ||
817 | break; | ||
818 | } | ||
819 | |||
820 | for (i=0;i<NUMSOUNDS;i++,start++) | ||
821 | UNCACHEAUDIOCHUNK(start); | ||
822 | |||
823 | cachein: | ||
824 | |||
825 | oldsoundmode = SoundMode; | ||
826 | |||
827 | switch (SoundMode) | ||
828 | { | ||
829 | case sdm_Off: | ||
830 | start = STARTADLIBSOUNDS; // needed for priorities... | ||
831 | break; | ||
832 | case sdm_PC: | ||
833 | start = STARTPCSOUNDS; | ||
834 | break; | ||
835 | case sdm_AdLib: | ||
836 | start = STARTADLIBSOUNDS; | ||
837 | break; | ||
838 | } | ||
839 | |||
840 | if(start == STARTADLIBSOUNDS) | ||
841 | { | ||
842 | for (i=0;i<NUMSOUNDS;i++,start++) | ||
843 | CA_CacheAdlibSoundChunk(start); | ||
844 | } | ||
845 | else | ||
846 | { | ||
847 | for (i=0;i<NUMSOUNDS;i++,start++) | ||
848 | CA_CacheAudioChunk(start); | ||
849 | } | ||
850 | #endif | ||
851 | } | ||
852 | |||
853 | //=========================================================================== | ||
854 | |||
855 | |||
856 | /* | ||
857 | ====================== | ||
858 | = | ||
859 | = CAL_ExpandGrChunk | ||
860 | = | ||
861 | = Does whatever is needed with a pointer to a compressed chunk | ||
862 | = | ||
863 | ====================== | ||
864 | */ | ||
865 | |||
866 | void CAL_ExpandGrChunk (int chunk, int32_t *source) | ||
867 | { | ||
868 | int32_t expanded; | ||
869 | |||
870 | if (chunk >= STARTTILE8 && chunk < STARTEXTERNS) | ||
871 | { | ||
872 | // | ||
873 | // expanded sizes of tile8/16/32 are implicit | ||
874 | // | ||
875 | |||
876 | #define BLOCK 64 | ||
877 | #define MASKBLOCK 128 | ||
878 | |||
879 | if (chunk<STARTTILE8M) // tile 8s are all in one chunk! | ||
880 | expanded = BLOCK*NUMTILE8; | ||
881 | else if (chunk<STARTTILE16) | ||
882 | expanded = MASKBLOCK*NUMTILE8M; | ||
883 | else if (chunk<STARTTILE16M) // all other tiles are one/chunk | ||
884 | expanded = BLOCK*4; | ||
885 | else if (chunk<STARTTILE32) | ||
886 | expanded = MASKBLOCK*4; | ||
887 | else if (chunk<STARTTILE32M) | ||
888 | expanded = BLOCK*16; | ||
889 | else | ||
890 | expanded = MASKBLOCK*16; | ||
891 | } | ||
892 | else | ||
893 | { | ||
894 | // | ||
895 | // everything else has an explicit size longword | ||
896 | // | ||
897 | expanded = *source++; | ||
898 | } | ||
899 | |||
900 | // | ||
901 | // allocate final space, decompress it, and free bigbuffer | ||
902 | // Sprites need to have shifts made and various other junk | ||
903 | // | ||
904 | grsegs[chunk]=(byte *) malloc(expanded); | ||
905 | CHECKMALLOCRESULT(grsegs[chunk]); | ||
906 | CAL_HuffExpand((byte *) source, grsegs[chunk], expanded, grhuffman); | ||
907 | } | ||
908 | |||
909 | |||
910 | /* | ||
911 | ====================== | ||
912 | = | ||
913 | = CA_CacheGrChunk | ||
914 | = | ||
915 | = Makes sure a given chunk is in memory, loadiing it if needed | ||
916 | = | ||
917 | ====================== | ||
918 | */ | ||
919 | |||
920 | void CA_CacheGrChunk (int chunk) | ||
921 | { | ||
922 | int32_t pos,compressed; | ||
923 | int32_t *source; | ||
924 | int next; | ||
925 | |||
926 | if (grsegs[chunk]) | ||
927 | return; // already in memory | ||
928 | |||
929 | // | ||
930 | // load the chunk into a buffer, either the miscbuffer if it fits, or allocate | ||
931 | // a larger buffer | ||
932 | // | ||
933 | pos = GRFILEPOS(chunk); | ||
934 | if (pos<0) // $FFFFFFFF start is a sparse tile | ||
935 | return; | ||
936 | |||
937 | next = chunk +1; | ||
938 | while (GRFILEPOS(next) == -1) // skip past any sparse tiles | ||
939 | next++; | ||
940 | |||
941 | compressed = GRFILEPOS(next)-pos; | ||
942 | |||
943 | lseek(grhandle,pos,SEEK_SET); | ||
944 | |||
945 | if (compressed<=BUFFERSIZE) | ||
946 | { | ||
947 | read(grhandle,bufferseg,compressed); | ||
948 | source = bufferseg; | ||
949 | } | ||
950 | else | ||
951 | { | ||
952 | source = (int32_t *) malloc(compressed); | ||
953 | CHECKMALLOCRESULT(source); | ||
954 | read(grhandle,source,compressed); | ||
955 | } | ||
956 | |||
957 | CAL_ExpandGrChunk (chunk,source); | ||
958 | |||
959 | if (compressed>BUFFERSIZE) | ||
960 | free(source); | ||
961 | } | ||
962 | |||
963 | |||
964 | |||
965 | //========================================================================== | ||
966 | |||
967 | /* | ||
968 | ====================== | ||
969 | = | ||
970 | = CA_CacheScreen | ||
971 | = | ||
972 | = Decompresses a chunk from disk straight onto the screen | ||
973 | = | ||
974 | ====================== | ||
975 | */ | ||
976 | |||
977 | void CA_CacheScreen (int chunk) | ||
978 | { | ||
979 | int32_t pos,compressed,expanded; | ||
980 | memptr bigbufferseg; | ||
981 | int32_t *source; | ||
982 | int next; | ||
983 | |||
984 | // | ||
985 | // load the chunk into a buffer | ||
986 | // | ||
987 | pos = GRFILEPOS(chunk); | ||
988 | next = chunk +1; | ||
989 | while (GRFILEPOS(next) == -1) // skip past any sparse tiles | ||
990 | next++; | ||
991 | compressed = GRFILEPOS(next)-pos; | ||
992 | |||
993 | lseek(grhandle,pos,SEEK_SET); | ||
994 | |||
995 | bigbufferseg=malloc(compressed); | ||
996 | CHECKMALLOCRESULT(bigbufferseg); | ||
997 | read(grhandle,bigbufferseg,compressed); | ||
998 | source = (int32_t *) bigbufferseg; | ||
999 | |||
1000 | expanded = *source++; | ||
1001 | |||
1002 | // | ||
1003 | // allocate final space, decompress it, and free bigbuffer | ||
1004 | // Sprites need to have shifts made and various other junk | ||
1005 | // | ||
1006 | byte *pic = (byte *) malloc(64000); | ||
1007 | CHECKMALLOCRESULT(pic); | ||
1008 | CAL_HuffExpand((byte *) source, pic, expanded, grhuffman); | ||
1009 | |||
1010 | byte *vbuf = LOCK(); | ||
1011 | for(int y = 0, scy = 0; y < 200; y++, scy += scaleFactor) | ||
1012 | { | ||
1013 | for(int x = 0, scx = 0; x < 320; x++, scx += scaleFactor) | ||
1014 | { | ||
1015 | byte col = pic[(y * 80 + (x >> 2)) + (x & 3) * 80 * 200]; | ||
1016 | for(unsigned i = 0; i < scaleFactor; i++) | ||
1017 | for(unsigned j = 0; j < scaleFactor; j++) | ||
1018 | vbuf[(scy + i) * curPitch + scx + j] = col; | ||
1019 | } | ||
1020 | } | ||
1021 | UNLOCK(); | ||
1022 | free(pic); | ||
1023 | free(bigbufferseg); | ||
1024 | } | ||
1025 | |||
1026 | //========================================================================== | ||
1027 | |||
1028 | /* | ||
1029 | ====================== | ||
1030 | = | ||
1031 | = CA_CacheMap | ||
1032 | = | ||
1033 | = WOLF: This is specialized for a 64*64 map size | ||
1034 | = | ||
1035 | ====================== | ||
1036 | */ | ||
1037 | |||
1038 | void CA_CacheMap (int mapnum) | ||
1039 | { | ||
1040 | int32_t pos,compressed; | ||
1041 | int plane; | ||
1042 | word *dest; | ||
1043 | memptr bigbufferseg; | ||
1044 | unsigned size; | ||
1045 | word *source; | ||
1046 | #ifdef CARMACIZED | ||
1047 | word *buffer2seg; | ||
1048 | int32_t expanded; | ||
1049 | #endif | ||
1050 | |||
1051 | mapon = mapnum; | ||
1052 | |||
1053 | // | ||
1054 | // load the planes into the allready allocated buffers | ||
1055 | // | ||
1056 | size = maparea*2; | ||
1057 | |||
1058 | for (plane = 0; plane<MAPPLANES; plane++) | ||
1059 | { | ||
1060 | pos = mapheaderseg[mapnum]->planestart[plane]; | ||
1061 | compressed = mapheaderseg[mapnum]->planelength[plane]; | ||
1062 | |||
1063 | dest = mapsegs[plane]; | ||
1064 | |||
1065 | lseek(maphandle,pos,SEEK_SET); | ||
1066 | if (compressed<=BUFFERSIZE) | ||
1067 | source = (word *) bufferseg; | ||
1068 | else | ||
1069 | { | ||
1070 | bigbufferseg=malloc(compressed); | ||
1071 | CHECKMALLOCRESULT(bigbufferseg); | ||
1072 | source = (word *) bigbufferseg; | ||
1073 | } | ||
1074 | |||
1075 | read(maphandle,source,compressed); | ||
1076 | #ifdef CARMACIZED | ||
1077 | // | ||
1078 | // unhuffman, then unRLEW | ||
1079 | // The huffman'd chunk has a two byte expanded length first | ||
1080 | // The resulting RLEW chunk also does, even though it's not really | ||
1081 | // needed | ||
1082 | // | ||
1083 | expanded = *source; | ||
1084 | source++; | ||
1085 | buffer2seg = (word *) malloc(expanded); | ||
1086 | CHECKMALLOCRESULT(buffer2seg); | ||
1087 | CAL_CarmackExpand((byte *) source, buffer2seg,expanded); | ||
1088 | CA_RLEWexpand(buffer2seg+1,dest,size,RLEWtag); | ||
1089 | free(buffer2seg); | ||
1090 | |||
1091 | #else | ||
1092 | // | ||
1093 | // unRLEW, skipping expanded length | ||
1094 | // | ||
1095 | CA_RLEWexpand (source+1,dest,size,RLEWtag); | ||
1096 | #endif | ||
1097 | |||
1098 | if (compressed>BUFFERSIZE) | ||
1099 | free(bigbufferseg); | ||
1100 | } | ||
1101 | } | ||
1102 | |||
1103 | //=========================================================================== | ||
1104 | |||
1105 | void CA_CannotOpen(const char *string) | ||
1106 | { | ||
1107 | char str[30]; | ||
1108 | |||
1109 | strcpy(str,"Can't open "); | ||
1110 | strcat(str,string); | ||
1111 | strcat(str,"!\n"); | ||
1112 | Quit (str); | ||
1113 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_ca.h b/apps/plugins/sdl/progs/wolf3d/id_ca.h new file mode 100644 index 0000000000..87a8886417 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_ca.h | |||
@@ -0,0 +1,60 @@ | |||
1 | #ifndef __ID_CA__ | ||
2 | #define __ID_CA__ | ||
3 | |||
4 | //=========================================================================== | ||
5 | |||
6 | #define NUMMAPS 60 | ||
7 | #ifdef USE_FLOORCEILINGTEX | ||
8 | #define MAPPLANES 3 | ||
9 | #else | ||
10 | #define MAPPLANES 2 | ||
11 | #endif | ||
12 | |||
13 | #define UNCACHEGRCHUNK(chunk) {if(grsegs[chunk]) {free(grsegs[chunk]); grsegs[chunk]=NULL;}} | ||
14 | #define UNCACHEAUDIOCHUNK(chunk) {if(audiosegs[chunk]) {free(audiosegs[chunk]); audiosegs[chunk]=NULL;}} | ||
15 | |||
16 | //=========================================================================== | ||
17 | |||
18 | typedef struct | ||
19 | { | ||
20 | int32_t planestart[3]; | ||
21 | word planelength[3]; | ||
22 | word width,height; | ||
23 | char name[16]; | ||
24 | } maptype; | ||
25 | |||
26 | //=========================================================================== | ||
27 | |||
28 | extern int mapon; | ||
29 | |||
30 | extern word *mapsegs[MAPPLANES]; | ||
31 | extern byte *audiosegs[NUMSNDCHUNKS]; | ||
32 | extern byte *grsegs[NUMCHUNKS]; | ||
33 | |||
34 | extern char extension[5]; | ||
35 | extern char graphext[5]; | ||
36 | extern char audioext[5]; | ||
37 | |||
38 | //=========================================================================== | ||
39 | |||
40 | boolean CA_LoadFile (const char *filename, memptr *ptr); | ||
41 | boolean CA_WriteFile (const char *filename, void *ptr, int32_t length); | ||
42 | |||
43 | int32_t CA_RLEWCompress (word *source, int32_t length, word *dest, word rlewtag); | ||
44 | |||
45 | void CA_RLEWexpand (word *source, word *dest, int32_t length, word rlewtag); | ||
46 | |||
47 | void CA_Startup (void); | ||
48 | void CA_Shutdown (void); | ||
49 | |||
50 | int32_t CA_CacheAudioChunk (int chunk); | ||
51 | void CA_LoadAllSounds (void); | ||
52 | |||
53 | void CA_CacheGrChunk (int chunk); | ||
54 | void CA_CacheMap (int mapnum); | ||
55 | |||
56 | void CA_CacheScreen (int chunk); | ||
57 | |||
58 | void CA_CannotOpen(const char *name); | ||
59 | |||
60 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_in.c b/apps/plugins/sdl/progs/wolf3d/id_in.c new file mode 100644 index 0000000000..62eec2f24d --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_in.c | |||
@@ -0,0 +1,667 @@ | |||
1 | // | ||
2 | // ID Engine | ||
3 | // ID_IN.c - Input Manager | ||
4 | // v1.0d1 | ||
5 | // By Jason Blochowiak | ||
6 | // | ||
7 | |||
8 | // | ||
9 | // This module handles dealing with the various input devices | ||
10 | // | ||
11 | // Depends on: Memory Mgr (for demo recording), Sound Mgr (for timing stuff), | ||
12 | // User Mgr (for command line parms) | ||
13 | // | ||
14 | // Globals: | ||
15 | // LastScan - The keyboard scan code of the last key pressed | ||
16 | // LastASCII - The ASCII value of the last key pressed | ||
17 | // DEBUG - there are more globals | ||
18 | // | ||
19 | |||
20 | #include "wl_def.h" | ||
21 | |||
22 | |||
23 | /* | ||
24 | ============================================================================= | ||
25 | |||
26 | GLOBAL VARIABLES | ||
27 | |||
28 | ============================================================================= | ||
29 | */ | ||
30 | |||
31 | |||
32 | // | ||
33 | // configuration variables | ||
34 | // | ||
35 | boolean MousePresent; | ||
36 | boolean forcegrabmouse; | ||
37 | |||
38 | |||
39 | // Global variables | ||
40 | volatile boolean Keyboard[SDLK_LAST]; | ||
41 | volatile boolean Paused; | ||
42 | volatile char LastASCII; | ||
43 | volatile ScanCode LastScan; | ||
44 | |||
45 | //KeyboardDef KbdDefs = {0x1d,0x38,0x47,0x48,0x49,0x4b,0x4d,0x4f,0x50,0x51}; | ||
46 | static KeyboardDef KbdDefs = { | ||
47 | sc_Return, // button0 | ||
48 | sc_Alt, // button1 | ||
49 | sc_Home, // upleft | ||
50 | sc_UpArrow, // up | ||
51 | sc_PgUp, // upright | ||
52 | sc_LeftArrow, // left | ||
53 | sc_RightArrow, // right | ||
54 | sc_End, // downleft | ||
55 | sc_DownArrow, // down | ||
56 | sc_PgDn // downright | ||
57 | }; | ||
58 | |||
59 | static SDL_Joystick *Joystick; | ||
60 | int JoyNumButtons; | ||
61 | static int JoyNumHats; | ||
62 | |||
63 | static bool GrabInput = false; | ||
64 | |||
65 | /* | ||
66 | ============================================================================= | ||
67 | |||
68 | LOCAL VARIABLES | ||
69 | |||
70 | ============================================================================= | ||
71 | */ | ||
72 | byte ASCIINames[] = // Unshifted ASCII for scan codes // TODO: keypad | ||
73 | { | ||
74 | // 0 1 2 3 4 5 6 7 8 9 A B C D E F | ||
75 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,8 ,9 ,0 ,0 ,0 ,13 ,0 ,0 , // 0 | ||
76 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,27 ,0 ,0 ,0 , // 1 | ||
77 | ' ',0 ,0 ,0 ,0 ,0 ,0 ,39 ,0 ,0 ,'*','+',',','-','.','/', // 2 | ||
78 | '0','1','2','3','4','5','6','7','8','9',0 ,';',0 ,'=',0 ,0 , // 3 | ||
79 | '`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', // 4 | ||
80 | 'p','q','r','s','t','u','v','w','x','y','z','[',92 ,']',0 ,0 , // 5 | ||
81 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 6 | ||
82 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 // 7 | ||
83 | }; | ||
84 | byte ShiftNames[] = // Shifted ASCII for scan codes | ||
85 | { | ||
86 | // 0 1 2 3 4 5 6 7 8 9 A B C D E F | ||
87 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,8 ,9 ,0 ,0 ,0 ,13 ,0 ,0 , // 0 | ||
88 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,27 ,0 ,0 ,0 , // 1 | ||
89 | ' ',0 ,0 ,0 ,0 ,0 ,0 ,34 ,0 ,0 ,'*','+','<','_','>','?', // 2 | ||
90 | ')','!','@','#','$','%','^','&','*','(',0 ,':',0 ,'+',0 ,0 , // 3 | ||
91 | '~','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', // 4 | ||
92 | 'P','Q','R','S','T','U','V','W','X','Y','Z','{','|','}',0 ,0 , // 5 | ||
93 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 6 | ||
94 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 // 7 | ||
95 | }; | ||
96 | byte SpecialNames[] = // ASCII for 0xe0 prefixed codes | ||
97 | { | ||
98 | // 0 1 2 3 4 5 6 7 8 9 A B C D E F | ||
99 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 0 | ||
100 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,13 ,0 ,0 ,0 , // 1 | ||
101 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 2 | ||
102 | 0 ,0 ,0 ,0 ,0 ,'/',0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 3 | ||
103 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 4 | ||
104 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 5 | ||
105 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 6 | ||
106 | 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 // 7 | ||
107 | }; | ||
108 | |||
109 | |||
110 | static boolean IN_Started; | ||
111 | |||
112 | static Direction DirTable[] = // Quick lookup for total direction | ||
113 | { | ||
114 | dir_NorthWest, dir_North, dir_NorthEast, | ||
115 | dir_West, dir_None, dir_East, | ||
116 | dir_SouthWest, dir_South, dir_SouthEast | ||
117 | }; | ||
118 | |||
119 | |||
120 | /////////////////////////////////////////////////////////////////////////// | ||
121 | // | ||
122 | // INL_GetMouseButtons() - Gets the status of the mouse buttons from the | ||
123 | // mouse driver | ||
124 | // | ||
125 | /////////////////////////////////////////////////////////////////////////// | ||
126 | static int | ||
127 | INL_GetMouseButtons(void) | ||
128 | { | ||
129 | int buttons = SDL_GetMouseState(NULL, NULL); | ||
130 | int middlePressed = buttons & SDL_BUTTON(SDL_BUTTON_MIDDLE); | ||
131 | int rightPressed = buttons & SDL_BUTTON(SDL_BUTTON_RIGHT); | ||
132 | buttons &= ~(SDL_BUTTON(SDL_BUTTON_MIDDLE) | SDL_BUTTON(SDL_BUTTON_RIGHT)); | ||
133 | if(middlePressed) buttons |= 1 << 2; | ||
134 | if(rightPressed) buttons |= 1 << 1; | ||
135 | |||
136 | return buttons; | ||
137 | } | ||
138 | |||
139 | /////////////////////////////////////////////////////////////////////////// | ||
140 | // | ||
141 | // IN_GetJoyDelta() - Returns the relative movement of the specified | ||
142 | // joystick (from +/-127) | ||
143 | // | ||
144 | /////////////////////////////////////////////////////////////////////////// | ||
145 | void IN_GetJoyDelta(int *dx,int *dy) | ||
146 | { | ||
147 | if(!Joystick) | ||
148 | { | ||
149 | *dx = *dy = 0; | ||
150 | return; | ||
151 | } | ||
152 | |||
153 | SDL_JoystickUpdate(); | ||
154 | #ifdef _arch_dreamcast | ||
155 | int x = 0; | ||
156 | int y = 0; | ||
157 | #else | ||
158 | int x = SDL_JoystickGetAxis(Joystick, 0) >> 8; | ||
159 | int y = SDL_JoystickGetAxis(Joystick, 1) >> 8; | ||
160 | #endif | ||
161 | |||
162 | if(param_joystickhat != -1) | ||
163 | { | ||
164 | uint8_t hatState = SDL_JoystickGetHat(Joystick, param_joystickhat); | ||
165 | if(hatState & SDL_HAT_RIGHT) | ||
166 | x += 127; | ||
167 | else if(hatState & SDL_HAT_LEFT) | ||
168 | x -= 127; | ||
169 | if(hatState & SDL_HAT_DOWN) | ||
170 | y += 127; | ||
171 | else if(hatState & SDL_HAT_UP) | ||
172 | y -= 127; | ||
173 | |||
174 | if(x < -128) x = -128; | ||
175 | else if(x > 127) x = 127; | ||
176 | |||
177 | if(y < -128) y = -128; | ||
178 | else if(y > 127) y = 127; | ||
179 | } | ||
180 | |||
181 | *dx = x; | ||
182 | *dy = y; | ||
183 | } | ||
184 | |||
185 | /////////////////////////////////////////////////////////////////////////// | ||
186 | // | ||
187 | // IN_GetJoyFineDelta() - Returns the relative movement of the specified | ||
188 | // joystick without dividing the results by 256 (from +/-127) | ||
189 | // | ||
190 | /////////////////////////////////////////////////////////////////////////// | ||
191 | void IN_GetJoyFineDelta(int *dx, int *dy) | ||
192 | { | ||
193 | if(!Joystick) | ||
194 | { | ||
195 | *dx = 0; | ||
196 | *dy = 0; | ||
197 | return; | ||
198 | } | ||
199 | |||
200 | SDL_JoystickUpdate(); | ||
201 | int x = SDL_JoystickGetAxis(Joystick, 0); | ||
202 | int y = SDL_JoystickGetAxis(Joystick, 1); | ||
203 | |||
204 | if(x < -128) x = -128; | ||
205 | else if(x > 127) x = 127; | ||
206 | |||
207 | if(y < -128) y = -128; | ||
208 | else if(y > 127) y = 127; | ||
209 | |||
210 | *dx = x; | ||
211 | *dy = y; | ||
212 | } | ||
213 | |||
214 | /* | ||
215 | =================== | ||
216 | = | ||
217 | = IN_JoyButtons | ||
218 | = | ||
219 | =================== | ||
220 | */ | ||
221 | |||
222 | int IN_JoyButtons() | ||
223 | { | ||
224 | if(!Joystick) return 0; | ||
225 | |||
226 | SDL_JoystickUpdate(); | ||
227 | |||
228 | int res = 0; | ||
229 | for(int i = 0; i < JoyNumButtons && i < 32; i++) | ||
230 | res |= SDL_JoystickGetButton(Joystick, i) << i; | ||
231 | return res; | ||
232 | } | ||
233 | |||
234 | boolean IN_JoyPresent() | ||
235 | { | ||
236 | return Joystick != NULL; | ||
237 | } | ||
238 | |||
239 | static void processEvent(SDL_Event *event) | ||
240 | { | ||
241 | switch (event->type) | ||
242 | { | ||
243 | // exit if the window is closed | ||
244 | case SDL_QUIT: | ||
245 | Quit(NULL); | ||
246 | |||
247 | // check for keypresses | ||
248 | case SDL_KEYDOWN: | ||
249 | { | ||
250 | if(event->key.keysym.sym==SDLK_SCROLLOCK || event->key.keysym.sym==SDLK_F12) | ||
251 | { | ||
252 | GrabInput = !GrabInput; | ||
253 | SDL_WM_GrabInput(GrabInput ? SDL_GRAB_ON : SDL_GRAB_OFF); | ||
254 | return; | ||
255 | } | ||
256 | |||
257 | LastScan = event->key.keysym.sym; | ||
258 | SDLMod mod = SDL_GetModState(); | ||
259 | if(Keyboard[sc_Alt]) | ||
260 | { | ||
261 | if(LastScan==SDLK_F4) | ||
262 | Quit(NULL); | ||
263 | } | ||
264 | |||
265 | if(LastScan == SDLK_KP_ENTER) LastScan = SDLK_RETURN; | ||
266 | else if(LastScan == SDLK_RSHIFT) LastScan = SDLK_LSHIFT; | ||
267 | else if(LastScan == SDLK_RALT) LastScan = SDLK_LALT; | ||
268 | else if(LastScan == SDLK_RCTRL) LastScan = SDLK_LCTRL; | ||
269 | else | ||
270 | { | ||
271 | if((mod & KMOD_NUM) == 0) | ||
272 | { | ||
273 | switch(LastScan) | ||
274 | { | ||
275 | case SDLK_KP2: LastScan = SDLK_DOWN; break; | ||
276 | case SDLK_KP4: LastScan = SDLK_LEFT; break; | ||
277 | case SDLK_KP6: LastScan = SDLK_RIGHT; break; | ||
278 | case SDLK_KP8: LastScan = SDLK_UP; break; | ||
279 | } | ||
280 | } | ||
281 | } | ||
282 | |||
283 | int sym = LastScan; | ||
284 | if(sym >= 'a' && sym <= 'z') | ||
285 | sym -= 32; // convert to uppercase | ||
286 | |||
287 | if(mod & (KMOD_SHIFT | KMOD_CAPS)) | ||
288 | { | ||
289 | if(sym < lengthof(ShiftNames) && ShiftNames[sym]) | ||
290 | LastASCII = ShiftNames[sym]; | ||
291 | } | ||
292 | else | ||
293 | { | ||
294 | if(sym < lengthof(ASCIINames) && ASCIINames[sym]) | ||
295 | LastASCII = ASCIINames[sym]; | ||
296 | } | ||
297 | if(LastScan<SDLK_LAST) | ||
298 | { | ||
299 | LOGF("setting key %d", LastScan); | ||
300 | Keyboard[LastScan] = 1; | ||
301 | } | ||
302 | if(LastScan == SDLK_PAUSE) | ||
303 | Paused = true; | ||
304 | break; | ||
305 | } | ||
306 | |||
307 | case SDL_KEYUP: | ||
308 | { | ||
309 | int key = event->key.keysym.sym; | ||
310 | if(key == SDLK_KP_ENTER) key = SDLK_RETURN; | ||
311 | else if(key == SDLK_RSHIFT) key = SDLK_LSHIFT; | ||
312 | else if(key == SDLK_RALT) key = SDLK_LALT; | ||
313 | else if(key == SDLK_RCTRL) key = SDLK_LCTRL; | ||
314 | else | ||
315 | { | ||
316 | if((SDL_GetModState() & KMOD_NUM) == 0) | ||
317 | { | ||
318 | switch(key) | ||
319 | { | ||
320 | case SDLK_KP2: key = SDLK_DOWN; break; | ||
321 | case SDLK_KP4: key = SDLK_LEFT; break; | ||
322 | case SDLK_KP6: key = SDLK_RIGHT; break; | ||
323 | case SDLK_KP8: key = SDLK_UP; break; | ||
324 | } | ||
325 | } | ||
326 | } | ||
327 | |||
328 | if(key<SDLK_LAST) | ||
329 | Keyboard[key] = 0; | ||
330 | break; | ||
331 | } | ||
332 | |||
333 | #if defined(GP2X) | ||
334 | case SDL_JOYBUTTONDOWN: | ||
335 | GP2X_ButtonDown(event->jbutton.button); | ||
336 | break; | ||
337 | |||
338 | case SDL_JOYBUTTONUP: | ||
339 | GP2X_ButtonUp(event->jbutton.button); | ||
340 | break; | ||
341 | #endif | ||
342 | } | ||
343 | } | ||
344 | |||
345 | void IN_WaitAndProcessEvents() | ||
346 | { | ||
347 | SDL_Event event; | ||
348 | if(!SDL_WaitEvent(&event)) return; | ||
349 | do | ||
350 | { | ||
351 | processEvent(&event); | ||
352 | } | ||
353 | while(SDL_PollEvent(&event)); | ||
354 | } | ||
355 | |||
356 | void IN_ProcessEvents() | ||
357 | { | ||
358 | SDL_Event event; | ||
359 | |||
360 | while (SDL_PollEvent(&event)) | ||
361 | { | ||
362 | processEvent(&event); | ||
363 | } | ||
364 | } | ||
365 | |||
366 | |||
367 | /////////////////////////////////////////////////////////////////////////// | ||
368 | // | ||
369 | // IN_Startup() - Starts up the Input Mgr | ||
370 | // | ||
371 | /////////////////////////////////////////////////////////////////////////// | ||
372 | void | ||
373 | IN_Startup(void) | ||
374 | { | ||
375 | if (IN_Started) | ||
376 | return; | ||
377 | |||
378 | IN_ClearKeysDown(); | ||
379 | |||
380 | if(param_joystickindex >= 0 && param_joystickindex < SDL_NumJoysticks()) | ||
381 | { | ||
382 | Joystick = SDL_JoystickOpen(param_joystickindex); | ||
383 | if(Joystick) | ||
384 | { | ||
385 | JoyNumButtons = SDL_JoystickNumButtons(Joystick); | ||
386 | if(JoyNumButtons > 32) JoyNumButtons = 32; // only up to 32 buttons are supported | ||
387 | JoyNumHats = SDL_JoystickNumHats(Joystick); | ||
388 | if(param_joystickhat < -1 || param_joystickhat >= JoyNumHats) | ||
389 | Quit("The joystickhat param must be between 0 and %i!", JoyNumHats - 1); | ||
390 | } | ||
391 | } | ||
392 | |||
393 | SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE); | ||
394 | |||
395 | if(fullscreen || forcegrabmouse) | ||
396 | { | ||
397 | GrabInput = true; | ||
398 | SDL_WM_GrabInput(SDL_GRAB_ON); | ||
399 | } | ||
400 | |||
401 | // I didn't find a way to ask libSDL whether a mouse is present, yet... | ||
402 | #if defined(GP2X) | ||
403 | MousePresent = false; | ||
404 | #elif defined(_arch_dreamcast) | ||
405 | MousePresent = DC_MousePresent(); | ||
406 | #else | ||
407 | MousePresent = true; | ||
408 | #endif | ||
409 | |||
410 | IN_Started = true; | ||
411 | } | ||
412 | |||
413 | /////////////////////////////////////////////////////////////////////////// | ||
414 | // | ||
415 | // IN_Shutdown() - Shuts down the Input Mgr | ||
416 | // | ||
417 | /////////////////////////////////////////////////////////////////////////// | ||
418 | void | ||
419 | IN_Shutdown(void) | ||
420 | { | ||
421 | if (!IN_Started) | ||
422 | return; | ||
423 | |||
424 | if(Joystick) | ||
425 | SDL_JoystickClose(Joystick); | ||
426 | |||
427 | IN_Started = false; | ||
428 | } | ||
429 | |||
430 | /////////////////////////////////////////////////////////////////////////// | ||
431 | // | ||
432 | // IN_ClearKeysDown() - Clears the keyboard array | ||
433 | // | ||
434 | /////////////////////////////////////////////////////////////////////////// | ||
435 | void | ||
436 | IN_ClearKeysDown(void) | ||
437 | { | ||
438 | LastScan = sc_None; | ||
439 | LastASCII = key_None; | ||
440 | memset ((void *) Keyboard,0,sizeof(Keyboard)); | ||
441 | } | ||
442 | |||
443 | |||
444 | /////////////////////////////////////////////////////////////////////////// | ||
445 | // | ||
446 | // IN_ReadControl() - Reads the device associated with the specified | ||
447 | // player and fills in the control info struct | ||
448 | // | ||
449 | /////////////////////////////////////////////////////////////////////////// | ||
450 | void | ||
451 | IN_ReadControl(int player,ControlInfo *info) | ||
452 | { | ||
453 | word buttons; | ||
454 | int dx,dy; | ||
455 | Motion mx,my; | ||
456 | |||
457 | dx = dy = 0; | ||
458 | mx = my = motion_None; | ||
459 | buttons = 0; | ||
460 | |||
461 | IN_ProcessEvents(); | ||
462 | |||
463 | if (Keyboard[KbdDefs.upleft]) | ||
464 | mx = motion_Left,my = motion_Up; | ||
465 | else if (Keyboard[KbdDefs.upright]) | ||
466 | mx = motion_Right,my = motion_Up; | ||
467 | else if (Keyboard[KbdDefs.downleft]) | ||
468 | mx = motion_Left,my = motion_Down; | ||
469 | else if (Keyboard[KbdDefs.downright]) | ||
470 | mx = motion_Right,my = motion_Down; | ||
471 | |||
472 | if (Keyboard[KbdDefs.up]) | ||
473 | my = motion_Up; | ||
474 | else if (Keyboard[KbdDefs.down]) | ||
475 | my = motion_Down; | ||
476 | |||
477 | if (Keyboard[KbdDefs.left]) | ||
478 | mx = motion_Left; | ||
479 | else if (Keyboard[KbdDefs.right]) | ||
480 | mx = motion_Right; | ||
481 | |||
482 | if (Keyboard[KbdDefs.button0]) | ||
483 | buttons += 1 << 0; | ||
484 | if (Keyboard[KbdDefs.button1]) | ||
485 | buttons += 1 << 1; | ||
486 | |||
487 | dx = mx * 127; | ||
488 | dy = my * 127; | ||
489 | |||
490 | info->x = dx; | ||
491 | info->xaxis = mx; | ||
492 | info->y = dy; | ||
493 | info->yaxis = my; | ||
494 | info->button0 = (buttons & (1 << 0)) != 0; | ||
495 | info->button1 = (buttons & (1 << 1)) != 0; | ||
496 | info->button2 = (buttons & (1 << 2)) != 0; | ||
497 | info->button3 = (buttons & (1 << 3)) != 0; | ||
498 | info->dir = DirTable[((my + 1) * 3) + (mx + 1)]; | ||
499 | } | ||
500 | |||
501 | /////////////////////////////////////////////////////////////////////////// | ||
502 | // | ||
503 | // IN_WaitForKey() - Waits for a scan code, then clears LastScan and | ||
504 | // returns the scan code | ||
505 | // | ||
506 | /////////////////////////////////////////////////////////////////////////// | ||
507 | ScanCode | ||
508 | IN_WaitForKey(void) | ||
509 | { | ||
510 | ScanCode result; | ||
511 | |||
512 | while ((result = LastScan)==0) | ||
513 | IN_WaitAndProcessEvents(); | ||
514 | LastScan = 0; | ||
515 | return(result); | ||
516 | } | ||
517 | |||
518 | /////////////////////////////////////////////////////////////////////////// | ||
519 | // | ||
520 | // IN_WaitForASCII() - Waits for an ASCII char, then clears LastASCII and | ||
521 | // returns the ASCII value | ||
522 | // | ||
523 | /////////////////////////////////////////////////////////////////////////// | ||
524 | char | ||
525 | IN_WaitForASCII(void) | ||
526 | { | ||
527 | char result; | ||
528 | |||
529 | while ((result = LastASCII)==0) | ||
530 | IN_WaitAndProcessEvents(); | ||
531 | LastASCII = '\0'; | ||
532 | return(result); | ||
533 | } | ||
534 | |||
535 | /////////////////////////////////////////////////////////////////////////// | ||
536 | // | ||
537 | // IN_Ack() - waits for a button or key press. If a button is down, upon | ||
538 | // calling, it must be released for it to be recognized | ||
539 | // | ||
540 | /////////////////////////////////////////////////////////////////////////// | ||
541 | |||
542 | boolean btnstate[NUMBUTTONS]; | ||
543 | |||
544 | void IN_StartAck(void) | ||
545 | { | ||
546 | IN_ProcessEvents(); | ||
547 | // | ||
548 | // get initial state of everything | ||
549 | // | ||
550 | IN_ClearKeysDown(); | ||
551 | memset(btnstate, 0, sizeof(btnstate)); | ||
552 | |||
553 | int buttons = IN_JoyButtons() << 4; | ||
554 | |||
555 | if(MousePresent) | ||
556 | buttons |= IN_MouseButtons(); | ||
557 | |||
558 | for(int i = 0; i < NUMBUTTONS; i++, buttons >>= 1) | ||
559 | if(buttons & 1) | ||
560 | btnstate[i] = true; | ||
561 | } | ||
562 | |||
563 | |||
564 | boolean IN_CheckAck (void) | ||
565 | { | ||
566 | IN_ProcessEvents(); | ||
567 | // | ||
568 | // see if something has been pressed | ||
569 | // | ||
570 | if(LastScan) | ||
571 | return true; | ||
572 | |||
573 | int buttons = IN_JoyButtons() << 4; | ||
574 | |||
575 | if(MousePresent) | ||
576 | buttons |= IN_MouseButtons(); | ||
577 | |||
578 | for(int i = 0; i < NUMBUTTONS; i++, buttons >>= 1) | ||
579 | { | ||
580 | if(buttons & 1) | ||
581 | { | ||
582 | if(!btnstate[i]) | ||
583 | { | ||
584 | // Wait until button has been released | ||
585 | do | ||
586 | { | ||
587 | IN_WaitAndProcessEvents(); | ||
588 | buttons = IN_JoyButtons() << 4; | ||
589 | |||
590 | if(MousePresent) | ||
591 | buttons |= IN_MouseButtons(); | ||
592 | } | ||
593 | while(buttons & (1 << i)); | ||
594 | |||
595 | return true; | ||
596 | } | ||
597 | } | ||
598 | else | ||
599 | btnstate[i] = false; | ||
600 | } | ||
601 | |||
602 | return false; | ||
603 | } | ||
604 | |||
605 | |||
606 | void IN_Ack (void) | ||
607 | { | ||
608 | IN_StartAck (); | ||
609 | |||
610 | do | ||
611 | { | ||
612 | IN_WaitAndProcessEvents(); | ||
613 | } | ||
614 | while(!IN_CheckAck ()); | ||
615 | } | ||
616 | |||
617 | |||
618 | /////////////////////////////////////////////////////////////////////////// | ||
619 | // | ||
620 | // IN_UserInput() - Waits for the specified delay time (in ticks) or the | ||
621 | // user pressing a key or a mouse button. If the clear flag is set, it | ||
622 | // then either clears the key or waits for the user to let the mouse | ||
623 | // button up. | ||
624 | // | ||
625 | /////////////////////////////////////////////////////////////////////////// | ||
626 | boolean IN_UserInput(longword delay) | ||
627 | { | ||
628 | longword lasttime; | ||
629 | |||
630 | lasttime = GetTimeCount(); | ||
631 | IN_StartAck (); | ||
632 | do | ||
633 | { | ||
634 | IN_ProcessEvents(); | ||
635 | if (IN_CheckAck()) | ||
636 | return true; | ||
637 | SDL_Delay(5); | ||
638 | } while (GetTimeCount() - lasttime < delay); | ||
639 | return(false); | ||
640 | } | ||
641 | |||
642 | //=========================================================================== | ||
643 | |||
644 | /* | ||
645 | =================== | ||
646 | = | ||
647 | = IN_MouseButtons | ||
648 | = | ||
649 | =================== | ||
650 | */ | ||
651 | int IN_MouseButtons (void) | ||
652 | { | ||
653 | if (MousePresent) | ||
654 | return INL_GetMouseButtons(); | ||
655 | else | ||
656 | return 0; | ||
657 | } | ||
658 | |||
659 | bool IN_IsInputGrabbed() | ||
660 | { | ||
661 | return GrabInput; | ||
662 | } | ||
663 | |||
664 | void IN_CenterMouse() | ||
665 | { | ||
666 | SDL_WarpMouse(screenWidth / 2, screenHeight / 2); | ||
667 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_in.h b/apps/plugins/sdl/progs/wolf3d/id_in.h new file mode 100644 index 0000000000..90e0c05109 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_in.h | |||
@@ -0,0 +1,183 @@ | |||
1 | // | ||
2 | // ID Engine | ||
3 | // ID_IN.h - Header file for Input Manager | ||
4 | // v1.0d1 | ||
5 | // By Jason Blochowiak | ||
6 | // | ||
7 | |||
8 | #ifndef __ID_IN__ | ||
9 | #define __ID_IN__ | ||
10 | |||
11 | #ifdef __DEBUG__ | ||
12 | #define __DEBUG_InputMgr__ | ||
13 | #endif | ||
14 | |||
15 | typedef int ScanCode; | ||
16 | #define sc_None 0 | ||
17 | #define sc_Bad 0xff | ||
18 | #define sc_Return SDLK_RETURN | ||
19 | #define sc_Enter sc_Return | ||
20 | #define sc_Escape SDLK_ESCAPE | ||
21 | #define sc_Space SDLK_SPACE | ||
22 | #define sc_BackSpace SDLK_BACKSPACE | ||
23 | #define sc_Tab SDLK_TAB | ||
24 | #define sc_Alt SDLK_LALT | ||
25 | #define sc_Control SDLK_LCTRL | ||
26 | #define sc_CapsLock SDLK_CAPSLOCK | ||
27 | #define sc_LShift SDLK_LSHIFT | ||
28 | #define sc_RShift SDLK_RSHIFT | ||
29 | #define sc_UpArrow SDLK_UP | ||
30 | #define sc_DownArrow SDLK_DOWN | ||
31 | #define sc_LeftArrow SDLK_LEFT | ||
32 | #define sc_RightArrow SDLK_RIGHT | ||
33 | #define sc_Insert SDLK_INSERT | ||
34 | #define sc_Delete SDLK_DELETE | ||
35 | #define sc_Home SDLK_HOME | ||
36 | #define sc_End SDLK_END | ||
37 | #define sc_PgUp SDLK_PAGEUP | ||
38 | #define sc_PgDn SDLK_PAGEDOWN | ||
39 | #define sc_F1 SDLK_F1 | ||
40 | #define sc_F2 SDLK_F2 | ||
41 | #define sc_F3 SDLK_F3 | ||
42 | #define sc_F4 SDLK_F4 | ||
43 | #define sc_F5 SDLK_F5 | ||
44 | #define sc_F6 SDLK_F6 | ||
45 | #define sc_F7 SDLK_F7 | ||
46 | #define sc_F8 SDLK_F8 | ||
47 | #define sc_F9 SDLK_F9 | ||
48 | #define sc_F10 SDLK_F10 | ||
49 | #define sc_F11 SDLK_F11 | ||
50 | #define sc_F12 SDLK_F12 | ||
51 | |||
52 | #define sc_ScrollLock SDLK_SCROLLOCK | ||
53 | #define sc_PrintScreen SDLK_PRINT | ||
54 | |||
55 | #define sc_1 SDLK_1 | ||
56 | #define sc_2 SDLK_2 | ||
57 | #define sc_3 SDLK_3 | ||
58 | #define sc_4 SDLK_4 | ||
59 | #define sc_5 SDLK_5 | ||
60 | #define sc_6 SDLK_6 | ||
61 | #define sc_7 SDLK_7 | ||
62 | #define sc_8 SDLK_8 | ||
63 | #define sc_9 SDLK_9 | ||
64 | #define sc_0 SDLK_0 | ||
65 | |||
66 | #define sc_A SDLK_a | ||
67 | #define sc_B SDLK_b | ||
68 | #define sc_C SDLK_c | ||
69 | #define sc_D SDLK_d | ||
70 | #define sc_E SDLK_e | ||
71 | #define sc_F SDLK_f | ||
72 | #define sc_G SDLK_g | ||
73 | #define sc_H SDLK_h | ||
74 | #define sc_I SDLK_i | ||
75 | #define sc_J SDLK_j | ||
76 | #define sc_K SDLK_k | ||
77 | #define sc_L SDLK_l | ||
78 | #define sc_M SDLK_m | ||
79 | #define sc_N SDLK_n | ||
80 | #define sc_O SDLK_o | ||
81 | #define sc_P SDLK_p | ||
82 | #define sc_Q SDLK_q | ||
83 | #define sc_R SDLK_r | ||
84 | #define sc_S SDLK_s | ||
85 | #define sc_T SDLK_t | ||
86 | #define sc_U SDLK_u | ||
87 | #define sc_V SDLK_v | ||
88 | #define sc_W SDLK_w | ||
89 | #define sc_X SDLK_x | ||
90 | #define sc_Y SDLK_y | ||
91 | #define sc_Z SDLK_z | ||
92 | |||
93 | #define key_None 0 | ||
94 | |||
95 | typedef enum { | ||
96 | demo_Off,demo_Record,demo_Playback,demo_PlayDone | ||
97 | } Demo; | ||
98 | typedef enum { | ||
99 | ctrl_Keyboard, | ||
100 | ctrl_Keyboard1 = ctrl_Keyboard,ctrl_Keyboard2, | ||
101 | ctrl_Joystick, | ||
102 | ctrl_Joystick1 = ctrl_Joystick,ctrl_Joystick2, | ||
103 | ctrl_Mouse | ||
104 | } ControlType; | ||
105 | typedef enum { | ||
106 | motion_Left = -1,motion_Up = -1, | ||
107 | motion_None = 0, | ||
108 | motion_Right = 1,motion_Down = 1 | ||
109 | } Motion; | ||
110 | typedef enum { | ||
111 | dir_North,dir_NorthEast, | ||
112 | dir_East,dir_SouthEast, | ||
113 | dir_South,dir_SouthWest, | ||
114 | dir_West,dir_NorthWest, | ||
115 | dir_None | ||
116 | } Direction; | ||
117 | typedef struct { | ||
118 | boolean button0,button1,button2,button3; | ||
119 | short x,y; | ||
120 | Motion xaxis,yaxis; | ||
121 | Direction dir; | ||
122 | } CursorInfo; | ||
123 | typedef CursorInfo ControlInfo; | ||
124 | typedef struct { | ||
125 | ScanCode button0,button1, | ||
126 | upleft, up, upright, | ||
127 | left, right, | ||
128 | downleft, down, downright; | ||
129 | } KeyboardDef; | ||
130 | typedef struct { | ||
131 | word joyMinX,joyMinY, | ||
132 | threshMinX,threshMinY, | ||
133 | threshMaxX,threshMaxY, | ||
134 | joyMaxX,joyMaxY, | ||
135 | joyMultXL,joyMultYL, | ||
136 | joyMultXH,joyMultYH; | ||
137 | } JoystickDef; | ||
138 | // Global variables | ||
139 | extern volatile boolean Keyboard[]; | ||
140 | extern boolean MousePresent; | ||
141 | extern volatile boolean Paused; | ||
142 | extern volatile char LastASCII; | ||
143 | extern volatile ScanCode LastScan; | ||
144 | extern int JoyNumButtons; | ||
145 | extern boolean forcegrabmouse; | ||
146 | |||
147 | |||
148 | // Function prototypes | ||
149 | #define IN_KeyDown(code) (Keyboard[(code)]) | ||
150 | #define IN_ClearKey(code) {Keyboard[code] = false;\ | ||
151 | if (code == LastScan) LastScan = sc_None;} | ||
152 | |||
153 | // DEBUG - put names in prototypes | ||
154 | extern void IN_Startup(void),IN_Shutdown(void); | ||
155 | extern void IN_ClearKeysDown(void); | ||
156 | extern void IN_ReadControl(int,ControlInfo *); | ||
157 | extern void IN_GetJoyAbs(word joy,word *xp,word *yp); | ||
158 | extern void IN_SetupJoy(word joy,word minx,word maxx, | ||
159 | word miny,word maxy); | ||
160 | extern void IN_StopDemo(void),IN_FreeDemoBuffer(void), | ||
161 | IN_Ack(void); | ||
162 | extern boolean IN_UserInput(longword delay); | ||
163 | extern char IN_WaitForASCII(void); | ||
164 | extern ScanCode IN_WaitForKey(void); | ||
165 | extern word IN_GetJoyButtonsDB(word joy); | ||
166 | extern const char *IN_GetScanName(ScanCode); | ||
167 | |||
168 | void IN_WaitAndProcessEvents(); | ||
169 | void IN_ProcessEvents(); | ||
170 | |||
171 | int IN_MouseButtons (void); | ||
172 | |||
173 | boolean IN_JoyPresent(); | ||
174 | void IN_SetJoyCurrent(int joyIndex); | ||
175 | int IN_JoyButtons (void); | ||
176 | void IN_GetJoyDelta(int *dx,int *dy); | ||
177 | void IN_GetJoyFineDelta(int *dx, int *dy); | ||
178 | |||
179 | void IN_StartAck(void); | ||
180 | boolean IN_CheckAck (void); | ||
181 | bool IN_IsInputGrabbed(); | ||
182 | void IN_CenterMouse(); | ||
183 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_pm.c b/apps/plugins/sdl/progs/wolf3d/id_pm.c new file mode 100644 index 0000000000..4b8d580b14 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_pm.c | |||
@@ -0,0 +1,125 @@ | |||
1 | #include "wl_def.h" | ||
2 | |||
3 | int ChunksInFile; | ||
4 | int PMSpriteStart; | ||
5 | int PMSoundStart; | ||
6 | |||
7 | bool PMSoundInfoPagePadded = false; | ||
8 | |||
9 | // holds the whole VSWAP | ||
10 | uint32_t *PMPageData; | ||
11 | size_t PMPageDataSize; | ||
12 | |||
13 | // ChunksInFile+1 pointers to page starts. | ||
14 | // The last pointer points one byte after the last page. | ||
15 | uint8_t **PMPages; | ||
16 | |||
17 | void PM_Startup() | ||
18 | { | ||
19 | char fname[13 + sizeof(DATADIR)] = DATADIR "vswap."; | ||
20 | strcat(fname,extension); | ||
21 | |||
22 | FILE *file = fopen(fname,"rb"); | ||
23 | if(!file) | ||
24 | CA_CannotOpen(fname); | ||
25 | |||
26 | ChunksInFile = 0; | ||
27 | fread(&ChunksInFile, sizeof(word), 1, file); | ||
28 | PMSpriteStart = 0; | ||
29 | fread(&PMSpriteStart, sizeof(word), 1, file); | ||
30 | PMSoundStart = 0; | ||
31 | fread(&PMSoundStart, sizeof(word), 1, file); | ||
32 | |||
33 | uint32_t* pageOffsets = (uint32_t *) malloc((ChunksInFile + 1) * sizeof(int32_t)); | ||
34 | CHECKMALLOCRESULT(pageOffsets); | ||
35 | fread(pageOffsets, sizeof(uint32_t), ChunksInFile, file); | ||
36 | |||
37 | word *pageLengths = (word *) malloc(ChunksInFile * sizeof(word)); | ||
38 | CHECKMALLOCRESULT(pageLengths); | ||
39 | fread(pageLengths, sizeof(word), ChunksInFile, file); | ||
40 | |||
41 | fseek(file, 0, SEEK_END); | ||
42 | long fileSize = ftell(file); | ||
43 | long pageDataSize = fileSize - pageOffsets[0]; | ||
44 | if(pageDataSize > (size_t) -1) | ||
45 | Quit("The page file \"%s\" is too large!", fname); | ||
46 | |||
47 | pageOffsets[ChunksInFile] = fileSize; | ||
48 | |||
49 | uint32_t dataStart = pageOffsets[0]; | ||
50 | int i; | ||
51 | |||
52 | // Check that all pageOffsets are valid | ||
53 | for(i = 0; i < ChunksInFile; i++) | ||
54 | { | ||
55 | if(!pageOffsets[i]) continue; // sparse page | ||
56 | if(pageOffsets[i] < dataStart || pageOffsets[i] >= (size_t) fileSize) | ||
57 | Quit("Illegal page offset for page %i: %u (filesize: %u)", | ||
58 | i, pageOffsets[i], fileSize); | ||
59 | } | ||
60 | |||
61 | // Calculate total amount of padding needed for sprites and sound info page | ||
62 | int alignPadding = 0; | ||
63 | for(i = PMSpriteStart; i < PMSoundStart; i++) | ||
64 | { | ||
65 | if(!pageOffsets[i]) continue; // sparse page | ||
66 | uint32_t offs = pageOffsets[i] - dataStart + alignPadding; | ||
67 | if(offs & 1) | ||
68 | alignPadding++; | ||
69 | } | ||
70 | |||
71 | if((pageOffsets[ChunksInFile - 1] - dataStart + alignPadding) & 1) | ||
72 | alignPadding++; | ||
73 | |||
74 | PMPageDataSize = (size_t) pageDataSize + alignPadding; | ||
75 | PMPageData = (uint32_t *) malloc(PMPageDataSize); | ||
76 | CHECKMALLOCRESULT(PMPageData); | ||
77 | |||
78 | PMPages = (uint8_t **) malloc((ChunksInFile + 1) * sizeof(uint8_t *)); | ||
79 | CHECKMALLOCRESULT(PMPages); | ||
80 | |||
81 | // Load pages and initialize PMPages pointers | ||
82 | uint8_t *ptr = (uint8_t *) PMPageData; | ||
83 | for(i = 0; i < ChunksInFile; i++) | ||
84 | { | ||
85 | if(i >= PMSpriteStart && i < PMSoundStart || i == ChunksInFile - 1) | ||
86 | { | ||
87 | size_t offs = ptr - (uint8_t *) PMPageData; | ||
88 | |||
89 | // pad with zeros to make it 2-byte aligned | ||
90 | if(offs & 1) | ||
91 | { | ||
92 | *ptr++ = 0; | ||
93 | if(i == ChunksInFile - 1) PMSoundInfoPagePadded = true; | ||
94 | } | ||
95 | } | ||
96 | |||
97 | PMPages[i] = ptr; | ||
98 | |||
99 | if(!pageOffsets[i]) | ||
100 | continue; // sparse page | ||
101 | |||
102 | // Use specified page length, when next page is sparse page. | ||
103 | // Otherwise, calculate size from the offset difference between this and the next page. | ||
104 | uint32_t size; | ||
105 | if(!pageOffsets[i + 1]) size = pageLengths[i]; | ||
106 | else size = pageOffsets[i + 1] - pageOffsets[i]; | ||
107 | |||
108 | fseek(file, pageOffsets[i], SEEK_SET); | ||
109 | fread(ptr, 1, size, file); | ||
110 | ptr += size; | ||
111 | } | ||
112 | |||
113 | // last page points after page buffer | ||
114 | PMPages[ChunksInFile] = ptr; | ||
115 | |||
116 | free(pageLengths); | ||
117 | free(pageOffsets); | ||
118 | fclose(file); | ||
119 | } | ||
120 | |||
121 | void PM_Shutdown() | ||
122 | { | ||
123 | free(PMPages); | ||
124 | free(PMPageData); | ||
125 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_pm.h b/apps/plugins/sdl/progs/wolf3d/id_pm.h new file mode 100644 index 0000000000..bbedb78c78 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_pm.h | |||
@@ -0,0 +1,58 @@ | |||
1 | #ifndef __ID_PM__ | ||
2 | #define __ID_PM__ | ||
3 | |||
4 | #ifdef USE_HIRES | ||
5 | #define PMPageSize 16384 | ||
6 | #else | ||
7 | #define PMPageSize 4096 | ||
8 | #endif | ||
9 | |||
10 | extern int ChunksInFile; | ||
11 | extern int PMSpriteStart; | ||
12 | extern int PMSoundStart; | ||
13 | |||
14 | extern bool PMSoundInfoPagePadded; | ||
15 | |||
16 | // ChunksInFile+1 pointers to page starts. | ||
17 | // The last pointer points one byte after the last page. | ||
18 | extern uint8_t **PMPages; | ||
19 | |||
20 | void PM_Startup(); | ||
21 | void PM_Shutdown(); | ||
22 | |||
23 | static uint32_t PM_GetPageSize(int page) | ||
24 | { | ||
25 | if(page < 0 || page >= ChunksInFile) | ||
26 | Quit("PM_GetPageSize: Tried to access illegal page: %i", page); | ||
27 | return (uint32_t) (PMPages[page + 1] - PMPages[page]); | ||
28 | } | ||
29 | |||
30 | static uint8_t *PM_GetPage(int page) | ||
31 | { | ||
32 | if(page < 0 || page >= ChunksInFile) | ||
33 | Quit("PM_GetPage: Tried to access illegal page: %i", page); | ||
34 | return PMPages[page]; | ||
35 | } | ||
36 | |||
37 | static uint8_t *PM_GetEnd() | ||
38 | { | ||
39 | return PMPages[ChunksInFile]; | ||
40 | } | ||
41 | |||
42 | static byte *PM_GetTexture(int wallpic) | ||
43 | { | ||
44 | return PM_GetPage(wallpic); | ||
45 | } | ||
46 | |||
47 | static uint16_t *PM_GetSprite(int shapenum) | ||
48 | { | ||
49 | // correct alignment is enforced by PM_Startup() | ||
50 | return (uint16_t *) (void *) PM_GetPage(PMSpriteStart + shapenum); | ||
51 | } | ||
52 | |||
53 | static byte *PM_GetSound(int soundpagenum) | ||
54 | { | ||
55 | return PM_GetPage(PMSoundStart + soundpagenum); | ||
56 | } | ||
57 | |||
58 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_sd.c b/apps/plugins/sdl/progs/wolf3d/id_sd.c new file mode 100644 index 0000000000..a528caa606 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_sd.c | |||
@@ -0,0 +1,1578 @@ | |||
1 | // | ||
2 | // ID Engine | ||
3 | // ID_SD.c - Sound Manager for Wolfenstein 3D | ||
4 | // v1.2 | ||
5 | // By Jason Blochowiak | ||
6 | // | ||
7 | |||
8 | // | ||
9 | // This module handles dealing with generating sound on the appropriate | ||
10 | // hardware | ||
11 | // | ||
12 | // Depends on: User Mgr (for parm checking) | ||
13 | // | ||
14 | // Globals: | ||
15 | // For User Mgr: | ||
16 | // SoundBlasterPresent - SoundBlaster card present? | ||
17 | // AdLibPresent - AdLib card present? | ||
18 | // SoundMode - What device is used for sound effects | ||
19 | // (Use SM_SetSoundMode() to set) | ||
20 | // MusicMode - What device is used for music | ||
21 | // (Use SM_SetMusicMode() to set) | ||
22 | // DigiMode - What device is used for digitized sound effects | ||
23 | // (Use SM_SetDigiDevice() to set) | ||
24 | // | ||
25 | // For Cache Mgr: | ||
26 | // NeedsDigitized - load digitized sounds? | ||
27 | // NeedsMusic - load music? | ||
28 | // | ||
29 | |||
30 | #include "wl_def.h" | ||
31 | #include "fmopl.h" | ||
32 | |||
33 | #include "fixedpoint.h" | ||
34 | |||
35 | #pragma hdrstop | ||
36 | |||
37 | #define ORIGSAMPLERATE 7042 | ||
38 | |||
39 | typedef struct | ||
40 | { | ||
41 | char RIFF[4]; | ||
42 | longword filelenminus8; | ||
43 | char WAVE[4]; | ||
44 | char fmt_[4]; | ||
45 | longword formatlen; | ||
46 | word val0x0001; | ||
47 | word channels; | ||
48 | longword samplerate; | ||
49 | longword bytespersec; | ||
50 | word bytespersample; | ||
51 | word bitspersample; | ||
52 | } headchunk; | ||
53 | |||
54 | typedef struct | ||
55 | { | ||
56 | char chunkid[4]; | ||
57 | longword chunklength; | ||
58 | } wavechunk; | ||
59 | |||
60 | typedef struct | ||
61 | { | ||
62 | uint32_t startpage; | ||
63 | uint32_t length; | ||
64 | } digiinfo; | ||
65 | |||
66 | static Mix_Chunk *SoundChunks[ STARTMUSIC - STARTDIGISOUNDS]; | ||
67 | static byte *SoundBuffers[STARTMUSIC - STARTDIGISOUNDS]; | ||
68 | |||
69 | globalsoundpos channelSoundPos[MIX_CHANNELS]; | ||
70 | |||
71 | // Global variables | ||
72 | boolean AdLibPresent, | ||
73 | SoundBlasterPresent,SBProPresent, | ||
74 | SoundPositioned; | ||
75 | SDMode SoundMode; | ||
76 | SMMode MusicMode; | ||
77 | SDSMode DigiMode; | ||
78 | static byte **SoundTable; | ||
79 | int DigiMap[LASTSOUND]; | ||
80 | int DigiChannel[STARTMUSIC - STARTDIGISOUNDS]; | ||
81 | |||
82 | // Internal variables | ||
83 | static boolean SD_Started; | ||
84 | static boolean nextsoundpos; | ||
85 | static soundnames SoundNumber; | ||
86 | static soundnames DigiNumber; | ||
87 | static word SoundPriority; | ||
88 | static word DigiPriority; | ||
89 | static int LeftPosition; | ||
90 | static int RightPosition; | ||
91 | |||
92 | word NumDigi; | ||
93 | static digiinfo *DigiList; | ||
94 | static boolean DigiPlaying; | ||
95 | |||
96 | // PC Sound variables | ||
97 | static volatile byte pcLastSample; | ||
98 | static byte * volatile pcSound; | ||
99 | static longword pcLengthLeft; | ||
100 | |||
101 | // AdLib variables | ||
102 | static byte * volatile alSound; | ||
103 | static byte alBlock; | ||
104 | static longword alLengthLeft; | ||
105 | static longword alTimeCount; | ||
106 | static Instrument alZeroInst; | ||
107 | |||
108 | // Sequencer variables | ||
109 | static volatile boolean sqActive; | ||
110 | static word *sqHack; | ||
111 | static word *sqHackPtr; | ||
112 | static int sqHackLen; | ||
113 | static int sqHackSeqLen; | ||
114 | static longword sqHackTime; | ||
115 | |||
116 | |||
117 | static void SDL_SoundFinished(void) | ||
118 | { | ||
119 | #ifdef SOUND_ENABLE | ||
120 | SoundNumber = (soundnames)0; | ||
121 | SoundPriority = 0; | ||
122 | #endif | ||
123 | } | ||
124 | |||
125 | |||
126 | #ifdef NOTYET | ||
127 | |||
128 | void SDL_turnOnPCSpeaker(word timerval); | ||
129 | #pragma aux SDL_turnOnPCSpeaker = \ | ||
130 | "mov al,0b6h" \ | ||
131 | "out 43h,al" \ | ||
132 | "mov al,bl" \ | ||
133 | "out 42h,al" \ | ||
134 | "mov al,bh" \ | ||
135 | "out 42h,al" \ | ||
136 | "in al,61h" \ | ||
137 | "or al,3" \ | ||
138 | "out 61h,al" \ | ||
139 | parm [bx] \ | ||
140 | modify exact [al] | ||
141 | |||
142 | void SDL_turnOffPCSpeaker(); | ||
143 | #pragma aux SDL_turnOffPCSpeaker = \ | ||
144 | "in al,61h" \ | ||
145 | "and al,0fch" \ | ||
146 | "out 61h,al" \ | ||
147 | modify exact [al] | ||
148 | |||
149 | void SDL_setPCSpeaker(byte val); | ||
150 | #pragma aux SDL_setPCSpeaker = \ | ||
151 | "in al,61h" \ | ||
152 | "and al,0fch" \ | ||
153 | "or al,ah" \ | ||
154 | "out 61h,al" \ | ||
155 | parm [ah] \ | ||
156 | modify exact [al] | ||
157 | |||
158 | void SDL_DoFX() | ||
159 | { | ||
160 | if(pcSound) | ||
161 | { | ||
162 | if(*pcSound!=pcLastSample) | ||
163 | { | ||
164 | pcLastSample=*pcSound; | ||
165 | |||
166 | if(pcLastSample) | ||
167 | SDL_turnOnPCSpeaker(pcLastSample*60); | ||
168 | else | ||
169 | SDL_turnOffPCSpeaker(); | ||
170 | } | ||
171 | pcSound++; | ||
172 | pcLengthLeft--; | ||
173 | if(!pcLengthLeft) | ||
174 | { | ||
175 | pcSound=0; | ||
176 | SoundNumber=(soundnames)0; | ||
177 | SoundPriority=0; | ||
178 | SDL_turnOffPCSpeaker(); | ||
179 | } | ||
180 | } | ||
181 | |||
182 | // [adlib sound stuff removed...] | ||
183 | } | ||
184 | |||
185 | static void SDL_DigitizedDoneInIRQ(void); | ||
186 | |||
187 | void SDL_DoFast() | ||
188 | { | ||
189 | count_fx++; | ||
190 | if(count_fx>=5) | ||
191 | { | ||
192 | count_fx=0; | ||
193 | |||
194 | SDL_DoFX(); | ||
195 | |||
196 | count_time++; | ||
197 | if(count_time>=2) | ||
198 | { | ||
199 | TimeCount++; | ||
200 | count_time=0; | ||
201 | } | ||
202 | } | ||
203 | |||
204 | // [adlib music and soundsource stuff removed...] | ||
205 | |||
206 | TimerCount+=TimerDivisor; | ||
207 | if(*((word *)&TimerCount+1)) | ||
208 | { | ||
209 | *((word *)&TimerCount+1)=0; | ||
210 | t0OldService(); | ||
211 | } | ||
212 | else | ||
213 | { | ||
214 | outp(0x20,0x20); | ||
215 | } | ||
216 | } | ||
217 | |||
218 | // Timer 0 ISR for 7000Hz interrupts | ||
219 | void __interrupt SDL_t0ExtremeAsmService(void) | ||
220 | { | ||
221 | if(pcindicate) | ||
222 | { | ||
223 | if(pcSound) | ||
224 | { | ||
225 | SDL_setPCSpeaker(((*pcSound++)&0x80)>>6); | ||
226 | pcLengthLeft--; | ||
227 | if(!pcLengthLeft) | ||
228 | { | ||
229 | pcSound=0; | ||
230 | SDL_turnOffPCSpeaker(); | ||
231 | SDL_DigitizedDoneInIRQ(); | ||
232 | } | ||
233 | } | ||
234 | } | ||
235 | extreme++; | ||
236 | if(extreme>=10) | ||
237 | { | ||
238 | extreme=0; | ||
239 | SDL_DoFast(); | ||
240 | } | ||
241 | else | ||
242 | outp(0x20,0x20); | ||
243 | } | ||
244 | |||
245 | // Timer 0 ISR for 700Hz interrupts | ||
246 | void __interrupt SDL_t0FastAsmService(void) | ||
247 | { | ||
248 | SDL_DoFast(); | ||
249 | } | ||
250 | |||
251 | // Timer 0 ISR for 140Hz interrupts | ||
252 | void __interrupt SDL_t0SlowAsmService(void) | ||
253 | { | ||
254 | count_time++; | ||
255 | if(count_time>=2) | ||
256 | { | ||
257 | TimeCount++; | ||
258 | count_time=0; | ||
259 | } | ||
260 | |||
261 | SDL_DoFX(); | ||
262 | |||
263 | TimerCount+=TimerDivisor; | ||
264 | if(*((word *)&TimerCount+1)) | ||
265 | { | ||
266 | *((word *)&TimerCount+1)=0; | ||
267 | t0OldService(); | ||
268 | } | ||
269 | else | ||
270 | outp(0x20,0x20); | ||
271 | } | ||
272 | |||
273 | void SDL_IndicatePC(boolean ind) | ||
274 | { | ||
275 | pcindicate=ind; | ||
276 | } | ||
277 | |||
278 | /////////////////////////////////////////////////////////////////////////// | ||
279 | // | ||
280 | // SDL_SetTimer0() - Sets system timer 0 to the specified speed | ||
281 | // | ||
282 | /////////////////////////////////////////////////////////////////////////// | ||
283 | static void | ||
284 | SDL_SetTimer0(word speed) | ||
285 | { | ||
286 | #ifndef TPROF // If using Borland's profiling, don't screw with the timer | ||
287 | // _asm pushfd | ||
288 | _asm cli | ||
289 | |||
290 | outp(0x43,0x36); // Change timer 0 | ||
291 | outp(0x40,(byte)speed); | ||
292 | outp(0x40,speed >> 8); | ||
293 | // Kludge to handle special case for digitized PC sounds | ||
294 | if (TimerDivisor == (1192030 / (TickBase * 100))) | ||
295 | TimerDivisor = (1192030 / (TickBase * 10)); | ||
296 | else | ||
297 | TimerDivisor = speed; | ||
298 | |||
299 | // _asm popfd | ||
300 | _asm sti | ||
301 | #else | ||
302 | TimerDivisor = 0x10000; | ||
303 | #endif | ||
304 | } | ||
305 | |||
306 | /////////////////////////////////////////////////////////////////////////// | ||
307 | // | ||
308 | // SDL_SetIntsPerSec() - Uses SDL_SetTimer0() to set the number of | ||
309 | // interrupts generated by system timer 0 per second | ||
310 | // | ||
311 | /////////////////////////////////////////////////////////////////////////// | ||
312 | static void | ||
313 | SDL_SetIntsPerSec(word ints) | ||
314 | { | ||
315 | TimerRate = ints; | ||
316 | SDL_SetTimer0(1192030 / ints); | ||
317 | } | ||
318 | |||
319 | static void | ||
320 | SDL_SetTimerSpeed(void) | ||
321 | { | ||
322 | word rate; | ||
323 | void (_interrupt *isr)(void); | ||
324 | |||
325 | if ((DigiMode == sds_PC) && DigiPlaying) | ||
326 | { | ||
327 | rate = TickBase * 100; | ||
328 | isr = SDL_t0ExtremeAsmService; | ||
329 | } | ||
330 | else if ((MusicMode == smm_AdLib) || ((DigiMode == sds_SoundSource) && DigiPlaying) ) | ||
331 | { | ||
332 | rate = TickBase * 10; | ||
333 | isr = SDL_t0FastAsmService; | ||
334 | } | ||
335 | else | ||
336 | { | ||
337 | rate = TickBase * 2; | ||
338 | isr = SDL_t0SlowAsmService; | ||
339 | } | ||
340 | |||
341 | if (rate != TimerRate) | ||
342 | { | ||
343 | _dos_setvect(8,isr); | ||
344 | SDL_SetIntsPerSec(rate); | ||
345 | TimerRate = rate; | ||
346 | } | ||
347 | } | ||
348 | |||
349 | // | ||
350 | // PC Sound code | ||
351 | // | ||
352 | |||
353 | /////////////////////////////////////////////////////////////////////////// | ||
354 | // | ||
355 | // SDL_PCPlaySample() - Plays the specified sample on the PC speaker | ||
356 | // | ||
357 | /////////////////////////////////////////////////////////////////////////// | ||
358 | #ifdef _MUSE_ | ||
359 | void | ||
360 | #else | ||
361 | static void | ||
362 | #endif | ||
363 | SDL_PCPlaySample(byte *data,longword len,boolean inIRQ) | ||
364 | { | ||
365 | if(!inIRQ) | ||
366 | { | ||
367 | // _asm pushfd | ||
368 | _asm cli | ||
369 | } | ||
370 | |||
371 | SDL_IndicatePC(true); | ||
372 | |||
373 | pcLengthLeft = len; | ||
374 | pcSound = (volatile byte *)data; | ||
375 | |||
376 | if(!inIRQ) | ||
377 | { | ||
378 | // _asm popfd | ||
379 | _asm sti | ||
380 | } | ||
381 | } | ||
382 | |||
383 | /////////////////////////////////////////////////////////////////////////// | ||
384 | // | ||
385 | // SDL_PCStopSample() - Stops a sample playing on the PC speaker | ||
386 | // | ||
387 | /////////////////////////////////////////////////////////////////////////// | ||
388 | #ifdef _MUSE_ | ||
389 | void | ||
390 | #else | ||
391 | static void | ||
392 | #endif | ||
393 | SDL_PCStopSampleInIRQ(void) | ||
394 | { | ||
395 | pcSound = 0; | ||
396 | |||
397 | SDL_IndicatePC(false); | ||
398 | |||
399 | _asm in al,0x61 // Turn the speaker off | ||
400 | _asm and al,0xfd // ~2 | ||
401 | _asm out 0x61,al | ||
402 | } | ||
403 | |||
404 | /////////////////////////////////////////////////////////////////////////// | ||
405 | // | ||
406 | // SDL_PCPlaySound() - Plays the specified sound on the PC speaker | ||
407 | // | ||
408 | /////////////////////////////////////////////////////////////////////////// | ||
409 | #ifdef _MUSE_ | ||
410 | void | ||
411 | #else | ||
412 | static void | ||
413 | #endif | ||
414 | SDL_PCPlaySound(PCSound *sound) | ||
415 | { | ||
416 | // _asm pushfd | ||
417 | _asm cli | ||
418 | |||
419 | pcLastSample = -1; | ||
420 | pcLengthLeft = sound->common.length; | ||
421 | pcSound = sound->data; | ||
422 | |||
423 | // _asm popfd | ||
424 | _asm sti | ||
425 | } | ||
426 | |||
427 | /////////////////////////////////////////////////////////////////////////// | ||
428 | // | ||
429 | // SDL_PCStopSound() - Stops the current sound playing on the PC Speaker | ||
430 | // | ||
431 | /////////////////////////////////////////////////////////////////////////// | ||
432 | #ifdef _MUSE_ | ||
433 | void | ||
434 | #else | ||
435 | static void | ||
436 | #endif | ||
437 | SDL_PCStopSound(void) | ||
438 | { | ||
439 | // _asm pushfd | ||
440 | _asm cli | ||
441 | |||
442 | pcSound = 0; | ||
443 | |||
444 | _asm in al,0x61 // Turn the speaker off | ||
445 | _asm and al,0xfd // ~2 | ||
446 | _asm out 0x61,al | ||
447 | |||
448 | // _asm popfd | ||
449 | _asm sti | ||
450 | } | ||
451 | |||
452 | /////////////////////////////////////////////////////////////////////////// | ||
453 | // | ||
454 | // SDL_ShutPC() - Turns off the pc speaker | ||
455 | // | ||
456 | /////////////////////////////////////////////////////////////////////////// | ||
457 | static void | ||
458 | SDL_ShutPC(void) | ||
459 | { | ||
460 | // _asm pushfd | ||
461 | _asm cli | ||
462 | |||
463 | pcSound = 0; | ||
464 | |||
465 | _asm in al,0x61 // Turn the speaker & gate off | ||
466 | _asm and al,0xfc // ~3 | ||
467 | _asm out 0x61,al | ||
468 | |||
469 | // _asm popfd | ||
470 | _asm sti | ||
471 | } | ||
472 | |||
473 | #endif | ||
474 | |||
475 | void | ||
476 | SD_StopDigitized(void) | ||
477 | { | ||
478 | #ifdef SOUND_ENABLE | ||
479 | DigiPlaying = false; | ||
480 | DigiNumber = (soundnames) 0; | ||
481 | DigiPriority = 0; | ||
482 | SoundPositioned = false; | ||
483 | if ((DigiMode == sds_PC) && (SoundMode == sdm_PC)) | ||
484 | SDL_SoundFinished(); | ||
485 | |||
486 | switch (DigiMode) | ||
487 | { | ||
488 | case sds_PC: | ||
489 | // SDL_PCStopSampleInIRQ(); | ||
490 | break; | ||
491 | case sds_SoundBlaster: | ||
492 | // SDL_SBStopSampleInIRQ(); | ||
493 | Mix_HaltChannel(-1); | ||
494 | break; | ||
495 | } | ||
496 | #endif | ||
497 | } | ||
498 | |||
499 | int SD_GetChannelForDigi(int which) | ||
500 | { | ||
501 | #ifdef SOUND_ENABLE | ||
502 | if(DigiChannel[which] != -1) return DigiChannel[which]; | ||
503 | |||
504 | int channel = Mix_GroupAvailable(1); | ||
505 | if(channel == -1) channel = Mix_GroupOldest(1); | ||
506 | if(channel == -1) // All sounds stopped in the meantime? | ||
507 | return Mix_GroupAvailable(1); | ||
508 | return channel; | ||
509 | #endif | ||
510 | return 0; | ||
511 | } | ||
512 | |||
513 | void SD_SetPosition(int channel, int leftpos, int rightpos) | ||
514 | { | ||
515 | #ifdef SOUND_ENABLE | ||
516 | if((leftpos < 0) || (leftpos > 15) || (rightpos < 0) || (rightpos > 15) | ||
517 | || ((leftpos == 15) && (rightpos == 15))) | ||
518 | Quit("SD_SetPosition: Illegal position"); | ||
519 | |||
520 | switch (DigiMode) | ||
521 | { | ||
522 | case sds_SoundBlaster: | ||
523 | // SDL_PositionSBP(leftpos,rightpos); | ||
524 | Mix_SetPanning(channel, ((15 - leftpos) << 4) + 15, | ||
525 | ((15 - rightpos) << 4) + 15); | ||
526 | break; | ||
527 | } | ||
528 | #endif | ||
529 | } | ||
530 | |||
531 | #define FP_FLOOR(x, fracbits) (x & (~((1<<(fracbits))-1))) | ||
532 | |||
533 | /* more precise than original samples */ | ||
534 | #define FRACBITS 10 | ||
535 | #define FP_MATH | ||
536 | |||
537 | #ifdef FP_MATH | ||
538 | /* Looks to be some sort of interpolation - FW19 */ | ||
539 | Sint16 GetSample(long csample_fp, byte *samples, int size) | ||
540 | { | ||
541 | //float s0=0, s1=0, s2=0; | ||
542 | long s0_fp = 0, s1_fp = 0, s2_fp = 0; | ||
543 | long cursample_fp = FP_FLOOR(csample_fp, FRACBITS); | ||
544 | long sf_fp = csample_fp - cursample_fp; | ||
545 | const long one = 1 << FRACBITS; | ||
546 | |||
547 | int cursample = cursample_fp >> FRACBITS; | ||
548 | |||
549 | if(cursample-1 >= 0) s0_fp = (samples[cursample-1] - 128) << FRACBITS; | ||
550 | s1_fp = (samples[cursample] - 128) << FRACBITS; | ||
551 | if(cursample+1 < size) s2_fp = (samples[cursample+1] - 128) << FRACBITS; | ||
552 | |||
553 | //float val = s0*sf*(sf-1)/2 - s1*(sf*sf-1) + s2*(sf+1)*sf/2; | ||
554 | |||
555 | long val_fp = fp_mul(s0_fp, fp_mul(sf_fp, sf_fp - one, FRACBITS), FRACBITS) / 2 - | ||
556 | fp_mul(s1_fp, fp_mul(sf_fp, sf_fp, FRACBITS) - one, FRACBITS) + | ||
557 | fp_mul(s2_fp, fp_mul(sf_fp + one, sf_fp, FRACBITS), FRACBITS) / 2; | ||
558 | |||
559 | int32_t intval = (int32_t) (val_fp * 256) >> FRACBITS; | ||
560 | if(intval < -32768) intval = -32768; | ||
561 | else if(intval > 32767) intval = 32767; | ||
562 | return (Sint16) intval; | ||
563 | } | ||
564 | #else | ||
565 | Sint16 GetSample(float csample, byte *samples, int size) | ||
566 | { | ||
567 | float s0=0, s1=0, s2=0; | ||
568 | int cursample = (int) csample; | ||
569 | float sf = csample - (float) cursample; | ||
570 | |||
571 | if(cursample-1 >= 0) s0 = (float) (samples[cursample-1] - 128); | ||
572 | s1 = (float) (samples[cursample] - 128); | ||
573 | if(cursample+1 < size) s2 = (float) (samples[cursample+1] - 128); | ||
574 | |||
575 | float val = s0*sf*(sf-1)/2 - s1*(sf*sf-1) + s2*(sf+1)*sf/2; | ||
576 | int32_t intval = (int32_t) (val * 256); | ||
577 | if(intval < -32768) intval = -32768; | ||
578 | else if(intval > 32767) intval = 32767; | ||
579 | return (Sint16) intval; | ||
580 | } | ||
581 | #endif | ||
582 | |||
583 | void SD_PrepareSound(int which) | ||
584 | { | ||
585 | #ifdef SOUND_ENABLE | ||
586 | #ifdef FP_MATH | ||
587 | if(DigiList == NULL) | ||
588 | Quit("SD_PrepareSound(%i): DigiList not initialized!\n", which); | ||
589 | |||
590 | int page = DigiList[which].startpage; | ||
591 | int size = DigiList[which].length; | ||
592 | |||
593 | byte *origsamples = PM_GetSound(page); | ||
594 | if(origsamples + size >= PM_GetEnd()) | ||
595 | Quit("SD_PrepareSound(%i): Sound reaches out of page file!\n", which); | ||
596 | |||
597 | /* this is fine to keep as floating-point */ | ||
598 | int destsamples = (int) ((float) size * (float) param_samplerate | ||
599 | / (float) ORIGSAMPLERATE); | ||
600 | |||
601 | byte *wavebuffer = (byte *) malloc(sizeof(headchunk) + sizeof(wavechunk) | ||
602 | + destsamples * 2); // dest are 16-bit samples | ||
603 | if(wavebuffer == NULL) | ||
604 | Quit("Unable to allocate wave buffer for sound %i size %d %d %d %d!\n", which, destsamples, size, param_samplerate, ORIGSAMPLERATE); | ||
605 | |||
606 | headchunk head = {{'R','I','F','F'}, 0, {'W','A','V','E'}, | ||
607 | {'f','m','t',' '}, 0x10, 0x0001, 1, param_samplerate, param_samplerate*2, 2, 16}; | ||
608 | wavechunk dhead = {{'d', 'a', 't', 'a'}, destsamples*2}; | ||
609 | head.filelenminus8 = sizeof(head) + destsamples*2; // (sizeof(dhead)-8 = 0) | ||
610 | memcpy(wavebuffer, &head, sizeof(head)); | ||
611 | memcpy(wavebuffer+sizeof(head), &dhead, sizeof(dhead)); | ||
612 | |||
613 | // alignment is correct, as wavebuffer comes from malloc | ||
614 | // and sizeof(headchunk) % 4 == 0 and sizeof(wavechunk) % 4 == 0 | ||
615 | Sint16 *newsamples = (Sint16 *)(void *) (wavebuffer + sizeof(headchunk) | ||
616 | + sizeof(wavechunk)); | ||
617 | |||
618 | long scale_fac_fp = fp_div(size << FRACBITS, destsamples << FRACBITS, FRACBITS); | ||
619 | |||
620 | for(int i=0; i<destsamples; i++) | ||
621 | { | ||
622 | newsamples[i] = GetSample(fp_mul(i << FRACBITS, scale_fac_fp, FRACBITS), | ||
623 | origsamples, size); | ||
624 | } | ||
625 | SoundBuffers[which] = wavebuffer; | ||
626 | |||
627 | SoundChunks[which] = Mix_LoadWAV_RW(SDL_RWFromMem(wavebuffer, | ||
628 | sizeof(headchunk) + sizeof(wavechunk) + destsamples * 2), 1); | ||
629 | #else | ||
630 | if(DigiList == NULL) | ||
631 | Quit("SD_PrepareSound(%i): DigiList not initialized!\n", which); | ||
632 | |||
633 | int page = DigiList[which].startpage; | ||
634 | int size = DigiList[which].length; | ||
635 | |||
636 | byte *origsamples = PM_GetSound(page); | ||
637 | if(origsamples + size >= PM_GetEnd()) | ||
638 | Quit("SD_PrepareSound(%i): Sound reaches out of page file!\n", which); | ||
639 | |||
640 | int destsamples = (int) ((float) size * (float) param_samplerate | ||
641 | / (float) ORIGSAMPLERATE); | ||
642 | |||
643 | byte *wavebuffer = (byte *) malloc(sizeof(headchunk) + sizeof(wavechunk) | ||
644 | + destsamples * 2); // dest are 16-bit samples | ||
645 | if(wavebuffer == NULL) | ||
646 | Quit("Unable to allocate wave buffer for sound %i!\n", which); | ||
647 | |||
648 | headchunk head = {{'R','I','F','F'}, 0, {'W','A','V','E'}, | ||
649 | {'f','m','t',' '}, 0x10, 0x0001, 1, param_samplerate, param_samplerate*2, 2, 16}; | ||
650 | wavechunk dhead = {{'d', 'a', 't', 'a'}, destsamples*2}; | ||
651 | head.filelenminus8 = sizeof(head) + destsamples*2; // (sizeof(dhead)-8 = 0) | ||
652 | memcpy(wavebuffer, &head, sizeof(head)); | ||
653 | memcpy(wavebuffer+sizeof(head), &dhead, sizeof(dhead)); | ||
654 | |||
655 | // alignment is correct, as wavebuffer comes from malloc | ||
656 | // and sizeof(headchunk) % 4 == 0 and sizeof(wavechunk) % 4 == 0 | ||
657 | Sint16 *newsamples = (Sint16 *)(void *) (wavebuffer + sizeof(headchunk) | ||
658 | + sizeof(wavechunk)); | ||
659 | float cursample = 0.F; | ||
660 | float samplestep = (float) ORIGSAMPLERATE / (float) param_samplerate; | ||
661 | for(int i=0; i<destsamples; i++, cursample+=samplestep) | ||
662 | { | ||
663 | newsamples[i] = GetSample((float)size * (float)i / (float)destsamples, | ||
664 | origsamples, size); | ||
665 | } | ||
666 | SoundBuffers[which] = wavebuffer; | ||
667 | |||
668 | SoundChunks[which] = Mix_LoadWAV_RW(SDL_RWFromMem(wavebuffer, | ||
669 | sizeof(headchunk) + sizeof(wavechunk) + destsamples * 2), 1); | ||
670 | #endif | ||
671 | #endif | ||
672 | } | ||
673 | |||
674 | int SD_PlayDigitized(word which,int leftpos,int rightpos) | ||
675 | { | ||
676 | #ifdef SOUND_ENABLE | ||
677 | if (!DigiMode) | ||
678 | return 0; | ||
679 | |||
680 | if (which >= NumDigi) | ||
681 | Quit("SD_PlayDigitized: bad sound number %i", which); | ||
682 | |||
683 | int channel = SD_GetChannelForDigi(which); | ||
684 | SD_SetPosition(channel, leftpos,rightpos); | ||
685 | |||
686 | DigiPlaying = true; | ||
687 | |||
688 | Mix_Chunk *sample = SoundChunks[which]; | ||
689 | if(sample == NULL) | ||
690 | { | ||
691 | printf("SoundChunks[%i] is NULL!\n", which); | ||
692 | return 0; | ||
693 | } | ||
694 | |||
695 | if(Mix_PlayChannel(channel, sample, 0) == -1) | ||
696 | { | ||
697 | printf("Unable to play sound: %s\n", Mix_GetError()); | ||
698 | return 0; | ||
699 | } | ||
700 | |||
701 | return channel; | ||
702 | #endif | ||
703 | return 0; | ||
704 | } | ||
705 | |||
706 | void SD_ChannelFinished(int channel) | ||
707 | { | ||
708 | #ifdef SOUND_ENABLE | ||
709 | channelSoundPos[channel].valid = 0; | ||
710 | #endif | ||
711 | } | ||
712 | |||
713 | void | ||
714 | SD_SetDigiDevice(SDSMode mode) | ||
715 | { | ||
716 | #ifdef SOUND_ENABLE | ||
717 | boolean devicenotpresent; | ||
718 | |||
719 | if (mode == DigiMode) | ||
720 | return; | ||
721 | |||
722 | SD_StopDigitized(); | ||
723 | |||
724 | devicenotpresent = false; | ||
725 | switch (mode) | ||
726 | { | ||
727 | case sds_SoundBlaster: | ||
728 | if (!SoundBlasterPresent) | ||
729 | devicenotpresent = true; | ||
730 | break; | ||
731 | } | ||
732 | |||
733 | if (!devicenotpresent) | ||
734 | { | ||
735 | DigiMode = mode; | ||
736 | |||
737 | #ifdef NOTYET | ||
738 | SDL_SetTimerSpeed(); | ||
739 | #endif | ||
740 | } | ||
741 | #endif | ||
742 | } | ||
743 | |||
744 | void | ||
745 | SDL_SetupDigi(void) | ||
746 | { | ||
747 | #ifdef SOUND_ENABLE | ||
748 | // Correct padding enforced by PM_Startup() | ||
749 | word *soundInfoPage = (word *) (void *) PM_GetPage(ChunksInFile-1); | ||
750 | NumDigi = (word) PM_GetPageSize(ChunksInFile - 1) / 4; | ||
751 | |||
752 | DigiList = (digiinfo *) malloc(NumDigi * sizeof(digiinfo)); | ||
753 | int i; | ||
754 | for(i = 0; i < NumDigi; i++) | ||
755 | { | ||
756 | // Calculate the size of the digi from the sizes of the pages between | ||
757 | // the start page and the start page of the next sound | ||
758 | |||
759 | DigiList[i].startpage = soundInfoPage[i * 2]; | ||
760 | if((int) DigiList[i].startpage >= ChunksInFile - 1) | ||
761 | { | ||
762 | NumDigi = i; | ||
763 | break; | ||
764 | } | ||
765 | |||
766 | int lastPage; | ||
767 | if(i < NumDigi - 1) | ||
768 | { | ||
769 | lastPage = soundInfoPage[i * 2 + 2]; | ||
770 | if(lastPage == 0 || lastPage + PMSoundStart > ChunksInFile - 1) lastPage = ChunksInFile - 1; | ||
771 | else lastPage += PMSoundStart; | ||
772 | } | ||
773 | else lastPage = ChunksInFile - 1; | ||
774 | |||
775 | int size = 0; | ||
776 | for(int page = PMSoundStart + DigiList[i].startpage; page < lastPage; page++) | ||
777 | size += PM_GetPageSize(page); | ||
778 | |||
779 | // Don't include padding of sound info page, if padding was added | ||
780 | if(lastPage == ChunksInFile - 1 && PMSoundInfoPagePadded) size--; | ||
781 | |||
782 | // Patch lower 16-bit of size with size from sound info page. | ||
783 | // The original VSWAP contains padding which is included in the page size, | ||
784 | // but not included in the 16-bit size. So we use the more precise value. | ||
785 | if((size & 0xffff0000) != 0 && (size & 0xffff) < soundInfoPage[i * 2 + 1]) | ||
786 | size -= 0x10000; | ||
787 | size = (size & 0xffff0000) | soundInfoPage[i * 2 + 1]; | ||
788 | |||
789 | DigiList[i].length = size; | ||
790 | } | ||
791 | |||
792 | for(i = 0; i < LASTSOUND; i++) | ||
793 | { | ||
794 | DigiMap[i] = -1; | ||
795 | DigiChannel[i] = -1; | ||
796 | } | ||
797 | #endif | ||
798 | } | ||
799 | |||
800 | // AdLib Code | ||
801 | |||
802 | /////////////////////////////////////////////////////////////////////////// | ||
803 | // | ||
804 | // SDL_ALStopSound() - Turns off any sound effects playing through the | ||
805 | // AdLib card | ||
806 | // | ||
807 | /////////////////////////////////////////////////////////////////////////// | ||
808 | static void | ||
809 | SDL_ALStopSound(void) | ||
810 | { | ||
811 | #ifdef SOUND_ENABLE | ||
812 | alSound = 0; | ||
813 | alOut(alFreqH + 0, 0); | ||
814 | #endif | ||
815 | } | ||
816 | |||
817 | static void | ||
818 | SDL_AlSetFXInst(Instrument *inst) | ||
819 | { | ||
820 | #ifdef SOUND_ENABLE | ||
821 | byte c,m; | ||
822 | |||
823 | m = 0; // modulator cell for channel 0 | ||
824 | c = 3; // carrier cell for channel 0 | ||
825 | alOut(m + alChar,inst->mChar); | ||
826 | alOut(m + alScale,inst->mScale); | ||
827 | alOut(m + alAttack,inst->mAttack); | ||
828 | alOut(m + alSus,inst->mSus); | ||
829 | alOut(m + alWave,inst->mWave); | ||
830 | alOut(c + alChar,inst->cChar); | ||
831 | alOut(c + alScale,inst->cScale); | ||
832 | alOut(c + alAttack,inst->cAttack); | ||
833 | alOut(c + alSus,inst->cSus); | ||
834 | alOut(c + alWave,inst->cWave); | ||
835 | |||
836 | // Note: Switch commenting on these lines for old MUSE compatibility | ||
837 | // alOutInIRQ(alFeedCon,inst->nConn); | ||
838 | alOut(alFeedCon,0); | ||
839 | #endif | ||
840 | } | ||
841 | |||
842 | /////////////////////////////////////////////////////////////////////////// | ||
843 | // | ||
844 | // SDL_ALPlaySound() - Plays the specified sound on the AdLib card | ||
845 | // | ||
846 | /////////////////////////////////////////////////////////////////////////// | ||
847 | static void | ||
848 | SDL_ALPlaySound(AdLibSound *sound) | ||
849 | { | ||
850 | #ifdef SOUND_ENABLE | ||
851 | Instrument *inst; | ||
852 | byte *data; | ||
853 | |||
854 | SDL_ALStopSound(); | ||
855 | |||
856 | alLengthLeft = sound->common.length; | ||
857 | data = sound->data; | ||
858 | alBlock = ((sound->block & 7) << 2) | 0x20; | ||
859 | inst = &sound->inst; | ||
860 | |||
861 | if (!(inst->mSus | inst->cSus)) | ||
862 | { | ||
863 | Quit("SDL_ALPlaySound() - Bad instrument"); | ||
864 | } | ||
865 | |||
866 | SDL_AlSetFXInst(inst); | ||
867 | alSound = (byte *)data; | ||
868 | #endif | ||
869 | } | ||
870 | |||
871 | /////////////////////////////////////////////////////////////////////////// | ||
872 | // | ||
873 | // SDL_ShutAL() - Shuts down the AdLib card for sound effects | ||
874 | // | ||
875 | /////////////////////////////////////////////////////////////////////////// | ||
876 | static void | ||
877 | SDL_ShutAL(void) | ||
878 | { | ||
879 | #ifdef SOUND_ENABLE | ||
880 | alSound = 0; | ||
881 | alOut(alEffects,0); | ||
882 | alOut(alFreqH + 0,0); | ||
883 | SDL_AlSetFXInst(&alZeroInst); | ||
884 | #endif | ||
885 | } | ||
886 | |||
887 | /////////////////////////////////////////////////////////////////////////// | ||
888 | // | ||
889 | // SDL_CleanAL() - Totally shuts down the AdLib card | ||
890 | // | ||
891 | /////////////////////////////////////////////////////////////////////////// | ||
892 | static void | ||
893 | SDL_CleanAL(void) | ||
894 | { | ||
895 | #ifdef SOUND_ENABLE | ||
896 | int i; | ||
897 | |||
898 | alOut(alEffects,0); | ||
899 | for (i = 1; i < 0xf5; i++) | ||
900 | alOut(i, 0); | ||
901 | #endif | ||
902 | } | ||
903 | |||
904 | /////////////////////////////////////////////////////////////////////////// | ||
905 | // | ||
906 | // SDL_StartAL() - Starts up the AdLib card for sound effects | ||
907 | // | ||
908 | /////////////////////////////////////////////////////////////////////////// | ||
909 | static void | ||
910 | SDL_StartAL(void) | ||
911 | { | ||
912 | #ifdef SOUND_ENABLE | ||
913 | alOut(alEffects, 0); | ||
914 | SDL_AlSetFXInst(&alZeroInst); | ||
915 | #endif | ||
916 | } | ||
917 | |||
918 | /////////////////////////////////////////////////////////////////////////// | ||
919 | // | ||
920 | // SDL_DetectAdLib() - Determines if there's an AdLib (or SoundBlaster | ||
921 | // emulating an AdLib) present | ||
922 | // | ||
923 | /////////////////////////////////////////////////////////////////////////// | ||
924 | static boolean | ||
925 | SDL_DetectAdLib(void) | ||
926 | { | ||
927 | #ifdef SOUND_ENABLE | ||
928 | for (int i = 1; i <= 0xf5; i++) // Zero all the registers | ||
929 | alOut(i, 0); | ||
930 | |||
931 | alOut(1, 0x20); // Set WSE=1 | ||
932 | // alOut(8, 0); // Set CSM=0 & SEL=0 | ||
933 | |||
934 | return true; | ||
935 | #endif | ||
936 | } | ||
937 | |||
938 | //////////////////////////////////////////////////////////////////////////// | ||
939 | // | ||
940 | // SDL_ShutDevice() - turns off whatever device was being used for sound fx | ||
941 | // | ||
942 | //////////////////////////////////////////////////////////////////////////// | ||
943 | static void | ||
944 | SDL_ShutDevice(void) | ||
945 | { | ||
946 | #ifdef SOUND_ENABLE | ||
947 | switch (SoundMode) | ||
948 | { | ||
949 | case sdm_PC: | ||
950 | // SDL_ShutPC(); | ||
951 | break; | ||
952 | case sdm_AdLib: | ||
953 | SDL_ShutAL(); | ||
954 | break; | ||
955 | } | ||
956 | SoundMode = sdm_Off; | ||
957 | #endif | ||
958 | } | ||
959 | |||
960 | /////////////////////////////////////////////////////////////////////////// | ||
961 | // | ||
962 | // SDL_CleanDevice() - totally shuts down all sound devices | ||
963 | // | ||
964 | /////////////////////////////////////////////////////////////////////////// | ||
965 | static void | ||
966 | SDL_CleanDevice(void) | ||
967 | { | ||
968 | #ifdef SOUND_ENABLE | ||
969 | if ((SoundMode == sdm_AdLib) || (MusicMode == smm_AdLib)) | ||
970 | SDL_CleanAL(); | ||
971 | #endif | ||
972 | } | ||
973 | |||
974 | /////////////////////////////////////////////////////////////////////////// | ||
975 | // | ||
976 | // SDL_StartDevice() - turns on whatever device is to be used for sound fx | ||
977 | // | ||
978 | /////////////////////////////////////////////////////////////////////////// | ||
979 | static void | ||
980 | SDL_StartDevice(void) | ||
981 | { | ||
982 | #ifdef SOUND_ENABLE | ||
983 | switch (SoundMode) | ||
984 | { | ||
985 | case sdm_AdLib: | ||
986 | SDL_StartAL(); | ||
987 | break; | ||
988 | } | ||
989 | SoundNumber = (soundnames) 0; | ||
990 | SoundPriority = 0; | ||
991 | #endif | ||
992 | } | ||
993 | |||
994 | // Public routines | ||
995 | |||
996 | /////////////////////////////////////////////////////////////////////////// | ||
997 | // | ||
998 | // SD_SetSoundMode() - Sets which sound hardware to use for sound effects | ||
999 | // | ||
1000 | /////////////////////////////////////////////////////////////////////////// | ||
1001 | boolean | ||
1002 | SD_SetSoundMode(SDMode mode) | ||
1003 | { | ||
1004 | #ifdef SOUND_ENABLE | ||
1005 | boolean result = false; | ||
1006 | word tableoffset; | ||
1007 | |||
1008 | SD_StopSound(); | ||
1009 | |||
1010 | if ((mode == sdm_AdLib) && !AdLibPresent) | ||
1011 | mode = sdm_PC; | ||
1012 | |||
1013 | switch (mode) | ||
1014 | { | ||
1015 | case sdm_Off: | ||
1016 | tableoffset = STARTADLIBSOUNDS; | ||
1017 | result = true; | ||
1018 | break; | ||
1019 | case sdm_PC: | ||
1020 | tableoffset = STARTPCSOUNDS; | ||
1021 | result = true; | ||
1022 | break; | ||
1023 | case sdm_AdLib: | ||
1024 | tableoffset = STARTADLIBSOUNDS; | ||
1025 | if (AdLibPresent) | ||
1026 | result = true; | ||
1027 | break; | ||
1028 | default: | ||
1029 | Quit("SD_SetSoundMode: Invalid sound mode %i", mode); | ||
1030 | return false; | ||
1031 | } | ||
1032 | SoundTable = &audiosegs[tableoffset]; | ||
1033 | |||
1034 | if (result && (mode != SoundMode)) | ||
1035 | { | ||
1036 | SDL_ShutDevice(); | ||
1037 | SoundMode = mode; | ||
1038 | SDL_StartDevice(); | ||
1039 | } | ||
1040 | |||
1041 | return(result); | ||
1042 | #endif | ||
1043 | return true; | ||
1044 | } | ||
1045 | |||
1046 | /////////////////////////////////////////////////////////////////////////// | ||
1047 | // | ||
1048 | // SD_SetMusicMode() - sets the device to use for background music | ||
1049 | // | ||
1050 | /////////////////////////////////////////////////////////////////////////// | ||
1051 | boolean | ||
1052 | SD_SetMusicMode(SMMode mode) | ||
1053 | { | ||
1054 | #ifdef SOUND_ENABLE | ||
1055 | boolean result = false; | ||
1056 | |||
1057 | SD_FadeOutMusic(); | ||
1058 | while (SD_MusicPlaying()) | ||
1059 | SDL_Delay(5); | ||
1060 | |||
1061 | switch (mode) | ||
1062 | { | ||
1063 | case smm_Off: | ||
1064 | result = true; | ||
1065 | break; | ||
1066 | case smm_AdLib: | ||
1067 | if (AdLibPresent) | ||
1068 | result = true; | ||
1069 | break; | ||
1070 | } | ||
1071 | |||
1072 | if (result) | ||
1073 | MusicMode = mode; | ||
1074 | |||
1075 | // SDL_SetTimerSpeed(); | ||
1076 | |||
1077 | return(result); | ||
1078 | #endif | ||
1079 | } | ||
1080 | |||
1081 | int numreadysamples = 0; | ||
1082 | byte *curAlSound = 0; | ||
1083 | byte *curAlSoundPtr = 0; | ||
1084 | longword curAlLengthLeft = 0; | ||
1085 | int soundTimeCounter = 5; | ||
1086 | int samplesPerMusicTick; | ||
1087 | |||
1088 | void *OPL_ptr = NULL; | ||
1089 | |||
1090 | void SDL_IMFMusicPlayer(void *udata, Uint8 *stream, int len) | ||
1091 | { | ||
1092 | #ifdef SOUND_ENABLE | ||
1093 | int stereolen = len>>1; | ||
1094 | int sampleslen = stereolen>>1; | ||
1095 | INT16 *stream16 = (INT16 *) (void *) stream; // expect correct alignment | ||
1096 | |||
1097 | while(1) | ||
1098 | { | ||
1099 | if(numreadysamples) | ||
1100 | { | ||
1101 | if(numreadysamples<sampleslen) | ||
1102 | { | ||
1103 | YM3812UpdateOne(OPL_ptr, stream16, numreadysamples); | ||
1104 | stream16 += numreadysamples*2; | ||
1105 | sampleslen -= numreadysamples; | ||
1106 | } | ||
1107 | else | ||
1108 | { | ||
1109 | YM3812UpdateOne(OPL_ptr, stream16, sampleslen); | ||
1110 | numreadysamples -= sampleslen; | ||
1111 | return; | ||
1112 | } | ||
1113 | } | ||
1114 | soundTimeCounter--; | ||
1115 | if(!soundTimeCounter) | ||
1116 | { | ||
1117 | soundTimeCounter = 5; | ||
1118 | if(curAlSound != alSound) | ||
1119 | { | ||
1120 | curAlSound = curAlSoundPtr = alSound; | ||
1121 | curAlLengthLeft = alLengthLeft; | ||
1122 | } | ||
1123 | if(curAlSound) | ||
1124 | { | ||
1125 | if(*curAlSoundPtr) | ||
1126 | { | ||
1127 | alOut(alFreqL, *curAlSoundPtr); | ||
1128 | alOut(alFreqH, alBlock); | ||
1129 | } | ||
1130 | else alOut(alFreqH, 0); | ||
1131 | curAlSoundPtr++; | ||
1132 | curAlLengthLeft--; | ||
1133 | if(!curAlLengthLeft) | ||
1134 | { | ||
1135 | curAlSound = alSound = 0; | ||
1136 | SoundNumber = (soundnames) 0; | ||
1137 | SoundPriority = 0; | ||
1138 | alOut(alFreqH, 0); | ||
1139 | } | ||
1140 | } | ||
1141 | } | ||
1142 | if(sqActive) | ||
1143 | { | ||
1144 | do | ||
1145 | { | ||
1146 | if(sqHackTime > alTimeCount) break; | ||
1147 | sqHackTime = alTimeCount + *(sqHackPtr+1); | ||
1148 | alOut(*(byte *) sqHackPtr, *(((byte *) sqHackPtr)+1)); | ||
1149 | sqHackPtr += 2; | ||
1150 | sqHackLen -= 4; | ||
1151 | } | ||
1152 | while(sqHackLen>0); | ||
1153 | alTimeCount++; | ||
1154 | if(!sqHackLen) | ||
1155 | { | ||
1156 | sqHackPtr = sqHack; | ||
1157 | sqHackLen = sqHackSeqLen; | ||
1158 | sqHackTime = 0; | ||
1159 | alTimeCount = 0; | ||
1160 | } | ||
1161 | } | ||
1162 | numreadysamples = samplesPerMusicTick; | ||
1163 | } | ||
1164 | #endif | ||
1165 | } | ||
1166 | |||
1167 | /////////////////////////////////////////////////////////////////////////// | ||
1168 | // | ||
1169 | // SD_Startup() - starts up the Sound Mgr | ||
1170 | // Detects all additional sound hardware and installs my ISR | ||
1171 | // | ||
1172 | /////////////////////////////////////////////////////////////////////////// | ||
1173 | void | ||
1174 | SD_Startup(void) | ||
1175 | { | ||
1176 | #ifdef SOUND_ENABLE | ||
1177 | int i; | ||
1178 | |||
1179 | if (SD_Started) | ||
1180 | return; | ||
1181 | |||
1182 | if(Mix_OpenAudio(param_samplerate, AUDIO_S16, 2, param_audiobuffer)) | ||
1183 | { | ||
1184 | printf("Unable to open audio: %s\n", Mix_GetError()); | ||
1185 | return; | ||
1186 | } | ||
1187 | |||
1188 | Mix_ReserveChannels(2); // reserve player and boss weapon channels | ||
1189 | Mix_GroupChannels(2, MIX_CHANNELS-1, 1); // group remaining channels | ||
1190 | |||
1191 | // Init music | ||
1192 | |||
1193 | samplesPerMusicTick = param_samplerate / 700; // SDL_t0FastAsmService played at 700Hz | ||
1194 | |||
1195 | if(!(OPL_ptr = YM3812Init((void*)1,3579545,param_samplerate))) | ||
1196 | { | ||
1197 | //printf("Unable to create virtual OPL!!\n"); | ||
1198 | } | ||
1199 | |||
1200 | for(i=1;i<0xf6;i++) | ||
1201 | YM3812Write(OPL_ptr,i,0); | ||
1202 | |||
1203 | YM3812Write(OPL_ptr,1,0x20); // Set WSE=1 | ||
1204 | // YM3812Write(0,8,0); // Set CSM=0 & SEL=0 // already set in for statement | ||
1205 | |||
1206 | Mix_HookMusic(SDL_IMFMusicPlayer, 0); | ||
1207 | Mix_ChannelFinished(SD_ChannelFinished); | ||
1208 | AdLibPresent = true; | ||
1209 | SoundBlasterPresent = true; | ||
1210 | |||
1211 | alTimeCount = 0; | ||
1212 | |||
1213 | SD_SetSoundMode(sdm_Off); | ||
1214 | SD_SetMusicMode(smm_Off); | ||
1215 | |||
1216 | SDL_SetupDigi(); | ||
1217 | |||
1218 | SD_Started = true; | ||
1219 | #endif | ||
1220 | } | ||
1221 | |||
1222 | /////////////////////////////////////////////////////////////////////////// | ||
1223 | // | ||
1224 | // SD_Shutdown() - shuts down the Sound Mgr | ||
1225 | // Removes sound ISR and turns off whatever sound hardware was active | ||
1226 | // | ||
1227 | /////////////////////////////////////////////////////////////////////////// | ||
1228 | void | ||
1229 | SD_Shutdown(void) | ||
1230 | { | ||
1231 | #ifdef SOUND_ENABLE | ||
1232 | if (!SD_Started) | ||
1233 | return; | ||
1234 | |||
1235 | SD_MusicOff(); | ||
1236 | SD_StopSound(); | ||
1237 | |||
1238 | for(int i = 0; i < STARTMUSIC - STARTDIGISOUNDS; i++) | ||
1239 | { | ||
1240 | if(SoundChunks[i]) Mix_FreeChunk(SoundChunks[i]); | ||
1241 | if(SoundBuffers[i]) free(SoundBuffers[i]); | ||
1242 | } | ||
1243 | |||
1244 | free(DigiList); | ||
1245 | |||
1246 | SD_Started = false; | ||
1247 | #endif | ||
1248 | } | ||
1249 | |||
1250 | /////////////////////////////////////////////////////////////////////////// | ||
1251 | // | ||
1252 | // SD_PositionSound() - Sets up a stereo imaging location for the next | ||
1253 | // sound to be played. Each channel ranges from 0 to 15. | ||
1254 | // | ||
1255 | /////////////////////////////////////////////////////////////////////////// | ||
1256 | void | ||
1257 | SD_PositionSound(int leftvol,int rightvol) | ||
1258 | { | ||
1259 | #ifdef SOUND_ENABLE | ||
1260 | LeftPosition = leftvol; | ||
1261 | RightPosition = rightvol; | ||
1262 | nextsoundpos = true; | ||
1263 | #endif | ||
1264 | } | ||
1265 | |||
1266 | /////////////////////////////////////////////////////////////////////////// | ||
1267 | // | ||
1268 | // SD_PlaySound() - plays the specified sound on the appropriate hardware | ||
1269 | // | ||
1270 | /////////////////////////////////////////////////////////////////////////// | ||
1271 | boolean | ||
1272 | SD_PlaySound(soundnames sound) | ||
1273 | { | ||
1274 | #ifdef SOUND_ENABLE | ||
1275 | boolean ispos; | ||
1276 | SoundCommon *s; | ||
1277 | int lp,rp; | ||
1278 | |||
1279 | lp = LeftPosition; | ||
1280 | rp = RightPosition; | ||
1281 | LeftPosition = 0; | ||
1282 | RightPosition = 0; | ||
1283 | |||
1284 | ispos = nextsoundpos; | ||
1285 | nextsoundpos = false; | ||
1286 | |||
1287 | if (sound == -1 || (DigiMode == sds_Off && SoundMode == sdm_Off)) | ||
1288 | return 0; | ||
1289 | |||
1290 | s = (SoundCommon *) SoundTable[sound]; | ||
1291 | |||
1292 | if ((SoundMode != sdm_Off) && !s) | ||
1293 | Quit("SD_PlaySound() - Uncached sound"); | ||
1294 | |||
1295 | if ((DigiMode != sds_Off) && (DigiMap[sound] != -1)) | ||
1296 | { | ||
1297 | if ((DigiMode == sds_PC) && (SoundMode == sdm_PC)) | ||
1298 | { | ||
1299 | #ifdef NOTYET | ||
1300 | if (s->priority < SoundPriority) | ||
1301 | return 0; | ||
1302 | |||
1303 | SDL_PCStopSound(); | ||
1304 | |||
1305 | SD_PlayDigitized(DigiMap[sound],lp,rp); | ||
1306 | SoundPositioned = ispos; | ||
1307 | SoundNumber = sound; | ||
1308 | SoundPriority = s->priority; | ||
1309 | #else | ||
1310 | return 0; | ||
1311 | #endif | ||
1312 | } | ||
1313 | else | ||
1314 | { | ||
1315 | #ifdef NOTYET | ||
1316 | if (s->priority < DigiPriority) | ||
1317 | return(false); | ||
1318 | #endif | ||
1319 | |||
1320 | int channel = SD_PlayDigitized(DigiMap[sound], lp, rp); | ||
1321 | SoundPositioned = ispos; | ||
1322 | DigiNumber = sound; | ||
1323 | DigiPriority = s->priority; | ||
1324 | return channel + 1; | ||
1325 | } | ||
1326 | |||
1327 | return(true); | ||
1328 | } | ||
1329 | |||
1330 | if (SoundMode == sdm_Off) | ||
1331 | return 0; | ||
1332 | |||
1333 | if (!s->length) | ||
1334 | Quit("SD_PlaySound() - Zero length sound"); | ||
1335 | if (s->priority < SoundPriority) | ||
1336 | return 0; | ||
1337 | |||
1338 | switch (SoundMode) | ||
1339 | { | ||
1340 | case sdm_PC: | ||
1341 | // SDL_PCPlaySound((PCSound *)s); | ||
1342 | break; | ||
1343 | case sdm_AdLib: | ||
1344 | SDL_ALPlaySound((AdLibSound *)s); | ||
1345 | break; | ||
1346 | } | ||
1347 | |||
1348 | SoundNumber = sound; | ||
1349 | SoundPriority = s->priority; | ||
1350 | |||
1351 | return 0; | ||
1352 | #endif | ||
1353 | return 0; | ||
1354 | } | ||
1355 | |||
1356 | /////////////////////////////////////////////////////////////////////////// | ||
1357 | // | ||
1358 | // SD_SoundPlaying() - returns the sound number that's playing, or 0 if | ||
1359 | // no sound is playing | ||
1360 | // | ||
1361 | /////////////////////////////////////////////////////////////////////////// | ||
1362 | word | ||
1363 | SD_SoundPlaying(void) | ||
1364 | { | ||
1365 | #ifdef SOUND_ENABLE | ||
1366 | boolean result = false; | ||
1367 | |||
1368 | switch (SoundMode) | ||
1369 | { | ||
1370 | case sdm_PC: | ||
1371 | result = pcSound? true : false; | ||
1372 | break; | ||
1373 | case sdm_AdLib: | ||
1374 | result = alSound? true : false; | ||
1375 | break; | ||
1376 | } | ||
1377 | |||
1378 | if (result) | ||
1379 | return(SoundNumber); | ||
1380 | else | ||
1381 | return(false); | ||
1382 | #endif | ||
1383 | return false; | ||
1384 | } | ||
1385 | |||
1386 | /////////////////////////////////////////////////////////////////////////// | ||
1387 | // | ||
1388 | // SD_StopSound() - if a sound is playing, stops it | ||
1389 | // | ||
1390 | /////////////////////////////////////////////////////////////////////////// | ||
1391 | void | ||
1392 | SD_StopSound(void) | ||
1393 | { | ||
1394 | #ifdef SOUND_ENABLE | ||
1395 | if (DigiPlaying) | ||
1396 | SD_StopDigitized(); | ||
1397 | |||
1398 | switch (SoundMode) | ||
1399 | { | ||
1400 | case sdm_PC: | ||
1401 | // SDL_PCStopSound(); | ||
1402 | break; | ||
1403 | case sdm_AdLib: | ||
1404 | SDL_ALStopSound(); | ||
1405 | break; | ||
1406 | } | ||
1407 | |||
1408 | SoundPositioned = false; | ||
1409 | |||
1410 | SDL_SoundFinished(); | ||
1411 | #endif | ||
1412 | } | ||
1413 | |||
1414 | /////////////////////////////////////////////////////////////////////////// | ||
1415 | // | ||
1416 | // SD_WaitSoundDone() - waits until the current sound is done playing | ||
1417 | // | ||
1418 | /////////////////////////////////////////////////////////////////////////// | ||
1419 | void | ||
1420 | SD_WaitSoundDone(void) | ||
1421 | { | ||
1422 | #ifdef SOUND_ENABLE | ||
1423 | while (SD_SoundPlaying()) | ||
1424 | SDL_Delay(5); | ||
1425 | #endif | ||
1426 | } | ||
1427 | |||
1428 | /////////////////////////////////////////////////////////////////////////// | ||
1429 | // | ||
1430 | // SD_MusicOn() - turns on the sequencer | ||
1431 | // | ||
1432 | /////////////////////////////////////////////////////////////////////////// | ||
1433 | void | ||
1434 | SD_MusicOn(void) | ||
1435 | { | ||
1436 | #ifdef SOUND_ENABLE | ||
1437 | sqActive = true; | ||
1438 | #endif | ||
1439 | } | ||
1440 | |||
1441 | /////////////////////////////////////////////////////////////////////////// | ||
1442 | // | ||
1443 | // SD_MusicOff() - turns off the sequencer and any playing notes | ||
1444 | // returns the last music offset for music continue | ||
1445 | // | ||
1446 | /////////////////////////////////////////////////////////////////////////// | ||
1447 | int | ||
1448 | SD_MusicOff(void) | ||
1449 | { | ||
1450 | #ifdef SOUND_ENABLE | ||
1451 | word i; | ||
1452 | |||
1453 | sqActive = false; | ||
1454 | switch (MusicMode) | ||
1455 | { | ||
1456 | case smm_AdLib: | ||
1457 | alOut(alEffects, 0); | ||
1458 | for (i = 0;i < sqMaxTracks;i++) | ||
1459 | alOut(alFreqH + i + 1, 0); | ||
1460 | break; | ||
1461 | } | ||
1462 | |||
1463 | return (int) (sqHackPtr-sqHack); | ||
1464 | #endif | ||
1465 | } | ||
1466 | |||
1467 | /////////////////////////////////////////////////////////////////////////// | ||
1468 | // | ||
1469 | // SD_StartMusic() - starts playing the music pointed to | ||
1470 | // | ||
1471 | /////////////////////////////////////////////////////////////////////////// | ||
1472 | void | ||
1473 | SD_StartMusic(int chunk) | ||
1474 | { | ||
1475 | #ifdef SOUND_ENABLE | ||
1476 | SD_MusicOff(); | ||
1477 | |||
1478 | if (MusicMode == smm_AdLib) | ||
1479 | { | ||
1480 | int32_t chunkLen = CA_CacheAudioChunk(chunk); | ||
1481 | sqHack = (word *)(void *) audiosegs[chunk]; // alignment is correct | ||
1482 | if(*sqHack == 0) sqHackLen = sqHackSeqLen = chunkLen; | ||
1483 | else sqHackLen = sqHackSeqLen = *sqHack++; | ||
1484 | sqHackPtr = sqHack; | ||
1485 | sqHackTime = 0; | ||
1486 | alTimeCount = 0; | ||
1487 | SD_MusicOn(); | ||
1488 | } | ||
1489 | #endif | ||
1490 | } | ||
1491 | |||
1492 | void | ||
1493 | SD_ContinueMusic(int chunk, int startoffs) | ||
1494 | { | ||
1495 | #ifdef SOUND_ENABLE | ||
1496 | SD_MusicOff(); | ||
1497 | |||
1498 | if (MusicMode == smm_AdLib) | ||
1499 | { | ||
1500 | int32_t chunkLen = CA_CacheAudioChunk(chunk); | ||
1501 | sqHack = (word *)(void *) audiosegs[chunk]; // alignment is correct | ||
1502 | if(*sqHack == 0) sqHackLen = sqHackSeqLen = chunkLen; | ||
1503 | else sqHackLen = sqHackSeqLen = *sqHack++; | ||
1504 | sqHackPtr = sqHack; | ||
1505 | |||
1506 | if(startoffs >= sqHackLen) | ||
1507 | { | ||
1508 | Quit("SD_StartMusic: Illegal startoffs provided!"); | ||
1509 | } | ||
1510 | |||
1511 | // fast forward to correct position | ||
1512 | // (needed to reconstruct the instruments) | ||
1513 | |||
1514 | for(int i = 0; i < startoffs; i += 2) | ||
1515 | { | ||
1516 | byte reg = *(byte *)sqHackPtr; | ||
1517 | byte val = *(((byte *)sqHackPtr) + 1); | ||
1518 | if(reg >= 0xb1 && reg <= 0xb8) val &= 0xdf; // disable play note flag | ||
1519 | else if(reg == 0xbd) val &= 0xe0; // disable drum flags | ||
1520 | |||
1521 | alOut(reg,val); | ||
1522 | sqHackPtr += 2; | ||
1523 | sqHackLen -= 4; | ||
1524 | } | ||
1525 | sqHackTime = 0; | ||
1526 | alTimeCount = 0; | ||
1527 | |||
1528 | SD_MusicOn(); | ||
1529 | } | ||
1530 | #endif | ||
1531 | } | ||
1532 | |||
1533 | /////////////////////////////////////////////////////////////////////////// | ||
1534 | // | ||
1535 | // SD_FadeOutMusic() - starts fading out the music. Call SD_MusicPlaying() | ||
1536 | // to see if the fadeout is complete | ||
1537 | // | ||
1538 | /////////////////////////////////////////////////////////////////////////// | ||
1539 | void | ||
1540 | SD_FadeOutMusic(void) | ||
1541 | { | ||
1542 | #ifdef SOUND_ENABLE | ||
1543 | switch (MusicMode) | ||
1544 | { | ||
1545 | case smm_AdLib: | ||
1546 | // DEBUG - quick hack to turn the music off | ||
1547 | SD_MusicOff(); | ||
1548 | break; | ||
1549 | } | ||
1550 | #endif | ||
1551 | } | ||
1552 | |||
1553 | /////////////////////////////////////////////////////////////////////////// | ||
1554 | // | ||
1555 | // SD_MusicPlaying() - returns true if music is currently playing, false if | ||
1556 | // not | ||
1557 | // | ||
1558 | /////////////////////////////////////////////////////////////////////////// | ||
1559 | boolean | ||
1560 | SD_MusicPlaying(void) | ||
1561 | { | ||
1562 | #ifdef SOUND_ENABLE | ||
1563 | boolean result; | ||
1564 | |||
1565 | switch (MusicMode) | ||
1566 | { | ||
1567 | case smm_AdLib: | ||
1568 | result = sqActive; | ||
1569 | break; | ||
1570 | default: | ||
1571 | result = false; | ||
1572 | break; | ||
1573 | } | ||
1574 | |||
1575 | return(result); | ||
1576 | #endif | ||
1577 | return false; | ||
1578 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_sd.h b/apps/plugins/sdl/progs/wolf3d/id_sd.h new file mode 100644 index 0000000000..2d91e730d5 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_sd.h | |||
@@ -0,0 +1,158 @@ | |||
1 | // | ||
2 | // ID Engine | ||
3 | // ID_SD.h - Sound Manager Header | ||
4 | // Version for Wolfenstein | ||
5 | // By Jason Blochowiak | ||
6 | // | ||
7 | |||
8 | #ifndef __ID_SD__ | ||
9 | #define __ID_SD__ | ||
10 | |||
11 | extern void *OPL_ptr; | ||
12 | |||
13 | #define alOut(n,b) YM3812Write(OPL_ptr, n, b) | ||
14 | |||
15 | #define TickBase 70 // 70Hz per tick - used as a base for timer 0 | ||
16 | |||
17 | typedef enum | ||
18 | { | ||
19 | sdm_Off, | ||
20 | sdm_PC,sdm_AdLib, | ||
21 | } SDMode; | ||
22 | |||
23 | typedef enum | ||
24 | { | ||
25 | smm_Off,smm_AdLib | ||
26 | } SMMode; | ||
27 | |||
28 | typedef enum | ||
29 | { | ||
30 | sds_Off,sds_PC,sds_SoundBlaster | ||
31 | } SDSMode; | ||
32 | |||
33 | typedef struct | ||
34 | { | ||
35 | longword length; | ||
36 | word priority; | ||
37 | } SoundCommon; | ||
38 | |||
39 | #define ORIG_SOUNDCOMMON_SIZE 6 | ||
40 | |||
41 | // PC Sound stuff | ||
42 | #define pcTimer 0x42 | ||
43 | #define pcTAccess 0x43 | ||
44 | #define pcSpeaker 0x61 | ||
45 | |||
46 | #define pcSpkBits 3 | ||
47 | |||
48 | typedef struct | ||
49 | { | ||
50 | SoundCommon common; | ||
51 | byte data[1]; | ||
52 | } PCSound; | ||
53 | |||
54 | // Register addresses | ||
55 | // Operator stuff | ||
56 | #define alChar 0x20 | ||
57 | #define alScale 0x40 | ||
58 | #define alAttack 0x60 | ||
59 | #define alSus 0x80 | ||
60 | #define alWave 0xe0 | ||
61 | // Channel stuff | ||
62 | #define alFreqL 0xa0 | ||
63 | #define alFreqH 0xb0 | ||
64 | #define alFeedCon 0xc0 | ||
65 | // Global stuff | ||
66 | #define alEffects 0xbd | ||
67 | |||
68 | typedef struct | ||
69 | { | ||
70 | byte mChar,cChar, | ||
71 | mScale,cScale, | ||
72 | mAttack,cAttack, | ||
73 | mSus,cSus, | ||
74 | mWave,cWave, | ||
75 | nConn, | ||
76 | |||
77 | // These are only for Muse - these bytes are really unused | ||
78 | voice, | ||
79 | mode; | ||
80 | byte unused[3]; | ||
81 | } Instrument; | ||
82 | |||
83 | #define ORIG_INSTRUMENT_SIZE 16 | ||
84 | |||
85 | typedef struct | ||
86 | { | ||
87 | SoundCommon common; | ||
88 | Instrument inst; | ||
89 | byte block; | ||
90 | byte data[1]; | ||
91 | } AdLibSound; | ||
92 | |||
93 | #define ORIG_ADLIBSOUND_SIZE (ORIG_SOUNDCOMMON_SIZE + ORIG_INSTRUMENT_SIZE + 2) | ||
94 | |||
95 | // | ||
96 | // Sequencing stuff | ||
97 | // | ||
98 | #define sqMaxTracks 10 | ||
99 | |||
100 | typedef struct | ||
101 | { | ||
102 | word length; | ||
103 | word values[1]; | ||
104 | } MusicGroup; | ||
105 | |||
106 | typedef struct | ||
107 | { | ||
108 | int valid; | ||
109 | fixed globalsoundx, globalsoundy; | ||
110 | } globalsoundpos; | ||
111 | |||
112 | extern globalsoundpos channelSoundPos[]; | ||
113 | |||
114 | // Global variables | ||
115 | extern boolean AdLibPresent, | ||
116 | SoundBlasterPresent, | ||
117 | SoundPositioned; | ||
118 | extern SDMode SoundMode; | ||
119 | extern SDSMode DigiMode; | ||
120 | extern SMMode MusicMode; | ||
121 | extern int DigiMap[]; | ||
122 | extern int DigiChannel[]; | ||
123 | |||
124 | #define GetTimeCount() ((SDL_GetTicks()*7)/100) | ||
125 | |||
126 | inline void Delay(int wolfticks) | ||
127 | { | ||
128 | if(wolfticks>0) SDL_Delay(wolfticks * 100 / 7); | ||
129 | } | ||
130 | |||
131 | // Function prototypes | ||
132 | extern void SD_Startup(void), | ||
133 | SD_Shutdown(void); | ||
134 | |||
135 | extern int SD_GetChannelForDigi(int which); | ||
136 | extern void SD_PositionSound(int leftvol,int rightvol); | ||
137 | extern boolean SD_PlaySound(soundnames sound); | ||
138 | extern void SD_SetPosition(int channel, int leftvol,int rightvol); | ||
139 | extern void SD_StopSound(void), | ||
140 | SD_WaitSoundDone(void); | ||
141 | |||
142 | extern void SD_StartMusic(int chunk); | ||
143 | extern void SD_ContinueMusic(int chunk, int startoffs); | ||
144 | extern void SD_MusicOn(void), | ||
145 | SD_FadeOutMusic(void); | ||
146 | extern int SD_MusicOff(void); | ||
147 | |||
148 | extern boolean SD_MusicPlaying(void); | ||
149 | extern boolean SD_SetSoundMode(SDMode mode); | ||
150 | extern boolean SD_SetMusicMode(SMMode mode); | ||
151 | extern word SD_SoundPlaying(void); | ||
152 | |||
153 | extern void SD_SetDigiDevice(SDSMode); | ||
154 | extern void SD_PreparSound(int which); | ||
155 | extern int SD_PlayDigitized(word which,int leftpos,int rightpos); | ||
156 | extern void SD_StopDigitized(void); | ||
157 | |||
158 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_us.h b/apps/plugins/sdl/progs/wolf3d/id_us.h new file mode 100644 index 0000000000..84958631f7 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_us.h | |||
@@ -0,0 +1,101 @@ | |||
1 | // | ||
2 | // ID Engine | ||
3 | // ID_US.h - Header file for the User Manager | ||
4 | // v1.0d1 | ||
5 | // By Jason Blochowiak | ||
6 | // | ||
7 | |||
8 | #ifndef __ID_US__ | ||
9 | #define __ID_US__ | ||
10 | |||
11 | #ifdef __DEBUG__ | ||
12 | #define __DEBUG_UserMgr__ | ||
13 | #endif | ||
14 | |||
15 | //#define HELPTEXTLINKED | ||
16 | |||
17 | #define MaxX 320 | ||
18 | #define MaxY 200 | ||
19 | |||
20 | #define MaxHelpLines 500 | ||
21 | |||
22 | #define MaxHighName 57 | ||
23 | #define MaxScores 7 | ||
24 | typedef struct | ||
25 | { | ||
26 | char name[MaxHighName + 1]; | ||
27 | int32_t score; | ||
28 | word completed,episode; | ||
29 | } HighScore; | ||
30 | |||
31 | #define MaxGameName 32 | ||
32 | #define MaxSaveGames 6 | ||
33 | typedef struct | ||
34 | { | ||
35 | char signature[4]; | ||
36 | word *oldtest; | ||
37 | boolean present; | ||
38 | char name[MaxGameName + 1]; | ||
39 | } SaveGame; | ||
40 | |||
41 | #define MaxString 128 // Maximum input string size | ||
42 | |||
43 | typedef struct | ||
44 | { | ||
45 | int x,y, | ||
46 | w,h, | ||
47 | px,py; | ||
48 | } WindowRec; // Record used to save & restore screen windows | ||
49 | |||
50 | extern boolean ingame, // Set by game code if a game is in progress | ||
51 | loadedgame; // Set if the current game was loaded | ||
52 | extern word PrintX,PrintY; // Current printing location in the window | ||
53 | extern word WindowX,WindowY,// Current location of window | ||
54 | WindowW,WindowH;// Current size of window | ||
55 | |||
56 | extern void (*USL_MeasureString)(const char *,word *,word *); | ||
57 | extern void (*USL_DrawString)(const char *); | ||
58 | |||
59 | extern boolean (*USL_SaveGame)(int),(*USL_LoadGame)(int); | ||
60 | extern void (*USL_ResetGame)(void); | ||
61 | extern SaveGame Games[MaxSaveGames]; | ||
62 | extern HighScore Scores[]; | ||
63 | |||
64 | #define US_HomeWindow() {PrintX = WindowX; PrintY = WindowY;} | ||
65 | |||
66 | void US_Startup(void); | ||
67 | void US_Shutdown(void); | ||
68 | void US_TextScreen(void), | ||
69 | US_UpdateTextScreen(void), | ||
70 | US_FinishTextScreen(void); | ||
71 | void US_DrawWindow(word x,word y,word w,word h); | ||
72 | void US_CenterWindow(word,word); | ||
73 | void US_SaveWindow(WindowRec *win), | ||
74 | US_RestoreWindow(WindowRec *win); | ||
75 | void US_ClearWindow(void); | ||
76 | void US_SetPrintRoutines(void (*measure)(const char *,word *,word *), | ||
77 | void (*print)(const char *)); | ||
78 | void US_PrintCentered(const char *s), | ||
79 | US_CPrint(const char *s), | ||
80 | US_CPrintLine(const char *s), | ||
81 | US_Print(const char *s); | ||
82 | void US_Printf(const char *formatStr, ...); | ||
83 | void US_CPrintf(const char *formatStr, ...); | ||
84 | |||
85 | void US_PrintUnsigned(longword n); | ||
86 | void US_PrintSigned(int32_t n); | ||
87 | void US_StartCursor(void), | ||
88 | US_ShutCursor(void); | ||
89 | void US_CheckHighScore(int32_t score,word other); | ||
90 | void US_DisplayHighScores(int which); | ||
91 | extern boolean US_UpdateCursor(void); | ||
92 | boolean US_LineInput(int x,int y,char *buf,const char *def,boolean escok, | ||
93 | int maxchars,int maxwidth); | ||
94 | |||
95 | void USL_PrintInCenter(const char *s,Rect r); | ||
96 | char *USL_GiveSaveName(word game); | ||
97 | |||
98 | void US_InitRndT(int randomize); | ||
99 | int US_RndT(); | ||
100 | |||
101 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_us_1.c b/apps/plugins/sdl/progs/wolf3d/id_us_1.c new file mode 100644 index 0000000000..76b53f30f0 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_us_1.c | |||
@@ -0,0 +1,789 @@ | |||
1 | // | ||
2 | // ID Engine | ||
3 | // ID_US_1.c - User Manager - General routines | ||
4 | // v1.1d1 | ||
5 | // By Jason Blochowiak | ||
6 | // Hacked up for Catacomb 3D | ||
7 | // | ||
8 | |||
9 | // | ||
10 | // This module handles dealing with user input & feedback | ||
11 | // | ||
12 | // Depends on: Input Mgr, View Mgr, some variables from the Sound, Caching, | ||
13 | // and Refresh Mgrs, Memory Mgr for background save/restore | ||
14 | // | ||
15 | // Globals: | ||
16 | // ingame - Flag set by game indicating if a game is in progress | ||
17 | // loadedgame - Flag set if a game was loaded | ||
18 | // PrintX, PrintY - Where the User Mgr will print (global coords) | ||
19 | // WindowX,WindowY,WindowW,WindowH - The dimensions of the current | ||
20 | // window | ||
21 | // | ||
22 | |||
23 | #include "wl_def.h" | ||
24 | |||
25 | #pragma hdrstop | ||
26 | |||
27 | #if _MSC_VER == 1200 // Visual C++ 6 | ||
28 | #define vsnprintf _vsnprintf | ||
29 | #endif | ||
30 | |||
31 | // Global variables | ||
32 | word PrintX,PrintY; | ||
33 | word WindowX,WindowY,WindowW,WindowH; | ||
34 | |||
35 | // Internal variables | ||
36 | #define ConfigVersion 1 | ||
37 | |||
38 | static boolean US_Started; | ||
39 | |||
40 | void (*USL_MeasureString)(const char *,word *,word *) = VW_MeasurePropString; | ||
41 | void (*USL_DrawString)(const char *) = VWB_DrawPropString; | ||
42 | |||
43 | SaveGame Games[MaxSaveGames]; | ||
44 | HighScore Scores[MaxScores] = | ||
45 | { | ||
46 | {"id software-'92",10000,1}, | ||
47 | {"Adrian Carmack",10000,1}, | ||
48 | {"John Carmack",10000,1}, | ||
49 | {"Kevin Cloud",10000,1}, | ||
50 | {"Tom Hall",10000,1}, | ||
51 | {"John Romero",10000,1}, | ||
52 | {"Jay Wilbur",10000,1}, | ||
53 | }; | ||
54 | |||
55 | int rndindex = 0; | ||
56 | |||
57 | static byte rndtable[] = { | ||
58 | 0, 8, 109, 220, 222, 241, 149, 107, 75, 248, 254, 140, 16, 66, | ||
59 | 74, 21, 211, 47, 80, 242, 154, 27, 205, 128, 161, 89, 77, 36, | ||
60 | 95, 110, 85, 48, 212, 140, 211, 249, 22, 79, 200, 50, 28, 188, | ||
61 | 52, 140, 202, 120, 68, 145, 62, 70, 184, 190, 91, 197, 152, 224, | ||
62 | 149, 104, 25, 178, 252, 182, 202, 182, 141, 197, 4, 81, 181, 242, | ||
63 | 145, 42, 39, 227, 156, 198, 225, 193, 219, 93, 122, 175, 249, 0, | ||
64 | 175, 143, 70, 239, 46, 246, 163, 53, 163, 109, 168, 135, 2, 235, | ||
65 | 25, 92, 20, 145, 138, 77, 69, 166, 78, 176, 173, 212, 166, 113, | ||
66 | 94, 161, 41, 50, 239, 49, 111, 164, 70, 60, 2, 37, 171, 75, | ||
67 | 136, 156, 11, 56, 42, 146, 138, 229, 73, 146, 77, 61, 98, 196, | ||
68 | 135, 106, 63, 197, 195, 86, 96, 203, 113, 101, 170, 247, 181, 113, | ||
69 | 80, 250, 108, 7, 255, 237, 129, 226, 79, 107, 112, 166, 103, 241, | ||
70 | 24, 223, 239, 120, 198, 58, 60, 82, 128, 3, 184, 66, 143, 224, | ||
71 | 145, 224, 81, 206, 163, 45, 63, 90, 168, 114, 59, 33, 159, 95, | ||
72 | 28, 139, 123, 98, 125, 196, 15, 70, 194, 253, 54, 14, 109, 226, | ||
73 | 71, 17, 161, 93, 186, 87, 244, 138, 20, 52, 123, 251, 26, 36, | ||
74 | 17, 46, 52, 231, 232, 76, 31, 221, 84, 37, 216, 165, 212, 106, | ||
75 | 197, 242, 98, 43, 39, 175, 254, 145, 190, 84, 118, 222, 187, 136, | ||
76 | 120, 163, 236, 249 }; | ||
77 | |||
78 | // Internal routines | ||
79 | |||
80 | // Public routines | ||
81 | |||
82 | /////////////////////////////////////////////////////////////////////////// | ||
83 | // | ||
84 | // US_Startup() - Starts the User Mgr | ||
85 | // | ||
86 | /////////////////////////////////////////////////////////////////////////// | ||
87 | void US_Startup() | ||
88 | { | ||
89 | if (US_Started) | ||
90 | return; | ||
91 | |||
92 | US_InitRndT(true); // Initialize the random number generator | ||
93 | |||
94 | US_Started = true; | ||
95 | } | ||
96 | |||
97 | |||
98 | /////////////////////////////////////////////////////////////////////////// | ||
99 | // | ||
100 | // US_Shutdown() - Shuts down the User Mgr | ||
101 | // | ||
102 | /////////////////////////////////////////////////////////////////////////// | ||
103 | void | ||
104 | US_Shutdown(void) | ||
105 | { | ||
106 | if (!US_Started) | ||
107 | return; | ||
108 | |||
109 | US_Started = false; | ||
110 | } | ||
111 | |||
112 | // Window/Printing routines | ||
113 | |||
114 | /////////////////////////////////////////////////////////////////////////// | ||
115 | // | ||
116 | // US_SetPrintRoutines() - Sets the routines used to measure and print | ||
117 | // from within the User Mgr. Primarily provided to allow switching | ||
118 | // between masked and non-masked fonts | ||
119 | // | ||
120 | /////////////////////////////////////////////////////////////////////////// | ||
121 | void | ||
122 | US_SetPrintRoutines(void (*measure)(const char *,word *,word *), | ||
123 | void (*print)(const char *)) | ||
124 | { | ||
125 | USL_MeasureString = measure; | ||
126 | USL_DrawString = print; | ||
127 | } | ||
128 | |||
129 | /////////////////////////////////////////////////////////////////////////// | ||
130 | // | ||
131 | // US_Print() - Prints a string in the current window. Newlines are | ||
132 | // supported. | ||
133 | // | ||
134 | /////////////////////////////////////////////////////////////////////////// | ||
135 | void | ||
136 | US_Print(const char *sorg) | ||
137 | { | ||
138 | char c; | ||
139 | char *sstart = strdup(sorg); | ||
140 | char *s = sstart; | ||
141 | char *se; | ||
142 | word w,h; | ||
143 | |||
144 | while (*s) | ||
145 | { | ||
146 | se = s; | ||
147 | while ((c = *se)!=0 && (c != '\n')) | ||
148 | se++; | ||
149 | *se = '\0'; | ||
150 | |||
151 | USL_MeasureString(s,&w,&h); | ||
152 | px = PrintX; | ||
153 | py = PrintY; | ||
154 | USL_DrawString(s); | ||
155 | |||
156 | s = se; | ||
157 | if (c) | ||
158 | { | ||
159 | *se = c; | ||
160 | s++; | ||
161 | |||
162 | PrintX = WindowX; | ||
163 | PrintY += h; | ||
164 | } | ||
165 | else | ||
166 | PrintX += w; | ||
167 | } | ||
168 | free(sstart); | ||
169 | } | ||
170 | |||
171 | /////////////////////////////////////////////////////////////////////////// | ||
172 | // | ||
173 | // US_PrintUnsigned() - Prints an unsigned long | ||
174 | // | ||
175 | /////////////////////////////////////////////////////////////////////////// | ||
176 | void | ||
177 | US_PrintUnsigned(longword n) | ||
178 | { | ||
179 | char buffer[32]; | ||
180 | sprintf(buffer, "%lu", n); | ||
181 | |||
182 | US_Print(buffer); | ||
183 | } | ||
184 | |||
185 | /////////////////////////////////////////////////////////////////////////// | ||
186 | // | ||
187 | // US_PrintSigned() - Prints a signed long | ||
188 | // | ||
189 | /////////////////////////////////////////////////////////////////////////// | ||
190 | void | ||
191 | US_PrintSigned(int32_t n) | ||
192 | { | ||
193 | char buffer[32]; | ||
194 | |||
195 | US_Print(ltoa(n,buffer,10)); | ||
196 | } | ||
197 | |||
198 | /////////////////////////////////////////////////////////////////////////// | ||
199 | // | ||
200 | // USL_PrintInCenter() - Prints a string in the center of the given rect | ||
201 | // | ||
202 | /////////////////////////////////////////////////////////////////////////// | ||
203 | void | ||
204 | USL_PrintInCenter(const char *s,Rect r) | ||
205 | { | ||
206 | word w,h, | ||
207 | rw,rh; | ||
208 | |||
209 | USL_MeasureString(s,&w,&h); | ||
210 | rw = r.lr.x - r.ul.x; | ||
211 | rh = r.lr.y - r.ul.y; | ||
212 | |||
213 | px = r.ul.x + ((rw - w) / 2); | ||
214 | py = r.ul.y + ((rh - h) / 2); | ||
215 | USL_DrawString(s); | ||
216 | } | ||
217 | |||
218 | /////////////////////////////////////////////////////////////////////////// | ||
219 | // | ||
220 | // US_PrintCentered() - Prints a string centered in the current window. | ||
221 | // | ||
222 | /////////////////////////////////////////////////////////////////////////// | ||
223 | void | ||
224 | US_PrintCentered(const char *s) | ||
225 | { | ||
226 | Rect r; | ||
227 | |||
228 | r.ul.x = WindowX; | ||
229 | r.ul.y = WindowY; | ||
230 | r.lr.x = r.ul.x + WindowW; | ||
231 | r.lr.y = r.ul.y + WindowH; | ||
232 | |||
233 | USL_PrintInCenter(s,r); | ||
234 | } | ||
235 | |||
236 | /////////////////////////////////////////////////////////////////////////// | ||
237 | // | ||
238 | // US_CPrintLine() - Prints a string centered on the current line and | ||
239 | // advances to the next line. Newlines are not supported. | ||
240 | // | ||
241 | /////////////////////////////////////////////////////////////////////////// | ||
242 | void | ||
243 | US_CPrintLine(const char *s) | ||
244 | { | ||
245 | word w,h; | ||
246 | |||
247 | USL_MeasureString(s,&w,&h); | ||
248 | |||
249 | if (w > WindowW) | ||
250 | Quit("US_CPrintLine() - String exceeds width"); | ||
251 | px = WindowX + ((WindowW - w) / 2); | ||
252 | py = PrintY; | ||
253 | USL_DrawString(s); | ||
254 | PrintY += h; | ||
255 | } | ||
256 | |||
257 | /////////////////////////////////////////////////////////////////////////// | ||
258 | // | ||
259 | // US_CPrint() - Prints a string centered in the current window. | ||
260 | // Newlines are supported. | ||
261 | // | ||
262 | /////////////////////////////////////////////////////////////////////////// | ||
263 | void | ||
264 | US_CPrint(const char *sorg) | ||
265 | { | ||
266 | char c; | ||
267 | char *sstart = strdup(sorg); | ||
268 | char *s = sstart; | ||
269 | char *se; | ||
270 | |||
271 | while (*s) | ||
272 | { | ||
273 | se = s; | ||
274 | while ((c = *se)!=0 && (c != '\n')) | ||
275 | se++; | ||
276 | *se = '\0'; | ||
277 | |||
278 | US_CPrintLine(s); | ||
279 | |||
280 | s = se; | ||
281 | if (c) | ||
282 | { | ||
283 | *se = c; | ||
284 | s++; | ||
285 | } | ||
286 | } | ||
287 | free(sstart); | ||
288 | } | ||
289 | |||
290 | /////////////////////////////////////////////////////////////////////////// | ||
291 | // | ||
292 | // US_Printf() - Prints a formatted string in the current window. | ||
293 | // Newlines are supported. | ||
294 | // | ||
295 | /////////////////////////////////////////////////////////////////////////// | ||
296 | |||
297 | void US_Printf(const char *formatStr, ...) | ||
298 | { | ||
299 | char strbuf[256]; | ||
300 | va_list vlist; | ||
301 | va_start(vlist, formatStr); | ||
302 | int len = vsnprintf(strbuf, sizeof(strbuf), formatStr, vlist); | ||
303 | va_end(vlist); | ||
304 | if(len <= -1 || len >= sizeof(strbuf)) | ||
305 | strbuf[sizeof(strbuf) - 1] = 0; | ||
306 | US_Print(strbuf); | ||
307 | } | ||
308 | |||
309 | /////////////////////////////////////////////////////////////////////////// | ||
310 | // | ||
311 | // US_CPrintf() - Prints a formatted string centered in the current window. | ||
312 | // Newlines are supported. | ||
313 | // | ||
314 | /////////////////////////////////////////////////////////////////////////// | ||
315 | |||
316 | void US_CPrintf(const char *formatStr, ...) | ||
317 | { | ||
318 | char strbuf[256]; | ||
319 | va_list vlist; | ||
320 | va_start(vlist, formatStr); | ||
321 | int len = vsnprintf(strbuf, sizeof(strbuf), formatStr, vlist); | ||
322 | va_end(vlist); | ||
323 | if(len <= -1 || len >= sizeof(strbuf)) | ||
324 | strbuf[sizeof(strbuf) - 1] = 0; | ||
325 | US_CPrint(strbuf); | ||
326 | } | ||
327 | |||
328 | /////////////////////////////////////////////////////////////////////////// | ||
329 | // | ||
330 | // US_ClearWindow() - Clears the current window to white and homes the | ||
331 | // cursor | ||
332 | // | ||
333 | /////////////////////////////////////////////////////////////////////////// | ||
334 | void | ||
335 | US_ClearWindow(void) | ||
336 | { | ||
337 | VWB_Bar(WindowX,WindowY,WindowW,WindowH,WHITE); | ||
338 | PrintX = WindowX; | ||
339 | PrintY = WindowY; | ||
340 | } | ||
341 | |||
342 | /////////////////////////////////////////////////////////////////////////// | ||
343 | // | ||
344 | // US_DrawWindow() - Draws a frame and sets the current window parms | ||
345 | // | ||
346 | /////////////////////////////////////////////////////////////////////////// | ||
347 | void | ||
348 | US_DrawWindow(word x,word y,word w,word h) | ||
349 | { | ||
350 | word i, | ||
351 | sx,sy,sw,sh; | ||
352 | |||
353 | WindowX = x * 8; | ||
354 | WindowY = y * 8; | ||
355 | WindowW = w * 8; | ||
356 | WindowH = h * 8; | ||
357 | |||
358 | PrintX = WindowX; | ||
359 | PrintY = WindowY; | ||
360 | |||
361 | sx = (x - 1) * 8; | ||
362 | sy = (y - 1) * 8; | ||
363 | sw = (w + 1) * 8; | ||
364 | sh = (h + 1) * 8; | ||
365 | |||
366 | US_ClearWindow(); | ||
367 | |||
368 | VWB_DrawTile8(sx,sy,0),VWB_DrawTile8(sx,sy + sh,5); | ||
369 | for (i = sx + 8;i <= sx + sw - 8;i += 8) | ||
370 | VWB_DrawTile8(i,sy,1),VWB_DrawTile8(i,sy + sh,6); | ||
371 | VWB_DrawTile8(i,sy,2),VWB_DrawTile8(i,sy + sh,7); | ||
372 | |||
373 | for (i = sy + 8;i <= sy + sh - 8;i += 8) | ||
374 | VWB_DrawTile8(sx,i,3),VWB_DrawTile8(sx + sw,i,4); | ||
375 | } | ||
376 | |||
377 | /////////////////////////////////////////////////////////////////////////// | ||
378 | // | ||
379 | // US_CenterWindow() - Generates a window of a given width & height in the | ||
380 | // middle of the screen | ||
381 | // | ||
382 | /////////////////////////////////////////////////////////////////////////// | ||
383 | void | ||
384 | US_CenterWindow(word w,word h) | ||
385 | { | ||
386 | US_DrawWindow(((MaxX / 8) - w) / 2,((MaxY / 8) - h) / 2,w,h); | ||
387 | } | ||
388 | |||
389 | /////////////////////////////////////////////////////////////////////////// | ||
390 | // | ||
391 | // US_SaveWindow() - Saves the current window parms into a record for | ||
392 | // later restoration | ||
393 | // | ||
394 | /////////////////////////////////////////////////////////////////////////// | ||
395 | void | ||
396 | US_SaveWindow(WindowRec *win) | ||
397 | { | ||
398 | win->x = WindowX; | ||
399 | win->y = WindowY; | ||
400 | win->w = WindowW; | ||
401 | win->h = WindowH; | ||
402 | |||
403 | win->px = PrintX; | ||
404 | win->py = PrintY; | ||
405 | } | ||
406 | |||
407 | /////////////////////////////////////////////////////////////////////////// | ||
408 | // | ||
409 | // US_RestoreWindow() - Sets the current window parms to those held in the | ||
410 | // record | ||
411 | // | ||
412 | /////////////////////////////////////////////////////////////////////////// | ||
413 | void | ||
414 | US_RestoreWindow(WindowRec *win) | ||
415 | { | ||
416 | WindowX = win->x; | ||
417 | WindowY = win->y; | ||
418 | WindowW = win->w; | ||
419 | WindowH = win->h; | ||
420 | |||
421 | PrintX = win->px; | ||
422 | PrintY = win->py; | ||
423 | } | ||
424 | |||
425 | // Input routines | ||
426 | |||
427 | /////////////////////////////////////////////////////////////////////////// | ||
428 | // | ||
429 | // USL_XORICursor() - XORs the I-bar text cursor. Used by US_LineInput() | ||
430 | // | ||
431 | /////////////////////////////////////////////////////////////////////////// | ||
432 | static void | ||
433 | USL_XORICursor(int x,int y,const char *s,word cursor) | ||
434 | { | ||
435 | static boolean status; // VGA doesn't XOR... | ||
436 | char buf[MaxString]; | ||
437 | int temp; | ||
438 | word w,h; | ||
439 | |||
440 | strcpy(buf,s); | ||
441 | buf[cursor] = '\0'; | ||
442 | USL_MeasureString(buf,&w,&h); | ||
443 | |||
444 | px = x + w - 1; | ||
445 | py = y; | ||
446 | if (status^=1) | ||
447 | USL_DrawString("\x80"); | ||
448 | else | ||
449 | { | ||
450 | temp = fontcolor; | ||
451 | fontcolor = backcolor; | ||
452 | USL_DrawString("\x80"); | ||
453 | fontcolor = temp; | ||
454 | } | ||
455 | } | ||
456 | |||
457 | char USL_RotateChar(char ch, int dir) | ||
458 | { | ||
459 | static const char charSet[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ.,-!?0123456789"; | ||
460 | const int numChars = sizeof(charSet) / sizeof(char) - 1; | ||
461 | int i; | ||
462 | for(i = 0; i < numChars; i++) | ||
463 | { | ||
464 | if(ch == charSet[i]) break; | ||
465 | } | ||
466 | |||
467 | if(i == numChars) i = 0; | ||
468 | |||
469 | i += dir; | ||
470 | if(i < 0) i = numChars - 1; | ||
471 | else if(i >= numChars) i = 0; | ||
472 | return charSet[i]; | ||
473 | } | ||
474 | |||
475 | /////////////////////////////////////////////////////////////////////////// | ||
476 | // | ||
477 | // US_LineInput() - Gets a line of user input at (x,y), the string defaults | ||
478 | // to whatever is pointed at by def. Input is restricted to maxchars | ||
479 | // chars or maxwidth pixels wide. If the user hits escape (and escok is | ||
480 | // true), nothing is copied into buf, and false is returned. If the | ||
481 | // user hits return, the current string is copied into buf, and true is | ||
482 | // returned | ||
483 | // | ||
484 | /////////////////////////////////////////////////////////////////////////// | ||
485 | boolean | ||
486 | US_LineInput(int x,int y,char *buf,const char *def,boolean escok, | ||
487 | int maxchars,int maxwidth) | ||
488 | { | ||
489 | boolean redraw, | ||
490 | cursorvis,cursormoved, | ||
491 | done,result, checkkey; | ||
492 | ScanCode sc; | ||
493 | char c; | ||
494 | char s[MaxString],olds[MaxString]; | ||
495 | int cursor,len; | ||
496 | word i, | ||
497 | w,h, | ||
498 | temp; | ||
499 | longword curtime, lasttime, lastdirtime, lastbuttontime, lastdirmovetime; | ||
500 | ControlInfo ci; | ||
501 | Direction lastdir = dir_None; | ||
502 | |||
503 | if (def) | ||
504 | strcpy(s,def); | ||
505 | else | ||
506 | *s = '\0'; | ||
507 | *olds = '\0'; | ||
508 | cursor = (int) strlen(s); | ||
509 | cursormoved = redraw = true; | ||
510 | |||
511 | cursorvis = done = false; | ||
512 | lasttime = lastdirtime = lastdirmovetime = GetTimeCount(); | ||
513 | lastbuttontime = lasttime + TickBase / 4; // 250 ms => first button press accepted after 500 ms | ||
514 | LastASCII = key_None; | ||
515 | LastScan = sc_None; | ||
516 | |||
517 | while (!done) | ||
518 | { | ||
519 | ReadAnyControl(&ci); | ||
520 | |||
521 | if (cursorvis) | ||
522 | USL_XORICursor(x,y,s,cursor); | ||
523 | |||
524 | sc = LastScan; | ||
525 | LastScan = sc_None; | ||
526 | c = LastASCII; | ||
527 | LastASCII = key_None; | ||
528 | |||
529 | checkkey = true; | ||
530 | curtime = GetTimeCount(); | ||
531 | |||
532 | // After each direction change accept the next change after 250 ms and then everz 125 ms | ||
533 | if(ci.dir != lastdir || curtime - lastdirtime > TickBase / 4 && curtime - lastdirmovetime > TickBase / 8) | ||
534 | { | ||
535 | if(ci.dir != lastdir) | ||
536 | { | ||
537 | lastdir = ci.dir; | ||
538 | lastdirtime = curtime; | ||
539 | } | ||
540 | lastdirmovetime = curtime; | ||
541 | |||
542 | switch(ci.dir) | ||
543 | { | ||
544 | case dir_West: | ||
545 | if(cursor) | ||
546 | { | ||
547 | // Remove trailing whitespace if cursor is at end of string | ||
548 | if(s[cursor] == ' ' && s[cursor + 1] == 0) | ||
549 | s[cursor] = 0; | ||
550 | cursor--; | ||
551 | } | ||
552 | cursormoved = true; | ||
553 | checkkey = false; | ||
554 | break; | ||
555 | case dir_East: | ||
556 | if(cursor >= MaxString - 1) break; | ||
557 | |||
558 | if(!s[cursor]) | ||
559 | { | ||
560 | USL_MeasureString(s,&w,&h); | ||
561 | if(len >= maxchars || maxwidth && w >= maxwidth) break; | ||
562 | |||
563 | s[cursor] = ' '; | ||
564 | s[cursor + 1] = 0; | ||
565 | } | ||
566 | cursor++; | ||
567 | cursormoved = true; | ||
568 | checkkey = false; | ||
569 | break; | ||
570 | |||
571 | case dir_North: | ||
572 | if(!s[cursor]) | ||
573 | { | ||
574 | USL_MeasureString(s,&w,&h); | ||
575 | if(len >= maxchars || maxwidth && w >= maxwidth) break; | ||
576 | s[cursor + 1] = 0; | ||
577 | } | ||
578 | s[cursor] = USL_RotateChar(s[cursor], 1); | ||
579 | redraw = true; | ||
580 | checkkey = false; | ||
581 | break; | ||
582 | |||
583 | case dir_South: | ||
584 | if(!s[cursor]) | ||
585 | { | ||
586 | USL_MeasureString(s,&w,&h); | ||
587 | if(len >= maxchars || maxwidth && w >= maxwidth) break; | ||
588 | s[cursor + 1] = 0; | ||
589 | } | ||
590 | s[cursor] = USL_RotateChar(s[cursor], -1); | ||
591 | redraw = true; | ||
592 | checkkey = false; | ||
593 | break; | ||
594 | } | ||
595 | } | ||
596 | |||
597 | if((int)(curtime - lastbuttontime) > TickBase / 4) // 250 ms | ||
598 | { | ||
599 | if(ci.button0) // acts as return | ||
600 | { | ||
601 | strcpy(buf,s); | ||
602 | done = true; | ||
603 | result = true; | ||
604 | checkkey = false; | ||
605 | } | ||
606 | if(ci.button1 && escok) // acts as escape | ||
607 | { | ||
608 | done = true; | ||
609 | result = false; | ||
610 | checkkey = false; | ||
611 | } | ||
612 | if(ci.button2) // acts as backspace | ||
613 | { | ||
614 | lastbuttontime = curtime; | ||
615 | if(cursor) | ||
616 | { | ||
617 | strcpy(s + cursor - 1,s + cursor); | ||
618 | cursor--; | ||
619 | redraw = true; | ||
620 | } | ||
621 | cursormoved = true; | ||
622 | checkkey = false; | ||
623 | } | ||
624 | } | ||
625 | |||
626 | if(checkkey) | ||
627 | { | ||
628 | switch (sc) | ||
629 | { | ||
630 | case sc_LeftArrow: | ||
631 | if (cursor) | ||
632 | cursor--; | ||
633 | c = key_None; | ||
634 | cursormoved = true; | ||
635 | break; | ||
636 | case sc_RightArrow: | ||
637 | if (s[cursor]) | ||
638 | cursor++; | ||
639 | c = key_None; | ||
640 | cursormoved = true; | ||
641 | break; | ||
642 | case sc_Home: | ||
643 | cursor = 0; | ||
644 | c = key_None; | ||
645 | cursormoved = true; | ||
646 | break; | ||
647 | case sc_End: | ||
648 | cursor = (int) strlen(s); | ||
649 | c = key_None; | ||
650 | cursormoved = true; | ||
651 | break; | ||
652 | |||
653 | case sc_Return: | ||
654 | strcpy(buf,s); | ||
655 | done = true; | ||
656 | result = true; | ||
657 | c = key_None; | ||
658 | break; | ||
659 | case sc_Escape: | ||
660 | if (escok) | ||
661 | { | ||
662 | done = true; | ||
663 | result = false; | ||
664 | } | ||
665 | c = key_None; | ||
666 | break; | ||
667 | |||
668 | case sc_BackSpace: | ||
669 | if (cursor) | ||
670 | { | ||
671 | strcpy(s + cursor - 1,s + cursor); | ||
672 | cursor--; | ||
673 | redraw = true; | ||
674 | } | ||
675 | c = key_None; | ||
676 | cursormoved = true; | ||
677 | break; | ||
678 | case sc_Delete: | ||
679 | if (s[cursor]) | ||
680 | { | ||
681 | strcpy(s + cursor,s + cursor + 1); | ||
682 | redraw = true; | ||
683 | } | ||
684 | c = key_None; | ||
685 | cursormoved = true; | ||
686 | break; | ||
687 | |||
688 | case SDLK_KP5: //0x4c: // Keypad 5 // TODO: hmmm... | ||
689 | case sc_UpArrow: | ||
690 | case sc_DownArrow: | ||
691 | case sc_PgUp: | ||
692 | case sc_PgDn: | ||
693 | case sc_Insert: | ||
694 | c = key_None; | ||
695 | break; | ||
696 | } | ||
697 | |||
698 | if (c) | ||
699 | { | ||
700 | len = (int) strlen(s); | ||
701 | USL_MeasureString(s,&w,&h); | ||
702 | |||
703 | if(isprint(c) && (len < MaxString - 1) && ((!maxchars) || (len < maxchars)) | ||
704 | && ((!maxwidth) || (w < maxwidth))) | ||
705 | { | ||
706 | for (i = len + 1;i > cursor;i--) | ||
707 | s[i] = s[i - 1]; | ||
708 | s[cursor++] = c; | ||
709 | redraw = true; | ||
710 | } | ||
711 | } | ||
712 | } | ||
713 | |||
714 | if (redraw) | ||
715 | { | ||
716 | px = x; | ||
717 | py = y; | ||
718 | temp = fontcolor; | ||
719 | fontcolor = backcolor; | ||
720 | USL_DrawString(olds); | ||
721 | fontcolor = (byte) temp; | ||
722 | strcpy(olds,s); | ||
723 | |||
724 | px = x; | ||
725 | py = y; | ||
726 | USL_DrawString(s); | ||
727 | |||
728 | redraw = false; | ||
729 | } | ||
730 | |||
731 | if (cursormoved) | ||
732 | { | ||
733 | cursorvis = false; | ||
734 | lasttime = curtime - TickBase; | ||
735 | |||
736 | cursormoved = false; | ||
737 | } | ||
738 | if (curtime - lasttime > TickBase / 2) // 500 ms | ||
739 | { | ||
740 | lasttime = curtime; | ||
741 | |||
742 | cursorvis ^= true; | ||
743 | } | ||
744 | else SDL_Delay(5); | ||
745 | if (cursorvis) | ||
746 | USL_XORICursor(x,y,s,cursor); | ||
747 | |||
748 | VW_UpdateScreen(); | ||
749 | } | ||
750 | |||
751 | if (cursorvis) | ||
752 | USL_XORICursor(x,y,s,cursor); | ||
753 | if (!result) | ||
754 | { | ||
755 | px = x; | ||
756 | py = y; | ||
757 | USL_DrawString(olds); | ||
758 | } | ||
759 | VW_UpdateScreen(); | ||
760 | |||
761 | IN_ClearKeysDown(); | ||
762 | return(result); | ||
763 | } | ||
764 | |||
765 | /////////////////////////////////////////////////////////////////////////// | ||
766 | // | ||
767 | // US_InitRndT - Initializes the pseudo random number generator. | ||
768 | // If randomize is true, the seed will be initialized depending on the | ||
769 | // current time | ||
770 | // | ||
771 | /////////////////////////////////////////////////////////////////////////// | ||
772 | void US_InitRndT(int randomize) | ||
773 | { | ||
774 | if(randomize) | ||
775 | rndindex = (SDL_GetTicks() >> 4) & 0xff; | ||
776 | else | ||
777 | rndindex = 0; | ||
778 | } | ||
779 | |||
780 | /////////////////////////////////////////////////////////////////////////// | ||
781 | // | ||
782 | // US_RndT - Returns the next 8-bit pseudo random number | ||
783 | // | ||
784 | /////////////////////////////////////////////////////////////////////////// | ||
785 | int US_RndT() | ||
786 | { | ||
787 | rndindex = (rndindex+1)&0xff; | ||
788 | return rndtable[rndindex]; | ||
789 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_vh.c b/apps/plugins/sdl/progs/wolf3d/id_vh.c new file mode 100644 index 0000000000..a63dd065a7 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_vh.c | |||
@@ -0,0 +1,435 @@ | |||
1 | #include "wl_def.h" | ||
2 | |||
3 | |||
4 | pictabletype *pictable; | ||
5 | SDL_Surface *latchpics[NUMLATCHPICS]; | ||
6 | |||
7 | int px,py; | ||
8 | byte fontcolor,backcolor; | ||
9 | int fontnumber; | ||
10 | |||
11 | //========================================================================== | ||
12 | |||
13 | void VWB_DrawPropString(const char* string) | ||
14 | { | ||
15 | fontstruct *font; | ||
16 | int width, step, height; | ||
17 | byte *source, *dest; | ||
18 | byte ch; | ||
19 | |||
20 | byte *vbuf = LOCK(); | ||
21 | |||
22 | font = (fontstruct *) grsegs[STARTFONT+fontnumber]; | ||
23 | height = font->height; | ||
24 | dest = vbuf + scaleFactor * (py * curPitch + px); | ||
25 | |||
26 | while ((ch = (byte)*string++)!=0) | ||
27 | { | ||
28 | width = step = font->width[ch]; | ||
29 | source = ((byte *)font)+font->location[ch]; | ||
30 | while (width--) | ||
31 | { | ||
32 | for(int i=0;i<height;i++) | ||
33 | { | ||
34 | if(source[i*step]) | ||
35 | { | ||
36 | for(unsigned sy=0; sy<scaleFactor; sy++) | ||
37 | for(unsigned sx=0; sx<scaleFactor; sx++) | ||
38 | dest[(scaleFactor*i+sy)*curPitch+sx]=fontcolor; | ||
39 | } | ||
40 | } | ||
41 | |||
42 | source++; | ||
43 | px++; | ||
44 | dest+=scaleFactor; | ||
45 | } | ||
46 | } | ||
47 | |||
48 | UNLOCK(); | ||
49 | } | ||
50 | |||
51 | /* | ||
52 | ================= | ||
53 | = | ||
54 | = VL_MungePic | ||
55 | = | ||
56 | ================= | ||
57 | */ | ||
58 | |||
59 | void VL_MungePic (byte *source, unsigned width, unsigned height) | ||
60 | { | ||
61 | unsigned x,y,plane,size,pwidth; | ||
62 | byte *temp, *dest, *srcline; | ||
63 | |||
64 | size = width*height; | ||
65 | |||
66 | if (width&3) | ||
67 | Quit ("VL_MungePic: Not divisable by 4!"); | ||
68 | |||
69 | // | ||
70 | // copy the pic to a temp buffer | ||
71 | // | ||
72 | temp=(byte *) malloc(size); | ||
73 | CHECKMALLOCRESULT(temp); | ||
74 | memcpy (temp,source,size); | ||
75 | |||
76 | // | ||
77 | // munge it back into the original buffer | ||
78 | // | ||
79 | dest = source; | ||
80 | pwidth = width/4; | ||
81 | |||
82 | for (plane=0;plane<4;plane++) | ||
83 | { | ||
84 | srcline = temp; | ||
85 | for (y=0;y<height;y++) | ||
86 | { | ||
87 | for (x=0;x<pwidth;x++) | ||
88 | *dest++ = *(srcline+x*4+plane); | ||
89 | srcline+=width; | ||
90 | } | ||
91 | } | ||
92 | |||
93 | free(temp); | ||
94 | } | ||
95 | |||
96 | void VWL_MeasureString (const char *string, word *width, word *height, fontstruct *font) | ||
97 | { | ||
98 | *height = font->height; | ||
99 | for (*width = 0;*string;string++) | ||
100 | *width += font->width[*((byte *)string)]; // proportional width | ||
101 | } | ||
102 | |||
103 | void VW_MeasurePropString (const char *string, word *width, word *height) | ||
104 | { | ||
105 | VWL_MeasureString(string,width,height,(fontstruct *)grsegs[STARTFONT+fontnumber]); | ||
106 | } | ||
107 | |||
108 | /* | ||
109 | ============================================================================= | ||
110 | |||
111 | Double buffer management routines | ||
112 | |||
113 | ============================================================================= | ||
114 | */ | ||
115 | |||
116 | void VH_UpdateScreen() | ||
117 | { | ||
118 | SDL_BlitSurface(screenBuffer, NULL, screen, NULL); | ||
119 | SDL_Flip(screen); | ||
120 | } | ||
121 | |||
122 | |||
123 | void VWB_DrawTile8 (int x, int y, int tile) | ||
124 | { | ||
125 | LatchDrawChar(x,y,tile); | ||
126 | } | ||
127 | |||
128 | void VWB_DrawTile8M (int x, int y, int tile) | ||
129 | { | ||
130 | VL_MemToScreen (((byte *)grsegs[STARTTILE8M])+tile*64,8,8,x,y); | ||
131 | } | ||
132 | |||
133 | void VWB_DrawPic (int x, int y, int chunknum) | ||
134 | { | ||
135 | int picnum = chunknum - STARTPICS; | ||
136 | unsigned width,height; | ||
137 | |||
138 | x &= ~7; | ||
139 | |||
140 | width = pictable[picnum].width; | ||
141 | height = pictable[picnum].height; | ||
142 | |||
143 | VL_MemToScreen (grsegs[chunknum],width,height,x,y); | ||
144 | } | ||
145 | |||
146 | void VWB_DrawPicScaledCoord (int scx, int scy, int chunknum) | ||
147 | { | ||
148 | int picnum = chunknum - STARTPICS; | ||
149 | unsigned width,height; | ||
150 | |||
151 | width = pictable[picnum].width; | ||
152 | height = pictable[picnum].height; | ||
153 | |||
154 | VL_MemToScreenScaledCoord (grsegs[chunknum],width,height,scx,scy); | ||
155 | } | ||
156 | |||
157 | |||
158 | void VWB_Bar (int x, int y, int width, int height, int color) | ||
159 | { | ||
160 | VW_Bar (x,y,width,height,color); | ||
161 | } | ||
162 | |||
163 | void VWB_Plot (int x, int y, int color) | ||
164 | { | ||
165 | if(scaleFactor == 1) | ||
166 | VW_Plot(x,y,color); | ||
167 | else | ||
168 | VW_Bar(x, y, 1, 1, color); | ||
169 | } | ||
170 | |||
171 | void VWB_Hlin (int x1, int x2, int y, int color) | ||
172 | { | ||
173 | if(scaleFactor == 1) | ||
174 | VW_Hlin(x1,x2,y,color); | ||
175 | else | ||
176 | VW_Bar(x1, y, x2-x1+1, 1, color); | ||
177 | } | ||
178 | |||
179 | void VWB_Vlin (int y1, int y2, int x, int color) | ||
180 | { | ||
181 | if(scaleFactor == 1) | ||
182 | VW_Vlin(y1,y2,x,color); | ||
183 | else | ||
184 | VW_Bar(x, y1, 1, y2-y1+1, color); | ||
185 | } | ||
186 | |||
187 | |||
188 | /* | ||
189 | ============================================================================= | ||
190 | |||
191 | WOLFENSTEIN STUFF | ||
192 | |||
193 | ============================================================================= | ||
194 | */ | ||
195 | |||
196 | /* | ||
197 | ===================== | ||
198 | = | ||
199 | = LatchDrawPic | ||
200 | = | ||
201 | ===================== | ||
202 | */ | ||
203 | |||
204 | void LatchDrawPic (unsigned x, unsigned y, unsigned picnum) | ||
205 | { | ||
206 | VL_LatchToScreen_ez (latchpics[2+picnum-LATCHPICS_LUMP_START], x*8, y); | ||
207 | } | ||
208 | |||
209 | void LatchDrawPicScaledCoord (unsigned scx, unsigned scy, unsigned picnum) | ||
210 | { | ||
211 | VL_LatchToScreenScaledCoord_ez (latchpics[2+picnum-LATCHPICS_LUMP_START], scx*8, scy); | ||
212 | } | ||
213 | |||
214 | |||
215 | //========================================================================== | ||
216 | |||
217 | /* | ||
218 | =================== | ||
219 | = | ||
220 | = LoadLatchMem | ||
221 | = | ||
222 | =================== | ||
223 | */ | ||
224 | |||
225 | void LoadLatchMem (void) | ||
226 | { | ||
227 | int i,width,height,start,end; | ||
228 | byte *src; | ||
229 | SDL_Surface *surf; | ||
230 | |||
231 | // | ||
232 | // tile 8s | ||
233 | // | ||
234 | surf = SDL_CreateRGBSurface(SDL_HWSURFACE, 8*8, | ||
235 | ((NUMTILE8 + 7) / 8) * 8, 8, 0, 0, 0, 0); | ||
236 | if(surf == NULL) | ||
237 | { | ||
238 | Quit("Unable to create surface for tiles!"); | ||
239 | } | ||
240 | SDL_SetColors(surf, gamepal, 0, 256); | ||
241 | |||
242 | latchpics[0] = surf; | ||
243 | CA_CacheGrChunk (STARTTILE8); | ||
244 | src = grsegs[STARTTILE8]; | ||
245 | |||
246 | for (i=0;i<NUMTILE8;i++) | ||
247 | { | ||
248 | VL_MemToLatch (src, 8, 8, surf, (i & 7) * 8, (i >> 3) * 8); | ||
249 | src += 64; | ||
250 | } | ||
251 | UNCACHEGRCHUNK (STARTTILE8); | ||
252 | |||
253 | // | ||
254 | // pics | ||
255 | // | ||
256 | start = LATCHPICS_LUMP_START; | ||
257 | end = LATCHPICS_LUMP_END; | ||
258 | |||
259 | for (i=start;i<=end;i++) | ||
260 | { | ||
261 | width = pictable[i-STARTPICS].width; | ||
262 | height = pictable[i-STARTPICS].height; | ||
263 | surf = SDL_CreateRGBSurface(SDL_HWSURFACE, width, height, 8, 0, 0, 0, 0); | ||
264 | if(surf == NULL) | ||
265 | { | ||
266 | Quit("Unable to create surface for picture!"); | ||
267 | } | ||
268 | SDL_SetColors(surf, gamepal, 0, 256); | ||
269 | |||
270 | latchpics[2+i-start] = surf; | ||
271 | CA_CacheGrChunk (i); | ||
272 | VL_MemToLatch (grsegs[i], width, height, surf, 0, 0); | ||
273 | UNCACHEGRCHUNK(i); | ||
274 | } | ||
275 | } | ||
276 | |||
277 | //========================================================================== | ||
278 | |||
279 | /* | ||
280 | =================== | ||
281 | = | ||
282 | = FizzleFade | ||
283 | = | ||
284 | = returns true if aborted | ||
285 | = | ||
286 | = It uses maximum-length Linear Feedback Shift Registers (LFSR) counters. | ||
287 | = You can find a list of them with lengths from 3 to 168 at: | ||
288 | = http://www.xilinx.com/support/documentation/application_notes/xapp052.pdf | ||
289 | = Many thanks to Xilinx for this list!!! | ||
290 | = | ||
291 | =================== | ||
292 | */ | ||
293 | |||
294 | // XOR masks for the pseudo-random number sequence starting with n=17 bits | ||
295 | static const uint32_t rndmasks[] = { | ||
296 | // n XNOR from (starting at 1, not 0 as usual) | ||
297 | 0x00012000, // 17 17,14 | ||
298 | 0x00020400, // 18 18,11 | ||
299 | 0x00040023, // 19 19,6,2,1 | ||
300 | 0x00090000, // 20 20,17 | ||
301 | 0x00140000, // 21 21,19 | ||
302 | 0x00300000, // 22 22,21 | ||
303 | 0x00420000, // 23 23,18 | ||
304 | 0x00e10000, // 24 24,23,22,17 | ||
305 | 0x01200000, // 25 25,22 (this is enough for 8191x4095) | ||
306 | }; | ||
307 | |||
308 | static unsigned int rndbits_y; | ||
309 | static unsigned int rndmask; | ||
310 | |||
311 | extern SDL_Color curpal[256]; | ||
312 | |||
313 | // Returns the number of bits needed to represent the given value | ||
314 | static int log2_ceil(uint32_t x) | ||
315 | { | ||
316 | int n = 0; | ||
317 | uint32_t v = 1; | ||
318 | while(v < x) | ||
319 | { | ||
320 | n++; | ||
321 | v <<= 1; | ||
322 | } | ||
323 | return n; | ||
324 | } | ||
325 | |||
326 | void VH_Startup() | ||
327 | { | ||
328 | int rndbits_x = log2_ceil(screenWidth); | ||
329 | rndbits_y = log2_ceil(screenHeight); | ||
330 | |||
331 | int rndbits = rndbits_x + rndbits_y; | ||
332 | if(rndbits < 17) | ||
333 | rndbits = 17; // no problem, just a bit slower | ||
334 | else if(rndbits > 25) | ||
335 | rndbits = 25; // fizzle fade will not fill whole screen | ||
336 | |||
337 | rndmask = rndmasks[rndbits - 17]; | ||
338 | } | ||
339 | |||
340 | boolean FizzleFade (SDL_Surface *source, int x1, int y1, | ||
341 | unsigned width, unsigned height, unsigned frames, boolean abortable) | ||
342 | { | ||
343 | unsigned x, y, frame, pixperframe; | ||
344 | int32_t rndval, lastrndval; | ||
345 | int first = 1; | ||
346 | |||
347 | lastrndval = 0; | ||
348 | pixperframe = width * height / frames; | ||
349 | |||
350 | IN_StartAck (); | ||
351 | |||
352 | frame = GetTimeCount(); | ||
353 | byte *srcptr = VL_LockSurface(source); | ||
354 | do | ||
355 | { | ||
356 | if(abortable && IN_CheckAck ()) | ||
357 | { | ||
358 | VL_UnlockSurface(source); | ||
359 | SDL_BlitSurface(source, NULL, screen, NULL); | ||
360 | SDL_Flip(screen); | ||
361 | return true; | ||
362 | } | ||
363 | |||
364 | byte *destptr = VL_LockSurface(screen); | ||
365 | |||
366 | rndval = lastrndval; | ||
367 | |||
368 | // When using double buffering, we have to copy the pixels of the last AND the current frame. | ||
369 | // Only for the first frame, there is no "last frame" | ||
370 | for(int i = first; i < 2; i++) | ||
371 | { | ||
372 | for(unsigned p = 0; p < pixperframe; p++) | ||
373 | { | ||
374 | // | ||
375 | // seperate random value into x/y pair | ||
376 | // | ||
377 | |||
378 | x = rndval >> rndbits_y; | ||
379 | y = rndval & ((1 << rndbits_y) - 1); | ||
380 | |||
381 | // | ||
382 | // advance to next random element | ||
383 | // | ||
384 | |||
385 | rndval = (rndval >> 1) ^ (rndval & 1 ? 0 : rndmask); | ||
386 | |||
387 | if(x >= width || y >= height) | ||
388 | { | ||
389 | if(rndval == 0) // entire sequence has been completed | ||
390 | goto finished; | ||
391 | p--; | ||
392 | continue; | ||
393 | } | ||
394 | |||
395 | // | ||
396 | // copy one pixel | ||
397 | // | ||
398 | |||
399 | if(screenBits == 8) | ||
400 | { | ||
401 | *(destptr + (y1 + y) * screen->pitch + x1 + x) | ||
402 | = *(srcptr + (y1 + y) * source->pitch + x1 + x); | ||
403 | } | ||
404 | else | ||
405 | { | ||
406 | byte col = *(srcptr + (y1 + y) * source->pitch + x1 + x); | ||
407 | uint32_t fullcol = SDL_MapRGB(screen->format, curpal[col].r, curpal[col].g, curpal[col].b); | ||
408 | memcpy(destptr + (y1 + y) * screen->pitch + (x1 + x) * screen->format->BytesPerPixel, | ||
409 | &fullcol, screen->format->BytesPerPixel); | ||
410 | } | ||
411 | |||
412 | if(rndval == 0) // entire sequence has been completed | ||
413 | goto finished; | ||
414 | } | ||
415 | |||
416 | if(!i || first) lastrndval = rndval; | ||
417 | } | ||
418 | |||
419 | // If there is no double buffering, we always use the "first frame" case | ||
420 | if(usedoublebuffering) first = 0; | ||
421 | |||
422 | VL_UnlockSurface(screen); | ||
423 | SDL_Flip(screen); | ||
424 | |||
425 | frame++; | ||
426 | Delay(frame - GetTimeCount()); // don't go too fast | ||
427 | } while (1); | ||
428 | |||
429 | finished: | ||
430 | VL_UnlockSurface(source); | ||
431 | VL_UnlockSurface(screen); | ||
432 | SDL_BlitSurface(source, NULL, screen, NULL); | ||
433 | SDL_Flip(screen); | ||
434 | return false; | ||
435 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_vh.h b/apps/plugins/sdl/progs/wolf3d/id_vh.h new file mode 100644 index 0000000000..814e28d49c --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_vh.h | |||
@@ -0,0 +1,99 @@ | |||
1 | // ID_VH.H | ||
2 | |||
3 | |||
4 | #define WHITE 15 // graphics mode independant colors | ||
5 | #define BLACK 0 | ||
6 | #define FIRSTCOLOR 1 | ||
7 | #define SECONDCOLOR 12 | ||
8 | #define F_WHITE 15 | ||
9 | #define F_BLACK 0 | ||
10 | #define F_FIRSTCOLOR 1 | ||
11 | #define F_SECONDCOLOR 12 | ||
12 | |||
13 | //=========================================================================== | ||
14 | |||
15 | #define MAXSHIFTS 1 | ||
16 | |||
17 | typedef struct | ||
18 | { | ||
19 | int16_t width,height; | ||
20 | } pictabletype; | ||
21 | |||
22 | |||
23 | typedef struct | ||
24 | { | ||
25 | int16_t height; | ||
26 | int16_t location[256]; | ||
27 | int8_t width[256]; | ||
28 | } fontstruct; | ||
29 | |||
30 | |||
31 | //=========================================================================== | ||
32 | |||
33 | |||
34 | extern pictabletype *pictable; | ||
35 | extern pictabletype *picmtable; | ||
36 | |||
37 | extern byte fontcolor,backcolor; | ||
38 | extern int fontnumber; | ||
39 | extern int px,py; | ||
40 | |||
41 | #define SETFONTCOLOR(f,b) fontcolor=f;backcolor=b; | ||
42 | |||
43 | // | ||
44 | // mode independant routines | ||
45 | // coordinates in pixels, rounded to best screen res | ||
46 | // regions marked in double buffer | ||
47 | // | ||
48 | |||
49 | void VWB_DrawPropString (const char *string); | ||
50 | |||
51 | void VWB_DrawTile8 (int x, int y, int tile); | ||
52 | void VWB_DrawTile8M (int x, int y, int tile); | ||
53 | void VWB_DrawTile16 (int x, int y, int tile); | ||
54 | void VWB_DrawTile16M (int x, int y, int tile); | ||
55 | void VWB_DrawPic (int x, int y, int chunknum); | ||
56 | void VWB_DrawPicScaledCoord (int x, int y, int chunknum); | ||
57 | void VWB_DrawMPic(int x, int y, int chunknum); | ||
58 | void VWB_Bar (int x, int y, int width, int height, int color); | ||
59 | #define VWB_BarScaledCoord VL_BarScaledCoord | ||
60 | void VWB_Plot (int x, int y, int color); | ||
61 | #define VWB_PlotScaledCoord VW_Plot | ||
62 | void VWB_Hlin (int x1, int x2, int y, int color); | ||
63 | void VWB_Vlin (int y1, int y2, int x, int color); | ||
64 | #define VWB_HlinScaledCoord VW_Hlin | ||
65 | #define VWB_VlinScaledCoord VW_Vlin | ||
66 | |||
67 | void VH_UpdateScreen(); | ||
68 | #define VW_UpdateScreen VH_UpdateScreen | ||
69 | |||
70 | // | ||
71 | // wolfenstein EGA compatability stuff | ||
72 | // | ||
73 | |||
74 | |||
75 | #define VW_Shutdown VL_Shutdown | ||
76 | #define VW_Bar VL_Bar | ||
77 | #define VW_Plot VL_Plot | ||
78 | #define VW_Hlin(x,z,y,c) VL_Hlin(x,y,(z)-(x)+1,c) | ||
79 | #define VW_Vlin(y,z,x,c) VL_Vlin(x,y,(z)-(y)+1,c) | ||
80 | #define VW_DrawPic VH_DrawPic | ||
81 | #define VW_WaitVBL VL_WaitVBL | ||
82 | #define VW_FadeIn() VL_FadeIn(0,255,gamepal,30); | ||
83 | #define VW_FadeOut() VL_FadeOut(0,255,0,0,0,30); | ||
84 | #define VW_ScreenToScreen VL_ScreenToScreen | ||
85 | void VW_MeasurePropString (const char *string, word *width, word *height); | ||
86 | |||
87 | #define LatchDrawChar(x,y,p) VL_LatchToScreen(latchpics[0],((p)&7)*8,((p)>>3)*8*64,8,8,x,y) | ||
88 | #define LatchDrawTile(x,y,p) VL_LatchToScreen(latchpics[1],(p)*64,0,16,16,x,y) | ||
89 | |||
90 | void LatchDrawPic (unsigned x, unsigned y, unsigned picnum); | ||
91 | void LatchDrawPicScaledCoord (unsigned scx, unsigned scy, unsigned picnum); | ||
92 | void LoadLatchMem (void); | ||
93 | |||
94 | void VH_Startup(); | ||
95 | boolean FizzleFade (SDL_Surface *source, int x1, int y1, | ||
96 | unsigned width, unsigned height, unsigned frames, boolean abortable); | ||
97 | |||
98 | #define NUMLATCHPICS 100 | ||
99 | extern SDL_Surface *latchpics[NUMLATCHPICS]; | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_vl.c b/apps/plugins/sdl/progs/wolf3d/id_vl.c new file mode 100644 index 0000000000..0152e17218 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_vl.c | |||
@@ -0,0 +1,727 @@ | |||
1 | // ID_VL.C | ||
2 | |||
3 | #include <string.h> | ||
4 | #include "wl_def.h" | ||
5 | #pragma hdrstop | ||
6 | |||
7 | // Uncomment the following line, if you get destination out of bounds | ||
8 | // assertion errors and want to ignore them during debugging | ||
9 | //#define IGNORE_BAD_DEST | ||
10 | |||
11 | #ifdef IGNORE_BAD_DEST | ||
12 | #undef assert | ||
13 | #define assert(x) if(!(x)) return | ||
14 | #define assert_ret(x) if(!(x)) return 0 | ||
15 | #else | ||
16 | #define assert_ret(x) assert(x) | ||
17 | #endif | ||
18 | |||
19 | boolean fullscreen = true; | ||
20 | boolean usedoublebuffering = true; | ||
21 | unsigned screenWidth = 320; // SDL will scale for us | ||
22 | unsigned screenHeight = 200; | ||
23 | unsigned screenBits = LCD_DEPTH; // use "best" color depth according to libSDL | ||
24 | |||
25 | SDL_Surface *screen = NULL; | ||
26 | unsigned screenPitch; | ||
27 | |||
28 | SDL_Surface *screenBuffer = NULL; | ||
29 | unsigned bufferPitch; | ||
30 | |||
31 | SDL_Surface *curSurface = NULL; | ||
32 | unsigned curPitch; | ||
33 | |||
34 | unsigned scaleFactor; | ||
35 | |||
36 | boolean screenfaded; | ||
37 | unsigned bordercolor; | ||
38 | |||
39 | SDL_Color palette1[256], palette2[256]; | ||
40 | SDL_Color curpal[256]; | ||
41 | |||
42 | |||
43 | #define CASSERT(x) extern int ASSERT_COMPILE[((x) != 0) * 2 - 1]; | ||
44 | #define RGB(r, g, b) {(r)*255/63, (g)*255/63, (b)*255/63, 0} | ||
45 | |||
46 | SDL_Color gamepal[]={ | ||
47 | #ifdef SPEAR | ||
48 | #include "sodpal.inc" | ||
49 | #else | ||
50 | #include "wolfpal.inc" | ||
51 | #endif | ||
52 | }; | ||
53 | |||
54 | CASSERT(lengthof(gamepal) == 256) | ||
55 | |||
56 | //=========================================================================== | ||
57 | |||
58 | |||
59 | /* | ||
60 | ======================= | ||
61 | = | ||
62 | = VL_Shutdown | ||
63 | = | ||
64 | ======================= | ||
65 | */ | ||
66 | |||
67 | void VL_Shutdown (void) | ||
68 | { | ||
69 | //VL_SetTextMode (); | ||
70 | } | ||
71 | |||
72 | |||
73 | /* | ||
74 | ======================= | ||
75 | = | ||
76 | = VL_SetVGAPlaneMode | ||
77 | = | ||
78 | ======================= | ||
79 | */ | ||
80 | |||
81 | void VL_SetVGAPlaneMode (void) | ||
82 | { | ||
83 | #ifdef SPEAR | ||
84 | SDL_WM_SetCaption("Spear of Destiny", NULL); | ||
85 | #else | ||
86 | SDL_WM_SetCaption("Wolfenstein 3D", NULL); | ||
87 | #endif | ||
88 | |||
89 | if(screenBits == -1) | ||
90 | { | ||
91 | const SDL_VideoInfo *vidInfo = SDL_GetVideoInfo(); | ||
92 | screenBits = vidInfo->vfmt->BitsPerPixel; | ||
93 | } | ||
94 | |||
95 | screen = SDL_SetVideoMode(screenWidth, screenHeight, screenBits, | ||
96 | (usedoublebuffering ? SDL_HWSURFACE | SDL_DOUBLEBUF : 0) | ||
97 | | (screenBits == 8 ? SDL_HWPALETTE : 0) | ||
98 | | (fullscreen ? SDL_FULLSCREEN : 0)); | ||
99 | if(!screen) | ||
100 | { | ||
101 | printf("Unable to set %ix%ix%i video mode: %s\n", screenWidth, | ||
102 | screenHeight, screenBits, SDL_GetError()); | ||
103 | exit(1); | ||
104 | } | ||
105 | if((screen->flags & SDL_DOUBLEBUF) != SDL_DOUBLEBUF) | ||
106 | usedoublebuffering = false; | ||
107 | SDL_ShowCursor(SDL_DISABLE); | ||
108 | |||
109 | SDL_SetColors(screen, gamepal, 0, 256); | ||
110 | memcpy(curpal, gamepal, sizeof(SDL_Color) * 256); | ||
111 | |||
112 | screenBuffer = SDL_CreateRGBSurface(SDL_SWSURFACE, screenWidth, | ||
113 | screenHeight, 8, 0, 0, 0, 0); | ||
114 | if(!screenBuffer) | ||
115 | { | ||
116 | printf("Unable to create screen buffer surface: %s\n", SDL_GetError()); | ||
117 | exit(1); | ||
118 | } | ||
119 | SDL_SetColors(screenBuffer, gamepal, 0, 256); | ||
120 | |||
121 | screenPitch = screen->pitch; | ||
122 | bufferPitch = screenBuffer->pitch; | ||
123 | |||
124 | curSurface = screenBuffer; | ||
125 | curPitch = bufferPitch; | ||
126 | |||
127 | scaleFactor = screenWidth/320; | ||
128 | if(screenHeight/200 < scaleFactor) scaleFactor = screenHeight/200; | ||
129 | |||
130 | pixelangle = (short *) malloc(screenWidth * sizeof(short)); | ||
131 | CHECKMALLOCRESULT(pixelangle); | ||
132 | wallheight = (int *) malloc(screenWidth * sizeof(int)); | ||
133 | CHECKMALLOCRESULT(wallheight); | ||
134 | } | ||
135 | |||
136 | /* | ||
137 | ============================================================================= | ||
138 | |||
139 | PALETTE OPS | ||
140 | |||
141 | To avoid snow, do a WaitVBL BEFORE calling these | ||
142 | |||
143 | ============================================================================= | ||
144 | */ | ||
145 | |||
146 | /* | ||
147 | ================= | ||
148 | = | ||
149 | = VL_ConvertPalette | ||
150 | = | ||
151 | ================= | ||
152 | */ | ||
153 | |||
154 | void VL_ConvertPalette(byte *srcpal, SDL_Color *destpal, int numColors) | ||
155 | { | ||
156 | for(int i=0; i<numColors; i++) | ||
157 | { | ||
158 | destpal[i].r = *srcpal++ * 255 / 63; | ||
159 | destpal[i].g = *srcpal++ * 255 / 63; | ||
160 | destpal[i].b = *srcpal++ * 255 / 63; | ||
161 | } | ||
162 | } | ||
163 | |||
164 | /* | ||
165 | ================= | ||
166 | = | ||
167 | = VL_FillPalette | ||
168 | = | ||
169 | ================= | ||
170 | */ | ||
171 | |||
172 | void VL_FillPalette (int red, int green, int blue) | ||
173 | { | ||
174 | int i; | ||
175 | SDL_Color pal[256]; | ||
176 | |||
177 | for(i=0; i<256; i++) | ||
178 | { | ||
179 | pal[i].r = red; | ||
180 | pal[i].g = green; | ||
181 | pal[i].b = blue; | ||
182 | } | ||
183 | |||
184 | VL_SetPalette(pal, true); | ||
185 | } | ||
186 | |||
187 | //=========================================================================== | ||
188 | |||
189 | /* | ||
190 | ================= | ||
191 | = | ||
192 | = VL_SetColor | ||
193 | = | ||
194 | ================= | ||
195 | */ | ||
196 | |||
197 | void VL_SetColor (int color, int red, int green, int blue) | ||
198 | { | ||
199 | SDL_Color col = { red, green, blue }; | ||
200 | curpal[color] = col; | ||
201 | |||
202 | if(screenBits == 8) | ||
203 | SDL_SetPalette(screen, SDL_PHYSPAL, &col, color, 1); | ||
204 | else | ||
205 | { | ||
206 | SDL_SetPalette(curSurface, SDL_LOGPAL, &col, color, 1); | ||
207 | SDL_BlitSurface(curSurface, NULL, screen, NULL); | ||
208 | SDL_Flip(screen); | ||
209 | } | ||
210 | } | ||
211 | |||
212 | //=========================================================================== | ||
213 | |||
214 | /* | ||
215 | ================= | ||
216 | = | ||
217 | = VL_GetColor | ||
218 | = | ||
219 | ================= | ||
220 | */ | ||
221 | |||
222 | void VL_GetColor (int color, int *red, int *green, int *blue) | ||
223 | { | ||
224 | SDL_Color *col = &curpal[color]; | ||
225 | *red = col->r; | ||
226 | *green = col->g; | ||
227 | *blue = col->b; | ||
228 | } | ||
229 | |||
230 | //=========================================================================== | ||
231 | |||
232 | /* | ||
233 | ================= | ||
234 | = | ||
235 | = VL_SetPalette | ||
236 | = | ||
237 | ================= | ||
238 | */ | ||
239 | |||
240 | void VL_SetPalette (SDL_Color *palette, bool forceupdate) | ||
241 | { | ||
242 | memcpy(curpal, palette, sizeof(SDL_Color) * 256); | ||
243 | |||
244 | if(screenBits == 8) | ||
245 | SDL_SetPalette(screen, SDL_PHYSPAL, palette, 0, 256); | ||
246 | else | ||
247 | { | ||
248 | SDL_SetPalette(curSurface, SDL_LOGPAL, palette, 0, 256); | ||
249 | if(forceupdate) | ||
250 | { | ||
251 | SDL_BlitSurface(curSurface, NULL, screen, NULL); | ||
252 | SDL_Flip(screen); | ||
253 | } | ||
254 | } | ||
255 | } | ||
256 | |||
257 | |||
258 | //=========================================================================== | ||
259 | |||
260 | /* | ||
261 | ================= | ||
262 | = | ||
263 | = VL_GetPalette | ||
264 | = | ||
265 | ================= | ||
266 | */ | ||
267 | |||
268 | void VL_GetPalette (SDL_Color *palette) | ||
269 | { | ||
270 | memcpy(palette, curpal, sizeof(SDL_Color) * 256); | ||
271 | } | ||
272 | |||
273 | |||
274 | //=========================================================================== | ||
275 | |||
276 | /* | ||
277 | ================= | ||
278 | = | ||
279 | = VL_FadeOut | ||
280 | = | ||
281 | = Fades the current palette to the given color in the given number of steps | ||
282 | = | ||
283 | ================= | ||
284 | */ | ||
285 | |||
286 | void VL_FadeOut (int start, int end, int red, int green, int blue, int steps) | ||
287 | { | ||
288 | int i,j,orig,delta; | ||
289 | SDL_Color *origptr, *newptr; | ||
290 | |||
291 | red = red * 255 / 63; | ||
292 | green = green * 255 / 63; | ||
293 | blue = blue * 255 / 63; | ||
294 | |||
295 | // rockbox | ||
296 | steps = steps / 2; | ||
297 | |||
298 | VL_WaitVBL(1); | ||
299 | VL_GetPalette(palette1); | ||
300 | memcpy(palette2, palette1, sizeof(SDL_Color) * 256); | ||
301 | |||
302 | // | ||
303 | // fade through intermediate frames | ||
304 | // | ||
305 | for (i=0;i<steps;i++) | ||
306 | { | ||
307 | origptr = &palette1[start]; | ||
308 | newptr = &palette2[start]; | ||
309 | for (j=start;j<=end;j++) | ||
310 | { | ||
311 | orig = origptr->r; | ||
312 | delta = red-orig; | ||
313 | newptr->r = orig + delta * i / steps; | ||
314 | orig = origptr->g; | ||
315 | delta = green-orig; | ||
316 | newptr->g = orig + delta * i / steps; | ||
317 | orig = origptr->b; | ||
318 | delta = blue-orig; | ||
319 | newptr->b = orig + delta * i / steps; | ||
320 | origptr++; | ||
321 | newptr++; | ||
322 | } | ||
323 | |||
324 | if(!usedoublebuffering || screenBits == 8) VL_WaitVBL(1); | ||
325 | VL_SetPalette (palette2, true); | ||
326 | rb->yield(); | ||
327 | } | ||
328 | |||
329 | // | ||
330 | // final color | ||
331 | // | ||
332 | VL_FillPalette (red,green,blue); | ||
333 | |||
334 | screenfaded = true; | ||
335 | } | ||
336 | |||
337 | |||
338 | /* | ||
339 | ================= | ||
340 | = | ||
341 | = VL_FadeIn | ||
342 | = | ||
343 | ================= | ||
344 | */ | ||
345 | |||
346 | void VL_FadeIn (int start, int end, SDL_Color *palette, int steps) | ||
347 | { | ||
348 | int i,j,delta; | ||
349 | |||
350 | VL_WaitVBL(1); | ||
351 | VL_GetPalette(palette1); | ||
352 | memcpy(palette2, palette1, sizeof(SDL_Color) * 256); | ||
353 | |||
354 | steps = steps / 2; | ||
355 | |||
356 | // | ||
357 | // fade through intermediate frames | ||
358 | // | ||
359 | for (i=0;i<steps;i++) | ||
360 | { | ||
361 | for (j=start;j<=end;j++) | ||
362 | { | ||
363 | delta = palette[j].r-palette1[j].r; | ||
364 | palette2[j].r = palette1[j].r + delta * i / steps; | ||
365 | delta = palette[j].g-palette1[j].g; | ||
366 | palette2[j].g = palette1[j].g + delta * i / steps; | ||
367 | delta = palette[j].b-palette1[j].b; | ||
368 | palette2[j].b = palette1[j].b + delta * i / steps; | ||
369 | } | ||
370 | |||
371 | if(!usedoublebuffering || screenBits == 8) VL_WaitVBL(1); | ||
372 | VL_SetPalette(palette2, true); | ||
373 | } | ||
374 | |||
375 | // | ||
376 | // final color | ||
377 | // | ||
378 | VL_SetPalette (palette, true); | ||
379 | screenfaded = false; | ||
380 | } | ||
381 | |||
382 | /* | ||
383 | ============================================================================= | ||
384 | |||
385 | PIXEL OPS | ||
386 | |||
387 | ============================================================================= | ||
388 | */ | ||
389 | |||
390 | byte *VL_LockSurface(SDL_Surface *surface) | ||
391 | { | ||
392 | if(SDL_MUSTLOCK(surface)) | ||
393 | { | ||
394 | if(SDL_LockSurface(surface) < 0) | ||
395 | return NULL; | ||
396 | } | ||
397 | return (byte *) surface->pixels; | ||
398 | } | ||
399 | |||
400 | void VL_UnlockSurface(SDL_Surface *surface) | ||
401 | { | ||
402 | if(SDL_MUSTLOCK(surface)) | ||
403 | { | ||
404 | SDL_UnlockSurface(surface); | ||
405 | } | ||
406 | } | ||
407 | |||
408 | /* | ||
409 | ================= | ||
410 | = | ||
411 | = VL_Plot | ||
412 | = | ||
413 | ================= | ||
414 | */ | ||
415 | |||
416 | void VL_Plot (int x, int y, int color) | ||
417 | { | ||
418 | assert(x >= 0 && (unsigned) x < screenWidth | ||
419 | && y >= 0 && (unsigned) y < screenHeight | ||
420 | && "VL_Plot: Pixel out of bounds!"); | ||
421 | |||
422 | VL_LockSurface(curSurface); | ||
423 | ((byte *) curSurface->pixels)[y * curPitch + x] = color; | ||
424 | VL_UnlockSurface(curSurface); | ||
425 | } | ||
426 | |||
427 | /* | ||
428 | ================= | ||
429 | = | ||
430 | = VL_GetPixel | ||
431 | = | ||
432 | ================= | ||
433 | */ | ||
434 | |||
435 | byte VL_GetPixel (int x, int y) | ||
436 | { | ||
437 | assert_ret(x >= 0 && (unsigned) x < screenWidth | ||
438 | && y >= 0 && (unsigned) y < screenHeight | ||
439 | && "VL_GetPixel: Pixel out of bounds!"); | ||
440 | |||
441 | VL_LockSurface(curSurface); | ||
442 | byte col = ((byte *) curSurface->pixels)[y * curPitch + x]; | ||
443 | VL_UnlockSurface(curSurface); | ||
444 | return col; | ||
445 | } | ||
446 | |||
447 | |||
448 | /* | ||
449 | ================= | ||
450 | = | ||
451 | = VL_Hlin | ||
452 | = | ||
453 | ================= | ||
454 | */ | ||
455 | |||
456 | void VL_Hlin (unsigned x, unsigned y, unsigned width, int color) | ||
457 | { | ||
458 | assert(x >= 0 && x + width <= screenWidth | ||
459 | && y >= 0 && y < screenHeight | ||
460 | && "VL_Hlin: Destination rectangle out of bounds!"); | ||
461 | |||
462 | VL_LockSurface(curSurface); | ||
463 | Uint8 *dest = ((byte *) curSurface->pixels) + y * curPitch + x; | ||
464 | memset(dest, color, width); | ||
465 | VL_UnlockSurface(curSurface); | ||
466 | } | ||
467 | |||
468 | |||
469 | /* | ||
470 | ================= | ||
471 | = | ||
472 | = VL_Vlin | ||
473 | = | ||
474 | ================= | ||
475 | */ | ||
476 | |||
477 | void VL_Vlin (int x, int y, int height, int color) | ||
478 | { | ||
479 | assert(x >= 0 && (unsigned) x < screenWidth | ||
480 | && y >= 0 && (unsigned) y + height <= screenHeight | ||
481 | && "VL_Vlin: Destination rectangle out of bounds!"); | ||
482 | |||
483 | VL_LockSurface(curSurface); | ||
484 | Uint8 *dest = ((byte *) curSurface->pixels) + y * curPitch + x; | ||
485 | |||
486 | while (height--) | ||
487 | { | ||
488 | *dest = color; | ||
489 | dest += curPitch; | ||
490 | } | ||
491 | VL_UnlockSurface(curSurface); | ||
492 | } | ||
493 | |||
494 | |||
495 | /* | ||
496 | ================= | ||
497 | = | ||
498 | = VL_Bar | ||
499 | = | ||
500 | ================= | ||
501 | */ | ||
502 | |||
503 | void VL_BarScaledCoord (int scx, int scy, int scwidth, int scheight, int color) | ||
504 | { | ||
505 | assert(scx >= 0 && (unsigned) scx + scwidth <= screenWidth | ||
506 | && scy >= 0 && (unsigned) scy + scheight <= screenHeight | ||
507 | && "VL_BarScaledCoord: Destination rectangle out of bounds!"); | ||
508 | |||
509 | VL_LockSurface(curSurface); | ||
510 | Uint8 *dest = ((byte *) curSurface->pixels) + scy * curPitch + scx; | ||
511 | |||
512 | while (scheight--) | ||
513 | { | ||
514 | memset(dest, color, scwidth); | ||
515 | dest += curPitch; | ||
516 | } | ||
517 | VL_UnlockSurface(curSurface); | ||
518 | } | ||
519 | |||
520 | /* | ||
521 | ============================================================================ | ||
522 | |||
523 | MEMORY OPS | ||
524 | |||
525 | ============================================================================ | ||
526 | */ | ||
527 | |||
528 | /* | ||
529 | ================= | ||
530 | = | ||
531 | = VL_MemToLatch | ||
532 | = | ||
533 | ================= | ||
534 | */ | ||
535 | |||
536 | void VL_MemToLatch(byte *source, int width, int height, | ||
537 | SDL_Surface *destSurface, int x, int y) | ||
538 | { | ||
539 | assert(x >= 0 && (unsigned) x + width <= screenWidth | ||
540 | && y >= 0 && (unsigned) y + height <= screenHeight | ||
541 | && "VL_MemToLatch: Destination rectangle out of bounds!"); | ||
542 | |||
543 | VL_LockSurface(destSurface); | ||
544 | int pitch = destSurface->pitch; | ||
545 | byte *dest = (byte *) destSurface->pixels + y * pitch + x; | ||
546 | for(int ysrc = 0; ysrc < height; ysrc++) | ||
547 | { | ||
548 | for(int xsrc = 0; xsrc < width; xsrc++) | ||
549 | { | ||
550 | dest[ysrc * pitch + xsrc] = source[(ysrc * (width >> 2) + (xsrc >> 2)) | ||
551 | + (xsrc & 3) * (width >> 2) * height]; | ||
552 | } | ||
553 | } | ||
554 | VL_UnlockSurface(destSurface); | ||
555 | } | ||
556 | |||
557 | //=========================================================================== | ||
558 | |||
559 | |||
560 | /* | ||
561 | ================= | ||
562 | = | ||
563 | = VL_MemToScreenScaledCoord | ||
564 | = | ||
565 | = Draws a block of data to the screen with scaling according to scaleFactor. | ||
566 | = | ||
567 | ================= | ||
568 | */ | ||
569 | |||
570 | void VL_MemToScreenScaledCoord (byte *source, int width, int height, int destx, int desty) | ||
571 | { | ||
572 | assert(destx >= 0 && destx + width * scaleFactor <= screenWidth | ||
573 | && desty >= 0 && desty + height * scaleFactor <= screenHeight | ||
574 | && "VL_MemToScreenScaledCoord: Destination rectangle out of bounds!"); | ||
575 | |||
576 | VL_LockSurface(curSurface); | ||
577 | byte *vbuf = (byte *) curSurface->pixels; | ||
578 | for(int j=0,scj=0; j<height; j++, scj+=scaleFactor) | ||
579 | { | ||
580 | for(int i=0,sci=0; i<width; i++, sci+=scaleFactor) | ||
581 | { | ||
582 | byte col = source[(j*(width>>2)+(i>>2))+(i&3)*(width>>2)*height]; | ||
583 | for(unsigned m=0; m<scaleFactor; m++) | ||
584 | { | ||
585 | for(unsigned n=0; n<scaleFactor; n++) | ||
586 | { | ||
587 | vbuf[(scj+m+desty)*curPitch+sci+n+destx] = col; | ||
588 | } | ||
589 | } | ||
590 | } | ||
591 | } | ||
592 | VL_UnlockSurface(curSurface); | ||
593 | } | ||
594 | |||
595 | /* | ||
596 | ================= | ||
597 | = | ||
598 | = VL_MemToScreenScaledCoord | ||
599 | = | ||
600 | = Draws a part of a block of data to the screen. | ||
601 | = The block has the size origwidth*origheight. | ||
602 | = The part at (srcx, srcy) has the size width*height | ||
603 | = and will be painted to (destx, desty) with scaling according to scaleFactor. | ||
604 | = | ||
605 | ================= | ||
606 | */ | ||
607 | |||
608 | void VL_MemToScreenScaledCoord_ex (byte *source, int origwidth, int origheight, int srcx, int srcy, | ||
609 | int destx, int desty, int width, int height) | ||
610 | { | ||
611 | assert(destx >= 0 && destx + width * scaleFactor <= screenWidth | ||
612 | && desty >= 0 && desty + height * scaleFactor <= screenHeight | ||
613 | && "VL_MemToScreenScaledCoord: Destination rectangle out of bounds!"); | ||
614 | |||
615 | VL_LockSurface(curSurface); | ||
616 | byte *vbuf = (byte *) curSurface->pixels; | ||
617 | for(int j=0,scj=0; j<height; j++, scj+=scaleFactor) | ||
618 | { | ||
619 | for(int i=0,sci=0; i<width; i++, sci+=scaleFactor) | ||
620 | { | ||
621 | byte col = source[((j+srcy)*(origwidth>>2)+((i+srcx)>>2))+((i+srcx)&3)*(origwidth>>2)*origheight]; | ||
622 | for(unsigned m=0; m<scaleFactor; m++) | ||
623 | { | ||
624 | for(unsigned n=0; n<scaleFactor; n++) | ||
625 | { | ||
626 | vbuf[(scj+m+desty)*curPitch+sci+n+destx] = col; | ||
627 | } | ||
628 | } | ||
629 | } | ||
630 | } | ||
631 | VL_UnlockSurface(curSurface); | ||
632 | } | ||
633 | |||
634 | //========================================================================== | ||
635 | |||
636 | /* | ||
637 | ================= | ||
638 | = | ||
639 | = VL_LatchToScreen | ||
640 | = | ||
641 | ================= | ||
642 | */ | ||
643 | |||
644 | void VL_LatchToScreenScaledCoord(SDL_Surface *source, int xsrc, int ysrc, | ||
645 | int width, int height, int scxdest, int scydest) | ||
646 | { | ||
647 | assert(scxdest >= 0 && scxdest + width * scaleFactor <= screenWidth | ||
648 | && scydest >= 0 && scydest + height * scaleFactor <= screenHeight | ||
649 | && "VL_LatchToScreenScaledCoord: Destination rectangle out of bounds!"); | ||
650 | |||
651 | if(scaleFactor == 1) | ||
652 | { | ||
653 | // HACK: If screenBits is not 8 and the screen is faded out, the | ||
654 | // result will be black when using SDL_BlitSurface. The reason | ||
655 | // is that the logical palette needed for the transformation | ||
656 | // to the screen color depth is not equal to the logical | ||
657 | // palette of the latch (the latch is not faded). Therefore, | ||
658 | // SDL tries to map the colors... | ||
659 | // The result: All colors are mapped to black. | ||
660 | // So, we do the blit on our own... | ||
661 | if(screenBits != 8) | ||
662 | { | ||
663 | VL_LockSurface(source); | ||
664 | byte *src = (byte *) source->pixels; | ||
665 | unsigned srcPitch = source->pitch; | ||
666 | |||
667 | VL_LockSurface(curSurface); | ||
668 | byte *vbuf = (byte *) curSurface->pixels; | ||
669 | for(int j=0,scj=0; j<height; j++, scj++) | ||
670 | { | ||
671 | for(int i=0,sci=0; i<width; i++, sci++) | ||
672 | { | ||
673 | byte col = src[(ysrc + j)*srcPitch + xsrc + i]; | ||
674 | vbuf[(scydest+scj)*curPitch+scxdest+sci] = col; | ||
675 | } | ||
676 | } | ||
677 | VL_UnlockSurface(curSurface); | ||
678 | VL_UnlockSurface(source); | ||
679 | } | ||
680 | else | ||
681 | { | ||
682 | SDL_Rect srcrect = { xsrc, ysrc, width, height }; | ||
683 | SDL_Rect destrect = { scxdest, scydest, 0, 0 }; // width and height are ignored | ||
684 | SDL_BlitSurface(source, &srcrect, curSurface, &destrect); | ||
685 | } | ||
686 | } | ||
687 | else | ||
688 | { | ||
689 | VL_LockSurface(source); | ||
690 | byte *src = (byte *) source->pixels; | ||
691 | unsigned srcPitch = source->pitch; | ||
692 | |||
693 | VL_LockSurface(curSurface); | ||
694 | byte *vbuf = (byte *) curSurface->pixels; | ||
695 | for(int j=0,scj=0; j<height; j++, scj+=scaleFactor) | ||
696 | { | ||
697 | for(int i=0,sci=0; i<width; i++, sci+=scaleFactor) | ||
698 | { | ||
699 | byte col = src[(ysrc + j)*srcPitch + xsrc + i]; | ||
700 | for(unsigned m=0; m<scaleFactor; m++) | ||
701 | { | ||
702 | for(unsigned n=0; n<scaleFactor; n++) | ||
703 | { | ||
704 | vbuf[(scydest+scj+m)*curPitch+scxdest+sci+n] = col; | ||
705 | } | ||
706 | } | ||
707 | } | ||
708 | } | ||
709 | VL_UnlockSurface(curSurface); | ||
710 | VL_UnlockSurface(source); | ||
711 | } | ||
712 | } | ||
713 | |||
714 | //=========================================================================== | ||
715 | |||
716 | /* | ||
717 | ================= | ||
718 | = | ||
719 | = VL_ScreenToScreen | ||
720 | = | ||
721 | ================= | ||
722 | */ | ||
723 | |||
724 | void VL_ScreenToScreen (SDL_Surface *source, SDL_Surface *dest) | ||
725 | { | ||
726 | SDL_BlitSurface(source, NULL, dest, NULL); | ||
727 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/id_vl.h b/apps/plugins/sdl/progs/wolf3d/id_vl.h new file mode 100644 index 0000000000..d4a15f4d46 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/id_vl.h | |||
@@ -0,0 +1,101 @@ | |||
1 | // ID_VL.H | ||
2 | |||
3 | // wolf compatability | ||
4 | |||
5 | void Quit (const char *error,...); | ||
6 | |||
7 | //=========================================================================== | ||
8 | |||
9 | #define CHARWIDTH 2 | ||
10 | #define TILEWIDTH 4 | ||
11 | |||
12 | //=========================================================================== | ||
13 | |||
14 | extern SDL_Surface *screen, *screenBuffer, *curSurface; | ||
15 | |||
16 | extern boolean fullscreen, usedoublebuffering; | ||
17 | extern unsigned screenWidth, screenHeight, screenBits, screenPitch, bufferPitch, curPitch; | ||
18 | extern unsigned scaleFactor; | ||
19 | |||
20 | extern boolean screenfaded; | ||
21 | extern unsigned bordercolor; | ||
22 | |||
23 | extern SDL_Color gamepal[256]; | ||
24 | |||
25 | //=========================================================================== | ||
26 | |||
27 | // | ||
28 | // VGA hardware routines | ||
29 | // | ||
30 | |||
31 | #define VL_WaitVBL(a) SDL_Delay((a)*8) | ||
32 | |||
33 | void VL_SetVGAPlaneMode (void); | ||
34 | void VL_SetTextMode (void); | ||
35 | void VL_Shutdown (void); | ||
36 | |||
37 | void VL_ConvertPalette(byte *srcpal, SDL_Color *destpal, int numColors); | ||
38 | void VL_FillPalette (int red, int green, int blue); | ||
39 | void VL_SetColor (int color, int red, int green, int blue); | ||
40 | void VL_GetColor (int color, int *red, int *green, int *blue); | ||
41 | void VL_SetPalette (SDL_Color *palette, bool forceupdate); | ||
42 | void VL_GetPalette (SDL_Color *palette); | ||
43 | void VL_FadeOut (int start, int end, int red, int green, int blue, int steps); | ||
44 | void VL_FadeIn (int start, int end, SDL_Color *palette, int steps); | ||
45 | |||
46 | byte *VL_LockSurface(SDL_Surface *surface); | ||
47 | void VL_UnlockSurface(SDL_Surface *surface); | ||
48 | |||
49 | #define LOCK() VL_LockSurface(curSurface) | ||
50 | #define UNLOCK() VL_UnlockSurface(curSurface) | ||
51 | |||
52 | byte VL_GetPixel (int x, int y); | ||
53 | void VL_Plot (int x, int y, int color); | ||
54 | void VL_Hlin (unsigned x, unsigned y, unsigned width, int color); | ||
55 | void VL_Vlin (int x, int y, int height, int color); | ||
56 | void VL_BarScaledCoord (int scx, int scy, int scwidth, int scheight, int color); | ||
57 | inline void VL_Bar (int x, int y, int width, int height, int color) | ||
58 | { | ||
59 | VL_BarScaledCoord(scaleFactor*x, scaleFactor*y, | ||
60 | scaleFactor*width, scaleFactor*height, color); | ||
61 | } | ||
62 | inline void VL_ClearScreen(int color) | ||
63 | { | ||
64 | SDL_FillRect(curSurface, NULL, color); | ||
65 | } | ||
66 | |||
67 | void VL_MungePic (byte *source, unsigned width, unsigned height); | ||
68 | void VL_DrawPicBare (int x, int y, byte *pic, int width, int height); | ||
69 | void VL_MemToLatch (byte *source, int width, int height, | ||
70 | SDL_Surface *destSurface, int x, int y); | ||
71 | void VL_ScreenToScreen (SDL_Surface *source, SDL_Surface *dest); | ||
72 | void VL_MemToScreenScaledCoord (byte *source, int width, int height, int scx, int scy); | ||
73 | void VL_MemToScreenScaledCoord_ex (byte *source, int origwidth, int origheight, int srcx, int srcy, | ||
74 | int destx, int desty, int width, int height); | ||
75 | |||
76 | inline void VL_MemToScreen (byte *source, int width, int height, int x, int y) | ||
77 | { | ||
78 | VL_MemToScreenScaledCoord(source, width, height, | ||
79 | scaleFactor*x, scaleFactor*y); | ||
80 | } | ||
81 | |||
82 | void VL_MaskedToScreen (byte *source, int width, int height, int x, int y); | ||
83 | |||
84 | void VL_LatchToScreenScaledCoord (SDL_Surface *source, int xsrc, int ysrc, | ||
85 | int width, int height, int scxdest, int scydest); | ||
86 | |||
87 | inline void VL_LatchToScreen (SDL_Surface *source, int xsrc, int ysrc, | ||
88 | int width, int height, int xdest, int ydest) | ||
89 | { | ||
90 | VL_LatchToScreenScaledCoord(source,xsrc,ysrc,width,height, | ||
91 | scaleFactor*xdest,scaleFactor*ydest); | ||
92 | } | ||
93 | inline void VL_LatchToScreenScaledCoord_ez (SDL_Surface *source, int scx, int scy) | ||
94 | { | ||
95 | VL_LatchToScreenScaledCoord(source,0,0,source->w,source->h,scx,scy); | ||
96 | } | ||
97 | inline void VL_LatchToScreen_ez (SDL_Surface *source, int x, int y) | ||
98 | { | ||
99 | VL_LatchToScreenScaledCoord(source,0,0,source->w,source->h, | ||
100 | scaleFactor*x,scaleFactor*y); | ||
101 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/sdl_winmain.c b/apps/plugins/sdl/progs/wolf3d/sdl_winmain.c new file mode 100644 index 0000000000..366616d5ff --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/sdl_winmain.c | |||
@@ -0,0 +1,378 @@ | |||
1 | #ifdef _WIN32 | ||
2 | |||
3 | /* | ||
4 | SDL_main.c, placed in the public domain by Sam Lantinga 4/13/98 | ||
5 | |||
6 | Modified to write stdout/stderr to a message box at shutdown by Ripper 2007-12-27 | ||
7 | |||
8 | The WinMain function -- calls your program's main() function | ||
9 | */ | ||
10 | |||
11 | #include <stdio.h> | ||
12 | #include <stdlib.h> | ||
13 | |||
14 | #define WIN32_LEAN_AND_MEAN | ||
15 | #include <windows.h> | ||
16 | |||
17 | #ifdef _WIN32_WCE | ||
18 | # define DIR_SEPERATOR TEXT("\\") | ||
19 | # undef _getcwd | ||
20 | # define _getcwd(str,len) wcscpy(str,TEXT("")) | ||
21 | # define setbuf(f,b) | ||
22 | # define setvbuf(w,x,y,z) | ||
23 | # define fopen _wfopen | ||
24 | # define freopen _wfreopen | ||
25 | # define remove(x) DeleteFile(x) | ||
26 | #else | ||
27 | # define DIR_SEPERATOR TEXT("/") | ||
28 | # include <direct.h> | ||
29 | #endif | ||
30 | |||
31 | /* Include the SDL main definition header */ | ||
32 | #include "SDL.h" | ||
33 | #include "SDL_main.h" | ||
34 | |||
35 | #ifdef main | ||
36 | # ifndef _WIN32_WCE_EMULATION | ||
37 | # undef main | ||
38 | # endif /* _WIN32_WCE_EMULATION */ | ||
39 | #endif /* main */ | ||
40 | |||
41 | /* The standard output files */ | ||
42 | #define STDOUT_FILE TEXT("stdout.txt") | ||
43 | #define STDERR_FILE TEXT("stderr.txt") | ||
44 | |||
45 | #ifndef NO_STDIO_REDIRECT | ||
46 | # ifdef _WIN32_WCE | ||
47 | static wchar_t stdoutPath[MAX_PATH]; | ||
48 | static wchar_t stderrPath[MAX_PATH]; | ||
49 | # else | ||
50 | static char stdoutPath[MAX_PATH]; | ||
51 | static char stderrPath[MAX_PATH]; | ||
52 | # endif | ||
53 | #endif | ||
54 | |||
55 | #if defined(_WIN32_WCE) && _WIN32_WCE < 300 | ||
56 | /* seems to be undefined in Win CE although in online help */ | ||
57 | #define isspace(a) (((CHAR)a == ' ') || ((CHAR)a == '\t')) | ||
58 | #endif /* _WIN32_WCE < 300 */ | ||
59 | |||
60 | /* Parse a command line buffer into arguments */ | ||
61 | static int ParseCommandLine(char *cmdline, char **argv) | ||
62 | { | ||
63 | char *bufp; | ||
64 | int argc; | ||
65 | |||
66 | argc = 0; | ||
67 | for ( bufp = cmdline; *bufp; ) { | ||
68 | /* Skip leading whitespace */ | ||
69 | while ( isspace(*bufp) ) { | ||
70 | ++bufp; | ||
71 | } | ||
72 | /* Skip over argument */ | ||
73 | if ( *bufp == '"' ) { | ||
74 | ++bufp; | ||
75 | if ( *bufp ) { | ||
76 | if ( argv ) { | ||
77 | argv[argc] = bufp; | ||
78 | } | ||
79 | ++argc; | ||
80 | } | ||
81 | /* Skip over word */ | ||
82 | while ( *bufp && (*bufp != '"') ) { | ||
83 | ++bufp; | ||
84 | } | ||
85 | } else { | ||
86 | if ( *bufp ) { | ||
87 | if ( argv ) { | ||
88 | argv[argc] = bufp; | ||
89 | } | ||
90 | ++argc; | ||
91 | } | ||
92 | /* Skip over word */ | ||
93 | while ( *bufp && ! isspace(*bufp) ) { | ||
94 | ++bufp; | ||
95 | } | ||
96 | } | ||
97 | if ( *bufp ) { | ||
98 | if ( argv ) { | ||
99 | *bufp = '\0'; | ||
100 | } | ||
101 | ++bufp; | ||
102 | } | ||
103 | } | ||
104 | if ( argv ) { | ||
105 | argv[argc] = NULL; | ||
106 | } | ||
107 | return(argc); | ||
108 | } | ||
109 | |||
110 | /* Show an error message */ | ||
111 | static void ShowError(const char *title, const char *message) | ||
112 | { | ||
113 | /* If USE_MESSAGEBOX is defined, you need to link with user32.lib */ | ||
114 | #ifdef USE_MESSAGEBOX | ||
115 | MessageBox(NULL, message, title, MB_ICONEXCLAMATION|MB_OK); | ||
116 | #else | ||
117 | fprintf(stderr, "%s: %s\n", title, message); | ||
118 | #endif | ||
119 | } | ||
120 | |||
121 | /* Pop up an out of memory message, returns to Windows */ | ||
122 | static bool OutOfMemory(void) | ||
123 | { | ||
124 | ShowError("Fatal Error", "Out of memory - aborting"); | ||
125 | return FALSE; | ||
126 | } | ||
127 | |||
128 | /* SDL_Quit() shouldn't be used with atexit() directly because | ||
129 | calling conventions may differ... */ | ||
130 | static void cleanup(void) | ||
131 | { | ||
132 | SDL_Quit(); | ||
133 | } | ||
134 | |||
135 | /* Remove the output files if there was no output written */ | ||
136 | static void cleanup_output(void) | ||
137 | { | ||
138 | #if 1 | ||
139 | #ifndef NO_STDIO_REDIRECT | ||
140 | FILE *file; | ||
141 | #endif | ||
142 | #endif | ||
143 | |||
144 | /* Flush the output in case anything is queued */ | ||
145 | fclose(stdout); | ||
146 | fclose(stderr); | ||
147 | |||
148 | #if 1 | ||
149 | #ifndef NO_STDIO_REDIRECT | ||
150 | /* See if the files have any output in them */ | ||
151 | if ( stdoutPath[0] ) { | ||
152 | file = fopen(stdoutPath, TEXT("r")); | ||
153 | if ( file ) { | ||
154 | char buf[16384]; | ||
155 | size_t readbytes = fread(buf, 1, 16383, file); | ||
156 | fclose(file); | ||
157 | |||
158 | if(readbytes != 0) | ||
159 | { | ||
160 | buf[readbytes] = 0; // cut after last byte (<=16383) | ||
161 | MessageBox(NULL, buf, "Wolf4SDL", MB_OK); | ||
162 | } | ||
163 | else | ||
164 | remove(stdoutPath); // remove empty file | ||
165 | } | ||
166 | } | ||
167 | if ( stderrPath[0] ) { | ||
168 | file = fopen(stderrPath, TEXT("rb")); | ||
169 | if ( file ) { | ||
170 | char buf[16384]; | ||
171 | size_t readbytes = fread(buf, 1, 16383, file); | ||
172 | fclose(file); | ||
173 | |||
174 | if(readbytes != 0) | ||
175 | { | ||
176 | buf[readbytes] = 0; // cut after last byte (<=16383) | ||
177 | MessageBox(NULL, buf, "Wolf4SDL", MB_OK); | ||
178 | } | ||
179 | else | ||
180 | remove(stderrPath); // remove empty file | ||
181 | } | ||
182 | } | ||
183 | #endif | ||
184 | #endif | ||
185 | } | ||
186 | |||
187 | //#if defined(_MSC_VER) && !defined(_WIN32_WCE) | ||
188 | ///* The VC++ compiler needs main defined */ | ||
189 | //#define console_main main | ||
190 | //#endif | ||
191 | |||
192 | /* This is where execution begins [console apps] */ | ||
193 | int console_main(int argc, char *argv[]) | ||
194 | { | ||
195 | size_t n; | ||
196 | char *bufp, *appname; | ||
197 | int status; | ||
198 | |||
199 | /* Get the class name from argv[0] */ | ||
200 | appname = argv[0]; | ||
201 | if ( (bufp=SDL_strrchr(argv[0], '\\')) != NULL ) { | ||
202 | appname = bufp+1; | ||
203 | } else | ||
204 | if ( (bufp=SDL_strrchr(argv[0], '/')) != NULL ) { | ||
205 | appname = bufp+1; | ||
206 | } | ||
207 | |||
208 | if ( (bufp=SDL_strrchr(appname, '.')) == NULL ) | ||
209 | n = SDL_strlen(appname); | ||
210 | else | ||
211 | n = (bufp-appname); | ||
212 | |||
213 | bufp = SDL_stack_alloc(char, n+1); | ||
214 | if ( bufp == NULL ) { | ||
215 | return OutOfMemory(); | ||
216 | } | ||
217 | SDL_strlcpy(bufp, appname, n+1); | ||
218 | appname = bufp; | ||
219 | |||
220 | /* Load SDL dynamic link library */ | ||
221 | if ( SDL_Init(SDL_INIT_NOPARACHUTE) < 0 ) { | ||
222 | ShowError("WinMain() error", SDL_GetError()); | ||
223 | return(FALSE); | ||
224 | } | ||
225 | atexit(cleanup_output); | ||
226 | atexit(cleanup); | ||
227 | |||
228 | /* Sam: | ||
229 | We still need to pass in the application handle so that | ||
230 | DirectInput will initialize properly when SDL_RegisterApp() | ||
231 | is called later in the video initialization. | ||
232 | */ | ||
233 | SDL_SetModuleHandle(GetModuleHandle(NULL)); | ||
234 | |||
235 | /* Run the application main() code */ | ||
236 | status = SDL_main(argc, argv); | ||
237 | |||
238 | /* Exit cleanly, calling atexit() functions */ | ||
239 | exit(status); | ||
240 | |||
241 | /* Hush little compiler, don't you cry... */ | ||
242 | return 0; | ||
243 | } | ||
244 | |||
245 | /* This is where execution begins [windowed apps] */ | ||
246 | #ifdef _WIN32_WCE | ||
247 | int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPWSTR szCmdLine, int sw) | ||
248 | #else | ||
249 | int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) | ||
250 | #endif | ||
251 | { | ||
252 | HINSTANCE handle; | ||
253 | char **argv; | ||
254 | int argc; | ||
255 | char *cmdline; | ||
256 | #ifdef _WIN32_WCE | ||
257 | wchar_t *bufp; | ||
258 | int nLen; | ||
259 | #else | ||
260 | char *bufp; | ||
261 | size_t nLen; | ||
262 | #endif | ||
263 | #ifndef NO_STDIO_REDIRECT | ||
264 | DWORD pathlen; | ||
265 | #ifdef _WIN32_WCE | ||
266 | wchar_t path[MAX_PATH]; | ||
267 | #else | ||
268 | char path[MAX_PATH]; | ||
269 | #endif | ||
270 | FILE *newfp; | ||
271 | #endif | ||
272 | |||
273 | /* Start up DDHELP.EXE before opening any files, so DDHELP doesn't | ||
274 | keep them open. This is a hack.. hopefully it will be fixed | ||
275 | someday. DDHELP.EXE starts up the first time DDRAW.DLL is loaded. | ||
276 | */ | ||
277 | handle = LoadLibrary(TEXT("DDRAW.DLL")); | ||
278 | if ( handle != NULL ) { | ||
279 | FreeLibrary(handle); | ||
280 | } | ||
281 | |||
282 | #ifndef NO_STDIO_REDIRECT | ||
283 | pathlen = GetModuleFileName(NULL, path, SDL_arraysize(path)); | ||
284 | while ( pathlen > 0 && path[pathlen] != '\\' ) { | ||
285 | --pathlen; | ||
286 | } | ||
287 | path[pathlen] = '\0'; | ||
288 | |||
289 | #ifdef _WIN32_WCE | ||
290 | wcsncpy( stdoutPath, path, SDL_arraysize(stdoutPath) ); | ||
291 | wcsncat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); | ||
292 | #else | ||
293 | SDL_strlcpy( stdoutPath, path, SDL_arraysize(stdoutPath) ); | ||
294 | SDL_strlcat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); | ||
295 | #endif | ||
296 | |||
297 | /* Redirect standard input and standard output */ | ||
298 | newfp = freopen(stdoutPath, TEXT("w"), stdout); | ||
299 | |||
300 | #ifndef _WIN32_WCE | ||
301 | if ( newfp == NULL ) { /* This happens on NT */ | ||
302 | #if !defined(stdout) | ||
303 | stdout = fopen(stdoutPath, TEXT("w")); | ||
304 | #else | ||
305 | newfp = fopen(stdoutPath, TEXT("w")); | ||
306 | if ( newfp ) { | ||
307 | *stdout = *newfp; | ||
308 | } | ||
309 | #endif | ||
310 | } | ||
311 | #endif /* _WIN32_WCE */ | ||
312 | |||
313 | #ifdef _WIN32_WCE | ||
314 | wcsncpy( stderrPath, path, SDL_arraysize(stdoutPath) ); | ||
315 | wcsncat( stderrPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); | ||
316 | #else | ||
317 | SDL_strlcpy( stderrPath, path, SDL_arraysize(stderrPath) ); | ||
318 | SDL_strlcat( stderrPath, DIR_SEPERATOR STDERR_FILE, SDL_arraysize(stderrPath) ); | ||
319 | #endif | ||
320 | |||
321 | newfp = freopen(stderrPath, TEXT("w"), stderr); | ||
322 | #ifndef _WIN32_WCE | ||
323 | if ( newfp == NULL ) { /* This happens on NT */ | ||
324 | #if !defined(stderr) | ||
325 | stderr = fopen(stderrPath, TEXT("w")); | ||
326 | #else | ||
327 | newfp = fopen(stderrPath, TEXT("w")); | ||
328 | if ( newfp ) { | ||
329 | *stderr = *newfp; | ||
330 | } | ||
331 | #endif | ||
332 | } | ||
333 | #endif /* _WIN32_WCE */ | ||
334 | |||
335 | setvbuf(stdout, NULL, _IOLBF, BUFSIZ); /* Line buffered */ | ||
336 | setbuf(stderr, NULL); /* No buffering */ | ||
337 | #endif /* !NO_STDIO_REDIRECT */ | ||
338 | |||
339 | #ifdef _WIN32_WCE | ||
340 | nLen = wcslen(szCmdLine)+128+1; | ||
341 | bufp = SDL_stack_alloc(wchar_t, nLen*2); | ||
342 | wcscpy (bufp, TEXT("\"")); | ||
343 | GetModuleFileName(NULL, bufp+1, 128-3); | ||
344 | wcscpy (bufp+wcslen(bufp), TEXT("\" ")); | ||
345 | wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen-wcslen(bufp)); | ||
346 | nLen = wcslen(bufp)+1; | ||
347 | cmdline = SDL_stack_alloc(char, nLen); | ||
348 | if ( cmdline == NULL ) { | ||
349 | return OutOfMemory(); | ||
350 | } | ||
351 | WideCharToMultiByte(CP_ACP, 0, bufp, -1, cmdline, nLen, NULL, NULL); | ||
352 | #else | ||
353 | /* Grab the command line */ | ||
354 | bufp = GetCommandLine(); | ||
355 | nLen = SDL_strlen(bufp)+1; | ||
356 | cmdline = SDL_stack_alloc(char, nLen); | ||
357 | if ( cmdline == NULL ) { | ||
358 | return OutOfMemory(); | ||
359 | } | ||
360 | SDL_strlcpy(cmdline, bufp, nLen); | ||
361 | #endif | ||
362 | |||
363 | /* Parse it into argv and argc */ | ||
364 | argc = ParseCommandLine(cmdline, NULL); | ||
365 | argv = SDL_stack_alloc(char*, argc+1); | ||
366 | if ( argv == NULL ) { | ||
367 | return OutOfMemory(); | ||
368 | } | ||
369 | ParseCommandLine(cmdline, argv); | ||
370 | |||
371 | /* Run the main program (after a little SDL initialization) */ | ||
372 | console_main(argc, argv); | ||
373 | |||
374 | /* Hush little compiler, don't you cry... */ | ||
375 | return 0; | ||
376 | } | ||
377 | |||
378 | #endif // _WIN32 | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/signon.c b/apps/plugins/sdl/progs/wolf3d/signon.c new file mode 100644 index 0000000000..160173594e --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/signon.c | |||
@@ -0,0 +1,8007 @@ | |||
1 | #include "wl_def.h" | ||
2 | |||
3 | #ifndef SPEAR | ||
4 | byte signon[] = { | ||
5 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
6 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
7 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
8 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
9 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
10 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
11 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
12 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
13 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
14 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
15 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
16 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
17 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
18 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
19 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
20 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
21 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
22 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
23 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
24 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
25 | 0x04,0x22,0x24,0x21,0x22,0x23,0x21,0x22,0x04,0x25,0x25,0x22,0x22,0x24,0x22,0x22, | ||
26 | 0x26,0x22,0x25,0x22,0x21,0x25,0x23,0x21,0x22,0x22,0x22,0x21,0x25,0x22,0x25,0x24, | ||
27 | 0x25,0x22,0x21,0x22,0x22,0x21,0x24,0x23,0x04,0x28,0x29,0x28,0x29,0x23,0x26,0x25, | ||
28 | 0x26,0x22,0x04,0x23,0x23,0x26,0x24,0x23,0x25,0x25,0x23,0x23,0x04,0x23,0x25,0x04, | ||
29 | 0x28,0x25,0x23,0x24,0x22,0x25,0x28,0x28,0x28,0x23,0x23,0x04,0x23,0x22,0x23,0x25, | ||
30 | 0x23,0x25,0x25,0x04,0x22,0x22,0x21,0x23,0x23,0x25,0x25,0x22,0x23,0x25,0x26,0x23, | ||
31 | 0x29,0x29,0x22,0x24,0x23,0x22,0x04,0x25,0x22,0x04,0x23,0x23,0x22,0x23,0x25,0x24, | ||
32 | 0x23,0x23,0x23,0x25,0x24,0x28,0x23,0x22,0x23,0x23,0x22,0x24,0x25,0x22,0x04,0x22, | ||
33 | 0x22,0x24,0x04,0x24,0x24,0x24,0x24,0x25,0x24,0x28,0x2A,0x23,0x22,0x26,0x22,0x26, | ||
34 | 0x25,0x22,0x22,0x26,0x28,0x26,0x28,0x28,0x24,0x24,0x25,0x22,0x24,0x25,0x22,0x25, | ||
35 | 0x25,0x25,0x26,0x22,0x25,0x24,0x24,0x24,0x25,0x24,0x25,0x22,0x04,0x24,0x25,0x25, | ||
36 | 0x26,0x24,0x22,0x26,0x26,0x24,0x24,0x23,0x04,0x22,0x25,0x28,0x24,0x26,0x22,0x26, | ||
37 | 0x25,0x26,0x2A,0x28,0x23,0x25,0x25,0x25,0x23,0x28,0x25,0x25,0x04,0x25,0x24,0x23, | ||
38 | 0x25,0x23,0x28,0x26,0x25,0x20,0x20,0x25,0x20,0x22,0x22,0x25,0x22,0x28,0x25,0x25, | ||
39 | 0x28,0x04,0x28,0x25,0x24,0x24,0x24,0x24,0x24,0x25,0x25,0x28,0x28,0x25,0x25,0x26, | ||
40 | 0x23,0x04,0x25,0x04,0x24,0x25,0x28,0x28,0x23,0x26,0x25,0x26,0x25,0x26,0x25,0x28, | ||
41 | 0x28,0x24,0x26,0x28,0x20,0x20,0x26,0x20,0x23,0x04,0x26,0x25,0x24,0x26,0x28,0x28, | ||
42 | 0x28,0x24,0x28,0x28,0x25,0x25,0x26,0x26,0x04,0x25,0x26,0x26,0x04,0x26,0x22,0x25, | ||
43 | 0x25,0x22,0x28,0x24,0x28,0x25,0x26,0x26,0x26,0x25,0x25,0x28,0x28,0x26,0x28,0x28, | ||
44 | 0x28,0x26,0x28,0x24,0x28,0x04,0x28,0x26,0x25,0x26,0x26,0x26,0x25,0x28,0x26,0x29, | ||
45 | 0x25,0x22,0x25,0x23,0x25,0x25,0x22,0x22,0x04,0x22,0x23,0x25,0x25,0x23,0x22,0x22, | ||
46 | 0x22,0x22,0x21,0x04,0x24,0x04,0x24,0x23,0x25,0x22,0x22,0x21,0x23,0x23,0x04,0x23, | ||
47 | 0x24,0x23,0x25,0x25,0x25,0x22,0x04,0x25,0x23,0x25,0x25,0x25,0x25,0x25,0x24,0x25, | ||
48 | 0x24,0x23,0x25,0x24,0x22,0x25,0x25,0x24,0x22,0x23,0x23,0x23,0x25,0x26,0x25,0x25, | ||
49 | 0x24,0x24,0x25,0x24,0x24,0x21,0x25,0x26,0x04,0x22,0x25,0x25,0x23,0x22,0x25,0x26, | ||
50 | 0x04,0x23,0x23,0x23,0x26,0x22,0x25,0x25,0x26,0x24,0x25,0x26,0x24,0x04,0x04,0x22, | ||
51 | 0x25,0x24,0x04,0x25,0x28,0x25,0x26,0x26,0x04,0x28,0x23,0x25,0x22,0x22,0x26,0x23, | ||
52 | 0x25,0x04,0x04,0x22,0x25,0x22,0x25,0x23,0x22,0x23,0x24,0x22,0x24,0x23,0x04,0x04, | ||
53 | 0x28,0x28,0x21,0x24,0x25,0x24,0x28,0x23,0x28,0x28,0x25,0x25,0x23,0x23,0x24,0x25, | ||
54 | 0x24,0x22,0x25,0x04,0x28,0x04,0x04,0x26,0x26,0x26,0x26,0x26,0x25,0x28,0x24,0x25, | ||
55 | 0x28,0x24,0x25,0x04,0x24,0x25,0x24,0x24,0x24,0x24,0x24,0x04,0x24,0x22,0x24,0x23, | ||
56 | 0x25,0x25,0x25,0x04,0x26,0x25,0x25,0x26,0x26,0x25,0x26,0x25,0x25,0x26,0x26,0x26, | ||
57 | 0x04,0x28,0x28,0x26,0x25,0x28,0x28,0x28,0x28,0x28,0x24,0x25,0x23,0x26,0x25,0x25, | ||
58 | 0x26,0x23,0x20,0x20,0x20,0x22,0x20,0x20,0x20,0x26,0x23,0x28,0x26,0x25,0x28,0x28, | ||
59 | 0x26,0x26,0x28,0x04,0x28,0x28,0x26,0x26,0x24,0x26,0x25,0x28,0x27,0x04,0x24,0x26, | ||
60 | 0x28,0x04,0x26,0x26,0x22,0x28,0x25,0x28,0x25,0x25,0x26,0x04,0x24,0x26,0x26,0x23, | ||
61 | 0x26,0x23,0x26,0x25,0x24,0x25,0x22,0x25,0x26,0x25,0x24,0x25,0x22,0x25,0x26,0x25, | ||
62 | 0x04,0x26,0x26,0x04,0x25,0x28,0x24,0x28,0x25,0x26,0x24,0x25,0x04,0x24,0x26,0x26, | ||
63 | 0x28,0x25,0x23,0x26,0x28,0x28,0x25,0x04,0x28,0x23,0x26,0x28,0x04,0x24,0x25,0x26, | ||
64 | 0x26,0x25,0x28,0x28,0x28,0x25,0x24,0x25,0x28,0x26,0x26,0x04,0x24,0x26,0x25,0x29, | ||
65 | 0x22,0x22,0x25,0x26,0x25,0x22,0x26,0x21,0x25,0x25,0x22,0x22,0x23,0x25,0x24,0x24, | ||
66 | 0x21,0x23,0x22,0x24,0x21,0x22,0x26,0x22,0x22,0x22,0x24,0x24,0x22,0x04,0x28,0x25, | ||
67 | 0x25,0x23,0x28,0x04,0x23,0x25,0x25,0x25,0x25,0x23,0x23,0x22,0x22,0x04,0x25,0x25, | ||
68 | 0x25,0x22,0x22,0x23,0x23,0x23,0x22,0x24,0x24,0x25,0x25,0x25,0x23,0x24,0x25,0x23, | ||
69 | 0x22,0x23,0x24,0x24,0x23,0x22,0x25,0x24,0x26,0x25,0x25,0x28,0x26,0x25,0x25,0x22, | ||
70 | 0x26,0x25,0x25,0x26,0x25,0x25,0x04,0x25,0x04,0x26,0x29,0x29,0x29,0x28,0x04,0x28, | ||
71 | 0x25,0x26,0x26,0x28,0x25,0x23,0x26,0x04,0x28,0x28,0x28,0x28,0x25,0x25,0x23,0x23, | ||
72 | 0x25,0x25,0x26,0x25,0x23,0x24,0x25,0x04,0x25,0x26,0x26,0x04,0x04,0x25,0x25,0x25, | ||
73 | 0x27,0x28,0x22,0x24,0x04,0x28,0x04,0x26,0x26,0x28,0x23,0x22,0x23,0x24,0x28,0x25, | ||
74 | 0x24,0x24,0x25,0x28,0x24,0x28,0x24,0x22,0x26,0x28,0x28,0x04,0x26,0x22,0x24,0x25, | ||
75 | 0x25,0x25,0x28,0x25,0x26,0x25,0x26,0x26,0x25,0x24,0x26,0x22,0x25,0x26,0x26,0x26, | ||
76 | 0x25,0x04,0x25,0x25,0x22,0x24,0x25,0x04,0x26,0x24,0x28,0x26,0x25,0x25,0x28,0x04, | ||
77 | 0x28,0x26,0x29,0x28,0x29,0x28,0x27,0x25,0x26,0x25,0x22,0x22,0x04,0x24,0x26,0x23, | ||
78 | 0x20,0x20,0x20,0x22,0x20,0x20,0x22,0x25,0x25,0x26,0x28,0x25,0x25,0x28,0x24,0x25, | ||
79 | 0x04,0x28,0x28,0x04,0x26,0x04,0x28,0x25,0x04,0x04,0x04,0x25,0x28,0x25,0x24,0x04, | ||
80 | 0x26,0x26,0x26,0x26,0x28,0x28,0x28,0x25,0x28,0x25,0x25,0x26,0x26,0x04,0x26,0x25, | ||
81 | 0x23,0x25,0x04,0x22,0x22,0x22,0x24,0x26,0x24,0x26,0x26,0x25,0x25,0x04,0x28,0x24, | ||
82 | 0x24,0x28,0x26,0x28,0x25,0x22,0x26,0x24,0x22,0x28,0x24,0x04,0x22,0x24,0x26,0x24, | ||
83 | 0x26,0x24,0x26,0x26,0x26,0x25,0x25,0x26,0x04,0x28,0x26,0x28,0x26,0x26,0x28,0x28, | ||
84 | 0x26,0x26,0x24,0x25,0x28,0x28,0x26,0x28,0x28,0x26,0x25,0x24,0x26,0x24,0x25,0x29, | ||
85 | 0x21,0x25,0x22,0x24,0x22,0x22,0x21,0x25,0x24,0x23,0x22,0x25,0x25,0x21,0x24,0x23, | ||
86 | 0x21,0x28,0x24,0x24,0x22,0x23,0x23,0x04,0x24,0x25,0x25,0x26,0x24,0x28,0x26,0x25, | ||
87 | 0x28,0x28,0x04,0x26,0x25,0x22,0x23,0x24,0x24,0x23,0x25,0x23,0x25,0x25,0x26,0x25, | ||
88 | 0x22,0x22,0x28,0x23,0x23,0x26,0x22,0x25,0x25,0x23,0x22,0x23,0x23,0x25,0x24,0x04, | ||
89 | 0x23,0x22,0x26,0x23,0x22,0x23,0x23,0x25,0x22,0x24,0x22,0x21,0x04,0x28,0x25,0x26, | ||
90 | 0x28,0x25,0x28,0x26,0x04,0x29,0x04,0x26,0x04,0x24,0x27,0x28,0x04,0x23,0x04,0x26, | ||
91 | 0x04,0x23,0x26,0x24,0x28,0x24,0x24,0x26,0x26,0x28,0x28,0x26,0x28,0x04,0x04,0x25, | ||
92 | 0x26,0x04,0x26,0x25,0x28,0x24,0x28,0x25,0x26,0x29,0x29,0x29,0x29,0x24,0x29,0x29, | ||
93 | 0x26,0x25,0x23,0x29,0x28,0x25,0x27,0x26,0x04,0x22,0x25,0x26,0x28,0x24,0x24,0x26, | ||
94 | 0x26,0x04,0x26,0x24,0x26,0x24,0x28,0x26,0x23,0x26,0x23,0x28,0x28,0x26,0x28,0x26, | ||
95 | 0x26,0x25,0x28,0x25,0x28,0x25,0x28,0x25,0x25,0x28,0x28,0x28,0x26,0x26,0x26,0x28, | ||
96 | 0x28,0x04,0x25,0x27,0x26,0x26,0x25,0x28,0x28,0x24,0x28,0x28,0x28,0x29,0x2A,0x2A, | ||
97 | 0x26,0x28,0x28,0x27,0x04,0x04,0x25,0x24,0x22,0x23,0x23,0x20,0x22,0x24,0x22,0x24, | ||
98 | 0x21,0x22,0x22,0x23,0x26,0x24,0x25,0x25,0x26,0x24,0x26,0x25,0x24,0x26,0x04,0x28, | ||
99 | 0x24,0x28,0x26,0x26,0x24,0x28,0x26,0x26,0x04,0x04,0x24,0x24,0x24,0x25,0x26,0x24, | ||
100 | 0x26,0x25,0x28,0x24,0x25,0x24,0x26,0x28,0x26,0x25,0x26,0x04,0x25,0x25,0x23,0x25, | ||
101 | 0x25,0x23,0x23,0x26,0x04,0x25,0x26,0x28,0x28,0x23,0x28,0x26,0x25,0x26,0x26,0x28, | ||
102 | 0x28,0x25,0x25,0x26,0x28,0x25,0x28,0x24,0x26,0x24,0x28,0x24,0x28,0x04,0x28,0x04, | ||
103 | 0x04,0x28,0x26,0x26,0x04,0x04,0x25,0x28,0x04,0x04,0x28,0x28,0x25,0x28,0x26,0x04, | ||
104 | 0x24,0x04,0x04,0x26,0x04,0x24,0x28,0x28,0x04,0x04,0x26,0x25,0x28,0x28,0x04,0x29, | ||
105 | 0x22,0x22,0x22,0x22,0x23,0x22,0x22,0x28,0x25,0x21,0x25,0x23,0x22,0x22,0x04,0x25, | ||
106 | 0x23,0x22,0x24,0x24,0x26,0x26,0x26,0x04,0x24,0x26,0x26,0x26,0x26,0x25,0x25,0x24, | ||
107 | 0x04,0x25,0x24,0x28,0x26,0x25,0x26,0x23,0x22,0x04,0x23,0x22,0x25,0x04,0x04,0x23, | ||
108 | 0x22,0x23,0x23,0x23,0x26,0x04,0x24,0x25,0x23,0x23,0x23,0x25,0x23,0x25,0x23,0x23, | ||
109 | 0x23,0x22,0x25,0x22,0x23,0x22,0x21,0x23,0x23,0x22,0x25,0x23,0x25,0x25,0x26,0x27, | ||
110 | 0x26,0x29,0x28,0x28,0x24,0x23,0x26,0x26,0x23,0x23,0x25,0x25,0x24,0x24,0x25,0x23, | ||
111 | 0x22,0x25,0x23,0x23,0x23,0x22,0x28,0x23,0x26,0x24,0x24,0x26,0x29,0x28,0x28,0x28, | ||
112 | 0x25,0x24,0x28,0x04,0x28,0x28,0x29,0x04,0x25,0x26,0x04,0x27,0x27,0x25,0x27,0x24, | ||
113 | 0x24,0x28,0x27,0x25,0x28,0x29,0x25,0x29,0x26,0x25,0x28,0x28,0x28,0x28,0x28,0x28, | ||
114 | 0x25,0x26,0x28,0x25,0x28,0x26,0x22,0x28,0x28,0x26,0x25,0x26,0x28,0x26,0x24,0x24, | ||
115 | 0x04,0x25,0x26,0x26,0x25,0x26,0x28,0x04,0x04,0x25,0x22,0x28,0x25,0x28,0x25,0x24, | ||
116 | 0x26,0x27,0x28,0x25,0x04,0x04,0x2A,0x26,0x28,0x26,0x2A,0x28,0x28,0x28,0x25,0x26, | ||
117 | 0x28,0x24,0x28,0x25,0x23,0x24,0x24,0x22,0x25,0x24,0x22,0x20,0x20,0x24,0x23,0x21, | ||
118 | 0x25,0x25,0x24,0x04,0x25,0x28,0x25,0x04,0x28,0x26,0x04,0x26,0x23,0x28,0x28,0x24, | ||
119 | 0x24,0x26,0x25,0x26,0x26,0x25,0x25,0x25,0x25,0x26,0x24,0x24,0x25,0x24,0x28,0x25, | ||
120 | 0x25,0x26,0x28,0x23,0x26,0x28,0x22,0x04,0x26,0x23,0x25,0x24,0x28,0x25,0x21,0x24, | ||
121 | 0x22,0x25,0x26,0x28,0x25,0x24,0x28,0x26,0x28,0x24,0x26,0x25,0x23,0x25,0x04,0x25, | ||
122 | 0x04,0x26,0x04,0x28,0x26,0x28,0x28,0x25,0x28,0x24,0x26,0x28,0x27,0x27,0x25,0x28, | ||
123 | 0x26,0x28,0x25,0x24,0x25,0x28,0x25,0x28,0x28,0x28,0x04,0x25,0x28,0x28,0x29,0x28, | ||
124 | 0x04,0x29,0x28,0x29,0x28,0x28,0x04,0x28,0x26,0x29,0x29,0x28,0x29,0x29,0x28,0x29, | ||
125 | 0x25,0x25,0x24,0x25,0x04,0x28,0x24,0x24,0x24,0x26,0x21,0x21,0x25,0x21,0x24,0x22, | ||
126 | 0x24,0x25,0x25,0x28,0x26,0x04,0x23,0x28,0x28,0x26,0x25,0x28,0x24,0x24,0x04,0x28, | ||
127 | 0x04,0x04,0x26,0x28,0x29,0x28,0x24,0x23,0x28,0x04,0x28,0x25,0x26,0x26,0x26,0x24, | ||
128 | 0x28,0x26,0x23,0x25,0x26,0x04,0x04,0x24,0x22,0x25,0x25,0x22,0x24,0x23,0x04,0x22, | ||
129 | 0x25,0x24,0x26,0x26,0x22,0x23,0x23,0x21,0x04,0x25,0x23,0x24,0x23,0x26,0x25,0x28, | ||
130 | 0x24,0x22,0x25,0x28,0x22,0x24,0x23,0x25,0x23,0x25,0x26,0x25,0x23,0x04,0x22,0x28, | ||
131 | 0x23,0x25,0x23,0x25,0x25,0x25,0x25,0x23,0x24,0x25,0x24,0x28,0x23,0x28,0x04,0x28, | ||
132 | 0x28,0x28,0x04,0x26,0x25,0x24,0x26,0x26,0x25,0x28,0x28,0x25,0x24,0x24,0x04,0x24, | ||
133 | 0x25,0x23,0x24,0x21,0x24,0x25,0x26,0x04,0x26,0x26,0x25,0x04,0x24,0x28,0x04,0x25, | ||
134 | 0x25,0x23,0x28,0x26,0x26,0x04,0x26,0x04,0x26,0x28,0x26,0x24,0x04,0x28,0x25,0x24, | ||
135 | 0x22,0x26,0x04,0x26,0x24,0x26,0x04,0x26,0x28,0x24,0x04,0x24,0x04,0x25,0x28,0x28, | ||
136 | 0x29,0x24,0x29,0x28,0x25,0x29,0x28,0x28,0x28,0x28,0x25,0x28,0x28,0x28,0x27,0x26, | ||
137 | 0x26,0x24,0x25,0x23,0x26,0x22,0x20,0x22,0x22,0x26,0x24,0x22,0x25,0x23,0x22,0x28, | ||
138 | 0x23,0x28,0x25,0x25,0x26,0x28,0x26,0x25,0x26,0x25,0x04,0x26,0x25,0x28,0x25,0x25, | ||
139 | 0x04,0x04,0x26,0x26,0x04,0x25,0x28,0x25,0x25,0x04,0x04,0x25,0x26,0x25,0x04,0x26, | ||
140 | 0x25,0x25,0x26,0x26,0x26,0x04,0x26,0x26,0x26,0x25,0x26,0x25,0x26,0x20,0x22,0x24, | ||
141 | 0x04,0x26,0x26,0x28,0x28,0x28,0x26,0x04,0x26,0x28,0x26,0x26,0x24,0x04,0x28,0x24, | ||
142 | 0x25,0x26,0x26,0x24,0x25,0x26,0x24,0x25,0x26,0x26,0x04,0x04,0x28,0x28,0x28,0x28, | ||
143 | 0x25,0x26,0x28,0x26,0x25,0x25,0x28,0x04,0x26,0x28,0x28,0x24,0x25,0x28,0x04,0x25, | ||
144 | 0x2A,0x28,0x2A,0x28,0x2A,0x29,0x2A,0x28,0x29,0x04,0x29,0x28,0x28,0x28,0x25,0x29, | ||
145 | 0x22,0x21,0x21,0x24,0x24,0x21,0x21,0x24,0x23,0x20,0x24,0x20,0x20,0x22,0x22,0x24, | ||
146 | 0x24,0x24,0x25,0x25,0x04,0x25,0x26,0x28,0x26,0x26,0x25,0x26,0x28,0x28,0x22,0x04, | ||
147 | 0x28,0x27,0x04,0x28,0x24,0x28,0x25,0x29,0x28,0x26,0x28,0x22,0x25,0x23,0x25,0x22, | ||
148 | 0x23,0x25,0x25,0x26,0x26,0x24,0x26,0x25,0x28,0x28,0x25,0x26,0x28,0x25,0x24,0x04, | ||
149 | 0x24,0x25,0x26,0x26,0x25,0x28,0x25,0x25,0x23,0x26,0x26,0x25,0x24,0x28,0x28,0x26, | ||
150 | 0x26,0x25,0x22,0x23,0x22,0x23,0x23,0x24,0x23,0x22,0x24,0x26,0x04,0x26,0x24,0x21, | ||
151 | 0x25,0x26,0x24,0x23,0x24,0x23,0x23,0x22,0x22,0x04,0x26,0x25,0x24,0x26,0x26,0x28, | ||
152 | 0x24,0x26,0x25,0x28,0x24,0x26,0x28,0x28,0x25,0x25,0x25,0x28,0x24,0x23,0x04,0x04, | ||
153 | 0x22,0x25,0x04,0x24,0x25,0x25,0x25,0x23,0x25,0x24,0x25,0x23,0x24,0x25,0x25,0x22, | ||
154 | 0x04,0x04,0x24,0x04,0x24,0x25,0x24,0x24,0x24,0x24,0x24,0x25,0x25,0x28,0x28,0x25, | ||
155 | 0x24,0x26,0x28,0x24,0x25,0x23,0x04,0x22,0x24,0x29,0x26,0x26,0x26,0x04,0x28,0x28, | ||
156 | 0x26,0x29,0x28,0x24,0x25,0x25,0x25,0x28,0x28,0x04,0x28,0x04,0x28,0x25,0x25,0x25, | ||
157 | 0x24,0x22,0x24,0x25,0x23,0x20,0x23,0x25,0x04,0x25,0x24,0x25,0x23,0x23,0x04,0x25, | ||
158 | 0x24,0x23,0x24,0x26,0x26,0x26,0x23,0x25,0x24,0x28,0x25,0x04,0x04,0x26,0x04,0x25, | ||
159 | 0x26,0x26,0x04,0x28,0x26,0x26,0x25,0x25,0x26,0x25,0x25,0x26,0x04,0x24,0x26,0x25, | ||
160 | 0x26,0x28,0x23,0x28,0x28,0x26,0x26,0x04,0x04,0x25,0x25,0x22,0x20,0x22,0x25,0x24, | ||
161 | 0x26,0x26,0x04,0x26,0x28,0x25,0x04,0x28,0x28,0x04,0x26,0x25,0x26,0x28,0x04,0x26, | ||
162 | 0x28,0x25,0x26,0x24,0x26,0x24,0x25,0x25,0x28,0x25,0x26,0x25,0x24,0x24,0x04,0x28, | ||
163 | 0x28,0x25,0x28,0x28,0x28,0x04,0x28,0x28,0x25,0x28,0x04,0x26,0x24,0x29,0x29,0x28, | ||
164 | 0x29,0x28,0x28,0x26,0x29,0x28,0x29,0x28,0x28,0x25,0x23,0x25,0x27,0x24,0x26,0x29, | ||
165 | 0x20,0x26,0x22,0x20,0x20,0x20,0x20,0x20,0x22,0x23,0x25,0x24,0x22,0x22,0x26,0x04, | ||
166 | 0x26,0x20,0x04,0x26,0x25,0x24,0x22,0x04,0x28,0x26,0x26,0x28,0x26,0x28,0x28,0x25, | ||
167 | 0x24,0x28,0x26,0x26,0x25,0x25,0x26,0x28,0x23,0x27,0x26,0x28,0x28,0x04,0x04,0x25, | ||
168 | 0x22,0x23,0x25,0x24,0x25,0x25,0x25,0x25,0x26,0x25,0x24,0x27,0x25,0x28,0x25,0x24, | ||
169 | 0x04,0x26,0x25,0x23,0x28,0x28,0x28,0x28,0x26,0x29,0x26,0x28,0x27,0x24,0x26,0x25, | ||
170 | 0x28,0x04,0x26,0x25,0x22,0x26,0x25,0x22,0x23,0x24,0x23,0x23,0x22,0x22,0x23,0x23, | ||
171 | 0x25,0x24,0x25,0x22,0x23,0x26,0x04,0x24,0x26,0x24,0x25,0x26,0x28,0x23,0x24,0x26, | ||
172 | 0x24,0x25,0x28,0x26,0x23,0x28,0x24,0x24,0x22,0x23,0x22,0x25,0x25,0x25,0x26,0x25, | ||
173 | 0x25,0x24,0x25,0x23,0x22,0x24,0x24,0x28,0x24,0x25,0x23,0x24,0x25,0x25,0x24,0x26, | ||
174 | 0x25,0x25,0x28,0x25,0x04,0x24,0x25,0x25,0x24,0x26,0x24,0x24,0x28,0x28,0x29,0x28, | ||
175 | 0x28,0x28,0x29,0x26,0x29,0x28,0x29,0x29,0x29,0x26,0x25,0x27,0x25,0x28,0x04,0x28, | ||
176 | 0x27,0x28,0x26,0x28,0x26,0x26,0x29,0x28,0x26,0x28,0x25,0x25,0x28,0x24,0x20,0x23, | ||
177 | 0x20,0x22,0x22,0x23,0x25,0x22,0x23,0x24,0x22,0x24,0x23,0x23,0x26,0x24,0x28,0x23, | ||
178 | 0x28,0x04,0x24,0x26,0x28,0x26,0x24,0x26,0x26,0x04,0x04,0x04,0x25,0x25,0x24,0x26, | ||
179 | 0x25,0x26,0x26,0x25,0x28,0x25,0x25,0x26,0x25,0x24,0x28,0x23,0x28,0x28,0x04,0x26, | ||
180 | 0x04,0x24,0x25,0x26,0x04,0x25,0x24,0x24,0x24,0x24,0x24,0x24,0x26,0x28,0x25,0x23, | ||
181 | 0x26,0x25,0x25,0x28,0x22,0x25,0x28,0x24,0x24,0x25,0x28,0x25,0x27,0x28,0x26,0x26, | ||
182 | 0x27,0x28,0x28,0x04,0x27,0x25,0x25,0x28,0x28,0x28,0x28,0x26,0x29,0x26,0x25,0x28, | ||
183 | 0x24,0x25,0x24,0x28,0x25,0x24,0x25,0x24,0x27,0x24,0x28,0x26,0x26,0x28,0x28,0x26, | ||
184 | 0x28,0x24,0x28,0x04,0x25,0x28,0x23,0x28,0x24,0x04,0x28,0x28,0x04,0x26,0x26,0x29, | ||
185 | 0x21,0x22,0x25,0x24,0x23,0x22,0x25,0x25,0x21,0x25,0x26,0x26,0x04,0x28,0x28,0x25, | ||
186 | 0x04,0x21,0x20,0x20,0x25,0x22,0x25,0x25,0x24,0x28,0x25,0x25,0x24,0x04,0x04,0x24, | ||
187 | 0x23,0x28,0x25,0x04,0x25,0x25,0x23,0x23,0x04,0x25,0x23,0x23,0x25,0x29,0x28,0x26, | ||
188 | 0x24,0x28,0x25,0x25,0x28,0x04,0x25,0x26,0x28,0x27,0x25,0x28,0x24,0x28,0x28,0x04, | ||
189 | 0x04,0x28,0x28,0x04,0x26,0x28,0x28,0x27,0x24,0x28,0x27,0x28,0x26,0x26,0x28,0x28, | ||
190 | 0x28,0x25,0x28,0x25,0x25,0x25,0x25,0x26,0x24,0x25,0x22,0x23,0x22,0x25,0x23,0x23, | ||
191 | 0x25,0x24,0x23,0x25,0x26,0x26,0x26,0x26,0x24,0x24,0x28,0x26,0x26,0x28,0x24,0x26, | ||
192 | 0x28,0x28,0x25,0x23,0x24,0x26,0x24,0x22,0x23,0x24,0x04,0x23,0x22,0x23,0x23,0x25, | ||
193 | 0x24,0x23,0x22,0x22,0x23,0x25,0x28,0x25,0x23,0x04,0x26,0x23,0x25,0x26,0x28,0x23, | ||
194 | 0x25,0x22,0x25,0x22,0x24,0x24,0x22,0x25,0x24,0x22,0x22,0x24,0x23,0x28,0x04,0x24, | ||
195 | 0x26,0x24,0x24,0x23,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x25,0x25,0x04,0x28,0x27, | ||
196 | 0x28,0x28,0x04,0x28,0x28,0x26,0x28,0x26,0x28,0x04,0x26,0x24,0x20,0x22,0x22,0x22, | ||
197 | 0x22,0x25,0x23,0x25,0x23,0x04,0x24,0x25,0x24,0x25,0x25,0x04,0x25,0x22,0x26,0x28, | ||
198 | 0x26,0x26,0x04,0x24,0x26,0x24,0x25,0x26,0x22,0x25,0x26,0x26,0x04,0x28,0x23,0x28, | ||
199 | 0x26,0x25,0x28,0x23,0x26,0x25,0x28,0x04,0x28,0x24,0x28,0x24,0x26,0x28,0x25,0x25, | ||
200 | 0x25,0x25,0x23,0x26,0x25,0x23,0x20,0x24,0x24,0x23,0x24,0x25,0x26,0x25,0x28,0x26, | ||
201 | 0x24,0x26,0x26,0x26,0x26,0x26,0x26,0x28,0x26,0x28,0x26,0x04,0x04,0x29,0x25,0x29, | ||
202 | 0x26,0x28,0x28,0x28,0x28,0x29,0x04,0x29,0x28,0x26,0x26,0x28,0x04,0x29,0x28,0x28, | ||
203 | 0x24,0x04,0x25,0x28,0x28,0x25,0x04,0x04,0x28,0x04,0x28,0x28,0x26,0x04,0x25,0x28, | ||
204 | 0x24,0x04,0x04,0x26,0x26,0x23,0x24,0x04,0x26,0x28,0x28,0x25,0x26,0x04,0x25,0x29, | ||
205 | 0x26,0x28,0x28,0x26,0x25,0x26,0x26,0x04,0x26,0x26,0x26,0x26,0x26,0x24,0x24,0x25, | ||
206 | 0x22,0x25,0x22,0x26,0x04,0x24,0x28,0x04,0x28,0x28,0x04,0x04,0x26,0x23,0x24,0x28, | ||
207 | 0x25,0x25,0x23,0x04,0x26,0x28,0x25,0x25,0x26,0x25,0x22,0x25,0x04,0x26,0x26,0x27, | ||
208 | 0x28,0x25,0x28,0x25,0x25,0x25,0x28,0x26,0x24,0x25,0x04,0x28,0x28,0x23,0x24,0x22, | ||
209 | 0x26,0x26,0x04,0x25,0x22,0x28,0x28,0x23,0x26,0x26,0x25,0x04,0x28,0x27,0x04,0x25, | ||
210 | 0x26,0x24,0x26,0x29,0x28,0x28,0x26,0x26,0x27,0x24,0x26,0x04,0x24,0x22,0x26,0x25, | ||
211 | 0x22,0x25,0x24,0x04,0x24,0x28,0x25,0x26,0x26,0x26,0x24,0x23,0x25,0x04,0x25,0x24, | ||
212 | 0x25,0x25,0x22,0x22,0x28,0x25,0x25,0x22,0x25,0x24,0x24,0x26,0x25,0x25,0x23,0x23, | ||
213 | 0x25,0x04,0x25,0x26,0x22,0x24,0x24,0x25,0x25,0x24,0x23,0x04,0x25,0x24,0x25,0x04, | ||
214 | 0x26,0x04,0x26,0x28,0x28,0x24,0x26,0x26,0x25,0x28,0x24,0x25,0x26,0x26,0x22,0x24, | ||
215 | 0x25,0x28,0x26,0x28,0x28,0x28,0x28,0x04,0x28,0x24,0x04,0x04,0x28,0x29,0x28,0x04, | ||
216 | 0x28,0x28,0x25,0x25,0x26,0x26,0x23,0x25,0x21,0x24,0x22,0x20,0x25,0x24,0x28,0x23, | ||
217 | 0x25,0x24,0x23,0x24,0x22,0x25,0x25,0x28,0x26,0x23,0x25,0x22,0x26,0x25,0x25,0x04, | ||
218 | 0x26,0x26,0x24,0x25,0x25,0x26,0x24,0x28,0x28,0x04,0x25,0x26,0x25,0x24,0x26,0x25, | ||
219 | 0x26,0x26,0x26,0x24,0x28,0x26,0x24,0x04,0x28,0x04,0x28,0x28,0x28,0x25,0x25,0x04, | ||
220 | 0x25,0x24,0x23,0x22,0x20,0x24,0x21,0x28,0x25,0x28,0x25,0x28,0x25,0x26,0x28,0x26, | ||
221 | 0x28,0x04,0x26,0x25,0x04,0x28,0x25,0x24,0x25,0x28,0x28,0x29,0x28,0x28,0x26,0x28, | ||
222 | 0x25,0x28,0x25,0x26,0x26,0x29,0x29,0x25,0x28,0x25,0x04,0x24,0x26,0x28,0x29,0x28, | ||
223 | 0x26,0x25,0x27,0x24,0x23,0x25,0x28,0x25,0x26,0x28,0x24,0x25,0x25,0x04,0x28,0x04, | ||
224 | 0x25,0x24,0x26,0x04,0x26,0x26,0x26,0x26,0x22,0x25,0x28,0x04,0x23,0x28,0x28,0x29, | ||
225 | 0x24,0x28,0x24,0x28,0x25,0x04,0x24,0x26,0x24,0x23,0x04,0x26,0x22,0x28,0x24,0x28, | ||
226 | 0x04,0x25,0x26,0x25,0x28,0x28,0x28,0x24,0x20,0x22,0x28,0x25,0x23,0x23,0x28,0x24, | ||
227 | 0x22,0x25,0x22,0x04,0x22,0x21,0x26,0x25,0x23,0x21,0x22,0x22,0x25,0x04,0x28,0x25, | ||
228 | 0x28,0x22,0x28,0x28,0x04,0x04,0x24,0x22,0x25,0x25,0x22,0x23,0x25,0x22,0x21,0x23, | ||
229 | 0x22,0x22,0x28,0x23,0x23,0x24,0x04,0x28,0x28,0x22,0x04,0x28,0x25,0x28,0x28,0x04, | ||
230 | 0x26,0x26,0x28,0x28,0x24,0x04,0x22,0x25,0x28,0x28,0x28,0x26,0x25,0x28,0x28,0x26, | ||
231 | 0x25,0x04,0x28,0x26,0x25,0x26,0x28,0x25,0x22,0x26,0x23,0x23,0x23,0x21,0x25,0x26, | ||
232 | 0x25,0x26,0x25,0x28,0x25,0x04,0x26,0x25,0x26,0x22,0x25,0x24,0x24,0x25,0x25,0x28, | ||
233 | 0x24,0x22,0x26,0x24,0x04,0x26,0x24,0x25,0x26,0x26,0x25,0x25,0x04,0x04,0x28,0x28, | ||
234 | 0x24,0x24,0x28,0x25,0x23,0x04,0x24,0x22,0x04,0x26,0x26,0x28,0x28,0x26,0x26,0x27, | ||
235 | 0x24,0x28,0x25,0x26,0x25,0x29,0x28,0x25,0x28,0x04,0x28,0x28,0x25,0x25,0x27,0x28, | ||
236 | 0x26,0x28,0x24,0x23,0x24,0x23,0x25,0x24,0x20,0x22,0x23,0x25,0x23,0x28,0x26,0x04, | ||
237 | 0x23,0x24,0x25,0x25,0x23,0x26,0x26,0x25,0x25,0x04,0x24,0x28,0x04,0x25,0x28,0x04, | ||
238 | 0x24,0x24,0x25,0x28,0x26,0x28,0x04,0x25,0x25,0x28,0x04,0x26,0x28,0x28,0x28,0x28, | ||
239 | 0x04,0x25,0x04,0x26,0x04,0x26,0x24,0x04,0x28,0x22,0x26,0x25,0x25,0x26,0x25,0x26, | ||
240 | 0x25,0x25,0x22,0x25,0x23,0x23,0x28,0x25,0x25,0x24,0x22,0x28,0x24,0x26,0x25,0x24, | ||
241 | 0x25,0x04,0x25,0x04,0x26,0x25,0x28,0x28,0x04,0x28,0x29,0x04,0x28,0x28,0x27,0x24, | ||
242 | 0x28,0x27,0x25,0x27,0x25,0x28,0x28,0x28,0x26,0x28,0x04,0x28,0x04,0x22,0x26,0x26, | ||
243 | 0x04,0x28,0x28,0x26,0x04,0x28,0x28,0x25,0x28,0x24,0x22,0x25,0x28,0x28,0x23,0x28, | ||
244 | 0x04,0x26,0x28,0x28,0x26,0x04,0x26,0x24,0x24,0x26,0x25,0x28,0x24,0x23,0x24,0x29, | ||
245 | 0x28,0x28,0x28,0x28,0x28,0x26,0x27,0x28,0x26,0x24,0x26,0x25,0x23,0x28,0x04,0x28, | ||
246 | 0x28,0x27,0x24,0x25,0x24,0x26,0x25,0x24,0x23,0x25,0x20,0x20,0x20,0x25,0x20,0x04, | ||
247 | 0x04,0x28,0x28,0x04,0x23,0x26,0x26,0x25,0x25,0x23,0x22,0x20,0x20,0x20,0x20,0x20, | ||
248 | 0x22,0x23,0x26,0x28,0x23,0x24,0x04,0x25,0x23,0x28,0x23,0x26,0x25,0x25,0x25,0x28, | ||
249 | 0x28,0x28,0x24,0x25,0x28,0x04,0x04,0x26,0x25,0x26,0x23,0x24,0x28,0x25,0x26,0x24, | ||
250 | 0x26,0x25,0x25,0x24,0x25,0x22,0x28,0x26,0x25,0x22,0x26,0x28,0x25,0x25,0x28,0x25, | ||
251 | 0x28,0x24,0x26,0x25,0x26,0x26,0x28,0x25,0x24,0x04,0x26,0x26,0x04,0x26,0x04,0x28, | ||
252 | 0x28,0x04,0x04,0x24,0x24,0x25,0x04,0x04,0x24,0x28,0x26,0x26,0x28,0x27,0x28,0x25, | ||
253 | 0x25,0x24,0x04,0x04,0x27,0x26,0x24,0x27,0x28,0x24,0x25,0x26,0x28,0x26,0x25,0x25, | ||
254 | 0x25,0x28,0x04,0x28,0x25,0x28,0x25,0x25,0x28,0x28,0x25,0x28,0x28,0x25,0x23,0x29, | ||
255 | 0x04,0x28,0x28,0x28,0x28,0x25,0x26,0x24,0x25,0x25,0x28,0x25,0x26,0x26,0x25,0x21, | ||
256 | 0x25,0x23,0x22,0x21,0x25,0x24,0x20,0x25,0x28,0x23,0x23,0x25,0x22,0x25,0x23,0x22, | ||
257 | 0x26,0x28,0x24,0x26,0x04,0x26,0x25,0x28,0x28,0x23,0x26,0x25,0x28,0x25,0x25,0x04, | ||
258 | 0x28,0x04,0x25,0x28,0x26,0x28,0x28,0x22,0x25,0x28,0x26,0x04,0x28,0x25,0x25,0x04, | ||
259 | 0x26,0x25,0x28,0x28,0x26,0x25,0x04,0x04,0x26,0x28,0x26,0x26,0x26,0x26,0x24,0x25, | ||
260 | 0x25,0x23,0x25,0x25,0x25,0x23,0x28,0x24,0x22,0x25,0x28,0x27,0x24,0x28,0x26,0x28, | ||
261 | 0x25,0x26,0x28,0x25,0x28,0x28,0x28,0x28,0x28,0x29,0x25,0x25,0x28,0x25,0x27,0x04, | ||
262 | 0x28,0x28,0x28,0x25,0x26,0x25,0x25,0x24,0x24,0x24,0x25,0x24,0x26,0x26,0x24,0x26, | ||
263 | 0x24,0x28,0x25,0x28,0x04,0x28,0x24,0x04,0x26,0x26,0x28,0x26,0x28,0x25,0x22,0x26, | ||
264 | 0x26,0x04,0x25,0x28,0x28,0x26,0x04,0x04,0x24,0x24,0x23,0x23,0x26,0x25,0x20,0x29, | ||
265 | 0x29,0x28,0x28,0x25,0x26,0x24,0x29,0x26,0x25,0x25,0x27,0x26,0x28,0x04,0x24,0x24, | ||
266 | 0x25,0x26,0x04,0x26,0x23,0x25,0x22,0x04,0x23,0x24,0x26,0x24,0x22,0x25,0x24,0x25, | ||
267 | 0x24,0x25,0x25,0x04,0x23,0x04,0x25,0x25,0x04,0x28,0x28,0x22,0x28,0x23,0x23,0x25, | ||
268 | 0x23,0x25,0x23,0x23,0x20,0x23,0x04,0x26,0x04,0x27,0x04,0x28,0x26,0x26,0x24,0x04, | ||
269 | 0x04,0x25,0x26,0x25,0x28,0x25,0x28,0x25,0x25,0x28,0x28,0x04,0x25,0x22,0x28,0x23, | ||
270 | 0x25,0x28,0x24,0x22,0x25,0x22,0x04,0x26,0x23,0x26,0x28,0x28,0x25,0x25,0x24,0x23, | ||
271 | 0x26,0x25,0x26,0x28,0x25,0x23,0x28,0x04,0x04,0x24,0x26,0x26,0x04,0x25,0x28,0x26, | ||
272 | 0x26,0x25,0x28,0x29,0x29,0x24,0x28,0x04,0x04,0x23,0x25,0x29,0x29,0x04,0x04,0x29, | ||
273 | 0x25,0x29,0x26,0x29,0x25,0x28,0x25,0x28,0x04,0x22,0x26,0x29,0x29,0x28,0x29,0x04, | ||
274 | 0x04,0x25,0x29,0x28,0x29,0x28,0x25,0x28,0x28,0x28,0x29,0x28,0x28,0x04,0x28,0x28, | ||
275 | 0x26,0x28,0x28,0x04,0x25,0x25,0x22,0x25,0x25,0x22,0x24,0x24,0x22,0x26,0x25,0x23, | ||
276 | 0x21,0x22,0x24,0x21,0x20,0x20,0x24,0x22,0x24,0x28,0x25,0x24,0x24,0x22,0x23,0x28, | ||
277 | 0x22,0x28,0x28,0x25,0x04,0x26,0x26,0x25,0x04,0x26,0x28,0x24,0x28,0x28,0x28,0x28, | ||
278 | 0x26,0x04,0x04,0x25,0x25,0x26,0x24,0x28,0x26,0x26,0x28,0x24,0x28,0x26,0x24,0x24, | ||
279 | 0x28,0x04,0x28,0x22,0x26,0x04,0x26,0x24,0x26,0x24,0x26,0x26,0x21,0x25,0x04,0x26, | ||
280 | 0x23,0x28,0x28,0x28,0x28,0x24,0x28,0x28,0x29,0x25,0x25,0x29,0x28,0x29,0x28,0x28, | ||
281 | 0x28,0x29,0x24,0x29,0x23,0x28,0x25,0x26,0x28,0x28,0x28,0x04,0x26,0x26,0x26,0x24, | ||
282 | 0x04,0x25,0x27,0x25,0x25,0x25,0x28,0x25,0x25,0x24,0x04,0x26,0x25,0x26,0x26,0x28, | ||
283 | 0x28,0x28,0x22,0x28,0x28,0x28,0x26,0x24,0x26,0x28,0x04,0x26,0x26,0x04,0x26,0x28, | ||
284 | 0x24,0x26,0x25,0x28,0x26,0x25,0x26,0x26,0x26,0x28,0x24,0x04,0x23,0x20,0x23,0x29, | ||
285 | 0x28,0x25,0x28,0x04,0x27,0x25,0x26,0x28,0x28,0x25,0x28,0x24,0x26,0x25,0x23,0x25, | ||
286 | 0x25,0x96,0x96,0x96,0x96,0x4A,0x4A,0x4A,0x4A,0x4A,0x96,0x96,0x98,0x98,0x98,0x98, | ||
287 | 0x98,0x98,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A, | ||
288 | 0x9A,0x9A,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x26,0x25, | ||
289 | 0x24,0x25,0x25,0x28,0x25,0x04,0x26,0x22,0x22,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, | ||
290 | 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, | ||
291 | 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, | ||
292 | 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, | ||
293 | 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, | ||
294 | 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, | ||
295 | 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, | ||
296 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
297 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1E,0x1E, | ||
298 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, | ||
299 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, | ||
300 | 0x1E,0x1E,0x1E,0x1E,0x24,0x28,0x28,0x28,0x25,0x98,0x98,0x98,0x98,0x98,0x98,0x98, | ||
301 | 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, | ||
302 | 0x98,0x98,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
303 | 0x99,0x99,0x99,0x99,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A, | ||
304 | 0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x22,0x20,0x28,0x29, | ||
305 | 0x26,0x28,0x26,0x28,0x28,0x23,0x28,0x04,0x25,0x26,0x28,0x23,0x24,0x24,0x25,0x28, | ||
306 | 0x25,0x96,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
307 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
308 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2A,0x22, | ||
309 | 0x22,0x25,0x25,0x23,0x22,0x23,0x23,0x22,0x23,0x1A,0x00,0x00,0x00,0x00,0x00,0x00, | ||
310 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
311 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
312 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
313 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
314 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
315 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
316 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
317 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
318 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
319 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
320 | 0x00,0x00,0x00,0x00,0x2C,0x04,0x28,0x04,0x28,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
321 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
322 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
323 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
324 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2A,0x24,0x25,0x29, | ||
325 | 0x28,0x04,0x28,0x26,0x28,0x26,0x26,0x26,0x24,0x26,0x28,0x25,0x22,0x25,0x25,0x28, | ||
326 | 0x28,0x96,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
327 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
328 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x9F,0x2A,0x26, | ||
329 | 0x22,0x23,0x25,0x22,0x22,0x20,0x24,0x22,0x24,0x1A,0x00,0x00,0x00,0x00,0x00,0x00, | ||
330 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
331 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
332 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
333 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
334 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
335 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
336 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
337 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
338 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
339 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
340 | 0x00,0x00,0x00,0x00,0x2B,0x26,0x04,0x28,0x28,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
341 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
342 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
343 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
344 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2E,0x28,0x24,0x29, | ||
345 | 0x26,0x28,0x24,0x26,0x25,0x25,0x24,0x25,0x26,0x28,0x04,0x28,0x25,0x28,0x04,0x04, | ||
346 | 0x28,0x96,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
347 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
348 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x2C, | ||
349 | 0x28,0x23,0x25,0x24,0x04,0x23,0x25,0x25,0x23,0x1A,0x00,0x00,0x18,0x08,0x1D,0x00, | ||
350 | 0x00,0x00,0x1C,0x07,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
351 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
352 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
353 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
354 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
355 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
356 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
357 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
358 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
359 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, | ||
360 | 0x08,0x1D,0x00,0x00,0x2B,0x2C,0x24,0x26,0x24,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
361 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
362 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
363 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
364 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2A,0x29,0x28,0x29, | ||
365 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
366 | 0x00,0x96,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
367 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
368 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x00,0x00, | ||
369 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x00,0x08,0x1D,0x1F,0x00, | ||
370 | 0x00,0x1E,0x08,0x08,0x14,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
371 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
372 | 0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x1C,0x00,0x1E,0x00,0x00,0x00,0x00,0x07,0x12, | ||
373 | 0x07,0x00,0x07,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
374 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
375 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
376 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
377 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
378 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
379 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, | ||
380 | 0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
381 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
382 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x3C,0x38,0x45,0x45, | ||
383 | 0x38,0xD5,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
384 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
385 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
386 | 0x00,0x96,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
387 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
388 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x4C,0x47,0x47,0x47,0x47,0x4C,0x9F,0x9F,0x9F,0x00,0x00, | ||
389 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x00,0x1D,0x1F,0x1F,0x00, | ||
390 | 0x00,0x08,0x08,0x08,0x08,0x14,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x20, | ||
391 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
392 | 0x00,0x00,0x00,0x16,0x0F,0x1A,0x18,0x07,0x18,0x17,0x00,0x08,0x07,0x17,0x1A,0x1A, | ||
393 | 0x16,0x12,0x1A,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
394 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
395 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
396 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
397 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
398 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
399 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D, | ||
400 | 0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
401 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
402 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x28,0x34,0x33,0x33,0x33,0x33,0x33, | ||
403 | 0x33,0x34,0x3F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
404 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
405 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
406 | 0x00,0x96,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
407 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
408 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
409 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x00, | ||
410 | 0x08,0x1A,0x1A,0x1A,0x1A,0x1A,0x07,0x0F,0x07,0x00,0x00,0x00,0x00,0x28,0x08,0x1A, | ||
411 | 0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
412 | 0x00,0x00,0x13,0x1A,0x1A,0x1A,0x1A,0x1A,0x18,0x28,0x16,0x1A,0x1A,0x1A,0x1A,0x1A, | ||
413 | 0x1A,0x1A,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
414 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
415 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
416 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
417 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x12, | ||
418 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D, | ||
419 | 0x17,0x07,0x00,0x00,0x00,0x26,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
420 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
421 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
422 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x28,0x21,0x36,0x36,0x36,0x36,0x36,0x36,0x36, | ||
423 | 0x36,0x36,0xD9,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
424 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
425 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
426 | 0x00,0x96,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
427 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
428 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
429 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x32, | ||
430 | 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x0F,0x00,0x00,0x24,0x19,0x19,0x19, | ||
431 | 0x19,0x31,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
432 | 0x00,0x11,0x19,0x19,0x19,0x19,0x19,0x07,0x35,0x00,0x18,0x19,0x19,0x19,0x07,0x19, | ||
433 | 0x19,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
434 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
435 | 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
436 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
437 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x12,0x07,0x19,0x18, | ||
438 | 0x12,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1A, | ||
439 | 0x1A,0x1A,0x11,0x26,0x26,0x1A,0x17,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
440 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
441 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
442 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x29,0x23,0x23,0x23,0x23,0x2A,0xAD,0xAD,0x2A,0x23, | ||
443 | 0x23,0x27,0xAD,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
444 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
445 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
446 | 0x00,0x98,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
447 | 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x4A,0x4C,0x4E,0x9F,0x9F,0x9F, | ||
448 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
449 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x00,0x22,0x19, | ||
450 | 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x32,0x00,0x00,0x35,0x19,0x19,0x19, | ||
451 | 0x19,0x19,0x18,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
452 | 0x00,0x17,0x18,0x18,0x18,0x0F,0x28,0x2A,0x00,0x00,0x19,0x18,0x18,0x18,0x07,0x04, | ||
453 | 0x2A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
454 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
455 | 0x00,0x00,0x00,0x00,0x00,0x24,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
456 | 0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
457 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19, | ||
458 | 0x19,0x07,0x12,0x11,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x19,0x19, | ||
459 | 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x08,0x00,0x1D,0x13,0x07,0x00,0x00,0x00,0x00, | ||
460 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
461 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
462 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x29,0x25,0x25,0x25,0x28,0x9F,0x9F,0x9F,0xAE,0x27,0x25, | ||
463 | 0x27,0xAD,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
464 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
465 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
466 | 0x00,0x98,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
467 | 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x49,0x4C,0x4E,0x9F, | ||
468 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
469 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x00,0x32,0x17, | ||
470 | 0x17,0x17,0x17,0x00,0x0F,0x17,0x17,0x17,0x17,0x0C,0x00,0x1A,0x17,0x17,0x17,0x17, | ||
471 | 0x17,0x17,0x17,0x17,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
472 | 0x00,0x18,0x18,0x17,0x17,0x0F,0x00,0x00,0x00,0x00,0x08,0x17,0x17,0x17,0x18,0x00, | ||
473 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
474 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
475 | 0x00,0x00,0x00,0x00,0x22,0x17,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
476 | 0x00,0x00,0x00,0x00,0x00,0x18,0x08,0x18,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
477 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x18,0x18,0x18, | ||
478 | 0x18,0x18,0x18,0x18,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x18,0x18,0x18, | ||
479 | 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x12,0x07,0x00,0x00, | ||
480 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
481 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
482 | 0x9F,0x9F,0x9F,0x9F,0x29,0x26,0x26,0x28,0x2C,0x9F,0x9F,0x9F,0xAF,0x27,0x26,0x27, | ||
483 | 0xAD,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
484 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
485 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
486 | 0x00,0x98,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
487 | 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x49,0x4D, | ||
488 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
489 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x00,0x07,0x14, | ||
490 | 0x17,0x17,0x2B,0x00,0x0F,0x17,0x17,0x17,0x17,0x36,0x00,0x17,0x17,0x17,0x08,0x17, | ||
491 | 0x17,0x17,0x17,0x17,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
492 | 0x00,0x1A,0x17,0x16,0x16,0x11,0x00,0x00,0x00,0x00,0x04,0x16,0x16,0x16,0x1A,0x00, | ||
493 | 0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
494 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
495 | 0x00,0x00,0x00,0x35,0x16,0x16,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
496 | 0x00,0x00,0x00,0x00,0x07,0x08,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
497 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x26,0x00, | ||
498 | 0x17,0x17,0x17,0x17,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x17,0x17,0x17,0x17, | ||
499 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x07,0x00, | ||
500 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
501 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
502 | 0x9F,0x9F,0x9F,0x29,0x28,0x28,0x2A,0xE6,0x9F,0x9F,0x9F,0x9F,0x29,0x28,0x28,0xAD, | ||
503 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
504 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
505 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
506 | 0x00,0x98,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
507 | 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x49, | ||
508 | 0x4D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
509 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x18,0x11, | ||
510 | 0x16,0x2B,0x00,0x00,0x11,0x16,0x16,0x16,0x16,0x22,0x00,0x07,0x16,0x08,0x00,0x1A, | ||
511 | 0x16,0x16,0x16,0x16,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
512 | 0x00,0x1C,0x16,0x16,0x16,0x13,0x00,0x00,0x00,0x00,0x04,0x16,0x16,0x16,0x08,0x0C, | ||
513 | 0x0C,0x08,0x00,0x00,0x00,0x1A,0x17,0x0F,0x00,0x00,0x00,0x00,0x0C,0x07,0x00,0x00, | ||
514 | 0x00,0x1C,0x07,0x12,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x08,0x0F,0x00,0x00, | ||
515 | 0x18,0x00,0x04,0x16,0x16,0x16,0x0F,0x11,0x13,0x00,0x00,0x00,0x00,0x18,0x13,0x08, | ||
516 | 0x00,0x00,0x00,0x00,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x00,0x00,0x00, | ||
517 | 0x18,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E, | ||
518 | 0x16,0x16,0x16,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x16,0x16,0x16,0x16, | ||
519 | 0x00,0x12,0x16,0x16,0x16,0x16,0x00,0x00,0x1E,0x16,0x16,0x16,0x16,0x16,0x17,0x00, | ||
520 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
521 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
522 | 0x9F,0x9F,0xBE,0xBD,0xBD,0xBD,0xE6,0x9F,0x9F,0x9F,0x9F,0xAD,0xBD,0xBD,0xAD,0x9F, | ||
523 | 0x9F,0xAE,0xAE,0xAE,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
524 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
525 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
526 | 0x00,0x98,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
527 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x4D,0x49,0x47,0x47,0x47,0x47,0x47,0x47, | ||
528 | 0x49,0x4E,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
529 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x0F, | ||
530 | 0x07,0x04,0x00,0x00,0x12,0x16,0x16,0x16,0x16,0x04,0x00,0x19,0x07,0x08,0x00,0x11, | ||
531 | 0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x1A,0x11,0x0F,0x07,0x08,0x00, | ||
532 | 0x00,0x1E,0x16,0x07,0x07,0x07,0x00,0x00,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07, | ||
533 | 0x07,0x08,0x00,0x08,0x08,0x16,0x07,0x07,0x0F,0x00,0x00,0x0C,0x07,0x07,0x0F,0x0F, | ||
534 | 0x00,0x08,0x07,0x07,0x12,0x0F,0x12,0x00,0x00,0x0C,0x24,0x18,0x07,0x12,0x0F,0x07, | ||
535 | 0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x00,0x00,0x1A,0x19,0x07,0x07,0x0F, | ||
536 | 0x08,0x00,0x00,0x21,0x19,0x07,0x0F,0x11,0x08,0x00,0x04,0x07,0x12,0x0F,0x00,0x00, | ||
537 | 0x18,0x07,0x12,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D, | ||
538 | 0x07,0x07,0x07,0x07,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x07,0x07,0x07,0x00, | ||
539 | 0x00,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x1E,0x08,0x07,0x07,0x07,0x07,0x18,0x00, | ||
540 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
541 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
542 | 0x9F,0xBE,0xBD,0xBD,0xBD,0xAE,0x9F,0x9F,0x9F,0x9F,0xAD,0xBD,0xBD,0xAD,0x9F,0x9F, | ||
543 | 0xAE,0xBE,0xBE,0xAE,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
544 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
545 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
546 | 0x00,0x98,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
547 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x49,0x47,0x47,0x47,0x47,0x47, | ||
548 | 0x47,0x4C,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
549 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x18, | ||
550 | 0x14,0x36,0x00,0x00,0x13,0x07,0x07,0x07,0x07,0x04,0x00,0x00,0x07,0x08,0x00,0x12, | ||
551 | 0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x19,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x31, | ||
552 | 0x00,0x1F,0x07,0x14,0x14,0x16,0x00,0x19,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, | ||
553 | 0x18,0x04,0x0C,0x16,0x14,0x14,0x14,0x14,0x07,0x0F,0x0C,0x14,0x14,0x14,0x14,0x14, | ||
554 | 0x1C,0x18,0x14,0x14,0x14,0x14,0x14,0x21,0x17,0x14,0x14,0x14,0x14,0x14,0x14,0x14, | ||
555 | 0x08,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x08,0x0C,0x19,0x14,0x14,0x14,0x14,0x14, | ||
556 | 0x0F,0x08,0x0C,0x16,0x14,0x14,0x14,0x14,0x12,0x04,0x14,0x14,0x14,0x14,0x17,0x08, | ||
557 | 0x14,0x14,0x14,0x14,0x14,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C, | ||
558 | 0x14,0x14,0x14,0x14,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x14,0x1A,0x00, | ||
559 | 0x00,0x0C,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0x19,0x14,0x14,0x14,0x14,0x1A,0x00, | ||
560 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
561 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
562 | 0xBE,0xBD,0xBD,0xBD,0xAE,0x9F,0x9F,0xAE,0xAD,0xAD,0xBD,0xBD,0xAD,0x9F,0x9F,0xAE, | ||
563 | 0xBE,0xBE,0xAE,0x9F,0x9F,0xAE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xAE,0x9F,0x9F,0x9F, | ||
564 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
565 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
566 | 0x00,0x98,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
567 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x49,0x47,0x47,0x47,0x47, | ||
568 | 0x47,0x49,0x4E,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x00,0x00, | ||
569 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00, | ||
570 | 0x18,0x18,0x00,0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x07,0x07,0x14, | ||
571 | 0x14,0x14,0x14,0x14,0x04,0x24,0x17,0x14,0x14,0x14,0x04,0x14,0x14,0x14,0x14,0x14, | ||
572 | 0x19,0x00,0x14,0x13,0x13,0x18,0x00,0x19,0x13,0x08,0x08,0x13,0x13,0x13,0x08,0x00, | ||
573 | 0x00,0x0C,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x07,0x08,0x13,0x13,0x13,0x13, | ||
574 | 0x18,0x13,0x13,0x13,0x13,0x13,0x07,0x35,0x13,0x13,0x13,0x13,0x08,0x13,0x13,0x0C, | ||
575 | 0x08,0x18,0x1C,0x13,0x13,0x13,0x1C,0x08,0x04,0x13,0x13,0x13,0x13,0x13,0x13,0x13, | ||
576 | 0x13,0x0F,0x08,0x08,0x13,0x13,0x13,0x13,0x04,0x04,0x13,0x13,0x13,0x13,0x13,0x13, | ||
577 | 0x13,0x13,0x13,0x13,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, | ||
578 | 0x13,0x13,0x13,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x1A,0x13,0x1A,0x00, | ||
579 | 0x00,0x0C,0x13,0x13,0x13,0x13,0x00,0x00,0x00,0x08,0x13,0x13,0x13,0x13,0x08,0x00, | ||
580 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
581 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xBE, | ||
582 | 0xBC,0xBC,0xBC,0xBE,0xAE,0x9F,0xAE,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD, | ||
583 | 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBE,0xAE,0x9F,0x9F,0x9F, | ||
584 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
585 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
586 | 0x00,0x99,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
587 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x4D,0x47,0x47,0x47,0x47, | ||
588 | 0x47,0x47,0x4E,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
589 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00, | ||
590 | 0x00,0x00,0x00,0x00,0x07,0x13,0x13,0x13,0x13,0x2C,0x00,0x00,0x00,0x00,0x00,0x16, | ||
591 | 0x13,0x13,0x13,0x13,0x04,0x21,0x13,0x13,0x13,0x13,0x04,0x0C,0x13,0x13,0x13,0x13, | ||
592 | 0x19,0x00,0x13,0x12,0x12,0x1A,0x00,0x08,0x08,0x00,0x1D,0x12,0x12,0x12,0x1C,0x00, | ||
593 | 0x00,0x08,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x04,0x12,0x12,0x12,0x12, | ||
594 | 0x12,0x12,0x12,0x12,0x12,0x12,0x07,0x21,0x12,0x12,0x12,0x12,0x04,0x25,0x20,0x00, | ||
595 | 0x00,0x00,0x1E,0x12,0x12,0x12,0x00,0x00,0x08,0x12,0x12,0x12,0x12,0x12,0x12,0x12, | ||
596 | 0x12,0x12,0x08,0x04,0x12,0x12,0x12,0x12,0x04,0x00,0x08,0x12,0x12,0x12,0x12,0x12, | ||
597 | 0x12,0x12,0x12,0x12,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x08, | ||
598 | 0x11,0x18,0x08,0x00,0x16,0x28,0x28,0x32,0x07,0x07,0x07,0x0F,0x08,0x0F,0x1A,0x00, | ||
599 | 0x00,0x35,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x1D,0x11,0x11,0x11,0x11,0x1D,0x00, | ||
600 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
601 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xBE,0xBB, | ||
602 | 0xBB,0xBB,0xBD,0xAE,0x9F,0xAE,0xBD,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC, | ||
603 | 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBE,0xAE,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
604 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
605 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
606 | 0x00,0x99,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
607 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x4F,0x47,0x47,0x47,0x47, | ||
608 | 0x47,0x47,0x4D,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x00,0x00, | ||
609 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00, | ||
610 | 0x00,0x00,0x00,0x00,0x16,0x13,0x12,0x12,0x12,0x2F,0x00,0x07,0x17,0x18,0x00,0x17, | ||
611 | 0x12,0x12,0x12,0x12,0x27,0x35,0x12,0x12,0x12,0x12,0x04,0x0C,0x12,0x12,0x12,0x12, | ||
612 | 0x33,0x00,0x12,0x11,0x11,0x18,0x00,0x00,0x00,0x00,0x00,0x10,0x11,0x11,0x1E,0x00, | ||
613 | 0x00,0x1D,0x10,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x11,0x0C,0x13,0x11,0x11,0x11, | ||
614 | 0x11,0x08,0x13,0x11,0x11,0x11,0x07,0x08,0x07,0x11,0x11,0x11,0x00,0x08,0x00,0x00, | ||
615 | 0x00,0x00,0x08,0x11,0x11,0x11,0x1D,0x00,0x18,0x13,0x11,0x11,0x11,0x00,0x13,0x11, | ||
616 | 0x11,0x11,0x08,0x04,0x11,0x11,0x11,0x11,0x04,0x00,0x08,0x10,0x11,0x11,0x11,0x16, | ||
617 | 0x1C,0x10,0x11,0x11,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x0F, | ||
618 | 0x0F,0x0F,0x0F,0x07,0x19,0x04,0x13,0x11,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x1A,0x00, | ||
619 | 0x00,0x20,0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x1F,0x0F,0x0F,0x0F,0x0F,0x00,0x00, | ||
620 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
621 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAD,0xBA,0xBA, | ||
622 | 0xBA,0xBC,0xAE,0x9F,0xAE,0xBD,0xFF,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBC, | ||
623 | 0xAB,0xAC,0xAD,0xAE,0xAE,0xAE,0xAE,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
624 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
625 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
626 | 0x00,0x99,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
627 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
628 | 0x47,0x47,0x4D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
629 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00, | ||
630 | 0x00,0x00,0x00,0x00,0x16,0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x0F,0x00,0x19, | ||
631 | 0x0F,0x0F,0x0F,0x11,0x23,0x23,0x0F,0x0F,0x0F,0x0F,0x1A,0x04,0x16,0x0F,0x0F,0x0F, | ||
632 | 0x32,0x00,0x0F,0x0F,0x0F,0x16,0x00,0x00,0x00,0x00,0x1F,0x0F,0x0F,0x0F,0x00,0x00, | ||
633 | 0x00,0x18,0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x18,0x0F,0x07,0x07,0x0F,0x0F,0x0F,0x0F, | ||
634 | 0x18,0x08,0x00,0x07,0x07,0x0F,0x07,0x00,0x00,0x17,0x07,0x07,0x07,0x07,0x07,0x08, | ||
635 | 0x00,0x00,0x19,0x1A,0x07,0x13,0x19,0x00,0x07,0x00,0x07,0x07,0x07,0x00,0x08,0x08, | ||
636 | 0x07,0x08,0x00,0x08,0x08,0x07,0x07,0x0F,0x08,0x00,0x08,0x18,0x07,0x07,0x0F,0x08, | ||
637 | 0x00,0x18,0x07,0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
638 | 0x00,0x00,0x1E,0x07,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
639 | 0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, | ||
640 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
641 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xBC,0xBA,0xB9, | ||
642 | 0xBB,0xBE,0xAF,0x9F,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAD,0xBC,0xBA,0xBA,0xBC,0xAB, | ||
643 | 0xAD,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
644 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
645 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
646 | 0x00,0x99,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
647 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
648 | 0x47,0x47,0x4D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
649 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, | ||
650 | 0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x07, | ||
651 | 0x00,0x00,0x00,0x17,0x21,0x33,0x00,0x00,0x00,0x00,0x16,0x1F,0x00,0x00,0x00,0x00, | ||
652 | 0x07,0x00,0x00,0x00,0x1D,0x14,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00, | ||
653 | 0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x2A,0x11,0x00,0x0F,0x1F,0x00,0x00,0x00, | ||
654 | 0x08,0x00,0x00,0x00,0x00,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13, | ||
655 | 0x00,0x00,0x17,0x00,0x00,0x00,0x14,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
656 | 0x19,0x00,0x00,0x17,0x00,0x00,0x00,0x1D,0x07,0x00,0x1D,0x00,0x00,0x00,0x08,0x1C, | ||
657 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x07,0x00,0x00,0x00, | ||
658 | 0x00,0x00,0x00,0x1E,0x1A,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
659 | 0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
660 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
661 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAC,0xBC,0xBB,0xAA, | ||
662 | 0xAB,0xAE,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAB,0xBC,0xAA,0xBC,0xAC,0xAE, | ||
663 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
664 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
665 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
666 | 0x00,0x99,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
667 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
668 | 0x47,0x47,0x4D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
669 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, | ||
670 | 0x00,0x00,0x00,0x00,0x19,0x2D,0x2D,0x2D,0x2F,0x00,0x2D,0x2D,0x2D,0x2D,0x00,0x2D, | ||
671 | 0x2D,0x2D,0x2F,0x00,0x26,0x32,0x2D,0x2D,0x2D,0x00,0x12,0x1E,0x2D,0x2D,0x2D,0x00, | ||
672 | 0x13,0x00,0x2D,0x2B,0x00,0x12,0x00,0x00,0x00,0x00,0x19,0x2B,0x2B,0x2B,0x00,0x00, | ||
673 | 0x00,0x18,0x2B,0x2B,0x2B,0x00,0x00,0x2A,0x0F,0x00,0x00,0x12,0x2B,0x2B,0x2B,0x00, | ||
674 | 0x08,0x00,0x2B,0x2B,0x2B,0x00,0x07,0x00,0x00,0x00,0x2B,0x2B,0x2B,0x2B,0x2B,0x1A, | ||
675 | 0x17,0x00,0x18,0x2B,0x2B,0x2B,0x07,0x00,0x13,0x2B,0x2B,0x2B,0x2B,0x00,0x2A,0x07, | ||
676 | 0x00,0x00,0x00,0x12,0x2B,0x2B,0x2B,0x00,0x0F,0x00,0x1C,0x2B,0x2B,0x2B,0x08,0x00, | ||
677 | 0x00,0x2B,0x2B,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x19,0x07,0x08,0x1D,0x12, | ||
678 | 0x2A,0x2A,0x2A,0x2A,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
679 | 0x00,0x2C,0x2A,0x2A,0x2A,0x2A,0x00,0x00,0x00,0x1C,0x2A,0x2A,0x2A,0x2A,0x00,0x00, | ||
680 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
681 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAA,0xAA,0xAA,0xAA, | ||
682 | 0xAC,0xAF,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAB,0xAA,0xAA,0xAA,0xAA,0xAE,0x9F, | ||
683 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
684 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
685 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
686 | 0x00,0x99,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
687 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x4F,0x47,0x47,0x47,0x47, | ||
688 | 0x47,0x47,0x4D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
689 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, | ||
690 | 0x00,0x00,0x00,0x00,0x1A,0x28,0x27,0x27,0x27,0x2E,0x25,0x27,0x27,0x25,0x2E,0x27, | ||
691 | 0x27,0x27,0x27,0x0F,0x00,0x07,0x25,0x23,0x24,0x23,0x0F,0x08,0x04,0x25,0x28,0x26, | ||
692 | 0x11,0x00,0x24,0x28,0x28,0x10,0x00,0x00,0x00,0x00,0x17,0x28,0x28,0x28,0x1E,0x00, | ||
693 | 0x00,0x1C,0x28,0x28,0x28,0x28,0x28,0x0F,0x00,0x00,0x00,0x17,0x28,0x28,0x28,0x28, | ||
694 | 0x08,0x00,0x28,0x28,0x28,0x28,0x17,0x00,0x00,0x00,0x00,0x19,0x28,0x28,0x28,0x28, | ||
695 | 0x07,0x00,0x1A,0x28,0x28,0x28,0x1A,0x00,0x16,0x28,0x28,0x28,0x28,0x28,0x19,0x00, | ||
696 | 0x00,0x00,0x00,0x11,0x28,0x28,0x28,0x28,0x07,0x00,0x19,0x28,0x28,0x28,0x1C,0x00, | ||
697 | 0x00,0x28,0x28,0x28,0x08,0x00,0x00,0x00,0x00,0x00,0x07,0x26,0x17,0x00,0x00,0x0F, | ||
698 | 0x26,0x26,0x26,0x26,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
699 | 0x00,0x2A,0x26,0x26,0x26,0x26,0x00,0x00,0x07,0x26,0x26,0x26,0x26,0x26,0x00,0x00, | ||
700 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
701 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAC,0xA9,0xA9,0xA9,0xAA, | ||
702 | 0xAE,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAB,0xA9,0xA9,0xA9,0xA9,0xAC,0x9F,0x9F, | ||
703 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
704 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
705 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
706 | 0x00,0x9A,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
707 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x4D,0x47,0x47,0x47,0x47, | ||
708 | 0x47,0x47,0x4E,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
709 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, | ||
710 | 0x00,0x00,0x00,0x00,0x08,0x27,0x27,0x27,0x27,0x27,0x27,0x2B,0x27,0x27,0x27,0x27, | ||
711 | 0x27,0x27,0x18,0x08,0x00,0x16,0x27,0x27,0x27,0x27,0x0F,0x18,0x04,0x27,0x04,0x04, | ||
712 | 0x0F,0x00,0x04,0x25,0x25,0x07,0x0F,0x07,0x1E,0x00,0x07,0x25,0x25,0x25,0x1C,0x00, | ||
713 | 0x00,0x1E,0x25,0x25,0x25,0x25,0x0F,0x00,0x00,0x00,0x1E,0x1A,0x25,0x25,0x25,0x25, | ||
714 | 0x08,0x00,0x25,0x25,0x25,0x25,0x1A,0x00,0x00,0x07,0x0F,0x17,0x25,0x25,0x25,0x25, | ||
715 | 0x07,0x00,0x1C,0x25,0x25,0x25,0x17,0x00,0x18,0x25,0x25,0x25,0x25,0x25,0x18,0x00, | ||
716 | 0x00,0x00,0x00,0x07,0x25,0x25,0x25,0x25,0x07,0x00,0x07,0x25,0x25,0x25,0x17,0x00, | ||
717 | 0x00,0x25,0x25,0x25,0x18,0x00,0x00,0x00,0x00,0x00,0x07,0x22,0x22,0x17,0x00,0x11, | ||
718 | 0x22,0x22,0x22,0x22,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
719 | 0x08,0x07,0x22,0x22,0x22,0x22,0x00,0x12,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00, | ||
720 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
721 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x87,0xA8,0xA8,0xA8,0xAB, | ||
722 | 0xAE,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAB,0xA8,0xA8,0xA8,0xA8,0xA8,0xAE,0x9F,0x9F, | ||
723 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
724 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
725 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
726 | 0x00,0x9A,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
727 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x49,0x47,0x47,0x47,0x47, | ||
728 | 0x47,0x49,0x4E,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
729 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, | ||
730 | 0x00,0x00,0x00,0x00,0x08,0x24,0x24,0x24,0x24,0x24,0x24,0x00,0x24,0x24,0x24,0x24, | ||
731 | 0x24,0x24,0x17,0x00,0x00,0x18,0x24,0x24,0x24,0x24,0x12,0x36,0x24,0x24,0x24,0x24, | ||
732 | 0x07,0x1E,0x24,0x22,0x22,0x22,0x22,0x22,0x33,0x00,0x0F,0x22,0x22,0x22,0x1A,0x00, | ||
733 | 0x00,0x00,0x22,0x22,0x22,0x22,0x07,0x0F,0x18,0x00,0x1E,0x08,0x23,0x23,0x23,0x23, | ||
734 | 0x07,0x08,0x23,0x23,0x23,0x23,0x08,0x00,0x07,0x23,0x23,0x08,0x23,0x23,0x23,0x23, | ||
735 | 0x13,0x00,0x1C,0x23,0x23,0x23,0x12,0x08,0x1A,0x22,0x22,0x22,0x22,0x23,0x0F,0x13, | ||
736 | 0x18,0x22,0x08,0x18,0x23,0x23,0x23,0x23,0x07,0x00,0x19,0x23,0x23,0x23,0x11,0x00, | ||
737 | 0x00,0x23,0x23,0x23,0x12,0x07,0x00,0x00,0x00,0x00,0x17,0x35,0x35,0x35,0x08,0x13, | ||
738 | 0x35,0x35,0x35,0x35,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
739 | 0x35,0x35,0x35,0x35,0x35,0x35,0x19,0x35,0x35,0x35,0x35,0x35,0x35,0x1C,0x00,0x00, | ||
740 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
741 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x86,0x8C,0x8C,0x8C,0xAC, | ||
742 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAB,0x8C,0x8C,0x8C,0x8C,0x8C,0xAB,0x9F,0x9F,0x9F, | ||
743 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
744 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
745 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
746 | 0x00,0x9A,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
747 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x49,0x47,0x47,0x47,0x47,0x47, | ||
748 | 0x47,0x4C,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
749 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, | ||
750 | 0x00,0x00,0x00,0x00,0x08,0x36,0x36,0x36,0x36,0x36,0x26,0x00,0x36,0x36,0x36,0x36, | ||
751 | 0x36,0x16,0x00,0x00,0x00,0x1A,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x18, | ||
752 | 0x00,0x1D,0x36,0x35,0x35,0x35,0x35,0x35,0x33,0x00,0x16,0x35,0x35,0x35,0x18,0x00, | ||
753 | 0x00,0x1D,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x1E,0x08,0x35,0x35,0x35,0x35, | ||
754 | 0x35,0x08,0x35,0x35,0x35,0x35,0x35,0x00,0x25,0x35,0x35,0x35,0x35,0x35,0x35,0x1A, | ||
755 | 0x07,0x1D,0x1C,0x35,0x35,0x35,0x35,0x1A,0x08,0x35,0x35,0x35,0x35,0x35,0x35,0x35, | ||
756 | 0x35,0x08,0x1E,0x08,0x35,0x35,0x35,0x35,0x35,0x08,0x00,0x35,0x35,0x35,0x35,0x08, | ||
757 | 0x00,0x35,0x35,0x35,0x35,0x08,0x00,0x00,0x00,0x00,0x18,0x34,0x34,0x34,0x0C,0x34, | ||
758 | 0x34,0x34,0x34,0x34,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
759 | 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x0C,0x1C,0x00,0x00,0x00, | ||
760 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
761 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x85,0x8B,0x8B,0x8B,0xAC, | ||
762 | 0x9F,0x9F,0x9F,0x9F,0x9F,0xAA,0x85,0x8B,0x8B,0x8B,0x8B,0x85,0xAE,0x9F,0x9F,0x9F, | ||
763 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
764 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
765 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
766 | 0x00,0x9A,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
767 | 0x47,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x4D,0x49,0x47,0x47,0x47,0x47,0x47,0x47, | ||
768 | 0x49,0x4E,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
769 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, | ||
770 | 0x00,0x00,0x00,0x1C,0x34,0x34,0x34,0x34,0x34,0x34,0x1D,0x00,0x00,0x34,0x34,0x34, | ||
771 | 0x18,0x00,0x00,0x00,0x00,0x1D,0x1D,0x34,0x34,0x34,0x34,0x34,0x34,0x0C,0x07,0x00, | ||
772 | 0x00,0x1C,0x0C,0x33,0x33,0x33,0x33,0x33,0x07,0x00,0x18,0x33,0x33,0x33,0x16,0x00, | ||
773 | 0x00,0x08,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x08,0x1E,0x00,0x08,0x33,0x33,0x33, | ||
774 | 0x19,0x00,0x19,0x33,0x33,0x33,0x18,0x00,0x08,0x1E,0x33,0x33,0x07,0x08,0x1E,0x00, | ||
775 | 0x00,0x1D,0x1A,0x33,0x33,0x33,0x07,0x00,0x1C,0x1C,0x33,0x33,0x33,0x33,0x33,0x33, | ||
776 | 0x33,0x07,0x00,0x00,0x20,0x33,0x33,0x33,0x18,0x08,0x00,0x33,0x33,0x33,0x08,0x08, | ||
777 | 0x00,0x33,0x33,0x33,0x08,0x00,0x00,0x00,0x00,0x00,0x16,0x32,0x32,0x32,0x32,0x32, | ||
778 | 0x32,0x32,0x32,0x32,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F, | ||
779 | 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x1C,0x00,0x00,0x00,0x00, | ||
780 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
781 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x84,0x83,0x83,0x83,0xAB, | ||
782 | 0xAE,0xAF,0xAF,0xAE,0xAA,0x85,0x82,0x83,0x82,0x83,0x83,0x87,0x9F,0x9F,0x9F,0x9F, | ||
783 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
784 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
785 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
786 | 0x00,0x9A,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
787 | 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x49, | ||
788 | 0x4E,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
789 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, | ||
790 | 0x00,0x00,0x00,0x19,0x08,0x1C,0x1D,0x1E,0x1F,0x1C,0x00,0x00,0x1F,0x1D,0x1C,0x08, | ||
791 | 0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x08,0x1D,0x1E,0x1F,0x00,0x1E,0x07,0x00,0x00, | ||
792 | 0x00,0x1D,0x18,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x1A,0x32,0x32,0x32,0x18,0x00, | ||
793 | 0x00,0x00,0x1C,0x18,0x07,0x08,0x1C,0x1E,0x1E,0x1E,0x00,0x00,0x1D,0x1E,0x17,0x07, | ||
794 | 0x00,0x00,0x1D,0x1E,0x17,0x07,0x00,0x00,0x00,0x00,0x1F,0x18,0x00,0x00,0x00,0x00, | ||
795 | 0x00,0x00,0x00,0x1D,0x18,0x18,0x00,0x00,0x00,0x1C,0x08,0x18,0x18,0x18,0x18,0x18, | ||
796 | 0x18,0x08,0x00,0x00,0x1D,0x18,0x18,0x18,0x00,0x00,0x00,0x1D,0x18,0x08,0x00,0x00, | ||
797 | 0x00,0x19,0x18,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x30,0x30,0x30,0x30, | ||
798 | 0x07,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D, | ||
799 | 0x07,0x18,0x1C,0x1E,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
800 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
801 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x83,0x83,0x83,0x83,0x86, | ||
802 | 0xAA,0xAC,0xAB,0x87,0x85,0x83,0x82,0x83,0x83,0x83,0x84,0xAE,0x9F,0x9F,0x9F,0x9F, | ||
803 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
804 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
805 | 0x2B,0x2A,0x2C,0x2C,0x2B,0x2A,0x2A,0x2C,0x2B,0x2C,0x2A,0x2C,0x2B,0x2B,0x2B,0x2B, | ||
806 | 0x2B,0x9A,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
807 | 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x49,0x4D, | ||
808 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x2F,0x2D, | ||
809 | 0x2C,0x2B,0x2B,0x2C,0x2C,0x2C,0x2D,0x2D,0x2C,0x1D,0x00,0x00,0x00,0x00,0x00,0x00, | ||
810 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
811 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
812 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x19,0x08,0x19,0x31,0x31,0x31,0x1A,0x00, | ||
813 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
814 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
815 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
816 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
817 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x10,0x12, | ||
818 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, | ||
819 | 0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
820 | 0x00,0x00,0x00,0x00,0x2D,0x2B,0x29,0x29,0x28,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
821 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x85,0x82,0x82,0x82,0x84, | ||
822 | 0x85,0x85,0x84,0x84,0x82,0x82,0x84,0x86,0x83,0x83,0x87,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
823 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
824 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x2C,0x2B,0x28, | ||
825 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
826 | 0x00,0x9A,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
827 | 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x49,0x4D,0x4E,0x9F, | ||
828 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00, | ||
829 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x00,0x00, | ||
830 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
831 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
832 | 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x08,0x00, | ||
833 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
834 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
835 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
836 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
837 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x12,0x00, | ||
838 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
839 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D, | ||
840 | 0x00,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
841 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAC,0xF6,0x83,0xF6,0x83, | ||
842 | 0xF6,0x83,0xF6,0xF6,0x84,0x86,0xAC,0x85,0xF6,0x84,0xAD,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
843 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
844 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x00,0x00,0x00,0x00, | ||
845 | 0x24,0x24,0x25,0x22,0x24,0x25,0x21,0x24,0x21,0x23,0x28,0x24,0x21,0x25,0x25,0x22, | ||
846 | 0x26,0x9A,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x47,0x47,0x9F,0x9F,0x47,0x47,0x47,0x47, | ||
847 | 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x49,0x4A,0x4D,0x4E,0x9F,0x9F,0x9F, | ||
848 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x29, | ||
849 | 0x28,0x26,0x04,0x04,0x25,0x25,0x23,0x28,0x23,0x1D,0x00,0x00,0x00,0x00,0x00,0x00, | ||
850 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
851 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
852 | 0x00,0x00,0x00,0x00,0x00,0x08,0x30,0x30,0x30,0x30,0x30,0x30,0x14,0x22,0x28,0x00, | ||
853 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
854 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
855 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
856 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
857 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
858 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
859 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x00, | ||
860 | 0x1D,0x00,0x1D,0x00,0x2B,0x29,0x28,0x28,0x25,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
861 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x86,0xF7,0xF7,0xF7, | ||
862 | 0xF7,0xF7,0xF7,0xF7,0x87,0x9F,0xAC,0xF7,0xF7,0x86,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
863 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
864 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2A,0x28,0x20,0x29, | ||
865 | 0x21,0x24,0x26,0x21,0x28,0x04,0x26,0x24,0x22,0x04,0x22,0x25,0x24,0x23,0x24,0x24, | ||
866 | 0x24,0x9B,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
867 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
868 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x29, | ||
869 | 0x25,0x23,0x24,0x24,0x25,0x25,0x23,0x28,0x25,0x1D,0x00,0x00,0x00,0x00,0x00,0x00, | ||
870 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
871 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
872 | 0x00,0x00,0x00,0x00,0x1C,0x25,0x25,0x25,0x25,0x32,0x30,0x33,0x00,0x00,0x00,0x00, | ||
873 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
874 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
875 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
876 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
877 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
878 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
879 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x00, | ||
880 | 0x00,0x00,0x1D,0x00,0x2A,0x2A,0x25,0x28,0x26,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
881 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x87,0x7C,0x7C, | ||
882 | 0x7C,0x7C,0x7C,0x87,0x9F,0x9F,0x87,0x7C,0x7C,0xAC,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
883 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
884 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2A,0x29,0x24,0x29, | ||
885 | 0x28,0x23,0x24,0x22,0x23,0x26,0x21,0x24,0x22,0x22,0x25,0x24,0x23,0x22,0x25,0x25, | ||
886 | 0x24,0x9B,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
887 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
888 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2A,0x28, | ||
889 | 0x24,0x28,0x25,0x22,0x21,0x25,0x21,0x22,0x26,0x1D,0x00,0x00,0x00,0x00,0x00,0x00, | ||
890 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
891 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
892 | 0x00,0x00,0x00,0x00,0x1E,0x1E,0x00,0x00,0x00,0x2A,0x1A,0x00,0x00,0x00,0x00,0x00, | ||
893 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
894 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
895 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
896 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
897 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
898 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
899 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
900 | 0x00,0x00,0x00,0x00,0x2C,0x29,0x28,0x26,0x25,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
901 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0xAC,0x87, | ||
902 | 0x87,0x87,0xAC,0x9F,0x9F,0xAC,0xFC,0xFC,0x87,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
903 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
904 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x27,0x04,0x29, | ||
905 | 0x24,0x23,0x24,0x23,0x22,0x25,0x23,0x04,0x24,0x25,0x24,0x25,0x23,0x04,0x25,0x04, | ||
906 | 0x24,0x9B,0x9F,0x9F,0x4C,0x47,0x47,0x9F,0x9F,0x4C,0x47,0x4C,0x9F,0x9F,0x47,0x47, | ||
907 | 0x9F,0x9F,0x47,0x47,0x47,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x47,0x47, | ||
908 | 0x9F,0x9F,0x9F,0x47,0x47,0x4C,0x9F,0x9F,0x9F,0x47,0x47,0x9F,0x9F,0x9F,0x2B,0x2A, | ||
909 | 0x04,0x22,0x23,0x22,0x26,0x22,0x26,0x25,0x28,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
910 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
911 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
912 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
913 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
914 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
915 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
916 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
917 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
918 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
919 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
920 | 0x00,0x00,0x00,0x00,0x2B,0x29,0x04,0x24,0x04,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
921 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
922 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x87,0x7D,0x7D,0xAC,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
923 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
924 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2A,0x2A,0x24,0x29, | ||
925 | 0x28,0x24,0x23,0x25,0x22,0x22,0x21,0x22,0x24,0x22,0x23,0x23,0x23,0x24,0x22,0x25, | ||
926 | 0x28,0x9B,0x9F,0x9F,0x47,0x4B,0x9F,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x47,0x9F, | ||
927 | 0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x47, | ||
928 | 0x9F,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x9F,0x2C,0x2A, | ||
929 | 0x23,0x24,0x25,0x24,0x25,0x23,0x26,0x25,0x04,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
930 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
931 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D, | ||
932 | 0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
933 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
934 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00, | ||
935 | 0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00, | ||
936 | 0x00,0x00,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
937 | 0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D, | ||
938 | 0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
939 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
940 | 0x00,0x00,0x00,0x00,0x2A,0x28,0x26,0x04,0x26,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
941 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
942 | 0x9F,0x9F,0x9F,0x9F,0xAC,0x6B,0x6B,0x87,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
943 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
944 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x2A,0x29,0x29, | ||
945 | 0x26,0x22,0x22,0x04,0x24,0x25,0x21,0x23,0x22,0x24,0x24,0x04,0x26,0x25,0x25,0x23, | ||
946 | 0x26,0x9B,0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x47,0x47, | ||
947 | 0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x47,0x47,0x47, | ||
948 | 0x9F,0x9F,0x9F,0x47,0x47,0x9F,0x9F,0x9F,0x9F,0x47,0x47,0x9F,0x9F,0x9F,0x2A,0x2A, | ||
949 | 0x22,0x22,0x24,0x25,0x22,0x20,0x22,0x22,0x25,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
950 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
951 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00, | ||
952 | 0x00,0x00,0x1D,0x00,0x00,0x00,0x1D,0x1D,0x00,0x00,0x1D,0x1D,0x00,0x00,0x1D,0x1D, | ||
953 | 0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D,0x00,0x00,0x1D,0x00,0x00,0x1D,0x1D,0x00, | ||
954 | 0x1D,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00, | ||
955 | 0x1D,0x00,0x1D,0x00,0x00,0x1F,0x1D,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x1D, | ||
956 | 0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D, | ||
957 | 0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00, | ||
958 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
959 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
960 | 0x00,0x00,0x00,0x00,0x2A,0x28,0x26,0x25,0x25,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
961 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
962 | 0x9F,0x9F,0x9F,0x9F,0x6B,0x6B,0x6B,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
963 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
964 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2C,0x2A,0x04,0x29, | ||
965 | 0x24,0x23,0x23,0x25,0x26,0x24,0x23,0x24,0x23,0x24,0x04,0x25,0x25,0x24,0x23,0x04, | ||
966 | 0x24,0x9B,0x9F,0x9F,0x9F,0x4D,0x47,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x47,0x9F, | ||
967 | 0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x47, | ||
968 | 0x9F,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x9F,0x2A,0x2A, | ||
969 | 0x22,0x20,0x25,0x22,0x26,0x23,0x04,0x23,0x28,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
970 | 0x00,0x1F,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
971 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1F,0x1D,0x00,0x00, | ||
972 | 0x1D,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x00,0x1D,0x00, | ||
973 | 0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00, | ||
974 | 0x1D,0x00,0x1D,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00, | ||
975 | 0x1D,0x1D,0x1D,0x00,0x1F,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00, | ||
976 | 0x1D,0x00,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x1D, | ||
977 | 0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D, | ||
978 | 0x00,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
979 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1F,0x00,0x00,0x00,0x00, | ||
980 | 0x00,0x00,0x00,0x00,0x2A,0x27,0x04,0x23,0x24,0x9A,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
981 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
982 | 0x9F,0x9F,0x9F,0x7F,0x6B,0x6B,0x7E,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
983 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
984 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2C,0x2A,0x26,0x29, | ||
985 | 0x28,0x23,0x24,0x24,0x23,0x22,0x22,0x22,0x23,0x22,0x04,0x28,0x24,0x26,0x28,0x26, | ||
986 | 0x23,0x9C,0x9F,0x9F,0x9F,0x4B,0x47,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x47,0x9F, | ||
987 | 0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x47,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x47, | ||
988 | 0x9F,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x9F,0x2C,0x28, | ||
989 | 0x22,0x22,0x25,0x23,0x23,0x22,0x23,0x25,0x22,0x1E,0x00,0x00,0x18,0x08,0x1D,0x00, | ||
990 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
991 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D, | ||
992 | 0x1F,0x00,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x00,0x1D,0x1D, | ||
993 | 0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x1D,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00, | ||
994 | 0x1D,0x1D,0x1D,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00, | ||
995 | 0x00,0x00,0x1D,0x00,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00, | ||
996 | 0x1D,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D, | ||
997 | 0x00,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x00,0x00,0x1D,0x00, | ||
998 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
999 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, | ||
1000 | 0x08,0x1D,0x00,0x00,0x2C,0x29,0x20,0x24,0x24,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1001 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1002 | 0x9F,0x9F,0x9F,0x6C,0x6C,0x6C,0x7F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1003 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1004 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2C,0x2A,0x28,0x29, | ||
1005 | 0x22,0x28,0x26,0x28,0x26,0x28,0x28,0x25,0x22,0x25,0x04,0x28,0x26,0x25,0x28,0x24, | ||
1006 | 0x26,0x9C,0x9F,0x9F,0x47,0x47,0x4C,0x9F,0x9F,0x4C,0x47,0x4C,0x9F,0x9F,0x47,0x9F, | ||
1007 | 0x9F,0x9F,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x9F,0x47, | ||
1008 | 0x9F,0x9F,0x9F,0x47,0x9F,0x47,0x9F,0x9F,0x9F,0x47,0x47,0x9F,0x9F,0x9F,0x2B,0x2A, | ||
1009 | 0x20,0x22,0x22,0x22,0x26,0x22,0x24,0x26,0x24,0x1E,0x00,0x00,0x08,0x1D,0x1F,0x00, | ||
1010 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1011 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00, | ||
1012 | 0x1D,0x1D,0x00,0x1D,0x00,0x00,0x1D,0x1D,0x00,0x00,0x1D,0x1D,0x00,0x00,0x1D,0x00, | ||
1013 | 0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x1D,0x1D,0x00, | ||
1014 | 0x1D,0x00,0x1D,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00, | ||
1015 | 0x00,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x1D, | ||
1016 | 0x00,0x00,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D, | ||
1017 | 0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D, | ||
1018 | 0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1019 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, | ||
1020 | 0x1D,0x1F,0x00,0x00,0x2C,0x2A,0x26,0x25,0x22,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1021 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1022 | 0x9F,0x9F,0x9F,0x6D,0x6D,0x6D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1023 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1024 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x28,0x28,0x29, | ||
1025 | 0x28,0x24,0x25,0x28,0x28,0x24,0x28,0x28,0x28,0x26,0x23,0x04,0x25,0x26,0x25,0x04, | ||
1026 | 0x28,0x9C,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1027 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1028 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x27, | ||
1029 | 0x22,0x24,0x20,0x20,0x26,0x20,0x24,0x22,0x20,0x1E,0x00,0x00,0x1D,0x1F,0x1F,0x00, | ||
1030 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1031 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00, | ||
1032 | 0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1033 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1034 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1035 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1036 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1037 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1038 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1039 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D, | ||
1040 | 0x1F,0x1F,0x00,0x00,0x2B,0x2A,0x04,0x04,0x25,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1041 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1042 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1043 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1044 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2C,0x2B,0x24,0x29, | ||
1045 | 0x28,0x25,0x26,0x25,0x25,0x24,0x25,0x24,0x25,0x25,0x23,0x26,0x04,0x25,0x25,0x24, | ||
1046 | 0x25,0x9C,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1047 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1048 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x2A, | ||
1049 | 0x25,0x28,0x22,0x25,0x24,0x22,0x20,0x24,0x22,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1050 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1051 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D, | ||
1052 | 0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1053 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1054 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1055 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1056 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1057 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1058 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1059 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1060 | 0x00,0x00,0x00,0x00,0x2C,0x2A,0x26,0x28,0x28,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1061 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1062 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1063 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1064 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2C,0x2A,0x25,0x29, | ||
1065 | 0x22,0x25,0x25,0x25,0x23,0x22,0x25,0x25,0x22,0x28,0x25,0x25,0x28,0x25,0x23,0x28, | ||
1066 | 0x28,0x9C,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1067 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1068 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x29, | ||
1069 | 0x26,0x28,0x25,0x24,0x23,0x26,0x22,0x25,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1070 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1071 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1072 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1073 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1074 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1075 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1076 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1077 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1078 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1079 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1080 | 0x00,0x00,0x00,0x00,0x2A,0x2B,0x23,0x24,0x26,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1081 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1082 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1083 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
1084 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x2B,0x29,0x28,0x29, | ||
1085 | 0x23,0x22,0x22,0x25,0x25,0x25,0x22,0x25,0x23,0x26,0x28,0x22,0x25,0x23,0x28,0x28, | ||
1086 | 0x26,0x22,0x2D,0x2A,0x2A,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2A,0x2B,0x2C,0x2A,0x2A, | ||
1087 | 0x2C,0x2B,0x2A,0x2C,0x2B,0x2A,0x2A,0x2C,0x2A,0x2B,0x2B,0x2A,0x2A,0x2A,0x2B,0x2B, | ||
1088 | 0x2A,0x2A,0x2B,0x2A,0x2B,0x2B,0x2A,0x2B,0x2C,0x2B,0x2A,0x2A,0x2C,0x2A,0x2C,0x29, | ||
1089 | 0x26,0x23,0x25,0x25,0x23,0x25,0x22,0x25,0x23,0x25,0x2B,0x2A,0x2B,0x2B,0x2A,0x2A, | ||
1090 | 0x2A,0x2A,0x2A,0x2C,0x2A,0x2A,0x2A,0x2A,0x2B,0x2A,0x29,0x29,0x2A,0x2A,0x2A,0x2A, | ||
1091 | 0x2C,0x2A,0x2B,0x2A,0x2B,0x2A,0x2A,0x2B,0x2C,0x2C,0x2A,0x2B,0x2C,0x2B,0x2B,0x2B, | ||
1092 | 0x2C,0x2C,0x2C,0x2D,0x2D,0x2D,0x2C,0x2D,0x2C,0x2C,0x2B,0x2B,0x2B,0x2C,0x2B,0x2C, | ||
1093 | 0x2A,0x2B,0x2A,0x2B,0x2C,0x2A,0x2C,0x2B,0x2C,0x2B,0x2C,0x2C,0x2C,0x2B,0x2C,0x2B, | ||
1094 | 0x2B,0x2C,0x2B,0x2B,0x29,0x2A,0x2B,0x2C,0x2C,0x2C,0x2C,0x2C,0x2B,0x2A,0x2B,0x2C, | ||
1095 | 0x2C,0x2D,0x2C,0x2C,0x2C,0x2C,0x2C,0x2D,0x2C,0x2C,0x2C,0x2D,0x2C,0x2C,0x2C,0x2C, | ||
1096 | 0x2C,0x2D,0x2C,0x2C,0x2D,0x2C,0x2C,0x2B,0x2C,0x2C,0x2C,0x2B,0x2B,0x2B,0x2B,0x2C, | ||
1097 | 0x2C,0x2A,0x2C,0x2C,0x2D,0x2C,0x2B,0x2C,0x2B,0x2C,0x2C,0x2B,0x2B,0x2B,0x2C,0x2B, | ||
1098 | 0x2B,0x2C,0x29,0x2C,0x2B,0x2C,0x2B,0x2C,0x2C,0x2C,0x2B,0x2B,0x2C,0x2A,0x2C,0x2B, | ||
1099 | 0x2B,0x2C,0x2B,0x2A,0x2A,0x2A,0x2B,0x29,0x2A,0x2A,0x2B,0x2A,0x2A,0x2A,0x2B,0x2C, | ||
1100 | 0x2B,0x2C,0x2C,0x2B,0x2C,0x2A,0x22,0x22,0x04,0x26,0x29,0x2D,0x2C,0x2A,0x2C,0x2B, | ||
1101 | 0x2B,0x2C,0x2C,0x2C,0x2C,0x2B,0x2C,0x2B,0x2C,0x2B,0x2C,0x2B,0x2B,0x2C,0x2B,0x2A, | ||
1102 | 0x2B,0x2C,0x2B,0x2B,0x2B,0x2A,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2B,0x2B,0x2C,0x2B, | ||
1103 | 0x2B,0x2B,0x2C,0x2B,0x2C,0x2A,0x2B,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2B,0x2B,0x2B, | ||
1104 | 0x2B,0x2C,0x2B,0x2C,0x2C,0x2B,0x2C,0x2C,0x2C,0x2C,0x2B,0x2C,0x2E,0x2A,0x28,0x29, | ||
1105 | 0x22,0x04,0x28,0x21,0x25,0x23,0x25,0x25,0x25,0x22,0x20,0x25,0x23,0x22,0x22,0x23, | ||
1106 | 0x24,0x26,0x23,0x28,0x2D,0x28,0x29,0x2A,0x2A,0x29,0x29,0x2A,0x2A,0x2A,0x28,0x2A, | ||
1107 | 0x29,0x29,0x29,0x29,0x28,0x28,0x29,0x2A,0x29,0x29,0x2A,0x29,0x2A,0x2A,0x2A,0x2A, | ||
1108 | 0x28,0x29,0x2A,0x28,0x27,0x28,0x28,0x29,0x28,0x29,0x29,0x29,0x29,0x29,0x28,0x2A, | ||
1109 | 0x25,0x25,0x25,0x22,0x26,0x22,0x22,0x23,0x22,0x25,0x24,0x29,0x2B,0x28,0x27,0x28, | ||
1110 | 0x29,0x28,0x28,0x29,0x29,0x27,0x2A,0x27,0x26,0x27,0x28,0x27,0x27,0x27,0x04,0x28, | ||
1111 | 0x2A,0x2A,0x28,0x2A,0x29,0x29,0x29,0x28,0x28,0x28,0x29,0x29,0x27,0x28,0x2A,0x2A, | ||
1112 | 0x29,0x2A,0x28,0x2A,0x2A,0x2A,0x2A,0x2A,0x28,0x28,0x29,0x2A,0x2A,0x2A,0x2C,0x29, | ||
1113 | 0x28,0x29,0x28,0x28,0x2A,0x2A,0x2A,0x2A,0x27,0x28,0x29,0x2A,0x2A,0x29,0x2A,0x29, | ||
1114 | 0x29,0x2A,0x29,0x27,0x26,0x2A,0x29,0x2A,0x29,0x29,0x2A,0x29,0x28,0x2A,0x28,0x27, | ||
1115 | 0x2A,0x2A,0x2A,0x29,0x2A,0x28,0x2A,0x2A,0x2A,0x2A,0x28,0x29,0x2A,0x29,0x29,0x2A, | ||
1116 | 0x29,0x29,0x29,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x29,0x29,0x29,0x2A,0x2A,0x29,0x29, | ||
1117 | 0x29,0x2A,0x29,0x29,0x2C,0x28,0x2A,0x29,0x2A,0x29,0x28,0x29,0x28,0x28,0x2A,0x29, | ||
1118 | 0x29,0x28,0x27,0x29,0x2A,0x2A,0x29,0x2A,0x29,0x29,0x29,0x28,0x2A,0x29,0x29,0x2A, | ||
1119 | 0x29,0x29,0x27,0x27,0x26,0x29,0x29,0x28,0x29,0x2A,0x29,0x29,0x29,0x29,0x2A,0x2A, | ||
1120 | 0x29,0x2A,0x29,0x2A,0x28,0x2B,0x28,0x24,0x25,0x24,0x04,0x28,0x28,0x2D,0x2A,0x29, | ||
1121 | 0x2A,0x2A,0x29,0x2A,0x2A,0x2A,0x29,0x2A,0x2A,0x2A,0x2A,0x29,0x2A,0x29,0x29,0x29, | ||
1122 | 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x29,0x29,0x29,0x2A,0x29,0x2A,0x29,0x2A,0x29,0x29, | ||
1123 | 0x28,0x2A,0x2A,0x29,0x29,0x2A,0x2A,0x2A,0x2A,0x28,0x29,0x2A,0x28,0x2A,0x2A,0x2A, | ||
1124 | 0x2B,0x2A,0x2A,0x2A,0x2A,0x2B,0x2A,0x2A,0x2A,0x29,0x2A,0x29,0x2A,0x2A,0x28,0x29, | ||
1125 | 0x24,0x20,0x25,0x25,0x24,0x24,0x20,0x22,0x23,0x25,0x23,0x26,0x25,0x25,0x23,0x20, | ||
1126 | 0x24,0x21,0x22,0x25,0x24,0x23,0x23,0x25,0x04,0x22,0x28,0x26,0x26,0x26,0x04,0x25, | ||
1127 | 0x26,0x26,0x28,0x25,0x28,0x28,0x22,0x04,0x22,0x26,0x24,0x25,0x26,0x25,0x26,0x25, | ||
1128 | 0x04,0x22,0x25,0x22,0x23,0x23,0x04,0x23,0x25,0x22,0x23,0x23,0x28,0x22,0x23,0x24, | ||
1129 | 0x24,0x24,0x04,0x22,0x25,0x23,0x25,0x22,0x24,0x25,0x25,0x24,0x24,0x22,0x21,0x25, | ||
1130 | 0x23,0x25,0x23,0x04,0x24,0x28,0x04,0x25,0x22,0x22,0x26,0x24,0x24,0x23,0x25,0x25, | ||
1131 | 0x24,0x04,0x23,0x25,0x23,0x20,0x23,0x22,0x20,0x24,0x22,0x25,0x25,0x24,0x25,0x26, | ||
1132 | 0x25,0x26,0x04,0x25,0x25,0x25,0x25,0x28,0x24,0x25,0x26,0x24,0x28,0x28,0x25,0x25, | ||
1133 | 0x25,0x04,0x25,0x28,0x24,0x04,0x23,0x28,0x24,0x23,0x25,0x25,0x26,0x28,0x28,0x04, | ||
1134 | 0x26,0x24,0x24,0x23,0x25,0x28,0x25,0x26,0x04,0x28,0x28,0x28,0x04,0x25,0x23,0x26, | ||
1135 | 0x25,0x25,0x04,0x26,0x26,0x25,0x23,0x28,0x25,0x25,0x23,0x24,0x23,0x26,0x26,0x28, | ||
1136 | 0x26,0x28,0x28,0x28,0x25,0x04,0x04,0x28,0x28,0x25,0x28,0x04,0x26,0x28,0x28,0x04, | ||
1137 | 0x28,0x28,0x28,0x04,0x28,0x28,0x04,0x28,0x04,0x26,0x25,0x23,0x24,0x26,0x24,0x26, | ||
1138 | 0x24,0x22,0x04,0x26,0x04,0x28,0x04,0x04,0x25,0x26,0x24,0x26,0x22,0x24,0x26,0x26, | ||
1139 | 0x28,0x25,0x24,0x24,0x28,0x04,0x26,0x25,0x25,0x26,0x04,0x28,0x04,0x04,0x28,0x26, | ||
1140 | 0x28,0x04,0x25,0x26,0x04,0x22,0x24,0x24,0x26,0x28,0x26,0x24,0x24,0x24,0x04,0x04, | ||
1141 | 0x04,0x26,0x25,0x23,0x25,0x26,0x28,0x04,0x04,0x28,0x26,0x28,0x28,0x28,0x28,0x27, | ||
1142 | 0x28,0x25,0x29,0x25,0x28,0x28,0x26,0x25,0x26,0x26,0x28,0x24,0x26,0x28,0x04,0x28, | ||
1143 | 0x04,0x04,0x04,0x04,0x28,0x28,0x28,0x26,0x04,0x25,0x28,0x28,0x25,0x24,0x28,0x29, | ||
1144 | 0x28,0x25,0x28,0x25,0x28,0x26,0x04,0x27,0x27,0x28,0x27,0x27,0x27,0x28,0x04,0x29, | ||
1145 | 0x23,0x26,0x26,0x04,0x25,0x04,0x26,0x25,0x25,0x23,0x25,0x26,0x25,0x28,0x23,0x22, | ||
1146 | 0x20,0x24,0x25,0x25,0x21,0x26,0x23,0x28,0x24,0x28,0x25,0x28,0x28,0x25,0x04,0x04, | ||
1147 | 0x04,0x24,0x25,0x25,0x24,0x26,0x24,0x28,0x04,0x26,0x25,0x04,0x26,0x25,0x25,0x25, | ||
1148 | 0x21,0x28,0x24,0x23,0x26,0x24,0x24,0x25,0x25,0x23,0x23,0x26,0x23,0x22,0x25,0x28, | ||
1149 | 0x25,0x23,0x24,0x25,0x22,0x04,0x23,0x04,0x22,0x23,0x24,0x24,0x23,0x04,0x24,0x26, | ||
1150 | 0x25,0x23,0x25,0x04,0x22,0x26,0x28,0x23,0x23,0x23,0x25,0x04,0x23,0x22,0x20,0x22, | ||
1151 | 0x20,0x22,0x22,0x04,0x22,0x24,0x24,0x24,0x23,0x23,0x04,0x24,0x22,0x23,0x20,0x20, | ||
1152 | 0x22,0x20,0x23,0x23,0x22,0x21,0x28,0x25,0x24,0x25,0x25,0x25,0x22,0x28,0x28,0x25, | ||
1153 | 0x28,0x28,0x24,0x24,0x25,0x04,0x25,0x25,0x23,0x21,0x22,0x25,0x24,0x25,0x23,0x25, | ||
1154 | 0x25,0x24,0x22,0x22,0x25,0x04,0x25,0x04,0x04,0x28,0x23,0x25,0x04,0x25,0x28,0x24, | ||
1155 | 0x25,0x24,0x04,0x22,0x26,0x25,0x25,0x26,0x25,0x24,0x26,0x26,0x26,0x28,0x28,0x24, | ||
1156 | 0x04,0x27,0x25,0x25,0x29,0x28,0x04,0x29,0x28,0x04,0x28,0x28,0x24,0x28,0x28,0x28, | ||
1157 | 0x28,0x04,0x28,0x28,0x04,0x28,0x25,0x24,0x24,0x25,0x25,0x25,0x04,0x25,0x22,0x22, | ||
1158 | 0x23,0x24,0x28,0x24,0x26,0x25,0x28,0x25,0x26,0x24,0x28,0x04,0x24,0x26,0x22,0x25, | ||
1159 | 0x22,0x22,0x25,0x24,0x25,0x26,0x25,0x28,0x25,0x04,0x25,0x24,0x26,0x26,0x28,0x28, | ||
1160 | 0x25,0x26,0x25,0x25,0x25,0x26,0x04,0x25,0x25,0x04,0x28,0x28,0x28,0x26,0x26,0x26, | ||
1161 | 0x28,0x24,0x25,0x25,0x25,0x25,0x26,0x28,0x26,0x26,0x04,0x25,0x04,0x25,0x25,0x28, | ||
1162 | 0x28,0x2A,0x28,0x28,0x28,0x28,0x28,0x25,0x04,0x26,0x28,0x24,0x26,0x27,0x28,0x28, | ||
1163 | 0x28,0x28,0x04,0x28,0x28,0x24,0x28,0x26,0x04,0x28,0x25,0x29,0x04,0x26,0x04,0x25, | ||
1164 | 0x28,0x28,0x28,0x04,0x26,0x24,0x26,0x28,0x04,0x28,0x04,0x28,0x04,0x04,0x25,0x29, | ||
1165 | 0x24,0x28,0x26,0x28,0x26,0x26,0x25,0x26,0x22,0x28,0x23,0x25,0x25,0x22,0x22,0x20, | ||
1166 | 0x24,0x04,0x25,0x23,0x25,0x04,0x25,0x24,0x22,0x26,0x23,0x04,0x26,0x25,0x24,0x23, | ||
1167 | 0x25,0x04,0x26,0x21,0x28,0x24,0x28,0x25,0x25,0x25,0x25,0x25,0x25,0x24,0x25,0x28, | ||
1168 | 0x24,0x28,0x26,0x25,0x23,0x25,0x22,0x25,0x24,0x22,0x22,0x25,0x28,0x23,0x25,0x24, | ||
1169 | 0x04,0x25,0x24,0x24,0x28,0x25,0x23,0x22,0x25,0x26,0x22,0x25,0x23,0x22,0x25,0x24, | ||
1170 | 0x26,0x26,0x24,0x25,0x23,0x23,0x24,0x26,0x25,0x24,0x22,0x24,0x22,0x25,0x21,0x22, | ||
1171 | 0x20,0x25,0x04,0x22,0x25,0x22,0x25,0x22,0x24,0x04,0x28,0x22,0x22,0x26,0x26,0x24, | ||
1172 | 0x28,0x24,0x23,0x26,0x24,0x23,0x23,0x25,0x24,0x25,0x04,0x04,0x23,0x22,0x23,0x25, | ||
1173 | 0x23,0x23,0x28,0x24,0x21,0x22,0x25,0x24,0x24,0x22,0x22,0x23,0x26,0x24,0x20,0x04, | ||
1174 | 0x24,0x20,0x28,0x25,0x25,0x26,0x26,0x28,0x28,0x26,0x22,0x26,0x04,0x28,0x25,0x26, | ||
1175 | 0x28,0x04,0x25,0x28,0x25,0x23,0x26,0x26,0x24,0x26,0x04,0x04,0x04,0x28,0x28,0x29, | ||
1176 | 0x29,0x04,0x25,0x22,0x28,0x26,0x26,0x28,0x24,0x04,0x28,0x25,0x28,0x04,0x25,0x24, | ||
1177 | 0x25,0x28,0x28,0x29,0x24,0x25,0x24,0x28,0x04,0x26,0x26,0x26,0x22,0x24,0x22,0x24, | ||
1178 | 0x28,0x25,0x04,0x23,0x25,0x04,0x25,0x04,0x28,0x26,0x26,0x25,0x24,0x25,0x04,0x26, | ||
1179 | 0x28,0x04,0x24,0x26,0x28,0x04,0x25,0x28,0x28,0x26,0x27,0x22,0x04,0x24,0x28,0x28, | ||
1180 | 0x26,0x26,0x25,0x28,0x28,0x26,0x26,0x26,0x26,0x24,0x25,0x04,0x28,0x04,0x04,0x26, | ||
1181 | 0x28,0x27,0x23,0x24,0x26,0x24,0x28,0x26,0x28,0x28,0x28,0x29,0x29,0x26,0x29,0x29, | ||
1182 | 0x28,0x28,0x26,0x28,0x24,0x28,0x28,0x28,0x26,0x28,0x28,0x28,0x04,0x25,0x25,0x25, | ||
1183 | 0x28,0x29,0x28,0x28,0x28,0x04,0x29,0x28,0x28,0x28,0x28,0x26,0x28,0x28,0x28,0x27, | ||
1184 | 0x26,0x04,0x24,0x25,0x04,0x25,0x26,0x28,0x28,0x28,0x28,0x25,0x26,0x28,0x26,0x29, | ||
1185 | 0x28,0x04,0x25,0x26,0x23,0x22,0x24,0x23,0x04,0x25,0x28,0x28,0x28,0x23,0x21,0x24, | ||
1186 | 0x25,0x25,0x22,0x24,0x22,0x25,0x22,0x26,0x21,0x26,0x24,0x25,0x25,0x24,0x23,0x23, | ||
1187 | 0x26,0x24,0x25,0x25,0x25,0x28,0x26,0x25,0x22,0x26,0x22,0x22,0x26,0x25,0x26,0x26, | ||
1188 | 0x28,0x26,0x24,0x21,0x25,0x26,0x22,0x26,0x23,0x24,0x25,0x23,0x24,0x23,0x21,0x22, | ||
1189 | 0x23,0x25,0x26,0x25,0x25,0x22,0x26,0x22,0x23,0x23,0x24,0x04,0x28,0x25,0x25,0x28, | ||
1190 | 0x22,0x23,0x23,0x24,0x26,0x22,0x25,0x22,0x22,0x23,0x24,0x24,0x25,0x25,0x25,0x24, | ||
1191 | 0x22,0x24,0x25,0x23,0x20,0x25,0x21,0x21,0x23,0x26,0x04,0x25,0x23,0x28,0x22,0x04, | ||
1192 | 0x25,0x28,0x23,0x04,0x20,0x25,0x22,0x20,0x23,0x26,0x04,0x22,0x25,0x23,0x25,0x24, | ||
1193 | 0x24,0x24,0x23,0x25,0x22,0x22,0x22,0x25,0x25,0x22,0x22,0x20,0x22,0x20,0x22,0x26, | ||
1194 | 0x23,0x26,0x22,0x24,0x25,0x25,0x26,0x25,0x28,0x26,0x23,0x23,0x25,0x24,0x04,0x25, | ||
1195 | 0x23,0x28,0x22,0x26,0x24,0x04,0x28,0x04,0x26,0x24,0x28,0x28,0x25,0x04,0x25,0x28, | ||
1196 | 0x25,0x04,0x25,0x25,0x28,0x26,0x04,0x28,0x25,0x25,0x28,0x28,0x04,0x28,0x23,0x28, | ||
1197 | 0x22,0x28,0x28,0x25,0x24,0x28,0x26,0x24,0x26,0x04,0x28,0x23,0x24,0x25,0x25,0x25, | ||
1198 | 0x24,0x25,0x22,0x25,0x26,0x28,0x25,0x24,0x26,0x25,0x28,0x28,0x04,0x28,0x24,0x25, | ||
1199 | 0x22,0x22,0x24,0x24,0x24,0x26,0x26,0x28,0x28,0x28,0x28,0x24,0x28,0x28,0x28,0x26, | ||
1200 | 0x26,0x26,0x24,0x22,0x28,0x26,0x27,0x26,0x28,0x28,0x28,0x28,0x27,0x25,0x26,0x26, | ||
1201 | 0x28,0x28,0x26,0x28,0x25,0x28,0x04,0x28,0x04,0x28,0x28,0x28,0x28,0x26,0x28,0x25, | ||
1202 | 0x25,0x28,0x25,0x28,0x25,0x28,0x28,0x29,0x29,0x26,0x28,0x28,0x24,0x26,0x29,0x28, | ||
1203 | 0x28,0x04,0x28,0x24,0x04,0x26,0x28,0x28,0x28,0x26,0x25,0x27,0x26,0x26,0x26,0x25, | ||
1204 | 0x26,0x04,0x04,0x28,0x28,0x04,0x24,0x04,0x04,0x23,0x25,0x22,0x24,0x28,0x26,0x29, | ||
1205 | 0x28,0x28,0x23,0x28,0x24,0x28,0x25,0x28,0x26,0x22,0x22,0x24,0x24,0x25,0x25,0x24, | ||
1206 | 0x22,0x26,0x25,0x26,0x24,0x24,0x25,0x04,0x26,0x23,0x23,0x21,0x04,0x26,0x23,0x26, | ||
1207 | 0x25,0x28,0x21,0x04,0x24,0x25,0x26,0x04,0x26,0x23,0x24,0x25,0x25,0x24,0x25,0x25, | ||
1208 | 0x26,0x25,0x28,0x26,0x28,0x28,0x25,0x25,0x04,0x25,0x24,0x25,0x28,0x25,0x25,0x04, | ||
1209 | 0x22,0x25,0x22,0x21,0x22,0x22,0x24,0x23,0x22,0x24,0x22,0x21,0x25,0x21,0x22,0x23, | ||
1210 | 0x23,0x23,0x24,0x22,0x23,0x23,0x28,0x22,0x23,0x25,0x23,0x25,0x24,0x25,0x04,0x25, | ||
1211 | 0x25,0x22,0x22,0x24,0x21,0x24,0x25,0x24,0x24,0x22,0x28,0x25,0x24,0x25,0x23,0x23, | ||
1212 | 0x22,0x24,0x24,0x04,0x24,0x22,0x24,0x24,0x24,0x28,0x25,0x22,0x26,0x21,0x26,0x23, | ||
1213 | 0x24,0x23,0x24,0x22,0x26,0x22,0x25,0x20,0x23,0x25,0x23,0x24,0x26,0x25,0x28,0x25, | ||
1214 | 0x25,0x25,0x28,0x28,0x26,0x25,0x28,0x25,0x25,0x28,0x04,0x28,0x29,0x28,0x28,0x26, | ||
1215 | 0x25,0x26,0x26,0x28,0x28,0x25,0x24,0x25,0x28,0x04,0x28,0x04,0x22,0x25,0x26,0x26, | ||
1216 | 0x28,0x28,0x24,0x26,0x28,0x26,0x28,0x26,0x28,0x28,0x28,0x28,0x25,0x28,0x28,0x28, | ||
1217 | 0x28,0x25,0x04,0x28,0x25,0x26,0x26,0x26,0x04,0x26,0x25,0x25,0x24,0x24,0x04,0x04, | ||
1218 | 0x27,0x25,0x28,0x28,0x26,0x28,0x24,0x24,0x25,0x27,0x25,0x04,0x28,0x28,0x26,0x23, | ||
1219 | 0x24,0x28,0x28,0x28,0x28,0x04,0x04,0x26,0x23,0x28,0x22,0x26,0x28,0x24,0x25,0x25, | ||
1220 | 0x23,0x25,0x28,0x28,0x25,0x28,0x28,0x26,0x28,0x28,0x27,0x26,0x28,0x26,0x24,0x26, | ||
1221 | 0x28,0x28,0x28,0x28,0x2A,0x28,0x29,0x29,0x28,0x28,0x28,0x28,0x26,0x28,0x28,0x29, | ||
1222 | 0x23,0x28,0x26,0x28,0x28,0x04,0x28,0x04,0x28,0x28,0x28,0x28,0x04,0x26,0x04,0x28, | ||
1223 | 0x28,0x28,0x28,0x28,0x27,0x25,0x26,0x24,0x25,0x28,0x28,0x28,0x26,0x25,0x26,0x24, | ||
1224 | 0x04,0x26,0x27,0x28,0x28,0x28,0x04,0x28,0x28,0x27,0x27,0x25,0x25,0x27,0x04,0x29, | ||
1225 | 0x23,0x23,0x23,0x21,0x23,0x24,0x25,0x24,0x23,0x25,0x20,0x20,0x24,0x21,0x25,0x22, | ||
1226 | 0x25,0x25,0x22,0x24,0x23,0x24,0x26,0x22,0x24,0x23,0x26,0x25,0x24,0x25,0x22,0x23, | ||
1227 | 0x25,0x04,0x28,0x26,0x25,0x25,0x24,0x25,0x26,0x24,0x25,0x26,0x25,0x22,0x25,0x26, | ||
1228 | 0x22,0x23,0x24,0x26,0x04,0x25,0x25,0x28,0x23,0x25,0x25,0x25,0x04,0x23,0x22,0x04, | ||
1229 | 0x24,0x25,0x20,0x24,0x20,0x20,0x20,0x25,0x20,0x20,0x24,0x20,0x22,0x20,0x24,0x20, | ||
1230 | 0x25,0x20,0x25,0x20,0x24,0x20,0x23,0x25,0x24,0x23,0x24,0x28,0x24,0x25,0x25,0x23, | ||
1231 | 0x25,0x04,0x26,0x25,0x26,0x22,0x23,0x25,0x24,0x21,0x24,0x25,0x22,0x22,0x04,0x22, | ||
1232 | 0x25,0x24,0x22,0x22,0x04,0x25,0x26,0x23,0x21,0x22,0x21,0x23,0x21,0x25,0x20,0x25, | ||
1233 | 0x24,0x26,0x22,0x26,0x26,0x23,0x26,0x24,0x23,0x24,0x23,0x28,0x28,0x23,0x22,0x22, | ||
1234 | 0x26,0x04,0x28,0x04,0x26,0x04,0x24,0x28,0x28,0x26,0x25,0x28,0x27,0x04,0x28,0x29, | ||
1235 | 0x04,0x28,0x04,0x28,0x26,0x26,0x25,0x26,0x28,0x28,0x26,0x25,0x28,0x26,0x25,0x28, | ||
1236 | 0x26,0x04,0x23,0x25,0x28,0x25,0x26,0x28,0x24,0x28,0x26,0x28,0x28,0x28,0x28,0x04, | ||
1237 | 0x26,0x28,0x24,0x28,0x04,0x26,0x28,0x28,0x04,0x26,0x28,0x25,0x25,0x25,0x26,0x04, | ||
1238 | 0x24,0x04,0x28,0x28,0x25,0x28,0x04,0x28,0x28,0x28,0x28,0x28,0x26,0x25,0x28,0x22, | ||
1239 | 0x24,0x24,0x26,0x28,0x28,0x25,0x28,0x25,0x25,0x23,0x24,0x28,0x26,0x26,0x24,0x28, | ||
1240 | 0x24,0x28,0x25,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x04,0x28,0x23,0x28,0x27,0x28, | ||
1241 | 0x25,0x28,0x28,0x28,0x28,0x28,0x26,0x28,0x24,0x25,0x04,0x28,0x28,0x28,0x29,0x28, | ||
1242 | 0x25,0x29,0x25,0x26,0x25,0x28,0x25,0x28,0x29,0x29,0x29,0x28,0x28,0x04,0x28,0x28, | ||
1243 | 0x28,0x26,0x25,0x23,0x28,0x25,0x28,0x26,0x26,0x26,0x26,0x04,0x29,0x28,0x26,0x28, | ||
1244 | 0x26,0x29,0x28,0x28,0x04,0x28,0x26,0x28,0x28,0x28,0x04,0x04,0x28,0x28,0x24,0x29, | ||
1245 | 0x26,0x23,0x22,0x22,0x24,0x25,0x20,0x24,0x22,0x25,0x24,0x04,0x22,0x22,0x20,0x23, | ||
1246 | 0x24,0x24,0x24,0x04,0x23,0x04,0x25,0x22,0x25,0x23,0x25,0x26,0x24,0x24,0x23,0x24, | ||
1247 | 0x28,0x26,0x25,0x25,0x26,0x26,0x25,0x23,0x24,0x25,0x28,0x22,0x24,0x25,0x25,0x24, | ||
1248 | 0x28,0x24,0x28,0x26,0x28,0x26,0x25,0x26,0x25,0x25,0x23,0x24,0x23,0x22,0x24,0x26, | ||
1249 | 0x25,0x25,0x25,0x25,0x24,0x23,0x25,0x22,0x23,0x23,0x26,0x28,0x22,0x23,0x22,0x24, | ||
1250 | 0x25,0x23,0x25,0x25,0x22,0x20,0x20,0x04,0x22,0x22,0x25,0x22,0x24,0x23,0x26,0x23, | ||
1251 | 0x04,0x22,0x25,0x23,0x24,0x28,0x24,0x25,0x25,0x21,0x23,0x25,0x22,0x22,0x22,0x04, | ||
1252 | 0x23,0x25,0x22,0x25,0x21,0x22,0x04,0x22,0x22,0x22,0x22,0x23,0x24,0x25,0x24,0x04, | ||
1253 | 0x25,0x04,0x24,0x25,0x24,0x25,0x23,0x22,0x04,0x04,0x24,0x28,0x28,0x23,0x28,0x25, | ||
1254 | 0x25,0x28,0x25,0x26,0x24,0x26,0x28,0x26,0x25,0x24,0x25,0x26,0x25,0x25,0x04,0x26, | ||
1255 | 0x04,0x28,0x25,0x04,0x26,0x28,0x26,0x26,0x28,0x04,0x25,0x26,0x26,0x25,0x25,0x24, | ||
1256 | 0x24,0x24,0x04,0x28,0x25,0x28,0x26,0x04,0x24,0x28,0x28,0x28,0x23,0x29,0x26,0x28, | ||
1257 | 0x28,0x28,0x25,0x28,0x28,0x25,0x25,0x25,0x22,0x22,0x28,0x04,0x28,0x24,0x04,0x25, | ||
1258 | 0x04,0x28,0x04,0x04,0x28,0x25,0x04,0x28,0x28,0x28,0x26,0x28,0x04,0x26,0x25,0x26, | ||
1259 | 0x25,0x25,0x25,0x28,0x25,0x25,0x28,0x04,0x28,0x26,0x28,0x25,0x25,0x28,0x04,0x25, | ||
1260 | 0x28,0x29,0x28,0x29,0x28,0x25,0x28,0x26,0x26,0x28,0x04,0x26,0x04,0x04,0x25,0x28, | ||
1261 | 0x25,0x28,0x28,0x26,0x26,0x04,0x28,0x25,0x25,0x26,0x25,0x24,0x28,0x25,0x04,0x29, | ||
1262 | 0x28,0x28,0x28,0x04,0x28,0x04,0x24,0x24,0x28,0x28,0x27,0x25,0x28,0x04,0x28,0x28, | ||
1263 | 0x29,0x25,0x28,0x29,0x29,0x25,0x28,0x28,0x28,0x28,0x29,0x28,0x29,0x28,0x29,0x28, | ||
1264 | 0x28,0x29,0x28,0x25,0x25,0x29,0x26,0x2A,0x29,0x2A,0x29,0x28,0x26,0x04,0x28,0x29, | ||
1265 | 0x23,0x25,0x23,0x21,0x04,0x28,0x25,0x24,0x22,0x25,0x22,0x28,0x26,0x25,0x28,0x25, | ||
1266 | 0x26,0x22,0x25,0x25,0x25,0x25,0x23,0x25,0x25,0x22,0x22,0x25,0x22,0x22,0x04,0x22, | ||
1267 | 0x25,0x25,0x23,0x26,0x23,0x25,0x22,0x25,0x25,0x25,0x22,0x22,0x04,0x21,0x23,0x24, | ||
1268 | 0x25,0x23,0x25,0x24,0x22,0x22,0x04,0x04,0x04,0x25,0x20,0x22,0x28,0x25,0x25,0x28, | ||
1269 | 0x25,0x26,0x25,0x26,0x24,0x24,0x23,0x24,0x21,0x24,0x24,0x23,0x23,0x22,0x25,0x23, | ||
1270 | 0x24,0x04,0x04,0x26,0x22,0x28,0x22,0x20,0x25,0x20,0x20,0x20,0x24,0x23,0x22,0x23, | ||
1271 | 0x28,0x22,0x24,0x23,0x22,0x25,0x23,0x25,0x21,0x25,0x22,0x24,0x28,0x26,0x04,0x04, | ||
1272 | 0x22,0x24,0x23,0x24,0x22,0x24,0x23,0x04,0x25,0x22,0x22,0x26,0x23,0x25,0x23,0x04, | ||
1273 | 0x23,0x25,0x23,0x26,0x24,0x24,0x04,0x26,0x04,0x22,0x28,0x25,0x04,0x26,0x24,0x04, | ||
1274 | 0x28,0x28,0x04,0x25,0x25,0x26,0x25,0x26,0x24,0x23,0x24,0x25,0x04,0x28,0x28,0x26, | ||
1275 | 0x25,0x25,0x26,0x25,0x26,0x28,0x04,0x25,0x28,0x26,0x26,0x24,0x26,0x24,0x26,0x25, | ||
1276 | 0x04,0x25,0x24,0x24,0x23,0x26,0x26,0x26,0x28,0x28,0x28,0x26,0x26,0x28,0x29,0x28, | ||
1277 | 0x28,0x29,0x29,0x28,0x28,0x26,0x26,0x22,0x24,0x04,0x28,0x24,0x25,0x26,0x28,0x25, | ||
1278 | 0x25,0x23,0x24,0x04,0x28,0x04,0x28,0x28,0x28,0x25,0x04,0x25,0x25,0x26,0x25,0x26, | ||
1279 | 0x24,0x25,0x25,0x04,0x25,0x23,0x26,0x28,0x24,0x04,0x2A,0x04,0x28,0x24,0x2A,0x28, | ||
1280 | 0x28,0x28,0x29,0x28,0x29,0x28,0x24,0x25,0x25,0x25,0x28,0x04,0x28,0x28,0x25,0x25, | ||
1281 | 0x29,0x28,0x29,0x25,0x28,0x28,0x25,0x28,0x04,0x24,0x28,0x28,0x28,0x04,0x26,0x25, | ||
1282 | 0x26,0x04,0x27,0x26,0x25,0x04,0x28,0x25,0x25,0x25,0x28,0x04,0x04,0x23,0x25,0x26, | ||
1283 | 0x28,0x25,0x28,0x28,0x28,0x28,0x04,0x28,0x25,0x28,0x28,0x28,0x28,0x29,0x28,0x26, | ||
1284 | 0x28,0x2A,0x04,0x29,0x29,0x29,0x28,0x28,0x29,0x28,0x29,0x04,0x28,0x29,0x28,0x29, | ||
1285 | 0x28,0x25,0x28,0x22,0x28,0x24,0x25,0x28,0x04,0x22,0x26,0x22,0x22,0x24,0x26,0x28, | ||
1286 | 0x28,0x23,0x22,0x23,0x20,0x26,0x25,0x26,0x04,0x22,0x25,0x23,0x04,0x24,0x23,0x04, | ||
1287 | 0x23,0x24,0x24,0x24,0x22,0x25,0x25,0x22,0x23,0x22,0x21,0x24,0x24,0x20,0x22,0x20, | ||
1288 | 0x04,0x20,0x20,0x22,0x24,0x22,0x25,0x22,0x25,0x25,0x25,0x24,0x25,0x24,0x24,0x24, | ||
1289 | 0x04,0x04,0x28,0x25,0x25,0x25,0x24,0x22,0x25,0x25,0x24,0x22,0x22,0x25,0x24,0x28, | ||
1290 | 0x25,0x25,0x23,0x22,0x25,0x22,0x04,0x26,0x22,0x25,0x04,0x25,0x22,0x24,0x25,0x24, | ||
1291 | 0x20,0x20,0x25,0x26,0x24,0x22,0x20,0x22,0x22,0x25,0x22,0x25,0x28,0x25,0x22,0x25, | ||
1292 | 0x23,0x28,0x22,0x25,0x22,0x24,0x24,0x25,0x25,0x23,0x25,0x23,0x24,0x28,0x04,0x24, | ||
1293 | 0x28,0x04,0x24,0x25,0x04,0x25,0x25,0x28,0x28,0x25,0x26,0x23,0x28,0x26,0x28,0x25, | ||
1294 | 0x23,0x26,0x04,0x26,0x04,0x28,0x26,0x28,0x25,0x25,0x24,0x28,0x04,0x26,0x28,0x28, | ||
1295 | 0x26,0x25,0x25,0x28,0x04,0x28,0x28,0x28,0x28,0x24,0x04,0x24,0x04,0x04,0x23,0x28, | ||
1296 | 0x04,0x28,0x04,0x26,0x28,0x28,0x26,0x28,0x04,0x2A,0x28,0x28,0x25,0x28,0x28,0x28, | ||
1297 | 0x25,0x29,0x2A,0x26,0x04,0x28,0x28,0x25,0x25,0x28,0x26,0x04,0x28,0x28,0x04,0x25, | ||
1298 | 0x28,0x26,0x28,0x28,0x25,0x29,0x28,0x04,0x25,0x28,0x25,0x28,0x22,0x25,0x26,0x24, | ||
1299 | 0x28,0x26,0x27,0x04,0x26,0x28,0x28,0x29,0x28,0x28,0x26,0x25,0x25,0x28,0x28,0x28, | ||
1300 | 0x28,0x28,0x04,0x28,0x26,0x26,0x26,0x24,0x28,0x28,0x24,0x25,0x28,0x26,0x28,0x2A, | ||
1301 | 0x28,0x24,0x26,0x29,0x25,0x29,0x28,0x23,0x28,0x25,0x28,0x25,0x25,0x28,0x28,0x28, | ||
1302 | 0x23,0x28,0x28,0x26,0x25,0x26,0x04,0x26,0x28,0x25,0x25,0x24,0x04,0x28,0x28,0x26, | ||
1303 | 0x25,0x04,0x28,0x28,0x28,0x04,0x28,0x28,0x26,0x29,0x28,0x28,0x29,0x29,0x28,0x29, | ||
1304 | 0x04,0x28,0x04,0x28,0x28,0x28,0x26,0x28,0x24,0x28,0x24,0x28,0x28,0x29,0x25,0x29, | ||
1305 | 0x26,0x25,0x23,0x22,0x22,0x22,0x23,0x22,0x23,0x25,0x04,0x04,0x04,0x25,0x26,0x04, | ||
1306 | 0x22,0x25,0x26,0x04,0x23,0x22,0x22,0x24,0x20,0x22,0x04,0x22,0x04,0x21,0x22,0x23, | ||
1307 | 0x25,0x24,0x26,0x28,0x21,0x21,0x20,0x25,0x24,0x22,0x20,0x25,0x04,0x26,0x23,0x24, | ||
1308 | 0x26,0x24,0x26,0x20,0x22,0x20,0x24,0x20,0x22,0x04,0x26,0x22,0x22,0x24,0x23,0x22, | ||
1309 | 0x28,0x28,0x25,0x04,0x26,0x25,0x04,0x28,0x28,0x26,0x04,0x28,0x23,0x28,0x04,0x25, | ||
1310 | 0x21,0x25,0x23,0x23,0x24,0x21,0x24,0x26,0x25,0x23,0x23,0x26,0x25,0x24,0x25,0x24, | ||
1311 | 0x22,0x25,0x26,0x23,0x28,0x26,0x25,0x23,0x26,0x23,0x23,0x28,0x22,0x25,0x23,0x25, | ||
1312 | 0x24,0x23,0x23,0x23,0x25,0x25,0x26,0x26,0x22,0x24,0x26,0x25,0x26,0x25,0x24,0x23, | ||
1313 | 0x23,0x26,0x28,0x04,0x28,0x28,0x27,0x25,0x28,0x26,0x28,0x04,0x26,0x04,0x28,0x25, | ||
1314 | 0x28,0x26,0x26,0x04,0x26,0x04,0x04,0x04,0x25,0x26,0x26,0x26,0x04,0x04,0x28,0x25, | ||
1315 | 0x25,0x28,0x26,0x04,0x04,0x24,0x04,0x04,0x04,0x26,0x28,0x26,0x28,0x28,0x22,0x04, | ||
1316 | 0x04,0x26,0x25,0x28,0x29,0x26,0x29,0x25,0x04,0x04,0x28,0x28,0x29,0x2A,0x28,0x2A, | ||
1317 | 0x25,0x2A,0x28,0x28,0x2A,0x29,0x28,0x25,0x25,0x2A,0x28,0x04,0x25,0x25,0x28,0x04, | ||
1318 | 0x28,0x28,0x28,0x28,0x28,0x29,0x26,0x28,0x26,0x28,0x25,0x22,0x04,0x28,0x29,0x28, | ||
1319 | 0x28,0x28,0x04,0x28,0x28,0x28,0x25,0x24,0x28,0x27,0x28,0x04,0x28,0x28,0x26,0x25, | ||
1320 | 0x23,0x25,0x28,0x26,0x28,0x28,0x28,0x25,0x04,0x26,0x28,0x28,0x29,0x25,0x04,0x28, | ||
1321 | 0x28,0x2A,0x28,0x28,0x04,0x04,0x28,0x28,0x28,0x26,0x26,0x28,0x04,0x24,0x24,0x25, | ||
1322 | 0x26,0x04,0x26,0x28,0x28,0x28,0x25,0x25,0x28,0x25,0x25,0x26,0x26,0x25,0x25,0x24, | ||
1323 | 0x28,0x28,0x04,0x25,0x28,0x28,0x25,0x25,0x28,0x28,0x28,0x29,0x28,0x04,0x25,0x29, | ||
1324 | 0x26,0x25,0x25,0x28,0x28,0x25,0x04,0x28,0x25,0x04,0x26,0x26,0x24,0x25,0x28,0x29, | ||
1325 | 0x04,0x28,0x23,0x25,0x25,0x26,0x23,0x28,0x25,0x28,0x25,0x23,0x04,0x23,0x26,0x23, | ||
1326 | 0x26,0x28,0x22,0x04,0x23,0x23,0x24,0x24,0x22,0x22,0x22,0x20,0x24,0x23,0x20,0x22, | ||
1327 | 0x04,0x25,0x25,0x23,0x23,0x22,0x20,0x20,0x21,0x24,0x23,0x04,0x24,0x28,0x22,0x25, | ||
1328 | 0x24,0x26,0x22,0x20,0x20,0x20,0x23,0x24,0x25,0x22,0x20,0x20,0x25,0x24,0x25,0x24, | ||
1329 | 0x23,0x26,0x23,0x25,0x28,0x25,0x26,0x25,0x23,0x26,0x24,0x28,0x04,0x26,0x24,0x26, | ||
1330 | 0x24,0x24,0x25,0x24,0x25,0x04,0x22,0x24,0x22,0x24,0x25,0x22,0x24,0x23,0x24,0x23, | ||
1331 | 0x26,0x23,0x24,0x22,0x23,0x28,0x04,0x28,0x24,0x25,0x25,0x25,0x23,0x23,0x24,0x25, | ||
1332 | 0x04,0x25,0x28,0x26,0x23,0x24,0x04,0x24,0x25,0x28,0x26,0x23,0x25,0x22,0x23,0x26, | ||
1333 | 0x26,0x28,0x23,0x28,0x24,0x24,0x04,0x22,0x04,0x23,0x24,0x24,0x26,0x04,0x28,0x04, | ||
1334 | 0x04,0x28,0x26,0x04,0x22,0x24,0x28,0x24,0x25,0x26,0x04,0x27,0x25,0x25,0x28,0x28, | ||
1335 | 0x28,0x04,0x28,0x26,0x04,0x25,0x28,0x23,0x28,0x26,0x04,0x04,0x24,0x25,0x28,0x26, | ||
1336 | 0x25,0x28,0x25,0x28,0x26,0x26,0x29,0x28,0x28,0x29,0x26,0x04,0x26,0x28,0x28,0x29, | ||
1337 | 0x26,0x2A,0x04,0x28,0x04,0x28,0x28,0x27,0x28,0x28,0x28,0x29,0x25,0x22,0x22,0x26, | ||
1338 | 0x29,0x28,0x26,0x28,0x28,0x28,0x04,0x25,0x28,0x26,0x29,0x04,0x2A,0x28,0x28,0x28, | ||
1339 | 0x28,0x28,0x26,0x26,0x28,0x25,0x28,0x28,0x23,0x28,0x28,0x28,0x26,0x25,0x27,0x28, | ||
1340 | 0x27,0x27,0x28,0x25,0x04,0x28,0x28,0x04,0x28,0x04,0x25,0x28,0x29,0x28,0x2A,0x28, | ||
1341 | 0x28,0x2A,0x28,0x28,0x2A,0x24,0x04,0x28,0x25,0x04,0x28,0x25,0x26,0x25,0x24,0x25, | ||
1342 | 0x26,0x25,0x25,0x23,0x28,0x26,0x25,0x25,0x04,0x28,0x26,0x26,0x04,0x04,0x26,0x04, | ||
1343 | 0x26,0x22,0x04,0x04,0x28,0x28,0x28,0x28,0x28,0x28,0x04,0x28,0x25,0x27,0x25,0x28, | ||
1344 | 0x24,0x22,0x26,0x28,0x26,0x04,0x28,0x04,0x28,0x25,0x28,0x28,0x04,0x25,0x24,0x29, | ||
1345 | 0x28,0x25,0x23,0x25,0x22,0x25,0x28,0x26,0x23,0x24,0x04,0x23,0x28,0x22,0x25,0x22, | ||
1346 | 0x28,0x22,0x24,0x25,0x26,0x25,0x25,0x22,0x22,0x22,0x23,0x26,0x23,0x26,0x22,0x24, | ||
1347 | 0x04,0x25,0x22,0x25,0x23,0x22,0x25,0x28,0x22,0x24,0x25,0x23,0x24,0x23,0x25,0x25, | ||
1348 | 0x25,0x21,0x23,0x20,0x20,0x22,0x22,0x23,0x28,0x22,0x23,0x25,0x22,0x28,0x24,0x26, | ||
1349 | 0x23,0x25,0x28,0x26,0x26,0x26,0x28,0x28,0x25,0x25,0x25,0x28,0x28,0x25,0x26,0x28, | ||
1350 | 0x24,0x28,0x24,0x23,0x28,0x28,0x26,0x04,0x26,0x28,0x04,0x26,0x24,0x24,0x04,0x25, | ||
1351 | 0x25,0x25,0x04,0x26,0x04,0x26,0x24,0x28,0x25,0x25,0x23,0x25,0x24,0x25,0x25,0x25, | ||
1352 | 0x24,0x25,0x25,0x23,0x22,0x25,0x25,0x25,0x04,0x23,0x04,0x28,0x26,0x26,0x28,0x04, | ||
1353 | 0x28,0x28,0x28,0x28,0x24,0x28,0x24,0x04,0x04,0x04,0x28,0x28,0x24,0x25,0x04,0x26, | ||
1354 | 0x24,0x25,0x26,0x04,0x26,0x28,0x28,0x28,0x28,0x25,0x26,0x29,0x04,0x28,0x26,0x28, | ||
1355 | 0x28,0x26,0x25,0x28,0x04,0x25,0x24,0x28,0x28,0x26,0x28,0x25,0x25,0x24,0x26,0x25, | ||
1356 | 0x24,0x28,0x27,0x28,0x26,0x04,0x25,0x29,0x28,0x28,0x28,0x04,0x04,0x28,0x26,0x29, | ||
1357 | 0x29,0x29,0x04,0x26,0x25,0x28,0x24,0x24,0x24,0x04,0x28,0x04,0x28,0x24,0x28,0x28, | ||
1358 | 0x27,0x29,0x04,0x26,0x26,0x25,0x28,0x25,0x29,0x04,0x29,0x28,0x28,0x28,0x28,0x28, | ||
1359 | 0x2B,0x29,0x2B,0x2C,0x29,0x28,0x26,0x04,0x28,0x25,0x28,0x26,0x27,0x28,0x28,0x28, | ||
1360 | 0x04,0x25,0x24,0x28,0x28,0x04,0x28,0x25,0x25,0x25,0x26,0x28,0x28,0x28,0x29,0x29, | ||
1361 | 0x28,0x28,0x22,0x28,0x28,0x28,0x28,0x28,0x24,0x24,0x26,0x26,0x25,0x25,0x04,0x28, | ||
1362 | 0x04,0x25,0x28,0x24,0x28,0x25,0x04,0x28,0x26,0x24,0x26,0x04,0x28,0x26,0x26,0x25, | ||
1363 | 0x28,0x28,0x28,0x29,0x25,0x28,0x25,0x28,0x28,0x26,0x04,0x25,0x04,0x28,0x28,0x28, | ||
1364 | 0x04,0x25,0x25,0x28,0x28,0x24,0x28,0x28,0x26,0x24,0x28,0x24,0x26,0x25,0x28,0x29, | ||
1365 | 0x04,0x23,0x22,0x24,0x25,0x25,0x23,0x25,0x23,0x23,0x22,0x04,0x04,0x24,0x26,0x24, | ||
1366 | 0x23,0x24,0x04,0x04,0x04,0x25,0x22,0x28,0x25,0x25,0x22,0x25,0x26,0x25,0x22,0x23, | ||
1367 | 0x22,0x25,0x23,0x25,0x04,0x24,0x23,0x25,0x22,0x28,0x22,0x25,0x22,0x25,0x28,0x22, | ||
1368 | 0x25,0x26,0x25,0x20,0x26,0x04,0x20,0x23,0x23,0x25,0x25,0x25,0x24,0x22,0x25,0x24, | ||
1369 | 0x25,0x24,0x25,0x28,0x04,0x25,0x25,0x24,0x28,0x25,0x28,0x28,0x26,0x25,0x24,0x23, | ||
1370 | 0x26,0x24,0x28,0x25,0x28,0x27,0x28,0x25,0x27,0x26,0x26,0x26,0x26,0x25,0x04,0x26, | ||
1371 | 0x28,0x25,0x25,0x28,0x28,0x26,0x04,0x04,0x26,0x24,0x24,0x24,0x04,0x24,0x28,0x25, | ||
1372 | 0x24,0x24,0x04,0x26,0x26,0x25,0x26,0x25,0x23,0x28,0x25,0x25,0x25,0x29,0x04,0x24, | ||
1373 | 0x28,0x28,0x24,0x25,0x04,0x22,0x26,0x28,0x26,0x04,0x28,0x25,0x25,0x28,0x28,0x24, | ||
1374 | 0x04,0x26,0x04,0x04,0x04,0x26,0x04,0x27,0x25,0x28,0x28,0x28,0x28,0x26,0x26,0x29, | ||
1375 | 0x26,0x28,0x28,0x28,0x28,0x25,0x24,0x28,0x28,0x28,0x26,0x25,0x28,0x25,0x28,0x28, | ||
1376 | 0x28,0x26,0x26,0x28,0x28,0x25,0x2A,0x28,0x28,0x26,0x25,0x25,0x24,0x25,0x24,0x25, | ||
1377 | 0x23,0x26,0x28,0x25,0x24,0x22,0x25,0x25,0x25,0x25,0x28,0x04,0x25,0x04,0x26,0x28, | ||
1378 | 0x04,0x26,0x28,0x29,0x28,0x29,0x28,0x25,0x25,0x28,0x04,0x28,0x28,0x26,0x28,0x28, | ||
1379 | 0x28,0x25,0x2B,0x29,0x29,0x04,0x04,0x28,0x24,0x25,0x29,0x28,0x25,0x28,0x28,0x28, | ||
1380 | 0x28,0x22,0x26,0x25,0x26,0x28,0x28,0x28,0x24,0x28,0x25,0x24,0x24,0x28,0x04,0x26, | ||
1381 | 0x28,0x23,0x28,0x29,0x28,0x04,0x26,0x26,0x04,0x24,0x24,0x25,0x25,0x26,0x24,0x25, | ||
1382 | 0x22,0x04,0x25,0x26,0x26,0x22,0x28,0x24,0x24,0x26,0x28,0x28,0x28,0x26,0x28,0x26, | ||
1383 | 0x26,0x28,0x28,0x04,0x04,0x24,0x04,0x25,0x25,0x04,0x25,0x28,0x26,0x25,0x25,0x25, | ||
1384 | 0x04,0x04,0x25,0x25,0x26,0x24,0x24,0x25,0x28,0x26,0x25,0x25,0x26,0x28,0x25,0x29, | ||
1385 | 0x23,0x04,0x25,0x24,0x25,0x26,0x25,0x26,0x25,0x25,0x28,0x25,0x28,0x28,0x24,0x25, | ||
1386 | 0x26,0x25,0x04,0x25,0x25,0x22,0x22,0x25,0x25,0x24,0x26,0x04,0x22,0x24,0x24,0x24, | ||
1387 | 0x23,0x23,0x26,0x22,0x25,0x24,0x25,0x28,0x25,0x22,0x26,0x26,0x25,0x24,0x28,0x04, | ||
1388 | 0x25,0x22,0x26,0x23,0x26,0x25,0x04,0x28,0x04,0x26,0x04,0x28,0x25,0x22,0x22,0x24, | ||
1389 | 0x20,0x22,0x24,0x25,0x24,0x23,0x25,0x04,0x25,0x28,0x28,0x28,0x28,0x04,0x25,0x28, | ||
1390 | 0x27,0x25,0x25,0x26,0x25,0x24,0x27,0x25,0x26,0x28,0x25,0x25,0x04,0x28,0x27,0x28, | ||
1391 | 0x24,0x25,0x25,0x28,0x25,0x24,0x04,0x28,0x25,0x26,0x26,0x04,0x26,0x26,0x25,0x24, | ||
1392 | 0x25,0x28,0x04,0x28,0x26,0x25,0x28,0x26,0x28,0x22,0x04,0x25,0x28,0x25,0x25,0x28, | ||
1393 | 0x25,0x25,0x28,0x25,0x28,0x24,0x28,0x24,0x26,0x28,0x28,0x04,0x28,0x25,0x24,0x25, | ||
1394 | 0x28,0x27,0x25,0x04,0x04,0x26,0x28,0x24,0x26,0x04,0x28,0x24,0x28,0x04,0x28,0x27, | ||
1395 | 0x24,0x26,0x26,0x28,0x25,0x24,0x28,0x04,0x26,0x23,0x04,0x28,0x04,0x26,0x29,0x28, | ||
1396 | 0x26,0x28,0x26,0x28,0x26,0x28,0x25,0x28,0x29,0x25,0x28,0x27,0x28,0x25,0x28,0x24, | ||
1397 | 0x22,0x22,0x20,0x20,0x25,0x23,0x04,0x26,0x24,0x28,0x28,0x25,0x24,0x24,0x25,0x25, | ||
1398 | 0x28,0x28,0x04,0x28,0x26,0x28,0x28,0x04,0x28,0x28,0x29,0x28,0x26,0x28,0x26,0x25, | ||
1399 | 0x28,0x28,0x28,0x2A,0x24,0x29,0x28,0x28,0x28,0x28,0x28,0x04,0x2A,0x28,0x25,0x04, | ||
1400 | 0x28,0x28,0x26,0x2A,0x2A,0x04,0x24,0x26,0x28,0x26,0x26,0x04,0x28,0x04,0x28,0x28, | ||
1401 | 0x28,0x29,0x29,0x28,0x28,0x28,0x28,0x28,0x24,0x28,0x28,0x28,0x24,0x26,0x25,0x25, | ||
1402 | 0x25,0x28,0x23,0x24,0x28,0x24,0x26,0x28,0x26,0x25,0x28,0x29,0x28,0x04,0x26,0x28, | ||
1403 | 0x28,0x28,0x2A,0x04,0x04,0x04,0x24,0x25,0x04,0x26,0x28,0x25,0x25,0x26,0x26,0x24, | ||
1404 | 0x04,0x04,0x04,0x28,0x04,0x26,0x26,0x04,0x28,0x26,0x24,0x28,0x28,0x26,0x04,0x29, | ||
1405 | 0x24,0x28,0x28,0x23,0x23,0x22,0x25,0x04,0x23,0x24,0x22,0x26,0x25,0x22,0x26,0x23, | ||
1406 | 0x25,0x24,0x23,0x25,0x23,0x04,0x04,0x24,0x25,0x25,0x25,0x22,0x22,0x26,0x22,0x04, | ||
1407 | 0x04,0x25,0x26,0x04,0x04,0x25,0x25,0x23,0x25,0x24,0x28,0x04,0x25,0x04,0x24,0x04, | ||
1408 | 0x24,0x25,0x20,0x22,0x04,0x25,0x28,0x25,0x26,0x23,0x26,0x26,0x28,0x04,0x04,0x26, | ||
1409 | 0x25,0x25,0x25,0x26,0x23,0x24,0x23,0x25,0x04,0x28,0x25,0x28,0x28,0x28,0x04,0x28, | ||
1410 | 0x28,0x04,0x22,0x28,0x25,0x28,0x25,0x26,0x25,0x28,0x27,0x28,0x28,0x25,0x28,0x28, | ||
1411 | 0x28,0x24,0x24,0x22,0x04,0x04,0x25,0x26,0x25,0x28,0x25,0x28,0x04,0x28,0x28,0x26, | ||
1412 | 0x26,0x25,0x04,0x25,0x28,0x26,0x26,0x28,0x25,0x04,0x04,0x26,0x28,0x24,0x28,0x25, | ||
1413 | 0x04,0x28,0x04,0x25,0x21,0x28,0x26,0x24,0x04,0x25,0x28,0x04,0x28,0x28,0x25,0x28, | ||
1414 | 0x28,0x26,0x28,0x04,0x04,0x26,0x26,0x28,0x26,0x24,0x24,0x24,0x28,0x04,0x25,0x26, | ||
1415 | 0x28,0x28,0x24,0x28,0x25,0x25,0x25,0x25,0x28,0x26,0x04,0x28,0x24,0x28,0x26,0x28, | ||
1416 | 0x26,0x29,0x26,0x28,0x26,0x25,0x26,0x25,0x24,0x28,0x25,0x26,0x22,0x26,0x28,0x28, | ||
1417 | 0x04,0x22,0x20,0x24,0x21,0x23,0x25,0x24,0x26,0x25,0x26,0x24,0x25,0x25,0x26,0x28, | ||
1418 | 0x26,0x25,0x24,0x26,0x28,0x04,0x26,0x28,0x28,0x28,0x28,0x28,0x27,0x28,0x28,0x04, | ||
1419 | 0x27,0x24,0x25,0x04,0x29,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x04,0x26,0x2A,0x28, | ||
1420 | 0x2A,0x28,0x25,0x25,0x26,0x04,0x28,0x28,0x28,0x28,0x28,0x28,0x24,0x26,0x25,0x28, | ||
1421 | 0x28,0x28,0x24,0x28,0x25,0x25,0x28,0x28,0x28,0x28,0x28,0x25,0x22,0x28,0x26,0x26, | ||
1422 | 0x25,0x25,0x04,0x28,0x25,0x28,0x28,0x28,0x23,0x25,0x26,0x29,0x25,0x28,0x29,0x25, | ||
1423 | 0x29,0x29,0x25,0x24,0x25,0x25,0x26,0x28,0x28,0x25,0x28,0x28,0x24,0x24,0x25,0x26, | ||
1424 | 0x28,0x25,0x04,0x28,0x28,0x24,0x26,0x28,0x28,0x26,0x28,0x23,0x28,0x04,0x04,0x29, | ||
1425 | 0x22,0x26,0x23,0x26,0x25,0x21,0x04,0x22,0x25,0x04,0x04,0x23,0x25,0x04,0x28,0x24, | ||
1426 | 0x25,0x25,0x24,0x24,0x24,0x25,0x04,0x22,0x24,0x23,0x23,0x04,0x26,0x24,0x24,0x25, | ||
1427 | 0x28,0x28,0x04,0x28,0x25,0x28,0x23,0x25,0x04,0x25,0x24,0x26,0x25,0x28,0x25,0x24, | ||
1428 | 0x23,0x28,0x04,0x25,0x24,0x28,0x25,0x04,0x25,0x25,0x28,0x04,0x28,0x04,0x28,0x25, | ||
1429 | 0x28,0x25,0x20,0x22,0x22,0x21,0x21,0x23,0x25,0x26,0x26,0x22,0x22,0x24,0x25,0x25, | ||
1430 | 0x28,0x26,0x25,0x26,0x23,0x25,0x04,0x28,0x28,0x28,0x04,0x25,0x26,0x22,0x24,0x28, | ||
1431 | 0x26,0x28,0x25,0x28,0x25,0x26,0x23,0x26,0x04,0x28,0x04,0x25,0x04,0x28,0x2A,0x29, | ||
1432 | 0x25,0x25,0x26,0x24,0x25,0x04,0x28,0x25,0x25,0x25,0x28,0x04,0x25,0x23,0x28,0x28, | ||
1433 | 0x04,0x28,0x24,0x25,0x26,0x28,0x04,0x25,0x25,0x28,0x27,0x26,0x28,0x28,0x26,0x26, | ||
1434 | 0x25,0x26,0x26,0x24,0x26,0x04,0x26,0x26,0x04,0x04,0x28,0x28,0x24,0x24,0x26,0x25, | ||
1435 | 0x28,0x29,0x28,0x28,0x26,0x28,0x04,0x28,0x24,0x26,0x28,0x04,0x28,0x04,0x28,0x04, | ||
1436 | 0x29,0x24,0x29,0x29,0x24,0x28,0x28,0x25,0x25,0x28,0x28,0x28,0x04,0x22,0x24,0x20, | ||
1437 | 0x20,0x26,0x23,0x25,0x26,0x28,0x24,0x25,0x04,0x22,0x04,0x26,0x25,0x28,0x28,0x28, | ||
1438 | 0x28,0x24,0x28,0x28,0x04,0x28,0x25,0x04,0x26,0x24,0x04,0x26,0x26,0x28,0x28,0x25, | ||
1439 | 0x04,0x25,0x26,0x04,0x27,0x28,0x23,0x27,0x28,0x28,0x28,0x28,0x28,0x26,0x26,0x28, | ||
1440 | 0x28,0x28,0x04,0x28,0x28,0x25,0x28,0x28,0x29,0x28,0x28,0x28,0x25,0x26,0x24,0x26, | ||
1441 | 0x28,0x26,0x25,0x04,0x25,0x22,0x28,0x28,0x26,0x04,0x29,0x29,0x28,0x25,0x25,0x25, | ||
1442 | 0x04,0x26,0x28,0x28,0x28,0x26,0x28,0x28,0x28,0x29,0x28,0x28,0x04,0x28,0x28,0x28, | ||
1443 | 0x04,0x04,0x26,0x28,0x25,0x23,0x23,0x26,0x25,0x23,0x26,0x04,0x28,0x24,0x26,0x28, | ||
1444 | 0x26,0x04,0x22,0x22,0x22,0x26,0x26,0x04,0x28,0x25,0x25,0x28,0x25,0x26,0x28,0x29, | ||
1445 | 0x24,0x22,0x23,0x22,0x25,0x04,0x25,0x26,0x25,0x28,0x04,0x22,0x23,0x24,0x24,0x25, | ||
1446 | 0x26,0x28,0x04,0x22,0x25,0x26,0x24,0x28,0x04,0x04,0x28,0x26,0x26,0x25,0x28,0x25, | ||
1447 | 0x26,0x26,0x22,0x26,0x26,0x23,0x28,0x22,0x22,0x04,0x26,0x25,0x25,0x26,0x20,0x22, | ||
1448 | 0x24,0x04,0x25,0x26,0x28,0x24,0x04,0x26,0x25,0x24,0x24,0x26,0x28,0x28,0x26,0x28, | ||
1449 | 0x26,0x26,0x24,0x04,0x23,0x22,0x23,0x26,0x04,0x28,0x26,0x04,0x23,0x22,0x22,0x22, | ||
1450 | 0x23,0x22,0x23,0x25,0x20,0x20,0x25,0x25,0x28,0x28,0x25,0x25,0x24,0x23,0x22,0x24, | ||
1451 | 0x25,0x26,0x28,0x04,0x28,0x26,0x29,0x25,0x28,0x28,0x28,0x24,0x28,0x25,0x28,0x29, | ||
1452 | 0x28,0x28,0x28,0x28,0x04,0x28,0x04,0x28,0x25,0x04,0x28,0x28,0x25,0x28,0x28,0x28, | ||
1453 | 0x28,0x27,0x25,0x28,0x28,0x04,0x28,0x25,0x28,0x24,0x28,0x23,0x25,0x28,0x25,0x25, | ||
1454 | 0x28,0x26,0x26,0x28,0x28,0x25,0x28,0x25,0x23,0x04,0x24,0x25,0x28,0x26,0x28,0x26, | ||
1455 | 0x28,0x28,0x29,0x26,0x28,0x28,0x28,0x04,0x28,0x26,0x28,0x25,0x28,0x2A,0x28,0x28, | ||
1456 | 0x26,0x28,0x28,0x28,0x28,0x25,0x26,0x25,0x25,0x26,0x25,0x25,0x25,0x24,0x20,0x20, | ||
1457 | 0x22,0x22,0x04,0x25,0x28,0x25,0x04,0x25,0x24,0x26,0x26,0x04,0x25,0x28,0x26,0x28, | ||
1458 | 0x04,0x28,0x26,0x04,0x24,0x25,0x26,0x28,0x04,0x25,0x25,0x04,0x04,0x28,0x25,0x28, | ||
1459 | 0x24,0x28,0x28,0x26,0x24,0x25,0x23,0x04,0x28,0x28,0x25,0x24,0x28,0x26,0x28,0x28, | ||
1460 | 0x28,0x28,0x04,0x26,0x28,0x25,0x04,0x25,0x22,0x26,0x26,0x04,0x24,0x26,0x04,0x28, | ||
1461 | 0x25,0x28,0x26,0x26,0x04,0x28,0x23,0x26,0x24,0x25,0x28,0x26,0x04,0x28,0x26,0x29, | ||
1462 | 0x28,0x28,0x28,0x29,0x28,0x24,0x29,0x28,0x28,0x28,0x28,0x04,0x04,0x25,0x25,0x24, | ||
1463 | 0x24,0x26,0x25,0x25,0x22,0x20,0x20,0x22,0x24,0x22,0x23,0x20,0x20,0x22,0x20,0x22, | ||
1464 | 0x20,0x22,0x20,0x24,0x23,0x22,0x25,0x23,0x23,0x28,0x26,0x20,0x20,0x20,0x20,0x29, | ||
1465 | 0x28,0x28,0x25,0x28,0x04,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x28,0x28,0x04,0x04, | ||
1466 | 0x28,0x26,0x24,0x28,0x28,0x28,0x28,0x28,0x26,0x23,0x26,0x28,0x04,0x25,0x25,0x26, | ||
1467 | 0x28,0x28,0x26,0x26,0x26,0x28,0x04,0x22,0x04,0x25,0x25,0x28,0x04,0x26,0x04,0x28, | ||
1468 | 0x28,0x04,0x28,0x04,0x24,0x28,0x28,0x28,0x28,0x28,0x24,0x26,0x24,0x28,0x25,0x04, | ||
1469 | 0x28,0x28,0x23,0x28,0x24,0x24,0x28,0x26,0x25,0x28,0x25,0x25,0x25,0x24,0x22,0x04, | ||
1470 | 0x23,0x25,0x23,0x24,0x24,0x24,0x26,0x26,0x26,0x24,0x28,0x28,0x24,0x22,0x25,0x04, | ||
1471 | 0x25,0x28,0x26,0x29,0x24,0x28,0x25,0x28,0x24,0x28,0x25,0x28,0x24,0x28,0x28,0x26, | ||
1472 | 0x26,0x28,0x25,0x28,0x25,0x28,0x28,0x26,0x28,0x29,0x28,0x28,0x24,0x24,0x24,0x26, | ||
1473 | 0x23,0x26,0x04,0x25,0x04,0x26,0x04,0x25,0x23,0x25,0x04,0x24,0x25,0x24,0x23,0x24, | ||
1474 | 0x26,0x25,0x24,0x24,0x25,0x04,0x25,0x25,0x28,0x28,0x24,0x28,0x25,0x04,0x29,0x25, | ||
1475 | 0x04,0x04,0x28,0x28,0x04,0x28,0x04,0x29,0x04,0x26,0x28,0x28,0x28,0x28,0x28,0x28, | ||
1476 | 0x28,0x24,0x28,0x25,0x04,0x24,0x23,0x22,0x25,0x23,0x20,0x25,0x23,0x25,0x25,0x25, | ||
1477 | 0x23,0x24,0x26,0x28,0x28,0x25,0x04,0x26,0x04,0x28,0x25,0x26,0x28,0x26,0x25,0x28, | ||
1478 | 0x04,0x25,0x04,0x26,0x28,0x26,0x25,0x28,0x28,0x28,0x28,0x23,0x25,0x25,0x28,0x25, | ||
1479 | 0x28,0x25,0x28,0x25,0x26,0x25,0x25,0x26,0x04,0x26,0x25,0x28,0x28,0x26,0x25,0x26, | ||
1480 | 0x28,0x04,0x28,0x25,0x26,0x25,0x28,0x04,0x04,0x28,0x29,0x04,0x26,0x28,0x26,0x28, | ||
1481 | 0x28,0x29,0x28,0x28,0x29,0x25,0x29,0x25,0x29,0x28,0x29,0x28,0x29,0x28,0x28,0x28, | ||
1482 | 0x28,0x29,0x24,0x04,0x24,0x04,0x25,0x27,0x28,0x24,0x24,0x28,0x04,0x23,0x24,0x23, | ||
1483 | 0x26,0x22,0x24,0x22,0x20,0x26,0x25,0x28,0x23,0x24,0x04,0x22,0x22,0x23,0x20,0x24, | ||
1484 | 0x26,0x26,0x20,0x22,0x20,0x24,0x22,0x24,0x20,0x24,0x22,0x24,0x25,0x24,0x28,0x29, | ||
1485 | 0x04,0x24,0x28,0x26,0x28,0x23,0x28,0x28,0x28,0x24,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1486 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1487 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1488 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1489 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1490 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1491 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1492 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1493 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x25,0x25,0x28,0x26, | ||
1494 | 0x25,0x25,0x25,0x25,0x25,0x26,0x28,0x04,0x24,0x26,0x28,0x2A,0x2F,0x2F,0x2F,0x2F, | ||
1495 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1496 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1497 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1498 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1499 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1500 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
1501 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
1502 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2D,0x2D, | ||
1503 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2C, | ||
1504 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x26,0x22,0x22,0x28,0x25,0x24,0x24,0x26,0x28,0x25,0x29, | ||
1505 | 0x04,0x28,0x28,0x28,0x24,0x25,0x25,0x04,0x25,0x24,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1506 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1507 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1508 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1509 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1510 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1511 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1512 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1513 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x25,0x25,0x26,0x25, | ||
1514 | 0x24,0x04,0x04,0x23,0x23,0x26,0x26,0x23,0x2A,0x28,0x25,0x2A,0x2F,0x2F,0x2F,0x2F, | ||
1515 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1516 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1517 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1518 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1519 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1520 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1521 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1522 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1523 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1524 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x23,0x25,0x26,0x25,0x28,0x26,0x24,0x24,0x04,0x24,0x29, | ||
1525 | 0x25,0x28,0x26,0x25,0x28,0x26,0x22,0x25,0x25,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1526 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1527 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1528 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1529 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1530 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1531 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1532 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1533 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x22,0x25,0x28,0x26, | ||
1534 | 0x22,0x24,0x24,0x24,0x28,0x28,0x04,0x29,0x25,0x28,0x28,0x26,0x2F,0x2F,0x2D,0x2D, | ||
1535 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1536 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1537 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1538 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1539 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1540 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1541 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1542 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1543 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1544 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x20,0x28,0x28,0x04,0x04,0x04,0x28,0x24,0x24,0x28,0x29, | ||
1545 | 0x26,0x25,0x26,0x25,0x28,0x22,0x25,0x25,0x24,0x23,0x2F,0x2F,0x2D,0x2D,0x7A,0x7A, | ||
1546 | 0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A, | ||
1547 | 0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1548 | 0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D, | ||
1549 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1550 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1551 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1552 | 0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A, | ||
1553 | 0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x22,0x25,0x28,0x04, | ||
1554 | 0x28,0x28,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x27,0x28,0x2F,0x2F,0x2D,0x2D, | ||
1555 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1556 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1557 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1558 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1559 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1560 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1561 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1562 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1563 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1564 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x04,0x04,0x28,0x24,0x26,0x24,0x28,0x04,0x25,0x29, | ||
1565 | 0x04,0x25,0x22,0x23,0x24,0x25,0x22,0x22,0x23,0x24,0x2F,0x2F,0x2D,0x7A,0x7A,0x7A, | ||
1566 | 0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A, | ||
1567 | 0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1568 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1569 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1570 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x2D, | ||
1571 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A, | ||
1572 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A, | ||
1573 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x22,0x28,0x28,0x26, | ||
1574 | 0x29,0x28,0x28,0x04,0x26,0x29,0x28,0x24,0x26,0x28,0x26,0x25,0x2F,0x2F,0x2D,0x2D, | ||
1575 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1576 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1577 | 0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
1578 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
1579 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1580 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1581 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1582 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1583 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1584 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x04,0x22,0x25,0x23,0x25,0x28,0x26,0x23,0x29, | ||
1585 | 0x25,0x26,0x28,0x26,0x26,0x28,0x04,0x22,0x22,0x25,0x2F,0x2F,0x2D,0x7A,0x7A,0x2D, | ||
1586 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1587 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1588 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1589 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1590 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x2D,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1591 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x2D,0x7A,0x7A, | ||
1592 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D, | ||
1593 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x22,0x28,0x28,0x28, | ||
1594 | 0x04,0x04,0x28,0x28,0x28,0x24,0x28,0x26,0x26,0x28,0x25,0x26,0x2F,0x2F,0x2D,0x2D, | ||
1595 | 0x32,0x33,0x33,0x34,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x35,0x35,0x35,0x35,0x36,0x36, | ||
1596 | 0x36,0x36,0x20,0x23,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17, | ||
1597 | 0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1598 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
1599 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1600 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1601 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1602 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1603 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1604 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x24,0x23,0x28,0x28,0x28,0x25,0x25,0x20,0x29, | ||
1605 | 0x23,0x04,0x28,0x23,0x24,0x24,0x24,0x25,0x20,0x25,0x2F,0x2F,0x2D,0x7A,0x7A,0x7A, | ||
1606 | 0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A, | ||
1607 | 0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1608 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D, | ||
1609 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D, | ||
1610 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1611 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A, | ||
1612 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A, | ||
1613 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x22,0x28,0x04,0x04, | ||
1614 | 0x04,0x04,0x26,0x28,0x26,0x25,0x04,0x26,0x26,0x23,0x22,0x22,0x2E,0x2F,0x2D,0x2D, | ||
1615 | 0x33,0x36,0x22,0x25,0x27,0x27,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
1616 | 0x28,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1617 | 0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1618 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
1619 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1620 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1621 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1622 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1623 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1624 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x24,0x25,0x24,0x28,0x23,0x22,0x25,0x25,0x04,0x29, | ||
1625 | 0x22,0x24,0x20,0x22,0x22,0x23,0x23,0x23,0x21,0x23,0x2F,0x2F,0x2D,0x7A,0x7A,0x7A, | ||
1626 | 0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A, | ||
1627 | 0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1628 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1629 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D, | ||
1630 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x7A,0x7A,0x7A,0x2D,0x7A,0x7A,0x2D, | ||
1631 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x7A,0x7A,0x7A,0x2D, | ||
1632 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A, | ||
1633 | 0x7A,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x22,0x26,0x26,0x25, | ||
1634 | 0x28,0x26,0x26,0x25,0x28,0x28,0x25,0x04,0x24,0x25,0x25,0x25,0x2E,0x2F,0x2D,0x2D, | ||
1635 | 0x34,0x22,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
1636 | 0x00,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
1637 | 0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1638 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1639 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1640 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1641 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1642 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1643 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1644 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x24,0x28,0x23,0x22,0x24,0x04,0x20,0x20,0x23,0x29, | ||
1645 | 0x22,0x20,0x20,0x24,0x22,0x23,0x24,0x22,0x24,0x24,0x2F,0x2F,0x2D,0x7A,0x7A,0x2D, | ||
1646 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1647 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1648 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1649 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1650 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1651 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x2D,0x2D, | ||
1652 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D, | ||
1653 | 0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x22,0x23,0x24,0x25, | ||
1654 | 0x04,0x28,0x26,0x25,0x23,0x04,0x26,0x24,0x22,0x20,0x25,0x23,0x2E,0x2F,0x2D,0x2D, | ||
1655 | 0x34,0x25,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
1656 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
1657 | 0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1658 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
1659 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1660 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1661 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1662 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1663 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1664 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x23,0x22,0x04,0x25,0x25,0x04,0x22,0x22,0x23,0x29, | ||
1665 | 0x20,0x26,0x21,0x24,0x23,0x28,0x23,0x23,0x22,0x26,0x2F,0x2F,0x2D,0x7A,0x7A,0x2D, | ||
1666 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1667 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1668 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1669 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1670 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1671 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1672 | 0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D, | ||
1673 | 0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x22,0x25,0x23,0x22, | ||
1674 | 0x22,0x22,0x20,0x26,0x20,0x24,0x20,0x23,0x26,0x28,0x22,0x25,0x2E,0x2F,0x2D,0x2D, | ||
1675 | 0x35,0x27,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
1676 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x2D,0x2D, | ||
1677 | 0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1678 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
1679 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1680 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1681 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1682 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1683 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1684 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x28,0x23,0x24,0x04,0x22,0x20,0x22,0x22,0x26,0x29, | ||
1685 | 0x25,0x21,0x25,0x22,0x24,0x23,0x24,0x24,0x04,0x04,0x2F,0x2F,0x2D,0x7A,0x7A,0x2D, | ||
1686 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1687 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1688 | 0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D, | ||
1689 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D, | ||
1690 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D, | ||
1691 | 0x2D,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1692 | 0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x7A,0x7A,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D, | ||
1693 | 0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x7A,0x7A,0x2D,0x2D,0x2D,0x2D,0x22,0x26,0x28,0x28, | ||
1694 | 0x04,0x25,0x20,0x24,0x22,0x24,0x20,0x23,0x25,0x28,0x25,0x24,0x2E,0x2F,0x2D,0x2D, | ||
1695 | 0x36,0x27,0x28,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
1696 | 0x1F,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1697 | 0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1698 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
1699 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1700 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1701 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1702 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1703 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1704 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x04,0x25,0x04,0x20,0x26,0x24,0x23,0x04,0x04,0x29, | ||
1705 | 0x23,0x22,0x25,0x22,0x25,0x23,0x25,0x25,0x28,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1706 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1707 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1708 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1709 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1710 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1711 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1712 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1713 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x22,0x25,0x24,0x26, | ||
1714 | 0x04,0x24,0x21,0x24,0x25,0x22,0x22,0x25,0x26,0x23,0x23,0x25,0x2D,0x2F,0x2D,0x2D, | ||
1715 | 0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
1716 | 0x28,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1717 | 0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1718 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
1719 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1720 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1721 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1722 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1723 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1724 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x20,0x23,0x25,0x23,0x26,0x24,0x28,0x28,0x04,0x29, | ||
1725 | 0x25,0x24,0x26,0x26,0x28,0x04,0x28,0x04,0x28,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1726 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1727 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1728 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1729 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1730 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1731 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1732 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1733 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x22,0x24,0x26,0x23, | ||
1734 | 0x25,0x22,0x25,0x23,0x22,0x26,0x28,0x23,0x20,0x25,0x22,0x24,0x2D,0x2F,0x2D,0x2D, | ||
1735 | 0x23,0x2A,0x2C,0x2C,0x2D,0x2D,0x2D,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F, | ||
1736 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1737 | 0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
1738 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
1739 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1740 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1741 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1742 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1743 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1744 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x20,0x28,0x26,0x26,0x25,0x28,0x28,0x04,0x24,0x29, | ||
1745 | 0x26,0x26,0x25,0x04,0x04,0x04,0x25,0x25,0x26,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1746 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1747 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1748 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1749 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1750 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1751 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1752 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1753 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x22,0x25,0x23,0x26, | ||
1754 | 0x25,0x28,0x25,0x28,0x26,0x28,0x28,0x24,0x25,0x25,0x22,0x04,0x2C,0x2F,0x2D,0x2D, | ||
1755 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1756 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1757 | 0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17, | ||
1758 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
1759 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1760 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1761 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1762 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1763 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1764 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x24,0x28,0x27,0x25,0x28,0x04,0x28,0x24,0x26,0x29, | ||
1765 | 0x28,0x26,0x25,0x25,0x28,0x26,0x25,0x25,0x25,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1766 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1767 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1768 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1769 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1770 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1771 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1772 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1773 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x22,0x22,0x22,0x23, | ||
1774 | 0x25,0x26,0x25,0x04,0x25,0x28,0x24,0x22,0x26,0x23,0x23,0x26,0x2C,0x2F,0x2D,0x2D, | ||
1775 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1776 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1777 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1778 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1779 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1780 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1781 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1782 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1783 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1784 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x04,0x29,0x28,0x29,0x28,0x28,0x25,0x25,0x26,0x29, | ||
1785 | 0x28,0x04,0x25,0x28,0x04,0x28,0x24,0x26,0x25,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1786 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1787 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1788 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1789 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1790 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1791 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1792 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1793 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x22,0x26,0x24,0x26, | ||
1794 | 0x28,0x04,0x22,0x26,0x25,0x25,0x22,0x24,0x25,0x23,0x22,0x25,0x2C,0x2F,0x2D,0x2D, | ||
1795 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1796 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1797 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1798 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1799 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1800 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1801 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1802 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1803 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1804 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x28,0x28,0x28,0x25,0x28,0x29,0x29,0x28,0x25,0x29, | ||
1805 | 0x25,0x26,0x25,0x25,0x26,0x26,0x26,0x28,0x28,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1806 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
1807 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
1808 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
1809 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
1810 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
1811 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
1812 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
1813 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x22,0x24,0x25,0x04, | ||
1814 | 0x24,0x26,0x25,0x04,0x21,0x24,0x20,0x24,0x22,0x25,0x25,0x24,0x2C,0x2F,0x2D,0x2D, | ||
1815 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1816 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1817 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1818 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1819 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1820 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1821 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1822 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1823 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1824 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x25,0x28,0x25,0x25,0x26,0x25,0x28,0x29,0x25,0x29, | ||
1825 | 0x04,0x04,0x25,0x25,0x24,0x23,0x26,0x04,0x24,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1826 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
1827 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
1828 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x22,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
1829 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
1830 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x24, | ||
1831 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
1832 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
1833 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x23,0x2D,0x2D,0x2D,0x2D,0x22,0x24,0x25,0x25, | ||
1834 | 0x22,0x20,0x20,0x20,0x22,0x22,0x26,0x26,0x24,0x23,0x23,0x22,0x28,0x24,0x24,0x24, | ||
1835 | 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x23,0x23,0x23,0x23,0x23, | ||
1836 | 0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, | ||
1837 | 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x21,0x21,0x21,0x21, | ||
1838 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
1839 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
1840 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
1841 | 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x36,0x36, | ||
1842 | 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35, | ||
1843 | 0x35,0x35,0x35,0x35,0x35,0x0C,0x0C,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34, | ||
1844 | 0x34,0x34,0x34,0x33,0x33,0x32,0x04,0x25,0x28,0x24,0x25,0x04,0x28,0x24,0x2B,0x29, | ||
1845 | 0x27,0x24,0x25,0x04,0x25,0x25,0x04,0x25,0x22,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1846 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D, | ||
1847 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
1848 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
1849 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
1850 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
1851 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
1852 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
1853 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x22,0x23,0x22, | ||
1854 | 0x22,0x04,0x24,0x25,0x26,0x25,0x24,0x04,0x25,0x25,0x24,0x24,0x22,0x26,0x25,0x25, | ||
1855 | 0x24,0x24,0x24,0x26,0x25,0x28,0x25,0x28,0x28,0x28,0x25,0x24,0x26,0x24,0x25,0x28, | ||
1856 | 0x22,0x22,0x25,0x26,0x24,0x24,0x26,0x04,0x26,0x25,0x22,0x04,0x25,0x25,0x28,0x28, | ||
1857 | 0x26,0x26,0x29,0x28,0x28,0x29,0x25,0x29,0x29,0x25,0x29,0x28,0x04,0x29,0x28,0x25, | ||
1858 | 0x04,0x28,0x04,0x26,0x26,0x23,0x26,0x25,0x26,0x28,0x25,0x23,0x25,0x25,0x28,0x26, | ||
1859 | 0x25,0x28,0x26,0x28,0x28,0x25,0x29,0x28,0x28,0x04,0x24,0x28,0x28,0x25,0x28,0x28, | ||
1860 | 0x28,0x28,0x04,0x26,0x26,0x26,0x28,0x26,0x26,0x25,0x26,0x26,0x28,0x28,0x28,0x28, | ||
1861 | 0x28,0x2A,0x29,0x28,0x28,0x29,0x28,0x2A,0x28,0x2A,0x28,0x26,0x28,0x28,0x28,0x28, | ||
1862 | 0x04,0x04,0x28,0x24,0x25,0x25,0x24,0x20,0x20,0x04,0x25,0x25,0x25,0x26,0x24,0x25, | ||
1863 | 0x24,0x23,0x28,0x26,0x24,0x28,0x04,0x26,0x26,0x04,0x04,0x04,0x23,0x26,0x25,0x22, | ||
1864 | 0x28,0x25,0x24,0x04,0x24,0x25,0x25,0x27,0x04,0x28,0x28,0x28,0x28,0x04,0x28,0x29, | ||
1865 | 0x04,0x04,0x25,0x25,0x23,0x26,0x23,0x04,0x24,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1866 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
1867 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
1868 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
1869 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
1870 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
1871 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
1872 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
1873 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x24,0x25,0x25, | ||
1874 | 0x28,0x24,0x24,0x24,0x25,0x22,0x26,0x25,0x24,0x26,0x23,0x22,0x25,0x04,0x24,0x24, | ||
1875 | 0x28,0x23,0x28,0x23,0x23,0x04,0x26,0x25,0x25,0x25,0x28,0x24,0x26,0x21,0x25,0x24, | ||
1876 | 0x22,0x26,0x24,0x24,0x25,0x04,0x04,0x26,0x25,0x28,0x04,0x25,0x28,0x04,0x26,0x28, | ||
1877 | 0x29,0x29,0x26,0x29,0x04,0x28,0x25,0x04,0x04,0x28,0x25,0x28,0x28,0x28,0x25,0x28, | ||
1878 | 0x28,0x24,0x28,0x04,0x04,0x26,0x24,0x25,0x25,0x26,0x26,0x28,0x28,0x28,0x25,0x26, | ||
1879 | 0x28,0x26,0x25,0x26,0x25,0x28,0x26,0x28,0x29,0x26,0x25,0x28,0x28,0x28,0x26,0x25, | ||
1880 | 0x29,0x04,0x26,0x04,0x24,0x04,0x25,0x25,0x28,0x04,0x25,0x04,0x26,0x28,0x28,0x25, | ||
1881 | 0x28,0x26,0x04,0x29,0x28,0x26,0x25,0x28,0x28,0x25,0x28,0x2A,0x25,0x28,0x28,0x26, | ||
1882 | 0x04,0x23,0x20,0x24,0x22,0x24,0x22,0x25,0x22,0x25,0x25,0x23,0x22,0x22,0x22,0x26, | ||
1883 | 0x25,0x28,0x26,0x28,0x04,0x04,0x28,0x29,0x28,0x25,0x25,0x28,0x28,0x28,0x28,0x26, | ||
1884 | 0x29,0x23,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29, | ||
1885 | 0x28,0x28,0x25,0x23,0x25,0x23,0x23,0x23,0x25,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1886 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
1887 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
1888 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
1889 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
1890 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
1891 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
1892 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
1893 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x25,0x28,0x23, | ||
1894 | 0x26,0x24,0x26,0x25,0x28,0x25,0x25,0x26,0x22,0x23,0x26,0x25,0x23,0x25,0x25,0x24, | ||
1895 | 0x25,0x23,0x25,0x26,0x24,0x26,0x24,0x28,0x25,0x24,0x04,0x22,0x28,0x23,0x28,0x04, | ||
1896 | 0x24,0x04,0x28,0x28,0x28,0x26,0x28,0x26,0x28,0x24,0x28,0x28,0x29,0x28,0x28,0x28, | ||
1897 | 0x28,0x28,0x28,0x28,0x28,0x04,0x25,0x26,0x28,0x04,0x28,0x26,0x28,0x28,0x04,0x25, | ||
1898 | 0x26,0x25,0x26,0x25,0x26,0x24,0x28,0x28,0x26,0x04,0x28,0x24,0x25,0x25,0x28,0x04, | ||
1899 | 0x28,0x28,0x04,0x28,0x26,0x28,0x25,0x26,0x28,0x28,0x28,0x28,0x04,0x28,0x28,0x25, | ||
1900 | 0x26,0x04,0x24,0x25,0x04,0x22,0x22,0x20,0x28,0x26,0x26,0x28,0x25,0x25,0x04,0x25, | ||
1901 | 0x04,0x23,0x28,0x22,0x22,0x27,0x28,0x25,0x25,0x28,0x04,0x04,0x26,0x28,0x28,0x28, | ||
1902 | 0x25,0x25,0x25,0x24,0x24,0x25,0x23,0x24,0x23,0x25,0x25,0x23,0x24,0x21,0x04,0x26, | ||
1903 | 0x25,0x28,0x25,0x26,0x28,0x04,0x04,0x26,0x29,0x04,0x28,0x29,0x26,0x29,0x28,0x25, | ||
1904 | 0x29,0x28,0x28,0x28,0x26,0x2A,0x2A,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x2D,0x29, | ||
1905 | 0x25,0x22,0x22,0x25,0x26,0x25,0x04,0x25,0x25,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1906 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
1907 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
1908 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17, | ||
1909 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
1910 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
1911 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
1912 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
1913 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x20,0x24,0x25,0x24, | ||
1914 | 0x23,0x26,0x24,0x24,0x25,0x26,0x22,0x04,0x22,0x26,0x24,0x28,0x24,0x04,0x24,0x25, | ||
1915 | 0x28,0x25,0x26,0x26,0x25,0x28,0x04,0x25,0x24,0x04,0x25,0x25,0x23,0x25,0x28,0x04, | ||
1916 | 0x24,0x04,0x28,0x24,0x28,0x29,0x26,0x28,0x04,0x29,0x25,0x2A,0x26,0x28,0x28,0x28, | ||
1917 | 0x04,0x24,0x28,0x28,0x28,0x23,0x25,0x28,0x24,0x26,0x26,0x25,0x28,0x22,0x26,0x25, | ||
1918 | 0x28,0x04,0x25,0x04,0x28,0x28,0x28,0x26,0x28,0x26,0x28,0x22,0x24,0x26,0x28,0x26, | ||
1919 | 0x26,0x28,0x26,0x28,0x26,0x26,0x25,0x04,0x25,0x24,0x26,0x28,0x26,0x25,0x28,0x24, | ||
1920 | 0x23,0x20,0x24,0x20,0x20,0x23,0x23,0x22,0x28,0x25,0x28,0x04,0x04,0x25,0x28,0x26, | ||
1921 | 0x28,0x24,0x26,0x25,0x28,0x04,0x28,0x28,0x04,0x27,0x28,0x28,0x25,0x28,0x28,0x04, | ||
1922 | 0x25,0x25,0x25,0x04,0x25,0x24,0x20,0x22,0x23,0x22,0x25,0x23,0x25,0x28,0x28,0x28, | ||
1923 | 0x25,0x28,0x25,0x28,0x28,0x04,0x28,0x28,0x28,0x25,0x28,0x28,0x26,0x28,0x26,0x28, | ||
1924 | 0x25,0x25,0x28,0x28,0x28,0x24,0x25,0x04,0x28,0x28,0x2A,0x28,0x28,0x28,0x28,0x29, | ||
1925 | 0x23,0x23,0x23,0x25,0x04,0x24,0x23,0x24,0x21,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1926 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1927 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1928 | 0x2B,0x04,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1929 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1930 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x23,0x27,0x27,0x27,0x27,0x25,0x22, | ||
1931 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1932 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1933 | 0x2B,0x25,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x20,0x22,0x23,0x04, | ||
1934 | 0x25,0x26,0x28,0x24,0x25,0x23,0x26,0x28,0x28,0x04,0x25,0x28,0x28,0x25,0x25,0x28, | ||
1935 | 0x25,0x24,0x23,0x28,0x04,0x23,0x23,0x26,0x22,0x25,0x25,0x26,0x25,0x26,0x28,0x28, | ||
1936 | 0x25,0x26,0x28,0x28,0x28,0x28,0x28,0x26,0x04,0x28,0x28,0x28,0x25,0x25,0x24,0x26, | ||
1937 | 0x28,0x04,0x25,0x28,0x04,0x26,0x28,0x04,0x26,0x28,0x24,0x28,0x28,0x26,0x25,0x04, | ||
1938 | 0x28,0x25,0x04,0x28,0x04,0x28,0x28,0x28,0x04,0x28,0x28,0x24,0x26,0x26,0x24,0x28, | ||
1939 | 0x04,0x26,0x25,0x26,0x25,0x28,0x25,0x26,0x24,0x25,0x26,0x04,0x26,0x25,0x26,0x28, | ||
1940 | 0x20,0x20,0x22,0x25,0x23,0x24,0x28,0x23,0x25,0x04,0x25,0x28,0x26,0x25,0x25,0x04, | ||
1941 | 0x24,0x26,0x24,0x26,0x28,0x25,0x25,0x26,0x04,0x26,0x28,0x26,0x25,0x24,0x25,0x25, | ||
1942 | 0x22,0x20,0x20,0x22,0x24,0x28,0x28,0x26,0x26,0x04,0x25,0x24,0x28,0x29,0x28,0x28, | ||
1943 | 0x28,0x26,0x28,0x04,0x29,0x28,0x28,0x28,0x28,0x28,0x04,0x28,0x2A,0x2A,0x28,0x26, | ||
1944 | 0x25,0x24,0x28,0x2A,0x26,0x28,0x25,0x2A,0x2A,0x28,0x28,0x28,0x28,0x24,0x22,0x29, | ||
1945 | 0x24,0x22,0x23,0x25,0x23,0x22,0x25,0x23,0x22,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1946 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1947 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1948 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1949 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1950 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1951 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1952 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1953 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x20,0x26,0x24,0x25, | ||
1954 | 0x25,0x25,0x28,0x23,0x28,0x26,0x26,0x23,0x23,0x25,0x28,0x26,0x2F,0x2F,0x2F,0x2F, | ||
1955 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1956 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1957 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1958 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1959 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1960 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
1961 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
1962 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2D,0x2D, | ||
1963 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2C, | ||
1964 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x26,0x26,0x28,0x28,0x29,0x26,0x26,0x28,0x04,0x25,0x29, | ||
1965 | 0x23,0x20,0x20,0x24,0x22,0x22,0x26,0x24,0x22,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1966 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
1967 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
1968 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1969 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
1970 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
1971 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
1972 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
1973 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x20,0x25,0x04,0x04, | ||
1974 | 0x25,0x28,0x25,0x25,0x04,0x25,0x26,0x04,0x21,0x23,0x28,0x23,0x2F,0x2F,0x2F,0x2F, | ||
1975 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1976 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1977 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1978 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1979 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1980 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1981 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1982 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1983 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
1984 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x23,0x28,0x04,0x28,0x26,0x25,0x23,0x28,0x26,0x24,0x29, | ||
1985 | 0x20,0x20,0x23,0x23,0x22,0x20,0x24,0x22,0x20,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
1986 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
1987 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
1988 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x26,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1989 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
1990 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x22, | ||
1991 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
1992 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
1993 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x23,0x2D,0x2D,0x2D,0x2D,0x20,0x25,0x26,0x23, | ||
1994 | 0x22,0x28,0x25,0x28,0x25,0x25,0x25,0x24,0x22,0x25,0x26,0x24,0x2F,0x2F,0x2D,0x2D, | ||
1995 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1996 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1997 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1998 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
1999 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2000 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2001 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2002 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2003 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2004 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x20,0x04,0x25,0x25,0x25,0x26,0x26,0x26,0x28,0x28,0x29, | ||
2005 | 0x20,0x26,0x20,0x25,0x22,0x20,0x24,0x20,0x25,0x20,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2006 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
2007 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2008 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2009 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2010 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2011 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
2012 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2013 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x21,0x25,0x25, | ||
2014 | 0x23,0x22,0x24,0x22,0x22,0x28,0x04,0x23,0x25,0x28,0x24,0x23,0x2F,0x2F,0x2D,0x2D, | ||
2015 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2016 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2017 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2018 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2019 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2020 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2021 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2022 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2023 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2024 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x26,0x28,0x28,0x04,0x04,0x04,0x28,0x04,0x23,0x29, | ||
2025 | 0x22,0x22,0x23,0x26,0x23,0x20,0x22,0x25,0x22,0x20,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2026 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2027 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2028 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2029 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2030 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2031 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17, | ||
2032 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2033 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x24,0x04,0x23, | ||
2034 | 0x24,0x24,0x28,0x22,0x25,0x23,0x25,0x25,0x04,0x28,0x25,0x26,0x2F,0x2F,0x2D,0x2D, | ||
2035 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2036 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2037 | 0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2038 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2039 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17, | ||
2040 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2041 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2042 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2043 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2044 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x26,0x24,0x22,0x24,0x24,0x28,0x04,0x25,0x25,0x29, | ||
2045 | 0x20,0x23,0x24,0x20,0x25,0x24,0x28,0x24,0x23,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2046 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2047 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2048 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2049 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2050 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2051 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2052 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2053 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x25,0x24,0x28, | ||
2054 | 0x24,0x23,0x23,0x25,0x24,0x26,0x24,0x25,0x24,0x25,0x25,0x04,0x2F,0x2F,0x2D,0x2D, | ||
2055 | 0x32,0x33,0x33,0x34,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x35,0x35,0x35,0x35,0x36,0x36, | ||
2056 | 0x36,0x36,0x20,0x23,0x2F,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2057 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2058 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2059 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
2060 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17, | ||
2061 | 0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2062 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2063 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2064 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x28,0x22,0x04,0x28,0x25,0x04,0x04,0x24,0x29, | ||
2065 | 0x24,0x22,0x25,0x21,0x22,0x23,0x22,0x26,0x26,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2066 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2067 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2068 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2069 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2070 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
2071 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
2072 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2073 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x20,0x23,0x23,0x25, | ||
2074 | 0x25,0x25,0x25,0x25,0x23,0x26,0x28,0x25,0x26,0x25,0x26,0x25,0x2E,0x2F,0x2D,0x2D, | ||
2075 | 0x33,0x36,0x22,0x25,0x27,0x27,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
2076 | 0x28,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2077 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2078 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2079 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
2080 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17, | ||
2081 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2082 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2083 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2084 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x26,0x24,0x24,0x04,0x28,0x04,0x26,0x25,0x28,0x29, | ||
2085 | 0x25,0x26,0x25,0x23,0x26,0x25,0x24,0x25,0x04,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2086 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2087 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2088 | 0x2B,0x24,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2089 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2090 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x28,0x27,0x27,0x27,0x27,0x25,0x22, | ||
2091 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2092 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2093 | 0x2B,0x04,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x20,0x22,0x23,0x23, | ||
2094 | 0x26,0x23,0x28,0x24,0x04,0x28,0x28,0x28,0x23,0x28,0x27,0x27,0x2E,0x2F,0x2D,0x2D, | ||
2095 | 0x34,0x22,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
2096 | 0x00,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2097 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2098 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2099 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
2100 | 0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2101 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2102 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2103 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2104 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x28,0x25,0x26,0x26,0x26,0x04,0x24,0x20,0x29, | ||
2105 | 0x25,0x26,0x22,0x25,0x24,0x25,0x24,0x04,0x26,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2106 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2107 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2108 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2109 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2110 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2111 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2112 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2113 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x20,0x25,0x24,0x26, | ||
2114 | 0x04,0x25,0x26,0x26,0x04,0x28,0x23,0x04,0x04,0x29,0x28,0x28,0x2E,0x2F,0x2D,0x2D, | ||
2115 | 0x34,0x25,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
2116 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2117 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17, | ||
2118 | 0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2119 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
2120 | 0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2121 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2122 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2123 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2124 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x26,0x28,0x25,0x25,0x28,0x28,0x28,0x24,0x04,0x29, | ||
2125 | 0x26,0x23,0x23,0x25,0x25,0x04,0x25,0x25,0x26,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2126 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2127 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2128 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2129 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2130 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
2131 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
2132 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2133 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x20,0x28,0x25,0x26, | ||
2134 | 0x25,0x25,0x26,0x26,0x25,0x04,0x26,0x28,0x28,0x28,0x26,0x26,0x2E,0x2F,0x2D,0x2D, | ||
2135 | 0x35,0x27,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
2136 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2137 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2138 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2139 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
2140 | 0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2141 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2142 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2143 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2144 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x24,0x25,0x24,0x28,0x23,0x25,0x22,0x04,0x25,0x29, | ||
2145 | 0x25,0x25,0x25,0x28,0x25,0x24,0x23,0x25,0x23,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2146 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2147 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2148 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x24,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2149 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2150 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x28, | ||
2151 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
2152 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2153 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x20,0x25,0x23,0x28, | ||
2154 | 0x23,0x26,0x29,0x04,0x28,0x29,0x28,0x28,0x26,0x28,0x28,0x04,0x2E,0x2F,0x2D,0x2D, | ||
2155 | 0x36,0x27,0x28,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
2156 | 0x1F,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2157 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17, | ||
2158 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2159 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
2160 | 0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2161 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2162 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2163 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2164 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x04,0x04,0x25,0x26,0x26,0x26,0x28,0x25,0x28,0x29, | ||
2165 | 0x04,0x24,0x23,0x24,0x23,0x24,0x22,0x25,0x24,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2166 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
2167 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2168 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2169 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2170 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2171 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
2172 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2173 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x28,0x25,0x28, | ||
2174 | 0x28,0x25,0x04,0x25,0x29,0x26,0x28,0x28,0x28,0x25,0x23,0x04,0x2D,0x2F,0x2D,0x2D, | ||
2175 | 0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
2176 | 0x28,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2177 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17, | ||
2178 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2179 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
2180 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17, | ||
2181 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2182 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2183 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2184 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x25,0x28,0x26,0x28,0x28,0x25,0x28,0x28,0x28,0x29, | ||
2185 | 0x23,0x25,0x26,0x28,0x22,0x25,0x04,0x28,0x28,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2186 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2187 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2188 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2189 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2190 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2191 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
2192 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2193 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x29,0x29,0x25, | ||
2194 | 0x28,0x04,0x04,0x28,0x28,0x28,0x28,0x28,0x25,0x28,0x25,0x28,0x2D,0x2F,0x2D,0x2D, | ||
2195 | 0x23,0x2A,0x2C,0x2C,0x2D,0x2D,0x2D,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F, | ||
2196 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2197 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17, | ||
2198 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2199 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
2200 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17, | ||
2201 | 0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2202 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2203 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2204 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x28,0x26,0x04,0x2A,0x04,0x24,0x28,0x29,0x04,0x29, | ||
2205 | 0x25,0x25,0x25,0x04,0x04,0x24,0x28,0x28,0x28,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2206 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2207 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2208 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2209 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2210 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2211 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
2212 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2213 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x20,0x28,0x28,0x25, | ||
2214 | 0x28,0x28,0x28,0x29,0x28,0x28,0x27,0x25,0x04,0x28,0x26,0x24,0x2C,0x2F,0x2D,0x2D, | ||
2215 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2216 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2217 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
2218 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2219 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17, | ||
2220 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2221 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2222 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2223 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2224 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x04,0x28,0x29,0x28,0x04,0x2A,0x2A,0x2A,0x28,0x29, | ||
2225 | 0x28,0x25,0x25,0x04,0x24,0x28,0x04,0x26,0x28,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2226 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2227 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2228 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2229 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2230 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
2231 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
2232 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2233 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x29,0x28, | ||
2234 | 0x25,0x29,0x28,0x2A,0x25,0x24,0x28,0x25,0x24,0x26,0x04,0x22,0x2C,0x2F,0x2D,0x2D, | ||
2235 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2236 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2237 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2238 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2239 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2240 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2241 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2242 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2243 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2244 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x28,0x28,0x2A,0x25,0x28,0x04,0x25,0x26,0x28,0x29, | ||
2245 | 0x25,0x25,0x25,0x26,0x25,0x24,0x25,0x28,0x28,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2246 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2247 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2248 | 0x2B,0x04,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2249 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2250 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x26,0x27,0x27,0x27,0x27,0x25,0x22, | ||
2251 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2252 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2253 | 0x2B,0x28,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x26,0x04, | ||
2254 | 0x28,0x26,0x24,0x22,0x25,0x25,0x25,0x28,0x22,0x20,0x26,0x22,0x2C,0x2F,0x2D,0x2D, | ||
2255 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2256 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2257 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2258 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2259 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2260 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2261 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2262 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2263 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2264 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x25,0x25,0x25,0x28,0x28,0x2A,0x04,0x29,0x28,0x29, | ||
2265 | 0x04,0x23,0x26,0x28,0x25,0x28,0x04,0x28,0x24,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2266 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2267 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2268 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2269 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2270 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2271 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2272 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2273 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x28,0x28, | ||
2274 | 0x28,0x25,0x25,0x28,0x22,0x24,0x25,0x25,0x25,0x26,0x04,0x28,0x2C,0x2F,0x2D,0x2D, | ||
2275 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2276 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2277 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2278 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2279 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2280 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2281 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2282 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2283 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2284 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x25,0x04,0x28,0x25,0x04,0x2A,0x28,0x2A,0x2B,0x29, | ||
2285 | 0x24,0x28,0x22,0x23,0x24,0x26,0x04,0x25,0x24,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2286 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2287 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2288 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2289 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2290 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
2291 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2292 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2293 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x26,0x28, | ||
2294 | 0x25,0x22,0x26,0x23,0x23,0x25,0x22,0x20,0x26,0x20,0x23,0x04,0x28,0x24,0x24,0x24, | ||
2295 | 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x23,0x23,0x23,0x23,0x23, | ||
2296 | 0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, | ||
2297 | 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x21,0x21,0x21,0x21, | ||
2298 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
2299 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
2300 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
2301 | 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x36,0x36, | ||
2302 | 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35, | ||
2303 | 0x35,0x35,0x35,0x35,0x35,0x0C,0x0C,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34, | ||
2304 | 0x34,0x34,0x34,0x33,0x33,0x32,0x29,0x25,0x28,0x28,0x2A,0x28,0x29,0x28,0x25,0x29, | ||
2305 | 0x04,0x23,0x23,0x24,0x24,0x04,0x28,0x24,0x26,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2306 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2307 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2308 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x28,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2309 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2310 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x24, | ||
2311 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2312 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2313 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x22,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x25,0x20, | ||
2314 | 0x24,0x23,0x24,0x20,0x22,0x24,0x25,0x24,0x24,0x25,0x25,0x24,0x28,0x28,0x28,0x04, | ||
2315 | 0x28,0x25,0x28,0x28,0x25,0x04,0x28,0x28,0x04,0x25,0x25,0x28,0x04,0x28,0x28,0x26, | ||
2316 | 0x28,0x24,0x24,0x20,0x22,0x04,0x25,0x23,0x21,0x21,0x26,0x25,0x21,0x25,0x28,0x23, | ||
2317 | 0x25,0x25,0x22,0x23,0x25,0x22,0x22,0x22,0x20,0x23,0x25,0x23,0x28,0x04,0x04,0x28, | ||
2318 | 0x24,0x25,0x25,0x25,0x20,0x22,0x23,0x24,0x26,0x25,0x24,0x26,0x26,0x28,0x22,0x24, | ||
2319 | 0x26,0x26,0x25,0x24,0x23,0x23,0x24,0x25,0x26,0x24,0x25,0x25,0x24,0x20,0x20,0x22, | ||
2320 | 0x28,0x25,0x25,0x24,0x23,0x25,0x24,0x25,0x24,0x25,0x22,0x23,0x04,0x04,0x25,0x23, | ||
2321 | 0x25,0x28,0x28,0x25,0x22,0x24,0x25,0x25,0x25,0x04,0x28,0x25,0x28,0x26,0x24,0x26, | ||
2322 | 0x25,0x23,0x04,0x25,0x26,0x25,0x25,0x24,0x04,0x25,0x24,0x26,0x04,0x28,0x29,0x28, | ||
2323 | 0x28,0x28,0x2A,0x28,0x28,0x28,0x29,0x28,0x26,0x26,0x04,0x24,0x22,0x04,0x25,0x28, | ||
2324 | 0x25,0x26,0x29,0x25,0x28,0x24,0x28,0x26,0x29,0x28,0x25,0x28,0x04,0x26,0x04,0x29, | ||
2325 | 0x04,0x04,0x23,0x28,0x28,0x25,0x25,0x23,0x04,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2326 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
2327 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2328 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2329 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2330 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2331 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
2332 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2333 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x36,0x20,0x22,0x23, | ||
2334 | 0x20,0x24,0x22,0x24,0x22,0x20,0x24,0x25,0x26,0x24,0x25,0x28,0x22,0x04,0x28,0x2A, | ||
2335 | 0x28,0x28,0x26,0x29,0x28,0x29,0x28,0x26,0x25,0x25,0x26,0x24,0x28,0x26,0x28,0x23, | ||
2336 | 0x22,0x20,0x04,0x26,0x24,0x22,0x28,0x28,0x25,0x23,0x04,0x24,0x22,0x04,0x24,0x04, | ||
2337 | 0x25,0x28,0x25,0x28,0x25,0x24,0x26,0x28,0x04,0x24,0x22,0x04,0x23,0x04,0x04,0x24, | ||
2338 | 0x26,0x26,0x26,0x25,0x25,0x28,0x22,0x23,0x28,0x25,0x28,0x25,0x22,0x25,0x23,0x28, | ||
2339 | 0x04,0x26,0x28,0x25,0x28,0x28,0x24,0x25,0x26,0x25,0x28,0x22,0x22,0x25,0x25,0x28, | ||
2340 | 0x25,0x22,0x25,0x20,0x25,0x20,0x25,0x24,0x22,0x24,0x26,0x26,0x04,0x26,0x24,0x26, | ||
2341 | 0x25,0x26,0x24,0x04,0x25,0x26,0x25,0x24,0x26,0x24,0x26,0x26,0x04,0x28,0x26,0x24, | ||
2342 | 0x28,0x25,0x04,0x25,0x28,0x04,0x22,0x24,0x04,0x27,0x26,0x28,0x04,0x25,0x25,0x28, | ||
2343 | 0x28,0x04,0x28,0x29,0x23,0x25,0x28,0x26,0x25,0x22,0x25,0x24,0x22,0x22,0x28,0x29, | ||
2344 | 0x28,0x28,0x28,0x28,0x25,0x04,0x04,0x26,0x29,0x25,0x24,0x04,0x26,0x22,0x24,0x29, | ||
2345 | 0x25,0x28,0x28,0x26,0x04,0x25,0x23,0x04,0x25,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2346 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2347 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2348 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2349 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2350 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2351 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2352 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2353 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x36,0x20,0x25,0x22, | ||
2354 | 0x24,0x23,0x22,0x25,0x25,0x28,0x26,0x25,0x04,0x24,0x28,0x28,0x29,0x28,0x25,0x2A, | ||
2355 | 0x28,0x28,0x04,0x28,0x25,0x25,0x22,0x22,0x26,0x20,0x20,0x26,0x24,0x24,0x28,0x26, | ||
2356 | 0x28,0x25,0x28,0x28,0x25,0x25,0x26,0x28,0x28,0x04,0x28,0x25,0x24,0x25,0x04,0x28, | ||
2357 | 0x26,0x26,0x28,0x04,0x26,0x25,0x26,0x24,0x28,0x28,0x25,0x24,0x28,0x04,0x25,0x25, | ||
2358 | 0x25,0x25,0x25,0x04,0x24,0x04,0x24,0x25,0x04,0x26,0x28,0x25,0x28,0x24,0x25,0x26, | ||
2359 | 0x25,0x26,0x26,0x04,0x28,0x26,0x25,0x26,0x25,0x25,0x25,0x22,0x20,0x22,0x25,0x23, | ||
2360 | 0x20,0x20,0x22,0x28,0x28,0x22,0x24,0x23,0x26,0x25,0x28,0x25,0x28,0x28,0x28,0x23, | ||
2361 | 0x25,0x25,0x24,0x28,0x28,0x26,0x26,0x25,0x25,0x28,0x24,0x25,0x24,0x28,0x25,0x28, | ||
2362 | 0x28,0x28,0x04,0x25,0x28,0x28,0x25,0x28,0x28,0x28,0x29,0x28,0x28,0x28,0x28,0x28, | ||
2363 | 0x29,0x28,0x27,0x27,0x25,0x24,0x24,0x25,0x04,0x26,0x25,0x25,0x28,0x29,0x24,0x26, | ||
2364 | 0x25,0x26,0x25,0x24,0x27,0x25,0x25,0x25,0x04,0x28,0x04,0x04,0x28,0x28,0x28,0x29, | ||
2365 | 0x28,0x26,0x04,0x04,0x22,0x25,0x22,0x24,0x25,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2366 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2367 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2368 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2369 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2370 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2371 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2372 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2373 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x25,0x24, | ||
2374 | 0x24,0x26,0x26,0x04,0x25,0x25,0x28,0x28,0x04,0x2A,0x04,0x28,0x28,0x28,0x26,0x28, | ||
2375 | 0x28,0x28,0x26,0x28,0x22,0x23,0x25,0x22,0x26,0x28,0x24,0x25,0x28,0x26,0x28,0x28, | ||
2376 | 0x04,0x26,0x24,0x28,0x25,0x25,0x28,0x25,0x04,0x25,0x22,0x26,0x26,0x24,0x26,0x04, | ||
2377 | 0x28,0x04,0x28,0x25,0x25,0x04,0x28,0x25,0x24,0x26,0x24,0x04,0x04,0x24,0x28,0x25, | ||
2378 | 0x04,0x26,0x26,0x28,0x25,0x25,0x23,0x26,0x04,0x28,0x26,0x25,0x28,0x25,0x24,0x04, | ||
2379 | 0x24,0x22,0x26,0x24,0x28,0x28,0x28,0x26,0x28,0x26,0x24,0x24,0x20,0x24,0x23,0x20, | ||
2380 | 0x24,0x28,0x24,0x26,0x25,0x28,0x26,0x04,0x26,0x28,0x25,0x26,0x24,0x23,0x26,0x26, | ||
2381 | 0x28,0x26,0x28,0x22,0x25,0x26,0x25,0x25,0x26,0x04,0x24,0x28,0x04,0x25,0x28,0x26, | ||
2382 | 0x28,0x28,0x29,0x26,0x04,0x04,0x28,0x28,0x25,0x28,0x25,0x28,0x26,0x28,0x26,0x28, | ||
2383 | 0x04,0x28,0x25,0x22,0x28,0x26,0x26,0x28,0x04,0x26,0x29,0x25,0x28,0x24,0x26,0x26, | ||
2384 | 0x26,0x25,0x25,0x25,0x28,0x28,0x26,0x26,0x04,0x24,0x23,0x24,0x25,0x28,0x04,0x29, | ||
2385 | 0x22,0x22,0x21,0x24,0x25,0x25,0x26,0x23,0x26,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2386 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2387 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2388 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2389 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2390 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
2391 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2392 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2393 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x04,0x25, | ||
2394 | 0x04,0x25,0x28,0x04,0x26,0x28,0x28,0x28,0x24,0x25,0x28,0x28,0x26,0x04,0x28,0x25, | ||
2395 | 0x26,0x26,0x24,0x23,0x04,0x28,0x24,0x28,0x24,0x26,0x28,0x04,0x26,0x26,0x24,0x25, | ||
2396 | 0x24,0x2A,0x26,0x29,0x28,0x28,0x04,0x26,0x28,0x25,0x26,0x26,0x26,0x28,0x26,0x25, | ||
2397 | 0x26,0x26,0x25,0x25,0x25,0x26,0x04,0x04,0x25,0x26,0x25,0x24,0x26,0x26,0x24,0x25, | ||
2398 | 0x26,0x28,0x25,0x28,0x26,0x28,0x26,0x28,0x28,0x26,0x25,0x25,0x25,0x25,0x28,0x23, | ||
2399 | 0x28,0x28,0x22,0x25,0x04,0x28,0x04,0x24,0x24,0x23,0x25,0x04,0x25,0x22,0x20,0x04, | ||
2400 | 0x26,0x25,0x24,0x26,0x26,0x28,0x26,0x26,0x04,0x26,0x25,0x24,0x25,0x24,0x24,0x28, | ||
2401 | 0x24,0x25,0x04,0x24,0x25,0x26,0x23,0x24,0x27,0x28,0x28,0x28,0x29,0x28,0x25,0x28, | ||
2402 | 0x2A,0x2A,0x2A,0x29,0x2A,0x28,0x26,0x28,0x28,0x26,0x28,0x26,0x24,0x25,0x28,0x26, | ||
2403 | 0x25,0x26,0x04,0x28,0x04,0x28,0x04,0x24,0x28,0x04,0x28,0x28,0x29,0x04,0x28,0x23, | ||
2404 | 0x04,0x28,0x24,0x28,0x26,0x28,0x28,0x28,0x28,0x27,0x25,0x04,0x04,0x28,0x26,0x29, | ||
2405 | 0x22,0x25,0x26,0x04,0x25,0x23,0x26,0x23,0x23,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2406 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2407 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2408 | 0x2B,0x25,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2409 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2410 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x20,0x27,0x27,0x27,0x27,0x25,0x22, | ||
2411 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2412 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2413 | 0x2B,0x23,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x24,0x26, | ||
2414 | 0x29,0x28,0x29,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x25,0x2F,0x2F,0x2F,0x2F, | ||
2415 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2416 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2417 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2418 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2419 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2420 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
2421 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
2422 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2D,0x2D, | ||
2423 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2C, | ||
2424 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x26,0x28,0x26,0x28,0x28,0x25,0x26,0x28,0x29,0x25,0x29, | ||
2425 | 0x24,0x23,0x21,0x22,0x28,0x25,0x23,0x21,0x28,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2426 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2427 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2428 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2429 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2430 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2431 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2432 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2433 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x28,0x04, | ||
2434 | 0x04,0x28,0x28,0x28,0x29,0x28,0x26,0x28,0x26,0x24,0x28,0x28,0x2F,0x2F,0x2F,0x2F, | ||
2435 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2436 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2437 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2438 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2439 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2440 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2441 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2442 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2443 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2444 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x23,0x28,0x26,0x04,0x28,0x28,0x04,0x29,0x28,0x04,0x29, | ||
2445 | 0x22,0x26,0x22,0x22,0x23,0x04,0x24,0x25,0x24,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2446 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2447 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2448 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2449 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2450 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
2451 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
2452 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2453 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x25,0x29, | ||
2454 | 0x26,0x26,0x28,0x28,0x26,0x28,0x28,0x26,0x04,0x25,0x04,0x22,0x2F,0x2F,0x2D,0x2D, | ||
2455 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2456 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2457 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2458 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2459 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2460 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2461 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2462 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2463 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2464 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x20,0x25,0x28,0x28,0x28,0x28,0x25,0x25,0x25,0x27,0x29, | ||
2465 | 0x23,0x24,0x23,0x26,0x04,0x28,0x25,0x26,0x23,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2466 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2467 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2468 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x24,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2469 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2470 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x24, | ||
2471 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2472 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2473 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x24,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x28,0x28, | ||
2474 | 0x28,0x28,0x25,0x28,0x24,0x04,0x26,0x04,0x28,0x28,0x26,0x20,0x2F,0x2F,0x2D,0x2D, | ||
2475 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2476 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2477 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2478 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2479 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2480 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2481 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2482 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2483 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2484 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x28,0x04,0x04,0x2A,0x04,0x28,0x24,0x28,0x29, | ||
2485 | 0x24,0x24,0x25,0x23,0x28,0x04,0x26,0x26,0x25,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2486 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2487 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2488 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2489 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2490 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2491 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2492 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2493 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x26,0x28, | ||
2494 | 0x26,0x04,0x28,0x04,0x28,0x25,0x24,0x26,0x25,0x22,0x25,0x28,0x2F,0x2F,0x2D,0x2D, | ||
2495 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2496 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2497 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2498 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2499 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2500 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2501 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2502 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2503 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2504 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x04,0x28,0x28,0x2A,0x29,0x28,0x28,0x2A,0x29, | ||
2505 | 0x28,0x23,0x04,0x25,0x28,0x22,0x26,0x28,0x23,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2506 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2507 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2508 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2509 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2510 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2511 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
2512 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2513 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x26,0x24, | ||
2514 | 0x26,0x28,0x24,0x04,0x25,0x24,0x22,0x20,0x20,0x23,0x24,0x25,0x2F,0x2F,0x2D,0x2D, | ||
2515 | 0x32,0x33,0x33,0x34,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x35,0x35,0x35,0x35,0x36,0x36, | ||
2516 | 0x36,0x36,0x20,0x23,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2517 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2518 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2519 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2520 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2521 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2522 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2523 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2524 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x28,0x28,0x28,0x28,0x26,0x04,0x04,0x28,0x29, | ||
2525 | 0x23,0x25,0x04,0x28,0x25,0x25,0x22,0x24,0x25,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2526 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2527 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2528 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2529 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2530 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2531 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
2532 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2533 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x25,0x26, | ||
2534 | 0x24,0x20,0x22,0x20,0x22,0x26,0x22,0x23,0x25,0x04,0x25,0x04,0x2E,0x2F,0x2D,0x2D, | ||
2535 | 0x33,0x36,0x22,0x25,0x27,0x27,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
2536 | 0x28,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2537 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2538 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2539 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2540 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2541 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2542 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2543 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2544 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x04,0x29,0x29,0x04,0x28,0x04,0x22,0x22,0x20,0x29, | ||
2545 | 0x04,0x25,0x25,0x23,0x23,0x25,0x22,0x25,0x23,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2546 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2547 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2548 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2549 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2550 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
2551 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
2552 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2553 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x36,0x20,0x25,0x25, | ||
2554 | 0x25,0x22,0x04,0x23,0x04,0x24,0x04,0x04,0x24,0x04,0x04,0x28,0x2E,0x2F,0x2D,0x2D, | ||
2555 | 0x34,0x22,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
2556 | 0x00,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2557 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2558 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2559 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2560 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2561 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2562 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2563 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2564 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x29,0x28,0x27,0x25,0x26,0x22,0x24,0x24,0x20,0x29, | ||
2565 | 0x28,0x24,0x25,0x24,0x26,0x22,0x28,0x24,0x22,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2566 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2567 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2568 | 0x2B,0x25,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2569 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2570 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x28,0x27,0x27,0x27,0x27,0x25,0x22, | ||
2571 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2572 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2573 | 0x2B,0x28,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x36,0x25,0x25,0x25, | ||
2574 | 0x25,0x25,0x04,0x23,0x04,0x25,0x26,0x25,0x25,0x22,0x26,0x28,0x2E,0x2F,0x2D,0x2D, | ||
2575 | 0x34,0x25,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
2576 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2577 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2578 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2579 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2580 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2581 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2582 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2583 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2584 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x04,0x04,0x23,0x25,0x24,0x25,0x23,0x23,0x04,0x29, | ||
2585 | 0x23,0x26,0x23,0x25,0x25,0x25,0x04,0x22,0x24,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2586 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2587 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2588 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2589 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2590 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2591 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2592 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2593 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x04,0x24,0x28, | ||
2594 | 0x25,0x25,0x24,0x23,0x24,0x25,0x28,0x23,0x23,0x04,0x04,0x22,0x2E,0x2F,0x2D,0x2D, | ||
2595 | 0x35,0x27,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
2596 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2597 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2598 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2599 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2600 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2601 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2602 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2603 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2604 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x25,0x23,0x22,0x04,0x23,0x22,0x28,0x28,0x25,0x29, | ||
2605 | 0x25,0x22,0x23,0x24,0x24,0x20,0x23,0x26,0x23,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2606 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2607 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2608 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2609 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2610 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
2611 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2612 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2613 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x35,0x22,0x24,0x25, | ||
2614 | 0x25,0x24,0x25,0x22,0x25,0x25,0x26,0x25,0x26,0x22,0x28,0x28,0x2E,0x2F,0x2D,0x2D, | ||
2615 | 0x36,0x27,0x28,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
2616 | 0x1F,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2617 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2618 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2619 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2620 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2621 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2622 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2623 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2624 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x25,0x20,0x25,0x24,0x25,0x26,0x04,0x24,0x28,0x29, | ||
2625 | 0x23,0x23,0x25,0x24,0x24,0x04,0x04,0x22,0x25,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2626 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2627 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2628 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2629 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2630 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x28, | ||
2631 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2632 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2633 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x35,0x24,0x28,0x26, | ||
2634 | 0x25,0x04,0x25,0x28,0x24,0x22,0x25,0x26,0x23,0x25,0x25,0x28,0x2D,0x2F,0x2D,0x2D, | ||
2635 | 0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
2636 | 0x28,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2637 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2638 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2639 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2640 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2641 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2642 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2643 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2644 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x22,0x24,0x04,0x25,0x25,0x04,0x04,0x28,0x04,0x29, | ||
2645 | 0x25,0x23,0x25,0x23,0x25,0x21,0x22,0x25,0x22,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2646 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2647 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2648 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2649 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2650 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2651 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2652 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2653 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x25,0x25,0x23, | ||
2654 | 0x24,0x24,0x24,0x25,0x21,0x24,0x25,0x25,0x22,0x28,0x04,0x22,0x2D,0x2F,0x2D,0x2D, | ||
2655 | 0x23,0x2A,0x2C,0x2C,0x2D,0x2D,0x2D,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F, | ||
2656 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2657 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17, | ||
2658 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2659 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2660 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2661 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2662 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2663 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2664 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x23,0x28,0x04,0x23,0x04,0x28,0x26,0x26,0x27,0x29, | ||
2665 | 0x26,0x26,0x25,0x22,0x22,0x20,0x25,0x20,0x25,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2666 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2667 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2668 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2669 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2670 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2671 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2672 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2673 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x24,0x04,0x28, | ||
2674 | 0x22,0x26,0x24,0x24,0x25,0x24,0x25,0x28,0x25,0x24,0x24,0x25,0x2C,0x2F,0x2D,0x2D, | ||
2675 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2676 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2677 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17, | ||
2678 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2679 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2680 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2681 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2682 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2683 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2684 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x26,0x04,0x28,0x26,0x26,0x04,0x04,0x25,0x25,0x29, | ||
2685 | 0x25,0x22,0x24,0x22,0x20,0x23,0x20,0x25,0x24,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2686 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2687 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2688 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2689 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2690 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2691 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2692 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2693 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x04,0x04,0x25, | ||
2694 | 0x23,0x22,0x25,0x04,0x25,0x26,0x28,0x25,0x24,0x04,0x28,0x25,0x2C,0x2F,0x2D,0x2D, | ||
2695 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2696 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2697 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2698 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2699 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2700 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2701 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2702 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2703 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2704 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x25,0x25,0x28,0x04,0x26,0x25,0x26,0x28,0x26,0x29, | ||
2705 | 0x20,0x04,0x22,0x04,0x24,0x24,0x26,0x23,0x25,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2706 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2707 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2708 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2709 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2710 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
2711 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2712 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2713 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x35,0x25,0x28,0x24, | ||
2714 | 0x22,0x24,0x22,0x04,0x25,0x23,0x22,0x25,0x23,0x24,0x04,0x25,0x2C,0x2F,0x2D,0x2D, | ||
2715 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2716 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2717 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2718 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2719 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2720 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2721 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2722 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2723 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2724 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x04,0x28,0x04,0x28,0x04,0x26,0x28,0x25,0x28,0x29, | ||
2725 | 0x24,0x20,0x26,0x21,0x25,0x22,0x25,0x28,0x04,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2726 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2727 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2728 | 0x2B,0x28,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2729 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2730 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x28,0x27,0x27,0x27,0x27,0x25,0x22, | ||
2731 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2732 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2733 | 0x2B,0x25,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x35,0x22,0x04,0x28, | ||
2734 | 0x25,0x23,0x23,0x28,0x25,0x25,0x24,0x24,0x23,0x28,0x24,0x26,0x2C,0x2F,0x2D,0x2D, | ||
2735 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2736 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2737 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2738 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2739 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2740 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2741 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2742 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2743 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2744 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x25,0x26,0x28,0x04,0x04,0x24,0x28,0x25,0x28,0x29, | ||
2745 | 0x20,0x25,0x04,0x23,0x25,0x22,0x22,0x25,0x25,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2746 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2747 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2748 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2749 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2750 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2751 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2752 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2753 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x25,0x28,0x24, | ||
2754 | 0x04,0x25,0x24,0x24,0x26,0x25,0x22,0x28,0x23,0x26,0x28,0x24,0x28,0x24,0x24,0x24, | ||
2755 | 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x23,0x23,0x23,0x23,0x23, | ||
2756 | 0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, | ||
2757 | 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x21,0x21,0x21,0x21, | ||
2758 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
2759 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
2760 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
2761 | 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x36,0x36, | ||
2762 | 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35, | ||
2763 | 0x35,0x35,0x35,0x35,0x35,0x0C,0x0C,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34, | ||
2764 | 0x34,0x34,0x34,0x33,0x33,0x32,0x28,0x04,0x25,0x04,0x26,0x04,0x04,0x28,0x04,0x29, | ||
2765 | 0x22,0x26,0x04,0x24,0x22,0x25,0x26,0x23,0x22,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2766 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2767 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2768 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2769 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2770 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
2771 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
2772 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2773 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x35,0x26,0x21,0x24, | ||
2774 | 0x26,0x25,0x23,0x25,0x23,0x25,0x25,0x25,0x24,0x23,0x25,0x26,0x26,0x23,0x25,0x25, | ||
2775 | 0x04,0x26,0x24,0x24,0x21,0x25,0x25,0x25,0x25,0x26,0x04,0x26,0x25,0x04,0x26,0x26, | ||
2776 | 0x04,0x28,0x28,0x28,0x28,0x25,0x26,0x04,0x23,0x25,0x25,0x25,0x26,0x26,0x24,0x26, | ||
2777 | 0x28,0x26,0x25,0x04,0x25,0x26,0x04,0x23,0x23,0x20,0x25,0x22,0x20,0x04,0x22,0x23, | ||
2778 | 0x24,0x04,0x22,0x24,0x26,0x24,0x28,0x28,0x04,0x27,0x04,0x28,0x04,0x25,0x26,0x28, | ||
2779 | 0x28,0x29,0x28,0x26,0x28,0x25,0x28,0x28,0x28,0x28,0x28,0x2A,0x28,0x29,0x28,0x29, | ||
2780 | 0x2A,0x28,0x28,0x25,0x28,0x28,0x28,0x04,0x26,0x28,0x28,0x2B,0x29,0x29,0x28,0x24, | ||
2781 | 0x28,0x25,0x29,0x04,0x28,0x25,0x2A,0x2A,0x28,0x28,0x28,0x29,0x2B,0x28,0x2A,0x2A, | ||
2782 | 0x04,0x28,0x28,0x28,0x04,0x28,0x22,0x22,0x20,0x20,0x22,0x20,0x20,0x22,0x23,0x04, | ||
2783 | 0x04,0x26,0x22,0x24,0x24,0x04,0x24,0x25,0x23,0x25,0x25,0x28,0x25,0x25,0x26,0x28, | ||
2784 | 0x25,0x26,0x04,0x26,0x04,0x24,0x28,0x28,0x28,0x28,0x28,0x26,0x04,0x04,0x26,0x29, | ||
2785 | 0x22,0x22,0x21,0x20,0x20,0x24,0x25,0x20,0x23,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2786 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2787 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2788 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x28,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2789 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2790 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
2791 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
2792 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2793 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x35,0x24,0x23,0x26, | ||
2794 | 0x22,0x24,0x04,0x04,0x26,0x24,0x26,0x23,0x25,0x28,0x04,0x25,0x26,0x22,0x23,0x23, | ||
2795 | 0x23,0x28,0x23,0x25,0x04,0x23,0x23,0x23,0x25,0x25,0x25,0x04,0x28,0x28,0x04,0x04, | ||
2796 | 0x25,0x26,0x26,0x26,0x26,0x28,0x28,0x28,0x28,0x24,0x25,0x26,0x24,0x28,0x28,0x04, | ||
2797 | 0x24,0x25,0x04,0x23,0x26,0x26,0x25,0x25,0x26,0x20,0x25,0x23,0x26,0x04,0x25,0x25, | ||
2798 | 0x22,0x20,0x26,0x26,0x28,0x26,0x28,0x04,0x26,0x24,0x28,0x26,0x04,0x28,0x28,0x28, | ||
2799 | 0x28,0x28,0x25,0x28,0x25,0x26,0x28,0x29,0x28,0x28,0x28,0x2A,0x28,0x28,0x25,0x2A, | ||
2800 | 0x26,0x2B,0x29,0x28,0x2B,0x2B,0x2B,0x28,0x28,0x28,0x28,0x28,0x04,0x29,0x26,0x28, | ||
2801 | 0x29,0x28,0x28,0x2B,0x04,0x29,0x25,0x04,0x28,0x24,0x25,0x2A,0x28,0x04,0x28,0x28, | ||
2802 | 0x28,0x28,0x28,0x04,0x21,0x23,0x25,0x23,0x24,0x26,0x24,0x25,0x25,0x24,0x28,0x26, | ||
2803 | 0x24,0x28,0x26,0x24,0x25,0x04,0x24,0x23,0x04,0x28,0x25,0x22,0x28,0x24,0x28,0x28, | ||
2804 | 0x28,0x28,0x28,0x28,0x28,0x04,0x28,0x23,0x23,0x04,0x04,0x26,0x28,0x24,0x25,0x29, | ||
2805 | 0x20,0x20,0x20,0x26,0x25,0x22,0x28,0x25,0x04,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2806 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2807 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2808 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2809 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2810 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2811 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2812 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2813 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x04,0x24,0x23, | ||
2814 | 0x28,0x04,0x04,0x25,0x25,0x24,0x22,0x24,0x24,0x26,0x25,0x25,0x25,0x28,0x28,0x26, | ||
2815 | 0x24,0x24,0x04,0x23,0x04,0x25,0x04,0x26,0x26,0x26,0x25,0x04,0x26,0x24,0x25,0x28, | ||
2816 | 0x26,0x04,0x26,0x28,0x23,0x28,0x28,0x23,0x25,0x04,0x25,0x25,0x26,0x28,0x28,0x25, | ||
2817 | 0x26,0x28,0x26,0x22,0x26,0x23,0x23,0x22,0x22,0x20,0x26,0x04,0x25,0x28,0x25,0x23, | ||
2818 | 0x23,0x24,0x24,0x28,0x25,0x28,0x28,0x26,0x26,0x23,0x26,0x04,0x28,0x26,0x25,0x24, | ||
2819 | 0x04,0x28,0x26,0x28,0x28,0x28,0x28,0x28,0x22,0x25,0x28,0x26,0x28,0x23,0x24,0x26, | ||
2820 | 0x28,0x26,0x29,0x28,0x29,0x28,0x25,0x28,0x25,0x04,0x28,0x28,0x28,0x2A,0x25,0x2A, | ||
2821 | 0x2B,0x28,0x29,0x04,0x28,0x28,0x04,0x28,0x28,0x28,0x25,0x28,0x04,0x28,0x26,0x28, | ||
2822 | 0x26,0x24,0x23,0x25,0x23,0x25,0x04,0x24,0x24,0x28,0x28,0x25,0x04,0x26,0x28,0x04, | ||
2823 | 0x04,0x25,0x28,0x26,0x04,0x04,0x28,0x24,0x28,0x28,0x26,0x28,0x04,0x28,0x25,0x24, | ||
2824 | 0x25,0x28,0x28,0x26,0x24,0x28,0x28,0x26,0x26,0x04,0x28,0x28,0x25,0x25,0x27,0x29, | ||
2825 | 0x24,0x26,0x23,0x26,0x25,0x25,0x25,0x25,0x28,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2826 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2827 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2828 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2829 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2830 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2831 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2832 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2833 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x25,0x26, | ||
2834 | 0x25,0x26,0x28,0x04,0x04,0x28,0x04,0x28,0x04,0x26,0x24,0x04,0x04,0x04,0x04,0x04, | ||
2835 | 0x26,0x28,0x26,0x25,0x28,0x28,0x28,0x26,0x28,0x28,0x24,0x04,0x04,0x25,0x25,0x24, | ||
2836 | 0x25,0x23,0x24,0x28,0x04,0x25,0x04,0x04,0x25,0x28,0x28,0x24,0x28,0x25,0x26,0x26, | ||
2837 | 0x26,0x26,0x22,0x21,0x25,0x22,0x20,0x25,0x23,0x26,0x25,0x25,0x25,0x25,0x24,0x22, | ||
2838 | 0x25,0x25,0x28,0x26,0x28,0x26,0x04,0x24,0x25,0x04,0x25,0x25,0x28,0x22,0x28,0x04, | ||
2839 | 0x28,0x22,0x04,0x25,0x28,0x28,0x28,0x25,0x22,0x04,0x26,0x28,0x22,0x28,0x25,0x23, | ||
2840 | 0x28,0x28,0x04,0x04,0x04,0x28,0x28,0x25,0x27,0x28,0x04,0x28,0x25,0x28,0x2A,0x26, | ||
2841 | 0x28,0x25,0x29,0x28,0x28,0x29,0x28,0x28,0x04,0x28,0x28,0x26,0x04,0x28,0x23,0x25, | ||
2842 | 0x28,0x23,0x22,0x20,0x20,0x28,0x28,0x25,0x28,0x24,0x22,0x24,0x28,0x25,0x26,0x26, | ||
2843 | 0x04,0x26,0x04,0x24,0x28,0x24,0x28,0x24,0x28,0x24,0x28,0x23,0x04,0x26,0x26,0x04, | ||
2844 | 0x28,0x28,0x04,0x28,0x28,0x28,0x28,0x25,0x28,0x25,0x25,0x24,0x28,0x28,0x28,0x29, | ||
2845 | 0x26,0x22,0x22,0x28,0x23,0x25,0x22,0x22,0x28,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2846 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2847 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2848 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2849 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2850 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2851 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2852 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2853 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x26,0x26,0x28, | ||
2854 | 0x28,0x28,0x25,0x25,0x25,0x24,0x24,0x25,0x28,0x25,0x28,0x28,0x24,0x26,0x28,0x04, | ||
2855 | 0x26,0x28,0x28,0x26,0x28,0x28,0x28,0x26,0x28,0x24,0x26,0x25,0x26,0x25,0x25,0x04, | ||
2856 | 0x25,0x04,0x26,0x26,0x28,0x26,0x26,0x28,0x22,0x25,0x28,0x25,0x28,0x24,0x25,0x26, | ||
2857 | 0x25,0x20,0x22,0x23,0x25,0x23,0x28,0x25,0x25,0x26,0x25,0x25,0x25,0x24,0x24,0x25, | ||
2858 | 0x22,0x04,0x25,0x26,0x26,0x26,0x26,0x28,0x24,0x04,0x04,0x25,0x25,0x26,0x26,0x25, | ||
2859 | 0x25,0x25,0x28,0x24,0x26,0x26,0x26,0x24,0x28,0x23,0x28,0x04,0x25,0x25,0x28,0x04, | ||
2860 | 0x28,0x04,0x26,0x04,0x25,0x04,0x25,0x28,0x26,0x28,0x28,0x04,0x28,0x28,0x28,0x28, | ||
2861 | 0x28,0x28,0x26,0x04,0x25,0x04,0x28,0x28,0x25,0x25,0x24,0x25,0x22,0x26,0x26,0x20, | ||
2862 | 0x22,0x22,0x25,0x22,0x20,0x23,0x04,0x22,0x24,0x28,0x04,0x28,0x28,0x25,0x25,0x28, | ||
2863 | 0x28,0x25,0x28,0x04,0x28,0x25,0x26,0x26,0x28,0x25,0x25,0x25,0x26,0x28,0x26,0x28, | ||
2864 | 0x26,0x26,0x28,0x28,0x28,0x04,0x23,0x24,0x25,0x25,0x04,0x28,0x04,0x04,0x28,0x29, | ||
2865 | 0x25,0x04,0x26,0x26,0x24,0x25,0x28,0x26,0x28,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2866 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2867 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2868 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2869 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2870 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
2871 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2872 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2873 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x28,0x22, | ||
2874 | 0x25,0x28,0x25,0x25,0x26,0x22,0x23,0x26,0x28,0x25,0x26,0x26,0x2F,0x2F,0x2F,0x2F, | ||
2875 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2876 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2877 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2878 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2879 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2880 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
2881 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
2882 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2D,0x2D, | ||
2883 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2C, | ||
2884 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x26,0x28,0x04,0x24,0x28,0x04,0x26,0x28,0x28,0x28,0x29, | ||
2885 | 0x28,0x28,0x25,0x28,0x24,0x25,0x22,0x22,0x28,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2886 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2887 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2888 | 0x2B,0x26,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2889 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2890 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x25,0x27,0x27,0x27,0x27,0x25,0x22, | ||
2891 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2892 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2893 | 0x2B,0x26,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x04,0x26, | ||
2894 | 0x28,0x28,0x04,0x04,0x04,0x27,0x28,0x24,0x24,0x28,0x26,0x28,0x2F,0x2F,0x2F,0x2F, | ||
2895 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2896 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2897 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2898 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2899 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2900 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2901 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2902 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2903 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
2904 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x23,0x28,0x04,0x28,0x22,0x04,0x04,0x25,0x25,0x27,0x29, | ||
2905 | 0x24,0x25,0x25,0x04,0x26,0x28,0x23,0x04,0x28,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2906 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2907 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2908 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2909 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2910 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2911 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2912 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2913 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x29,0x28,0x26, | ||
2914 | 0x26,0x28,0x28,0x04,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x25,0x2F,0x2F,0x2D,0x2D, | ||
2915 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2916 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2917 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2918 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2919 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2920 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2921 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2922 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2923 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2924 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x20,0x26,0x04,0x24,0x28,0x28,0x28,0x26,0x28,0x04,0x29, | ||
2925 | 0x25,0x26,0x04,0x24,0x26,0x28,0x25,0x25,0x26,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2926 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2927 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2928 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2929 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
2930 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
2931 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
2932 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
2933 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x35,0x04,0x04,0x28, | ||
2934 | 0x25,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x28,0x28,0x2F,0x2F,0x2D,0x2D, | ||
2935 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2936 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2937 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2938 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2939 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2940 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2941 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2942 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2943 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2944 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x04,0x28,0x25,0x04,0x28,0x29,0x28,0x2B,0x29, | ||
2945 | 0x28,0x26,0x24,0x25,0x23,0x23,0x25,0x23,0x26,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2946 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2947 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2948 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x28,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2949 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2950 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x26, | ||
2951 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2952 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2953 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x35,0x26,0x24,0x25, | ||
2954 | 0x28,0x26,0x25,0x26,0x28,0x26,0x04,0x28,0x28,0x24,0x24,0x28,0x2F,0x2F,0x2D,0x2D, | ||
2955 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2956 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2957 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2958 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2959 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
2960 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2961 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2962 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2963 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2964 | 0x17,0x17,0x2D,0x2D,0x2D,0x36,0x04,0x29,0x28,0x25,0x28,0x04,0x25,0x25,0x04,0x29, | ||
2965 | 0x25,0x23,0x26,0x23,0x04,0x22,0x23,0x24,0x25,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2966 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2967 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2968 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2969 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2970 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2971 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2972 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2973 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x25,0x04,0x25, | ||
2974 | 0x28,0x04,0x24,0x26,0x26,0x25,0x22,0x28,0x26,0x04,0x26,0x24,0x2F,0x2F,0x2D,0x2D, | ||
2975 | 0x32,0x33,0x33,0x34,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x35,0x35,0x35,0x35,0x36,0x36, | ||
2976 | 0x36,0x36,0x20,0x23,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2977 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2978 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
2979 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
2980 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
2981 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
2982 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2983 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
2984 | 0x17,0x17,0x17,0x2D,0x2D,0x35,0x28,0x28,0x28,0x26,0x28,0x04,0x25,0x26,0x26,0x29, | ||
2985 | 0x24,0x26,0x04,0x25,0x22,0x22,0x28,0x28,0x04,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
2986 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2987 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
2988 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
2989 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
2990 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
2991 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
2992 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
2993 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x24,0x25,0x24, | ||
2994 | 0x23,0x04,0x28,0x25,0x26,0x26,0x28,0x26,0x24,0x04,0x26,0x28,0x2E,0x2F,0x2D,0x2D, | ||
2995 | 0x33,0x36,0x22,0x25,0x27,0x27,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
2996 | 0x28,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
2997 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2998 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
2999 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3000 | 0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3001 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3002 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3003 | 0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3004 | 0x17,0x17,0x17,0x2D,0x2D,0x35,0x23,0x04,0x26,0x25,0x04,0x28,0x28,0x04,0x24,0x29, | ||
3005 | 0x28,0x23,0x22,0x23,0x23,0x28,0x23,0x25,0x25,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3006 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3007 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
3008 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3009 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3010 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
3011 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
3012 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3013 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x25,0x04,0x24, | ||
3014 | 0x23,0x25,0x22,0x23,0x25,0x04,0x28,0x25,0x22,0x23,0x21,0x22,0x2E,0x2F,0x2D,0x2D, | ||
3015 | 0x34,0x22,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
3016 | 0x00,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3017 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3018 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
3019 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3020 | 0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3021 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3022 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3023 | 0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3024 | 0x17,0x17,0x17,0x2D,0x2D,0x35,0x22,0x04,0x04,0x25,0x28,0x28,0x04,0x23,0x22,0x29, | ||
3025 | 0x28,0x25,0x25,0x25,0x23,0x25,0x04,0x28,0x24,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3026 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3027 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3028 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3029 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
3030 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
3031 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
3032 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3033 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x35,0x23,0x22,0x25, | ||
3034 | 0x24,0x22,0x20,0x24,0x20,0x24,0x22,0x23,0x20,0x20,0x22,0x22,0x2E,0x2F,0x2D,0x2D, | ||
3035 | 0x34,0x25,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
3036 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3037 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3038 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
3039 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3040 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3041 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3042 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3043 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3044 | 0x17,0x17,0x17,0x2D,0x2D,0x35,0x04,0x25,0x26,0x26,0x25,0x26,0x24,0x22,0x27,0x29, | ||
3045 | 0x28,0x28,0x26,0x24,0x26,0x25,0x04,0x25,0x23,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3046 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3047 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3048 | 0x2B,0x25,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3049 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3050 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x28,0x27,0x27,0x27,0x27,0x25,0x22, | ||
3051 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3052 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3053 | 0x2B,0x26,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x35,0x22,0x25,0x25, | ||
3054 | 0x04,0x22,0x24,0x22,0x26,0x23,0x25,0x26,0x25,0x26,0x22,0x20,0x2E,0x2F,0x2D,0x2D, | ||
3055 | 0x35,0x27,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
3056 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3057 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3058 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
3059 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3060 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3061 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
3062 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3063 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3064 | 0x17,0x17,0x2D,0x2D,0x2D,0x0C,0x26,0x25,0x26,0x24,0x23,0x25,0x25,0x25,0x22,0x29, | ||
3065 | 0x25,0x04,0x23,0x25,0x28,0x28,0x27,0x29,0x25,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3066 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3067 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3068 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3069 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3070 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3071 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3072 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3073 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x25,0x23, | ||
3074 | 0x04,0x25,0x26,0x04,0x23,0x04,0x26,0x23,0x23,0x25,0x21,0x22,0x2E,0x2F,0x2D,0x2D, | ||
3075 | 0x36,0x27,0x28,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
3076 | 0x1F,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
3077 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3078 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3079 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3080 | 0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3081 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3082 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3083 | 0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3084 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x22,0x04,0x25,0x04,0x25,0x24,0x28,0x25,0x04,0x29, | ||
3085 | 0x28,0x22,0x26,0x04,0x28,0x25,0x28,0x28,0x28,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3086 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3087 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
3088 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3089 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
3090 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
3091 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
3092 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3093 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x35,0x26,0x25,0x23, | ||
3094 | 0x25,0x28,0x23,0x25,0x22,0x28,0x25,0x26,0x28,0x24,0x24,0x04,0x2D,0x2F,0x2D,0x2D, | ||
3095 | 0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
3096 | 0x28,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
3097 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3098 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3099 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3100 | 0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3101 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3102 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3103 | 0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3104 | 0x17,0x2D,0x2D,0x2D,0x2D,0x0C,0x28,0x25,0x28,0x04,0x28,0x23,0x25,0x22,0x27,0x29, | ||
3105 | 0x25,0x24,0x26,0x24,0x28,0x26,0x25,0x26,0x28,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3106 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3107 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
3108 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x24,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3109 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3110 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
3111 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
3112 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3113 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x35,0x26,0x25,0x26, | ||
3114 | 0x26,0x21,0x28,0x23,0x20,0x20,0x04,0x26,0x26,0x28,0x24,0x25,0x2D,0x2F,0x2D,0x2D, | ||
3115 | 0x23,0x2A,0x2C,0x2C,0x2D,0x2D,0x2D,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F, | ||
3116 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3117 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17, | ||
3118 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3119 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3120 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3121 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3122 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3123 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17, | ||
3124 | 0x17,0x17,0x2D,0x2D,0x2D,0x34,0x04,0x26,0x28,0x22,0x28,0x04,0x28,0x25,0x24,0x29, | ||
3125 | 0x04,0x04,0x22,0x26,0x29,0x28,0x04,0x21,0x25,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3126 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3127 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3128 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3129 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3130 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
3131 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
3132 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3133 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x26,0x20,0x20, | ||
3134 | 0x26,0x25,0x24,0x22,0x20,0x24,0x20,0x28,0x04,0x04,0x28,0x28,0x2C,0x2F,0x2D,0x2D, | ||
3135 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3136 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3137 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17, | ||
3138 | 0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3139 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3140 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3141 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17, | ||
3142 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3143 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17, | ||
3144 | 0x17,0x17,0x17,0x2D,0x2D,0x34,0x25,0x24,0x04,0x28,0x24,0x25,0x22,0x27,0x26,0x29, | ||
3145 | 0x04,0x26,0x28,0x26,0x26,0x04,0x25,0x26,0x23,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3146 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3147 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
3148 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3149 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3150 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
3151 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
3152 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3153 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x25,0x22,0x26, | ||
3154 | 0x25,0x25,0x28,0x28,0x04,0x28,0x26,0x28,0x04,0x24,0x26,0x25,0x2C,0x2F,0x2D,0x2D, | ||
3155 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3156 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3157 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3158 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3159 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3160 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3161 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3162 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3163 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3164 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x25,0x25,0x25,0x04,0x28,0x24,0x28,0x04,0x28,0x29, | ||
3165 | 0x28,0x28,0x04,0x04,0x28,0x28,0x25,0x28,0x26,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3166 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3167 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
3168 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3169 | 0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3170 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
3171 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3172 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3173 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x35,0x04,0x28,0x25, | ||
3174 | 0x24,0x28,0x25,0x04,0x28,0x04,0x25,0x25,0x28,0x28,0x25,0x26,0x2C,0x2F,0x2D,0x2D, | ||
3175 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3176 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3177 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3178 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3179 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3180 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3181 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3182 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3183 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3184 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x04,0x25,0x28,0x26,0x04,0x28,0x28,0x28,0x26,0x29, | ||
3185 | 0x28,0x28,0x25,0x25,0x28,0x25,0x28,0x23,0x25,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3186 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3187 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
3188 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3189 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
3190 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
3191 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3192 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3193 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x35,0x04,0x28,0x23, | ||
3194 | 0x20,0x24,0x25,0x28,0x28,0x25,0x28,0x28,0x27,0x28,0x26,0x25,0x2C,0x2F,0x2D,0x2D, | ||
3195 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3196 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3197 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3198 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3199 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3200 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3201 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3202 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3203 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3204 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x24,0x28,0x28,0x04,0x26,0x28,0x24,0x28,0x25,0x29, | ||
3205 | 0x29,0x26,0x28,0x25,0x28,0x25,0x24,0x22,0x22,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3206 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3207 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3208 | 0x2B,0x23,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3209 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3210 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x24,0x27,0x27,0x27,0x27,0x25,0x22, | ||
3211 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3212 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3213 | 0x2B,0x26,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x35,0x25,0x26,0x25, | ||
3214 | 0x04,0x28,0x28,0x25,0x04,0x24,0x26,0x26,0x24,0x23,0x26,0x26,0x28,0x24,0x23,0x24, | ||
3215 | 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x23,0x23,0x23,0x23,0x23, | ||
3216 | 0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, | ||
3217 | 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x21,0x21,0x21,0x21, | ||
3218 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
3219 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
3220 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
3221 | 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x36,0x36, | ||
3222 | 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35, | ||
3223 | 0x35,0x35,0x35,0x35,0x35,0x0C,0x0C,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34, | ||
3224 | 0x34,0x34,0x34,0x33,0x33,0x32,0x29,0x28,0x28,0x28,0x28,0x28,0x04,0x28,0x26,0x29, | ||
3225 | 0x28,0x26,0x28,0x28,0x28,0x25,0x25,0x04,0x22,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3226 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3227 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3228 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3229 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3230 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3231 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3232 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3233 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x04,0x26,0x25, | ||
3234 | 0x25,0x26,0x28,0x04,0x23,0x26,0x25,0x26,0x26,0x28,0x26,0x24,0x28,0x25,0x28,0x28, | ||
3235 | 0x04,0x28,0x26,0x24,0x04,0x04,0x25,0x25,0x26,0x28,0x25,0x28,0x04,0x28,0x25,0x25, | ||
3236 | 0x28,0x25,0x28,0x28,0x25,0x28,0x24,0x28,0x28,0x27,0x28,0x25,0x26,0x28,0x28,0x04, | ||
3237 | 0x28,0x23,0x28,0x04,0x24,0x26,0x24,0x28,0x25,0x28,0x28,0x29,0x28,0x2A,0x28,0x28, | ||
3238 | 0x28,0x28,0x2A,0x25,0x29,0x28,0x26,0x28,0x2A,0x29,0x04,0x29,0x28,0x26,0x29,0x28, | ||
3239 | 0x28,0x28,0x28,0x28,0x25,0x28,0x25,0x25,0x25,0x25,0x23,0x04,0x20,0x24,0x24,0x25, | ||
3240 | 0x04,0x23,0x22,0x22,0x20,0x25,0x24,0x24,0x25,0x25,0x25,0x04,0x04,0x28,0x28,0x26, | ||
3241 | 0x28,0x28,0x22,0x23,0x28,0x25,0x24,0x25,0x28,0x28,0x29,0x23,0x25,0x26,0x28,0x26, | ||
3242 | 0x26,0x22,0x04,0x24,0x25,0x24,0x25,0x25,0x26,0x25,0x28,0x23,0x24,0x28,0x25,0x28, | ||
3243 | 0x28,0x28,0x04,0x25,0x26,0x23,0x22,0x24,0x24,0x25,0x28,0x29,0x28,0x28,0x04,0x2A, | ||
3244 | 0x26,0x04,0x26,0x28,0x04,0x04,0x25,0x28,0x04,0x28,0x04,0x04,0x29,0x2A,0x26,0x29, | ||
3245 | 0x04,0x26,0x24,0x25,0x22,0x22,0x25,0x24,0x25,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3246 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3247 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3248 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3249 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
3250 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B, | ||
3251 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
3252 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3253 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2B,0x2D,0x2D,0x2D,0x2D,0x0C,0x26,0x27,0x24, | ||
3254 | 0x25,0x25,0x28,0x28,0x28,0x25,0x26,0x28,0x28,0x24,0x04,0x24,0x04,0x04,0x23,0x25, | ||
3255 | 0x27,0x25,0x27,0x26,0x24,0x28,0x27,0x04,0x27,0x25,0x28,0x26,0x26,0x25,0x27,0x28, | ||
3256 | 0x28,0x25,0x25,0x28,0x04,0x28,0x04,0x04,0x28,0x04,0x28,0x28,0x28,0x28,0x28,0x28, | ||
3257 | 0x26,0x28,0x29,0x26,0x25,0x28,0x28,0x24,0x28,0x28,0x04,0x24,0x28,0x26,0x28,0x29, | ||
3258 | 0x25,0x25,0x29,0x27,0x24,0x28,0x26,0x25,0x25,0x24,0x26,0x04,0x28,0x28,0x26,0x26, | ||
3259 | 0x25,0x26,0x26,0x28,0x25,0x24,0x28,0x22,0x25,0x22,0x20,0x20,0x22,0x26,0x25,0x25, | ||
3260 | 0x22,0x20,0x22,0x25,0x04,0x25,0x25,0x26,0x28,0x26,0x25,0x25,0x26,0x25,0x28,0x28, | ||
3261 | 0x28,0x28,0x29,0x28,0x29,0x29,0x28,0x28,0x26,0x28,0x26,0x24,0x24,0x24,0x24,0x28, | ||
3262 | 0x23,0x24,0x25,0x04,0x24,0x25,0x24,0x26,0x26,0x23,0x26,0x25,0x26,0x25,0x26,0x28, | ||
3263 | 0x28,0x04,0x24,0x28,0x28,0x24,0x22,0x25,0x28,0x28,0x28,0x28,0x25,0x29,0x28,0x23, | ||
3264 | 0x28,0x28,0x28,0x04,0x28,0x28,0x28,0x2A,0x04,0x28,0x28,0x2A,0x04,0x28,0x2B,0x29, | ||
3265 | 0x25,0x26,0x26,0x04,0x24,0x25,0x28,0x26,0x25,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3266 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3267 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
3268 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x24,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3269 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3270 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x28, | ||
3271 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3272 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3273 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x28,0x2D,0x2D,0x2D,0x2D,0x0C,0x27,0x25,0x24, | ||
3274 | 0x24,0x04,0x22,0x28,0x28,0x27,0x04,0x04,0x27,0x28,0x25,0x25,0x25,0x04,0x28,0x26, | ||
3275 | 0x04,0x04,0x04,0x28,0x04,0x23,0x26,0x04,0x04,0x25,0x04,0x28,0x04,0x28,0x04,0x28, | ||
3276 | 0x26,0x04,0x28,0x28,0x28,0x24,0x27,0x28,0x28,0x28,0x04,0x28,0x26,0x28,0x26,0x28, | ||
3277 | 0x28,0x28,0x28,0x28,0x04,0x2A,0x2A,0x29,0x29,0x25,0x28,0x29,0x29,0x28,0x26,0x29, | ||
3278 | 0x28,0x04,0x04,0x26,0x04,0x25,0x20,0x23,0x25,0x04,0x20,0x26,0x20,0x24,0x20,0x20, | ||
3279 | 0x25,0x20,0x22,0x20,0x22,0x22,0x23,0x20,0x22,0x20,0x22,0x26,0x24,0x23,0x20,0x20, | ||
3280 | 0x04,0x20,0x24,0x22,0x26,0x25,0x04,0x04,0x25,0x28,0x25,0x24,0x28,0x28,0x28,0x28, | ||
3281 | 0x26,0x29,0x28,0x28,0x28,0x24,0x04,0x29,0x28,0x28,0x25,0x26,0x23,0x25,0x23,0x25, | ||
3282 | 0x28,0x28,0x26,0x25,0x26,0x26,0x28,0x24,0x23,0x26,0x28,0x28,0x25,0x28,0x28,0x28, | ||
3283 | 0x24,0x28,0x25,0x25,0x22,0x04,0x24,0x25,0x28,0x2A,0x04,0x28,0x29,0x04,0x28,0x25, | ||
3284 | 0x28,0x28,0x28,0x28,0x04,0x28,0x04,0x28,0x29,0x28,0x25,0x24,0x29,0x04,0x28,0x29, | ||
3285 | 0x22,0x24,0x23,0x25,0x28,0x23,0x20,0x25,0x26,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3286 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3287 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2D, | ||
3288 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3289 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3290 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
3291 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
3292 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3293 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x0C,0x28,0x26,0x25, | ||
3294 | 0x28,0x24,0x26,0x26,0x28,0x04,0x04,0x28,0x25,0x28,0x24,0x04,0x24,0x25,0x04,0x04, | ||
3295 | 0x04,0x24,0x26,0x26,0x26,0x22,0x26,0x28,0x26,0x25,0x28,0x26,0x25,0x26,0x26,0x28, | ||
3296 | 0x24,0x26,0x24,0x25,0x25,0x28,0x28,0x28,0x28,0x28,0x29,0x04,0x24,0x28,0x28,0x28, | ||
3297 | 0x04,0x26,0x28,0x28,0x28,0x04,0x2A,0x28,0x28,0x28,0x25,0x26,0x29,0x26,0x04,0x25, | ||
3298 | 0x26,0x21,0x23,0x24,0x24,0x25,0x24,0x26,0x22,0x24,0x26,0x28,0x24,0x24,0x22,0x04, | ||
3299 | 0x28,0x24,0x24,0x04,0x24,0x24,0x23,0x20,0x22,0x25,0x22,0x23,0x24,0x20,0x04,0x25, | ||
3300 | 0x25,0x24,0x24,0x24,0x04,0x24,0x04,0x28,0x23,0x26,0x26,0x23,0x28,0x26,0x25,0x28, | ||
3301 | 0x28,0x28,0x29,0x2A,0x28,0x26,0x25,0x28,0x25,0x25,0x25,0x26,0x24,0x24,0x25,0x26, | ||
3302 | 0x25,0x28,0x28,0x25,0x25,0x29,0x25,0x2A,0x28,0x29,0x28,0x28,0x26,0x25,0x28,0x04, | ||
3303 | 0x25,0x26,0x04,0x04,0x28,0x28,0x2A,0x24,0x25,0x28,0x29,0x29,0x28,0x26,0x26,0x28, | ||
3304 | 0x28,0x26,0x24,0x25,0x22,0x27,0x26,0x28,0x28,0x04,0x28,0x27,0x04,0x28,0x28,0x29, | ||
3305 | 0x26,0x04,0x25,0x28,0x24,0x20,0x25,0x28,0x24,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3306 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3307 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D, | ||
3308 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3309 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3310 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
3311 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
3312 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3313 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x0C,0x26,0x04,0x23, | ||
3314 | 0x25,0x26,0x28,0x26,0x04,0x25,0x04,0x26,0x26,0x26,0x26,0x25,0x28,0x26,0x26,0x25, | ||
3315 | 0x24,0x26,0x25,0x26,0x04,0x28,0x26,0x24,0x26,0x26,0x26,0x26,0x22,0x04,0x04,0x26, | ||
3316 | 0x28,0x28,0x28,0x04,0x28,0x28,0x28,0x29,0x26,0x04,0x24,0x28,0x04,0x25,0x28,0x28, | ||
3317 | 0x28,0x28,0x04,0x28,0x29,0x25,0x2A,0x29,0x04,0x28,0x26,0x26,0x26,0x25,0x23,0x04, | ||
3318 | 0x24,0x24,0x22,0x28,0x22,0x28,0x26,0x26,0x26,0x26,0x24,0x28,0x25,0x04,0x28,0x28, | ||
3319 | 0x25,0x26,0x23,0x22,0x26,0x20,0x20,0x22,0x23,0x23,0x23,0x20,0x20,0x22,0x25,0x28, | ||
3320 | 0x04,0x04,0x28,0x24,0x25,0x28,0x28,0x28,0x28,0x28,0x04,0x29,0x04,0x28,0x27,0x26, | ||
3321 | 0x26,0x28,0x28,0x28,0x28,0x27,0x28,0x24,0x26,0x28,0x24,0x28,0x26,0x26,0x29,0x28, | ||
3322 | 0x04,0x04,0x25,0x28,0x25,0x26,0x24,0x29,0x04,0x2A,0x28,0x04,0x24,0x28,0x28,0x25, | ||
3323 | 0x24,0x28,0x28,0x29,0x28,0x29,0x28,0x25,0x23,0x25,0x04,0x26,0x24,0x28,0x28,0x28, | ||
3324 | 0x27,0x24,0x25,0x26,0x04,0x26,0x23,0x25,0x24,0x04,0x27,0x28,0x04,0x28,0x04,0x29, | ||
3325 | 0x24,0x28,0x04,0x22,0x22,0x04,0x23,0x24,0x28,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3326 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3327 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3328 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3329 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D, | ||
3330 | 0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27, | ||
3331 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x2D, | ||
3332 | 0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x17,0x17,0x2D,0x2D,0x17,0x17,0x2D,0x2D, | ||
3333 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x27,0x2D,0x2D,0x2D,0x2D,0x0C,0x25,0x25,0x24, | ||
3334 | 0x26,0x25,0x25,0x26,0x28,0x26,0x26,0x28,0x26,0x04,0x26,0x24,0x2F,0x2F,0x2F,0x2F, | ||
3335 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3336 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3337 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3338 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3339 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3340 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
3341 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
3342 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2D,0x2D, | ||
3343 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2C, | ||
3344 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x26,0x25,0x25,0x28,0x22,0x04,0x04,0x25,0x23,0x28,0x29, | ||
3345 | 0x25,0x28,0x04,0x20,0x25,0x24,0x24,0x25,0x25,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3346 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3347 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3348 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3349 | 0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D, | ||
3350 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25, | ||
3351 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17, | ||
3352 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D, | ||
3353 | 0x2F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x25,0x2D,0x2D,0x2D,0x2D,0x0C,0x26,0x28,0x26, | ||
3354 | 0x28,0x28,0x26,0x28,0x26,0x25,0x24,0x25,0x28,0x28,0x28,0x28,0x2F,0x2F,0x2F,0x2F, | ||
3355 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3356 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3357 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3358 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3359 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3360 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3361 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3362 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3363 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3364 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x23,0x26,0x28,0x26,0x25,0x24,0x25,0x22,0x25,0x20,0x29, | ||
3365 | 0x24,0x24,0x23,0x23,0x22,0x22,0x23,0x04,0x23,0x25,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3366 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3367 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3368 | 0x2B,0x24,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3369 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3370 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2B,0x26,0x27,0x27,0x27,0x27,0x25,0x22, | ||
3371 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3372 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3373 | 0x2B,0x26,0x27,0x27,0x27,0x27,0x25,0x22,0x2D,0x2D,0x2D,0x2D,0x0C,0x25,0x25,0x28, | ||
3374 | 0x24,0x25,0x28,0x04,0x28,0x26,0x28,0x24,0x25,0x25,0x25,0x25,0x2F,0x2F,0x2D,0x2D, | ||
3375 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3376 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3377 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3378 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3379 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3380 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3381 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3382 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3383 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3384 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x20,0x28,0x23,0x23,0x24,0x25,0x28,0x28,0x24,0x28,0x29, | ||
3385 | 0x25,0x23,0x22,0x24,0x23,0x28,0x26,0x22,0x22,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3386 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3387 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3388 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3389 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3390 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3391 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3392 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3393 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x24,0x26,0x26, | ||
3394 | 0x25,0x04,0x26,0x24,0x26,0x26,0x04,0x25,0x25,0x22,0x04,0x28,0x2F,0x2F,0x2D,0x2D, | ||
3395 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3396 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3397 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3398 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3399 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3400 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3401 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3402 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3403 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3404 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x28,0x28,0x25,0x28,0x28,0x23,0x25,0x28,0x28,0x29, | ||
3405 | 0x20,0x20,0x22,0x24,0x24,0x23,0x20,0x22,0x22,0x22,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3406 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3407 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3408 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3409 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3410 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3411 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3412 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3413 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x26,0x25,0x04, | ||
3414 | 0x25,0x28,0x26,0x24,0x04,0x26,0x22,0x26,0x25,0x25,0x26,0x23,0x2F,0x2F,0x2D,0x2D, | ||
3415 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3416 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3417 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3418 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3419 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3420 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3421 | 0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3422 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
3423 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3424 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x36,0x22,0x22,0x25,0x27,0x28,0x28,0x26,0x28,0x28,0x29, | ||
3425 | 0x20,0x22,0x25,0x04,0x04,0x20,0x20,0x26,0x20,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3426 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x2D,0x2D,0x2D,0x2D,0x14,0x2D,0x2D, | ||
3427 | 0x14,0x14,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D, | ||
3428 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3429 | 0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x14,0x2D,0x2D,0x2D,0x2D,0x14,0x2D,0x2D, | ||
3430 | 0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3431 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D, | ||
3432 | 0x14,0x2D,0x2D,0x2D,0x2D,0x14,0x2D,0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D, | ||
3433 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x25,0x22,0x22, | ||
3434 | 0x26,0x26,0x25,0x25,0x26,0x24,0x25,0x26,0x26,0x25,0x26,0x22,0x2F,0x2F,0x2D,0x2D, | ||
3435 | 0x32,0x33,0x33,0x34,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x35,0x35,0x35,0x35,0x36,0x36, | ||
3436 | 0x36,0x36,0x20,0x23,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3437 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3438 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3439 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3440 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3441 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3442 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3443 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3444 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x27,0x29,0x26,0x28,0x24,0x27,0x24,0x26,0x26,0x29, | ||
3445 | 0x20,0x24,0x22,0x22,0x22,0x20,0x26,0x22,0x25,0x24,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3446 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14, | ||
3447 | 0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14,0x14,0x2D,0x14,0x14,0x14,0x2D,0x14,0x14,0x2D, | ||
3448 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3449 | 0x2D,0x14,0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14, | ||
3450 | 0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3451 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x14,0x14,0x2D,0x2D, | ||
3452 | 0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14,0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3453 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x04,0x25,0x04, | ||
3454 | 0x28,0x04,0x26,0x25,0x26,0x26,0x26,0x25,0x28,0x04,0x04,0x26,0x2E,0x2F,0x2D,0x2D, | ||
3455 | 0x33,0x36,0x22,0x25,0x27,0x27,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
3456 | 0x28,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
3457 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3458 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3459 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3460 | 0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17, | ||
3461 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3462 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17, | ||
3463 | 0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3464 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x28,0x27,0x28,0x27,0x23,0x27,0x26,0x28,0x29, | ||
3465 | 0x22,0x25,0x25,0x25,0x25,0x24,0x28,0x25,0x28,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3466 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x14, | ||
3467 | 0x14,0x14,0x14,0x14,0x14,0x2D,0x14,0x14,0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D, | ||
3468 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3469 | 0x2D,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D, | ||
3470 | 0x14,0x14,0x14,0x14,0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3471 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x2D,0x2D,0x2D, | ||
3472 | 0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D,0x2D, | ||
3473 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x24,0x26,0x25, | ||
3474 | 0x25,0x23,0x26,0x25,0x25,0x28,0x26,0x28,0x28,0x24,0x28,0x04,0x2E,0x2F,0x2D,0x2D, | ||
3475 | 0x34,0x22,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
3476 | 0x00,0x28,0x28,0x2C,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3477 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3478 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
3479 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3480 | 0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17, | ||
3481 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3482 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3483 | 0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3484 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x28,0x04,0x24,0x28,0x27,0x24,0x28,0x25,0x25,0x29, | ||
3485 | 0x25,0x24,0x25,0x25,0x26,0x25,0x25,0x04,0x25,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3486 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x14, | ||
3487 | 0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14,0x14,0x2D,0x14,0x14,0x2D,0x14,0x14,0x14,0x2D, | ||
3488 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3489 | 0x2D,0x14,0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D, | ||
3490 | 0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3491 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x14,0x14,0x2D,0x2D, | ||
3492 | 0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x2D,0x2D, | ||
3493 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x24,0x26,0x25, | ||
3494 | 0x28,0x26,0x24,0x26,0x25,0x24,0x26,0x24,0x26,0x28,0x28,0x28,0x2E,0x2F,0x2D,0x2D, | ||
3495 | 0x34,0x25,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
3496 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3497 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3498 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
3499 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3500 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17, | ||
3501 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3502 | 0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3503 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3504 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x35,0x25,0x22,0x26,0x27,0x28,0x28,0x28,0x28,0x25,0x29, | ||
3505 | 0x26,0x26,0x25,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3506 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14, | ||
3507 | 0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14,0x14,0x2D,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D, | ||
3508 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3509 | 0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14, | ||
3510 | 0x14,0x14,0x14,0x14,0x14,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3511 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D, | ||
3512 | 0x14,0x14,0x2D,0x2D,0x14,0x14,0x2D,0x14,0x14,0x14,0x14,0x14,0x14,0x2D,0x2D,0x2D, | ||
3513 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x04,0x28,0x04, | ||
3514 | 0x26,0x28,0x26,0x23,0x25,0x04,0x26,0x26,0x24,0x04,0x28,0x04,0x2E,0x2F,0x2D,0x2D, | ||
3515 | 0x35,0x27,0x27,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
3516 | 0x1F,0x28,0x28,0x2D,0x2F,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3517 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3518 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D, | ||
3519 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3520 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17, | ||
3521 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3522 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3523 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3524 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x24,0x28,0x27,0x24,0x22,0x25,0x24,0x24,0x25,0x29, | ||
3525 | 0x26,0x25,0x23,0x28,0x04,0x04,0x28,0x24,0x04,0x04,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3526 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3527 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3528 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3529 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3530 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3531 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3532 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3533 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x24,0x26,0x26, | ||
3534 | 0x28,0x04,0x04,0x04,0x25,0x28,0x25,0x28,0x04,0x28,0x28,0x27,0x2E,0x2F,0x2D,0x2D, | ||
3535 | 0x36,0x27,0x28,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
3536 | 0x1F,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17, | ||
3537 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3538 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3539 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3540 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17, | ||
3541 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3542 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3543 | 0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3544 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x23,0x26,0x28,0x27,0x28,0x26,0x28,0x25,0x04,0x29, | ||
3545 | 0x28,0x28,0x04,0x26,0x22,0x04,0x21,0x25,0x22,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3546 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3547 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3548 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3549 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3550 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3551 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3552 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3553 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x28,0x25,0x28, | ||
3554 | 0x26,0x28,0x25,0x26,0x29,0x28,0x04,0x26,0x26,0x28,0x04,0x23,0x2D,0x2F,0x2D,0x2D, | ||
3555 | 0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, | ||
3556 | 0x28,0x28,0x28,0x2E,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17, | ||
3557 | 0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D, | ||
3558 | 0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3559 | 0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3560 | 0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17, | ||
3561 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3562 | 0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17, | ||
3563 | 0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3564 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x0C,0x28,0x28,0x28,0x04,0x27,0x26,0x25,0x04,0x25,0x29, | ||
3565 | 0x26,0x28,0x26,0x25,0x22,0x26,0x25,0x22,0x04,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3566 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3567 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3568 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3569 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3570 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3571 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3572 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3573 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x24,0x26,0x28, | ||
3574 | 0x25,0x25,0x28,0x29,0x24,0x28,0x28,0x28,0x04,0x28,0x26,0x26,0x2D,0x2F,0x2D,0x2D, | ||
3575 | 0x23,0x2A,0x2C,0x2C,0x2D,0x2D,0x2D,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F, | ||
3576 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3577 | 0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17, | ||
3578 | 0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3579 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x17, | ||
3580 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3581 | 0x17,0x17,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x17,0x17,0x17, | ||
3582 | 0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3583 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3584 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x25,0x26,0x25,0x24,0x28,0x25,0x25,0x24,0x24,0x29, | ||
3585 | 0x25,0x24,0x23,0x23,0x23,0x25,0x24,0x21,0x24,0x23,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3586 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3587 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3588 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3589 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3590 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3591 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3592 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3593 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x27,0x25,0x04, | ||
3594 | 0x28,0x28,0x26,0x28,0x25,0x04,0x28,0x25,0x25,0x26,0x26,0x24,0x2C,0x2F,0x2D,0x2D, | ||
3595 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
3596 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3597 | 0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17, | ||
3598 | 0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x2D, | ||
3599 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3600 | 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17, | ||
3601 | 0x17,0x2D,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17, | ||
3602 | 0x2D,0x2D,0x17,0x17,0x17,0x17,0x2D,0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D, | ||
3603 | 0x2D,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3604 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x26,0x25,0x28,0x23,0x25,0x25,0x23,0x23,0x25,0x29, | ||
3605 | 0x25,0x22,0x23,0x24,0x25,0x22,0x04,0x23,0x28,0x26,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3606 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3607 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3608 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3609 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3610 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3611 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3612 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3613 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x24,0x29,0x04, | ||
3614 | 0x29,0x26,0x27,0x25,0x04,0x24,0x28,0x24,0x04,0x22,0x25,0x25,0x2C,0x2F,0x2D,0x2D, | ||
3615 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3616 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3617 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3618 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3619 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3620 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3621 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3622 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3623 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3624 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x34,0x28,0x25,0x25,0x22,0x04,0x23,0x25,0x28,0x25,0x29, | ||
3625 | 0x23,0x25,0x23,0x24,0x26,0x24,0x26,0x28,0x26,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3626 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3627 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3628 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3629 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3630 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3631 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3632 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3633 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x28,0x25,0x28, | ||
3634 | 0x28,0x28,0x28,0x28,0x24,0x04,0x25,0x25,0x26,0x24,0x26,0x04,0x2C,0x2F,0x2D,0x2D, | ||
3635 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3636 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3637 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3638 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3639 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3640 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3641 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3642 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3643 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3644 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x22,0x28,0x24,0x25,0x25,0x22,0x28,0x27,0x24,0x29, | ||
3645 | 0x23,0x23,0x23,0x23,0x28,0x24,0x28,0x28,0x28,0x28,0x2F,0x2F,0x2D,0x2D,0x2D,0x2D, | ||
3646 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3647 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3648 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3649 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3650 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3651 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3652 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3653 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x04,0x28,0x25, | ||
3654 | 0x25,0x23,0x28,0x04,0x04,0x04,0x04,0x27,0x28,0x28,0x25,0x26,0x2C,0x2F,0x2D,0x2D, | ||
3655 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3656 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3657 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3658 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3659 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3660 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3661 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3662 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3663 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3664 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x33,0x23,0x25,0x25,0x27,0x26,0x23,0x28,0x26,0x04,0x29, | ||
3665 | 0x22,0x22,0x22,0x04,0x28,0x24,0x27,0x26,0x27,0x26,0x25,0x25,0x25,0x24,0x24,0x24, | ||
3666 | 0x24,0x24,0x24,0x24,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22, | ||
3667 | 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, | ||
3668 | 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x20,0x20, | ||
3669 | 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, | ||
3670 | 0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, | ||
3671 | 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, | ||
3672 | 0x36,0x36,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35, | ||
3673 | 0x35,0x35,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x33,0x33,0x32,0x25,0x04,0x04, | ||
3674 | 0x04,0x25,0x24,0x25,0x24,0x28,0x28,0x26,0x25,0x04,0x25,0x27,0x28,0x24,0x23,0x24, | ||
3675 | 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x23,0x23,0x23,0x23,0x23, | ||
3676 | 0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, | ||
3677 | 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x21,0x21,0x21,0x21, | ||
3678 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
3679 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
3680 | 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, | ||
3681 | 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x36,0x36, | ||
3682 | 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35, | ||
3683 | 0x35,0x35,0x35,0x35,0x35,0x0C,0x0C,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34, | ||
3684 | 0x34,0x34,0x34,0x33,0x33,0x32,0x24,0x25,0x22,0x04,0x27,0x04,0x22,0x28,0x25,0x29, | ||
3685 | 0x25,0x25,0x28,0x25,0x28,0x28,0x28,0x28,0x22,0x25,0x28,0x26,0x04,0x22,0x26,0x23, | ||
3686 | 0x22,0x25,0x23,0x25,0x24,0x24,0x24,0x25,0x22,0x28,0x21,0x26,0x25,0x22,0x24,0x25, | ||
3687 | 0x24,0x23,0x25,0x22,0x20,0x20,0x22,0x20,0x22,0x20,0x23,0x24,0x22,0x25,0x22,0x21, | ||
3688 | 0x22,0x22,0x04,0x20,0x24,0x21,0x24,0x22,0x21,0x22,0x23,0x25,0x22,0x21,0x25,0x22, | ||
3689 | 0x24,0x25,0x25,0x22,0x22,0x24,0x26,0x26,0x23,0x04,0x26,0x24,0x28,0x04,0x25,0x28, | ||
3690 | 0x25,0x25,0x23,0x24,0x23,0x26,0x25,0x24,0x28,0x26,0x26,0x26,0x28,0x26,0x22,0x25, | ||
3691 | 0x04,0x24,0x04,0x04,0x26,0x25,0x04,0x26,0x26,0x25,0x28,0x04,0x29,0x26,0x04,0x28, | ||
3692 | 0x29,0x26,0x28,0x28,0x28,0x28,0x28,0x29,0x28,0x28,0x26,0x29,0x29,0x26,0x28,0x28, | ||
3693 | 0x26,0x29,0x25,0x29,0x28,0x28,0x28,0x28,0x25,0x25,0x26,0x26,0x28,0x25,0x24,0x25, | ||
3694 | 0x28,0x28,0x26,0x26,0x28,0x28,0x04,0x04,0x25,0x26,0x04,0x25,0x26,0x25,0x26,0x04, | ||
3695 | 0x24,0x24,0x22,0x20,0x25,0x23,0x22,0x25,0x20,0x22,0x20,0x24,0x22,0x24,0x25,0x28, | ||
3696 | 0x23,0x26,0x25,0x26,0x26,0x04,0x04,0x28,0x04,0x25,0x28,0x26,0x25,0x26,0x22,0x26, | ||
3697 | 0x26,0x26,0x26,0x26,0x26,0x28,0x04,0x24,0x26,0x28,0x24,0x25,0x29,0x04,0x26,0x28, | ||
3698 | 0x24,0x28,0x25,0x25,0x04,0x22,0x26,0x26,0x24,0x23,0x22,0x25,0x26,0x26,0x25,0x28, | ||
3699 | 0x26,0x26,0x25,0x22,0x24,0x26,0x24,0x04,0x24,0x26,0x26,0x25,0x26,0x28,0x26,0x26, | ||
3700 | 0x23,0x23,0x28,0x25,0x22,0x25,0x04,0x28,0x28,0x25,0x24,0x26,0x27,0x28,0x04,0x28, | ||
3701 | 0x26,0x28,0x28,0x28,0x26,0x04,0x29,0x28,0x28,0x28,0x29,0x28,0x24,0x28,0x28,0x28, | ||
3702 | 0x25,0x28,0x04,0x28,0x04,0x04,0x26,0x28,0x24,0x25,0x04,0x25,0x28,0x26,0x28,0x28, | ||
3703 | 0x28,0x28,0x26,0x28,0x28,0x04,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x22,0x23,0x22, | ||
3704 | 0x25,0x24,0x24,0x23,0x27,0x28,0x24,0x28,0x26,0x26,0x27,0x22,0x28,0x28,0x28,0x29, | ||
3705 | 0x23,0x28,0x25,0x04,0x25,0x28,0x04,0x22,0x26,0x24,0x22,0x22,0x23,0x04,0x25,0x22, | ||
3706 | 0x26,0x25,0x23,0x22,0x24,0x24,0x26,0x22,0x23,0x28,0x26,0x25,0x28,0x28,0x23,0x22, | ||
3707 | 0x25,0x20,0x22,0x20,0x24,0x22,0x23,0x20,0x20,0x22,0x20,0x22,0x25,0x20,0x25,0x20, | ||
3708 | 0x20,0x25,0x22,0x24,0x22,0x22,0x20,0x20,0x20,0x20,0x20,0x22,0x21,0x20,0x20,0x20, | ||
3709 | 0x21,0x23,0x23,0x22,0x25,0x24,0x25,0x28,0x04,0x28,0x25,0x25,0x29,0x28,0x26,0x24, | ||
3710 | 0x28,0x25,0x28,0x28,0x28,0x24,0x26,0x26,0x24,0x25,0x28,0x26,0x24,0x25,0x24,0x27, | ||
3711 | 0x27,0x25,0x27,0x25,0x04,0x28,0x26,0x04,0x26,0x04,0x28,0x28,0x28,0x23,0x29,0x04, | ||
3712 | 0x04,0x28,0x28,0x26,0x29,0x28,0x28,0x26,0x28,0x25,0x26,0x28,0x28,0x29,0x28,0x25, | ||
3713 | 0x28,0x25,0x04,0x28,0x29,0x29,0x25,0x28,0x26,0x26,0x04,0x2A,0x04,0x28,0x26,0x2A, | ||
3714 | 0x28,0x28,0x26,0x28,0x25,0x25,0x28,0x28,0x25,0x25,0x26,0x04,0x23,0x24,0x25,0x23, | ||
3715 | 0x24,0x22,0x20,0x20,0x04,0x25,0x20,0x22,0x20,0x20,0x26,0x20,0x20,0x26,0x25,0x28, | ||
3716 | 0x23,0x25,0x24,0x23,0x26,0x26,0x28,0x04,0x26,0x24,0x24,0x26,0x25,0x26,0x25,0x28, | ||
3717 | 0x28,0x04,0x26,0x23,0x26,0x04,0x26,0x26,0x25,0x28,0x29,0x04,0x28,0x27,0x26,0x25, | ||
3718 | 0x28,0x23,0x23,0x23,0x24,0x22,0x22,0x25,0x21,0x22,0x25,0x26,0x25,0x24,0x28,0x24, | ||
3719 | 0x25,0x25,0x25,0x28,0x25,0x25,0x25,0x24,0x28,0x28,0x27,0x23,0x26,0x04,0x24,0x24, | ||
3720 | 0x24,0x25,0x24,0x25,0x25,0x24,0x22,0x28,0x24,0x24,0x26,0x26,0x25,0x28,0x25,0x26, | ||
3721 | 0x29,0x28,0x04,0x28,0x04,0x26,0x28,0x28,0x04,0x2A,0x28,0x28,0x24,0x28,0x26,0x26, | ||
3722 | 0x04,0x25,0x26,0x28,0x27,0x25,0x29,0x28,0x28,0x24,0x28,0x26,0x28,0x04,0x28,0x04, | ||
3723 | 0x04,0x24,0x25,0x23,0x23,0x04,0x24,0x28,0x24,0x04,0x22,0x26,0x26,0x25,0x25,0x28, | ||
3724 | 0x25,0x28,0x28,0x04,0x27,0x25,0x25,0x24,0x25,0x27,0x27,0x25,0x23,0x24,0x27,0x29, | ||
3725 | 0x04,0x26,0x25,0x26,0x26,0x26,0x22,0x04,0x25,0x04,0x25,0x28,0x28,0x25,0x25,0x04, | ||
3726 | 0x25,0x24,0x25,0x25,0x28,0x28,0x28,0x24,0x04,0x28,0x28,0x25,0x25,0x24,0x24,0x24, | ||
3727 | 0x25,0x20,0x23,0x22,0x23,0x22,0x25,0x25,0x24,0x25,0x25,0x28,0x25,0x28,0x22,0x24, | ||
3728 | 0x24,0x24,0x23,0x25,0x26,0x04,0x25,0x22,0x25,0x20,0x24,0x20,0x20,0x24,0x23,0x24, | ||
3729 | 0x22,0x22,0x24,0x25,0x24,0x24,0x28,0x25,0x22,0x23,0x28,0x28,0x25,0x28,0x26,0x26, | ||
3730 | 0x23,0x28,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x25,0x26,0x26,0x28,0x28,0x28,0x29, | ||
3731 | 0x28,0x28,0x04,0x29,0x28,0x26,0x29,0x04,0x25,0x28,0x04,0x29,0x29,0x29,0x28,0x28, | ||
3732 | 0x24,0x04,0x28,0x28,0x28,0x26,0x26,0x04,0x28,0x29,0x04,0x29,0x04,0x29,0x26,0x28, | ||
3733 | 0x29,0x25,0x28,0x29,0x24,0x04,0x29,0x2A,0x2A,0x28,0x04,0x04,0x29,0x28,0x04,0x29, | ||
3734 | 0x2A,0x28,0x28,0x28,0x26,0x25,0x29,0x26,0x25,0x28,0x24,0x24,0x26,0x23,0x20,0x22, | ||
3735 | 0x20,0x04,0x20,0x25,0x25,0x20,0x20,0x25,0x22,0x22,0x20,0x22,0x28,0x25,0x25,0x25, | ||
3736 | 0x25,0x25,0x26,0x28,0x26,0x28,0x28,0x25,0x25,0x28,0x28,0x04,0x28,0x28,0x25,0x25, | ||
3737 | 0x28,0x28,0x26,0x04,0x26,0x28,0x26,0x28,0x28,0x28,0x28,0x28,0x04,0x25,0x24,0x25, | ||
3738 | 0x25,0x24,0x21,0x23,0x24,0x04,0x24,0x22,0x24,0x25,0x25,0x25,0x24,0x22,0x25,0x28, | ||
3739 | 0x04,0x04,0x26,0x26,0x25,0x04,0x28,0x28,0x28,0x26,0x26,0x26,0x23,0x28,0x25,0x25, | ||
3740 | 0x23,0x27,0x28,0x24,0x28,0x27,0x28,0x23,0x04,0x26,0x28,0x28,0x29,0x04,0x28,0x28, | ||
3741 | 0x28,0x29,0x2A,0x25,0x25,0x2A,0x28,0x26,0x29,0x29,0x28,0x25,0x28,0x23,0x25,0x25, | ||
3742 | 0x27,0x25,0x26,0x26,0x28,0x29,0x28,0x04,0x04,0x28,0x28,0x04,0x04,0x04,0x04,0x25, | ||
3743 | 0x25,0x25,0x25,0x26,0x22,0x24,0x25,0x28,0x28,0x24,0x24,0x22,0x26,0x24,0x28,0x25, | ||
3744 | 0x24,0x24,0x24,0x04,0x27,0x24,0x23,0x28,0x24,0x27,0x26,0x28,0x24,0x25,0x04,0x29, | ||
3745 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3746 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3747 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3748 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3749 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3750 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3751 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3752 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3753 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3754 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3755 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3756 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3757 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3758 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3759 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3760 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3761 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3762 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3763 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3764 | 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, | ||
3765 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3766 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3767 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3768 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3769 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3770 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3771 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3772 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3773 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3774 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3775 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3776 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3777 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3778 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3779 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3780 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3781 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3782 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3783 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3784 | 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C, | ||
3785 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3786 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3787 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3788 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3789 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3790 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3791 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3792 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3793 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3794 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3795 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3796 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3797 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3798 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3799 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3800 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3801 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3802 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3803 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3804 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3805 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3806 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3807 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3808 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3809 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3810 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3811 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3812 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3813 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3814 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3815 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3816 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3817 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3818 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3819 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3820 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3821 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3822 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3823 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3824 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3825 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3826 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3827 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3828 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3829 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3830 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3831 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3832 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x29,0x29,0x29,0x29, | ||
3833 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3834 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3835 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3836 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3837 | 0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3838 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3839 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3840 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3841 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3842 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3843 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3844 | 0x29,0x29,0x29,0x2A,0x2C,0x29,0x29,0x29,0x29,0x29,0x29,0x2A,0x2C,0x29,0x29,0x29, | ||
3845 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3846 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3847 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3848 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3849 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3850 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3851 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3852 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x29, | ||
3853 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3854 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3855 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3856 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3857 | 0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3858 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3859 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3860 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3861 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3862 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3863 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3864 | 0x29,0x29,0x29,0x2C,0x2C,0x29,0x29,0x29,0x29,0x29,0x2A,0x2C,0x2C,0x29,0x29,0x29, | ||
3865 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3866 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3867 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3868 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3869 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3870 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3871 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3872 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00, | ||
3873 | 0x00,0x00,0x00,0x00,0x29,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x29,0x29,0x29,0x29, | ||
3874 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x29, | ||
3875 | 0x29,0x29,0x00,0x00,0x00,0x00,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
3876 | 0x29,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x00, | ||
3877 | 0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3878 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3879 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3880 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3881 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3882 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3883 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x2C,0x29,0x29, | ||
3884 | 0x29,0x2C,0x29,0x29,0x2C,0x29,0x29,0x29,0x29,0x2A,0x2C,0x2A,0x2C,0x29,0x29,0x29, | ||
3885 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3886 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3887 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3888 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3889 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3890 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3891 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3892 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00, | ||
3893 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x29, | ||
3894 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29, | ||
3895 | 0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00, | ||
3896 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00, | ||
3897 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3898 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3899 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3900 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3901 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3902 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3903 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x2C,0x29,0x29, | ||
3904 | 0x29,0x2C,0x29,0x29,0x2C,0x29,0x29,0x29,0x2A,0x2C,0x2A,0x29,0x2C,0x29,0x29,0x29, | ||
3905 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3906 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3907 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3908 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3909 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3910 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3911 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3912 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00, | ||
3913 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x29,0x29, | ||
3914 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29, | ||
3915 | 0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00, | ||
3916 | 0x00,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00, | ||
3917 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3918 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3919 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3920 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3921 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3922 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3923 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x2C,0x2A,0x29, | ||
3924 | 0x2A,0x2C,0x29,0x29,0x2C,0x29,0x29,0x29,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x29,0x29, | ||
3925 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3926 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3927 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3928 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3929 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3930 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3931 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3932 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00, | ||
3933 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3934 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29, | ||
3935 | 0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00, | ||
3936 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x00, | ||
3937 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00, | ||
3938 | 0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3939 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3940 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3941 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3942 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3943 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x2A,0x2C,0x2A, | ||
3944 | 0x2C,0x2A,0x29,0x29,0x2C,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x2C,0x29,0x29,0x29, | ||
3945 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3946 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3947 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3948 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3949 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3950 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3951 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3952 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x29,0x29,0x29,0x00, | ||
3953 | 0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x29,0x29,0x29, | ||
3954 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29, | ||
3955 | 0x29,0x29,0x00,0x00,0x00,0x00,0x29,0x29,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00, | ||
3956 | 0x00,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00, | ||
3957 | 0x00,0x29,0x29,0x29,0x00,0x00,0x00,0x00,0x29,0x29,0x00,0x00,0x29,0x29,0x00,0x00, | ||
3958 | 0x29,0x29,0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3959 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3960 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3961 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3962 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3963 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x2A,0x2C, | ||
3964 | 0x2A,0x29,0x29,0x2C,0x2C,0x2C,0x29,0x2C,0x29,0x29,0x29,0x29,0x2C,0x29,0x29,0x29, | ||
3965 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3966 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3967 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3968 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3969 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3970 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3971 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3972 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3973 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3974 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3975 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3976 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3977 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3978 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3979 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3980 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3981 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3982 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3983 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3984 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3985 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3986 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3987 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3988 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3989 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3990 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3991 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3992 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3993 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3994 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3995 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3996 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3997 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3998 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
3999 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
4000 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
4001 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
4002 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
4003 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29, | ||
4004 | 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29}; | ||
4005 | #else | ||
4006 | byte signon[] = { | ||
4007 | 0x92,0x01,0x92,0x94,0x91,0x92,0x93,0x91,0x92,0x01,0x95,0x95,0x92,0x92,0x94,0x92, | ||
4008 | 0x92,0x96,0x92,0x95,0x92,0x91,0x95,0x93,0x91,0x92,0x92,0x92,0x91,0x95,0x92,0x95, | ||
4009 | 0x94,0x95,0x92,0x91,0x92,0x92,0x91,0x94,0x93,0x01,0x98,0x99,0x98,0x99,0x93,0x96, | ||
4010 | 0x95,0x96,0x92,0x01,0x93,0x93,0x96,0x94,0x93,0x95,0x95,0x93,0x93,0x01,0x93,0x95, | ||
4011 | 0x01,0x98,0x95,0x93,0x94,0x92,0x95,0x98,0x98,0x98,0x93,0x93,0x01,0x93,0x92,0x93, | ||
4012 | 0x95,0x93,0x95,0x95,0x01,0x92,0x92,0x91,0x93,0x93,0x95,0x95,0x92,0x93,0x95,0x96, | ||
4013 | 0x93,0x99,0x99,0x92,0x94,0x93,0x92,0x01,0x95,0x92,0x01,0x93,0x93,0x92,0x93,0x95, | ||
4014 | 0x94,0x93,0x93,0x93,0x95,0x94,0x98,0x93,0x92,0x93,0x93,0x92,0x94,0x95,0x92,0x01, | ||
4015 | 0x92,0x92,0x94,0x01,0x94,0x94,0x94,0x94,0x95,0x94,0x98,0x9A,0x93,0x92,0x96,0x92, | ||
4016 | 0x96,0x95,0x92,0x92,0x96,0x98,0x96,0x98,0x98,0x94,0x94,0x95,0x92,0x94,0x95,0x92, | ||
4017 | 0x95,0x95,0x95,0x96,0x92,0x95,0x94,0x94,0x94,0x95,0x94,0x95,0x92,0x01,0x94,0x95, | ||
4018 | 0x95,0x96,0x94,0x92,0x96,0x96,0x94,0x94,0x93,0x01,0x92,0x95,0x98,0x94,0x96,0x92, | ||
4019 | 0x96,0x95,0x96,0x9A,0x98,0x93,0x95,0x95,0x95,0x93,0x98,0x95,0x95,0x01,0x95,0x94, | ||
4020 | 0x93,0x95,0x93,0x98,0x96,0x95,0x8E,0x8E,0x95,0x8D,0x92,0x92,0x95,0x92,0x98,0x95, | ||
4021 | 0x95,0x98,0x01,0x98,0x95,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x98,0x98,0x95,0x95, | ||
4022 | 0x96,0x93,0x01,0x95,0x01,0x94,0x95,0x98,0x98,0x93,0x96,0x95,0x96,0x95,0x96,0x95, | ||
4023 | 0x98,0x98,0x94,0x96,0x98,0x8D,0x8E,0x96,0x8E,0x93,0x01,0x96,0x95,0x94,0x96,0x98, | ||
4024 | 0x98,0x98,0x94,0x98,0x98,0x95,0x95,0x96,0x96,0x01,0x95,0x96,0x96,0x01,0x96,0x92, | ||
4025 | 0x95,0x95,0x92,0x98,0x94,0x98,0x95,0x96,0x96,0x96,0x95,0x95,0x98,0x98,0x96,0x98, | ||
4026 | 0x98,0x98,0x96,0x98,0x94,0x98,0x01,0x98,0x96,0x95,0x96,0x96,0x96,0x95,0x98,0x96, | ||
4027 | 0x92,0x95,0x92,0x95,0x93,0x95,0x95,0x92,0x92,0x01,0x92,0x93,0x95,0x95,0x93,0x92, | ||
4028 | 0x92,0x92,0x92,0x91,0x01,0x94,0x01,0x94,0x93,0x95,0x92,0x92,0x91,0x93,0x93,0x01, | ||
4029 | 0x93,0x94,0x93,0x95,0x95,0x95,0x92,0x01,0x95,0x93,0x95,0x95,0x95,0x95,0x95,0x94, | ||
4030 | 0x95,0x94,0x93,0x95,0x94,0x92,0x95,0x95,0x94,0x92,0x93,0x93,0x93,0x95,0x96,0x95, | ||
4031 | 0x95,0x94,0x94,0x95,0x94,0x94,0x91,0x95,0x96,0x01,0x92,0x95,0x95,0x93,0x92,0x95, | ||
4032 | 0x96,0x01,0x93,0x93,0x93,0x96,0x92,0x95,0x95,0x96,0x94,0x95,0x96,0x94,0x01,0x01, | ||
4033 | 0x92,0x95,0x94,0x01,0x95,0x98,0x95,0x96,0x96,0x01,0x98,0x93,0x95,0x92,0x92,0x96, | ||
4034 | 0x93,0x95,0x01,0x01,0x92,0x95,0x92,0x95,0x93,0x92,0x93,0x94,0x92,0x94,0x93,0x01, | ||
4035 | 0x01,0x98,0x98,0x91,0x94,0x95,0x94,0x98,0x93,0x98,0x98,0x95,0x95,0x93,0x93,0x94, | ||
4036 | 0x95,0x94,0x92,0x95,0x01,0x98,0x01,0x01,0x96,0x96,0x96,0x96,0x96,0x95,0x98,0x94, | ||
4037 | 0x95,0x98,0x94,0x95,0x01,0x94,0x95,0x94,0x94,0x94,0x94,0x94,0x01,0x94,0x92,0x94, | ||
4038 | 0x93,0x95,0x95,0x95,0x01,0x96,0x95,0x95,0x96,0x96,0x95,0x96,0x95,0x95,0x96,0x96, | ||
4039 | 0x96,0x01,0x98,0x98,0x96,0x95,0x98,0x98,0x98,0x98,0x98,0x94,0x95,0x93,0x96,0x95, | ||
4040 | 0x95,0x96,0x93,0x8E,0x8E,0x8E,0x92,0x8E,0x8E,0x8E,0x96,0x93,0x98,0x96,0x95,0x98, | ||
4041 | 0x98,0x96,0x96,0x98,0x01,0x98,0x98,0x96,0x96,0x94,0x96,0x95,0x98,0x97,0x01,0x94, | ||
4042 | 0x96,0x98,0x01,0x96,0x96,0x92,0x98,0x95,0x98,0x95,0x95,0x96,0x01,0x94,0x96,0x96, | ||
4043 | 0x93,0x96,0x93,0x96,0x95,0x94,0x95,0x92,0x95,0x96,0x95,0x94,0x95,0x92,0x95,0x96, | ||
4044 | 0x95,0x01,0x96,0x96,0x01,0x95,0x98,0x94,0x98,0x95,0x96,0x94,0x95,0x01,0x94,0x96, | ||
4045 | 0x96,0x98,0x95,0x93,0x96,0x98,0x98,0x95,0x01,0x98,0x93,0x96,0x98,0x01,0x94,0x95, | ||
4046 | 0x96,0x96,0x95,0x98,0x98,0x98,0x95,0x94,0x95,0x98,0x96,0x96,0x01,0x94,0x96,0x95, | ||
4047 | 0x91,0x92,0x92,0x95,0x96,0x95,0x92,0x96,0x91,0x95,0x95,0x92,0x92,0x93,0x95,0x94, | ||
4048 | 0x94,0x91,0x93,0x92,0x94,0x91,0x92,0x96,0x92,0x92,0x92,0x94,0x94,0x92,0x01,0x98, | ||
4049 | 0x95,0x95,0x93,0x98,0x01,0x93,0x95,0x95,0x95,0x95,0x93,0x93,0x92,0x92,0x01,0x95, | ||
4050 | 0x95,0x95,0x92,0x92,0x93,0x93,0x93,0x92,0x94,0x94,0x95,0x95,0x95,0x93,0x94,0x95, | ||
4051 | 0x93,0x92,0x93,0x94,0x94,0x93,0x92,0x95,0x94,0x96,0x95,0x95,0x98,0x96,0x95,0x95, | ||
4052 | 0x92,0x96,0x95,0x95,0x96,0x95,0x95,0x01,0x95,0x01,0x96,0x99,0x99,0x99,0x98,0x01, | ||
4053 | 0x98,0x95,0x96,0x96,0x98,0x95,0x93,0x96,0x01,0x98,0x98,0x98,0x98,0x95,0x95,0x93, | ||
4054 | 0x93,0x95,0x95,0x96,0x95,0x93,0x94,0x95,0x01,0x95,0x96,0x96,0x01,0x01,0x95,0x95, | ||
4055 | 0x95,0x97,0x98,0x92,0x94,0x01,0x98,0x01,0x96,0x96,0x98,0x93,0x92,0x93,0x94,0x98, | ||
4056 | 0x95,0x94,0x94,0x95,0x98,0x94,0x98,0x94,0x92,0x96,0x98,0x98,0x01,0x96,0x92,0x94, | ||
4057 | 0x95,0x95,0x95,0x98,0x95,0x96,0x95,0x96,0x96,0x95,0x94,0x96,0x92,0x95,0x96,0x96, | ||
4058 | 0x96,0x95,0x01,0x95,0x95,0x92,0x94,0x95,0x01,0x96,0x94,0x98,0x96,0x95,0x95,0x98, | ||
4059 | 0x01,0x98,0x96,0x99,0x98,0x99,0x98,0x97,0x95,0x96,0x95,0x92,0x92,0x01,0x94,0x96, | ||
4060 | 0x93,0x8E,0x8E,0x8E,0x92,0x8E,0x8E,0x92,0x95,0x95,0x96,0x98,0x95,0x95,0x98,0x94, | ||
4061 | 0x95,0x01,0x98,0x98,0x01,0x96,0x01,0x98,0x95,0x01,0x01,0x01,0x95,0x98,0x95,0x94, | ||
4062 | 0x01,0x96,0x96,0x96,0x96,0x98,0x98,0x98,0x95,0x98,0x95,0x95,0x96,0x96,0x01,0x96, | ||
4063 | 0x95,0x93,0x95,0x01,0x92,0x92,0x92,0x94,0x96,0x94,0x96,0x96,0x95,0x95,0x01,0x98, | ||
4064 | 0x94,0x94,0x98,0x96,0x98,0x95,0x92,0x96,0x94,0x92,0x98,0x94,0x01,0x92,0x94,0x96, | ||
4065 | 0x94,0x96,0x94,0x96,0x96,0x96,0x95,0x95,0x96,0x01,0x98,0x96,0x98,0x96,0x96,0x98, | ||
4066 | 0x98,0x96,0x96,0x94,0x95,0x98,0x98,0x96,0x98,0x98,0x96,0x95,0x94,0x96,0x94,0x95, | ||
4067 | 0x92,0x91,0x95,0x92,0x94,0x92,0x92,0x91,0x95,0x94,0x93,0x92,0x95,0x95,0x91,0x94, | ||
4068 | 0x93,0x91,0x98,0x94,0x94,0x92,0x93,0x93,0x01,0x94,0x95,0x95,0x96,0x94,0x98,0x96, | ||
4069 | 0x95,0x98,0x98,0x01,0x96,0x95,0x92,0x93,0x94,0x94,0x93,0x95,0x93,0x95,0x95,0x96, | ||
4070 | 0x95,0x92,0x92,0x98,0x93,0x93,0x96,0x92,0x95,0x95,0x93,0x92,0x93,0x93,0x95,0x94, | ||
4071 | 0x01,0x93,0x92,0x96,0x93,0x92,0x93,0x93,0x95,0x92,0x94,0x92,0x91,0x01,0x98,0x95, | ||
4072 | 0x96,0x98,0x95,0x98,0x96,0x01,0x99,0x01,0x96,0x01,0x94,0x97,0x98,0x01,0x93,0x01, | ||
4073 | 0x96,0x01,0x93,0x96,0x94,0x98,0x94,0x94,0x96,0x96,0x98,0x98,0x96,0x98,0x01,0x01, | ||
4074 | 0x95,0x96,0x01,0x96,0x95,0x98,0x94,0x98,0x95,0x96,0x99,0x99,0x99,0x99,0x94,0x99, | ||
4075 | 0x99,0x96,0x95,0x93,0x99,0x98,0x95,0x97,0x96,0x01,0x92,0x95,0x96,0x98,0x94,0x94, | ||
4076 | 0x96,0x96,0x01,0x96,0x94,0x96,0x94,0x98,0x96,0x93,0x96,0x93,0x98,0x98,0x96,0x98, | ||
4077 | 0x96,0x96,0x95,0x98,0x95,0x98,0x95,0x98,0x95,0x95,0x98,0x98,0x98,0x96,0x96,0x96, | ||
4078 | 0x98,0x98,0x01,0x95,0x97,0x96,0x96,0x95,0x98,0x98,0x94,0x98,0x98,0x98,0x99,0x9A, | ||
4079 | 0x9A,0x96,0x98,0x98,0x97,0x01,0x01,0x95,0x94,0x92,0x93,0x93,0x8E,0x92,0x94,0x92, | ||
4080 | 0x94,0x91,0x92,0x92,0x93,0x96,0x94,0x95,0x95,0x96,0x94,0x96,0x95,0x94,0x96,0x01, | ||
4081 | 0x98,0x94,0x98,0x96,0x96,0x94,0x98,0x96,0x96,0x01,0x01,0x94,0x94,0x94,0x95,0x96, | ||
4082 | 0x94,0x96,0x95,0x98,0x94,0x95,0x94,0x96,0x98,0x96,0x95,0x96,0x01,0x95,0x95,0x93, | ||
4083 | 0x95,0x95,0x93,0x93,0x96,0x01,0x95,0x96,0x98,0x98,0x93,0x98,0x96,0x95,0x96,0x96, | ||
4084 | 0x98,0x98,0x95,0x95,0x96,0x98,0x95,0x98,0x94,0x96,0x94,0x98,0x94,0x98,0x01,0x98, | ||
4085 | 0x01,0x01,0x98,0x96,0x96,0x01,0x01,0x95,0x98,0x01,0x01,0x98,0x98,0x95,0x98,0x96, | ||
4086 | 0x01,0x94,0x01,0x01,0x96,0x01,0x94,0x98,0x98,0x01,0x01,0x96,0x95,0x98,0x98,0x01, | ||
4087 | 0x92,0x92,0x92,0x92,0x92,0x93,0x92,0x92,0x98,0x95,0x91,0x95,0x93,0x92,0x92,0x01, | ||
4088 | 0x95,0x93,0x92,0x94,0x94,0x96,0x96,0x96,0x01,0x94,0x96,0x96,0x96,0x96,0x95,0x95, | ||
4089 | 0x94,0x01,0x95,0x94,0x98,0x96,0x95,0x96,0x93,0x92,0x01,0x93,0x92,0x95,0x01,0x01, | ||
4090 | 0x93,0x92,0x93,0x93,0x93,0x96,0x01,0x94,0x95,0x93,0x93,0x93,0x95,0x93,0x95,0x93, | ||
4091 | 0x93,0x93,0x92,0x95,0x92,0x93,0x92,0x91,0x93,0x93,0x92,0x95,0x93,0x95,0x95,0x96, | ||
4092 | 0x97,0x96,0x99,0x98,0x98,0x94,0x93,0x96,0x96,0x93,0x93,0x95,0x95,0x94,0x94,0x95, | ||
4093 | 0x93,0x92,0x95,0x93,0x93,0x93,0x92,0x98,0x93,0x96,0x94,0x94,0x96,0x99,0x98,0x98, | ||
4094 | 0x98,0x95,0x94,0x98,0x01,0x98,0x98,0x99,0x01,0x95,0x96,0x01,0x97,0x97,0x95,0x97, | ||
4095 | 0x94,0x94,0x98,0x97,0x95,0x98,0x99,0x95,0x99,0x96,0x95,0x98,0x98,0x98,0x98,0x98, | ||
4096 | 0x98,0x95,0x96,0x98,0x95,0x98,0x96,0x92,0x98,0x98,0x96,0x95,0x96,0x98,0x96,0x94, | ||
4097 | 0x94,0x01,0x95,0x96,0x96,0x95,0x96,0x98,0x01,0x01,0x95,0x92,0x98,0x95,0x98,0x95, | ||
4098 | 0x94,0x96,0x97,0x98,0x95,0x01,0x01,0x9A,0x96,0x98,0x96,0x9A,0x98,0x98,0x98,0x95, | ||
4099 | 0x96,0x98,0x94,0x98,0x95,0x93,0x94,0x94,0x92,0x95,0x94,0x92,0x8E,0x8E,0x94,0x93, | ||
4100 | 0x91,0x95,0x95,0x94,0x01,0x95,0x98,0x95,0x01,0x98,0x96,0x01,0x96,0x93,0x98,0x98, | ||
4101 | 0x94,0x94,0x96,0x95,0x96,0x96,0x95,0x95,0x95,0x95,0x96,0x94,0x94,0x95,0x94,0x98, | ||
4102 | 0x95,0x95,0x96,0x98,0x93,0x96,0x98,0x92,0x01,0x96,0x93,0x95,0x94,0x98,0x95,0x91, | ||
4103 | 0x94,0x92,0x95,0x96,0x98,0x95,0x94,0x98,0x96,0x98,0x94,0x96,0x95,0x93,0x95,0x01, | ||
4104 | 0x95,0x01,0x96,0x01,0x98,0x96,0x98,0x98,0x95,0x98,0x94,0x96,0x98,0x97,0x97,0x95, | ||
4105 | 0x98,0x96,0x98,0x95,0x94,0x95,0x98,0x95,0x98,0x98,0x98,0x01,0x95,0x98,0x98,0x99, | ||
4106 | 0x98,0x01,0x99,0x98,0x99,0x98,0x98,0x01,0x98,0x96,0x99,0x99,0x98,0x99,0x99,0x98, | ||
4107 | 0x01,0x95,0x95,0x94,0x95,0x01,0x98,0x94,0x94,0x94,0x96,0x91,0x91,0x95,0x91,0x94, | ||
4108 | 0x92,0x94,0x95,0x95,0x98,0x96,0x01,0x93,0x98,0x98,0x96,0x95,0x98,0x94,0x94,0x01, | ||
4109 | 0x98,0x01,0x01,0x96,0x98,0x99,0x98,0x94,0x93,0x98,0x01,0x98,0x95,0x96,0x96,0x96, | ||
4110 | 0x94,0x98,0x96,0x93,0x95,0x96,0x01,0x01,0x94,0x92,0x95,0x95,0x92,0x94,0x93,0x01, | ||
4111 | 0x92,0x95,0x94,0x96,0x96,0x92,0x93,0x93,0x91,0x01,0x95,0x93,0x94,0x93,0x96,0x95, | ||
4112 | 0x98,0x94,0x92,0x95,0x98,0x92,0x94,0x93,0x95,0x93,0x95,0x96,0x95,0x93,0x01,0x92, | ||
4113 | 0x98,0x93,0x95,0x93,0x95,0x95,0x95,0x95,0x93,0x94,0x95,0x94,0x98,0x93,0x98,0x01, | ||
4114 | 0x98,0x98,0x98,0x01,0x96,0x95,0x94,0x96,0x96,0x95,0x98,0x98,0x95,0x94,0x94,0x01, | ||
4115 | 0x94,0x95,0x93,0x94,0x91,0x94,0x95,0x96,0x01,0x96,0x96,0x95,0x01,0x94,0x98,0x01, | ||
4116 | 0x95,0x95,0x93,0x98,0x96,0x96,0x01,0x96,0x01,0x96,0x98,0x96,0x94,0x01,0x98,0x95, | ||
4117 | 0x94,0x92,0x96,0x01,0x96,0x94,0x96,0x01,0x96,0x98,0x94,0x01,0x94,0x01,0x95,0x98, | ||
4118 | 0x98,0x99,0x94,0x99,0x98,0x95,0x99,0x98,0x98,0x98,0x98,0x95,0x98,0x98,0x98,0x97, | ||
4119 | 0x96,0x96,0x94,0x95,0x93,0x96,0x92,0x8E,0x92,0x92,0x96,0x94,0x92,0x95,0x93,0x92, | ||
4120 | 0x98,0x93,0x98,0x95,0x95,0x96,0x98,0x96,0x95,0x96,0x95,0x01,0x96,0x95,0x98,0x95, | ||
4121 | 0x95,0x01,0x01,0x96,0x96,0x01,0x95,0x98,0x95,0x95,0x01,0x01,0x95,0x96,0x95,0x01, | ||
4122 | 0x96,0x95,0x95,0x96,0x96,0x96,0x01,0x96,0x96,0x96,0x95,0x96,0x95,0x96,0x8E,0x92, | ||
4123 | 0x94,0x01,0x96,0x96,0x98,0x98,0x98,0x96,0x01,0x96,0x98,0x96,0x96,0x94,0x01,0x98, | ||
4124 | 0x94,0x95,0x96,0x96,0x94,0x95,0x96,0x94,0x95,0x96,0x96,0x01,0x01,0x98,0x98,0x98, | ||
4125 | 0x98,0x95,0x96,0x98,0x96,0x95,0x95,0x98,0x01,0x96,0x98,0x98,0x94,0x95,0x98,0x01, | ||
4126 | 0x95,0x9A,0x98,0x9A,0x98,0x9A,0x99,0x9A,0x98,0x99,0x01,0x99,0x98,0x98,0x98,0x95, | ||
4127 | 0x95,0x92,0x91,0x91,0x94,0x94,0x91,0x91,0x94,0x93,0x8E,0x94,0x8E,0x8E,0x92,0x92, | ||
4128 | 0x94,0x94,0x94,0x95,0x95,0x01,0x95,0x96,0x98,0x96,0x96,0x95,0x96,0x98,0x98,0x92, | ||
4129 | 0x01,0x98,0x97,0x01,0x98,0x94,0x98,0x95,0x99,0x98,0x96,0x98,0x92,0x95,0x93,0x95, | ||
4130 | 0x92,0x93,0x95,0x95,0x96,0x96,0x94,0x96,0x95,0x98,0x98,0x95,0x96,0x98,0x95,0x94, | ||
4131 | 0x01,0x94,0x95,0x96,0x96,0x95,0x98,0x95,0x95,0x93,0x96,0x96,0x95,0x94,0x98,0x98, | ||
4132 | 0x96,0x96,0x95,0x92,0x93,0x92,0x93,0x93,0x94,0x93,0x92,0x94,0x96,0x01,0x96,0x94, | ||
4133 | 0x91,0x95,0x96,0x94,0x93,0x94,0x93,0x93,0x92,0x92,0x01,0x96,0x95,0x94,0x96,0x96, | ||
4134 | 0x98,0x94,0x96,0x95,0x98,0x94,0x96,0x98,0x98,0x95,0x95,0x95,0x98,0x94,0x93,0x01, | ||
4135 | 0x01,0x92,0x95,0x01,0x94,0x95,0x95,0x95,0x93,0x95,0x94,0x95,0x93,0x94,0x95,0x95, | ||
4136 | 0x92,0x01,0x01,0x94,0x01,0x94,0x95,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x98,0x98, | ||
4137 | 0x95,0x94,0x96,0x98,0x94,0x95,0x93,0x01,0x92,0x94,0x99,0x96,0x96,0x96,0x01,0x98, | ||
4138 | 0x98,0x96,0x99,0x98,0x94,0x95,0x95,0x95,0x98,0x98,0x01,0x98,0x01,0x98,0x95,0x95, | ||
4139 | 0x95,0x94,0x92,0x94,0x95,0x93,0x8E,0x93,0x95,0x01,0x95,0x94,0x95,0x93,0x93,0x01, | ||
4140 | 0x95,0x94,0x93,0x94,0x96,0x96,0x96,0x93,0x95,0x94,0x98,0x95,0x01,0x01,0x96,0x01, | ||
4141 | 0x95,0x96,0x96,0x01,0x98,0x96,0x96,0x95,0x95,0x96,0x95,0x95,0x96,0x01,0x94,0x96, | ||
4142 | 0x95,0x96,0x98,0x93,0x98,0x98,0x96,0x96,0x01,0x01,0x95,0x95,0x92,0x8E,0x92,0x95, | ||
4143 | 0x94,0x96,0x96,0x01,0x96,0x98,0x95,0x01,0x98,0x98,0x01,0x96,0x95,0x96,0x98,0x01, | ||
4144 | 0x96,0x98,0x95,0x96,0x94,0x96,0x94,0x95,0x95,0x98,0x95,0x96,0x95,0x94,0x94,0x01, | ||
4145 | 0x98,0x98,0x95,0x98,0x98,0x98,0x01,0x98,0x98,0x95,0x98,0x01,0x96,0x94,0x99,0x99, | ||
4146 | 0x98,0x99,0x98,0x98,0x96,0x99,0x98,0x99,0x98,0x98,0x95,0x93,0x95,0x97,0x94,0x96, | ||
4147 | 0x01,0x8E,0x96,0x92,0x8E,0x8E,0x8E,0x8E,0x8E,0x92,0x93,0x95,0x94,0x92,0x92,0x96, | ||
4148 | 0x01,0x96,0x8E,0x01,0x96,0x95,0x94,0x92,0x01,0x98,0x96,0x96,0x98,0x96,0x98,0x98, | ||
4149 | 0x95,0x94,0x98,0x96,0x96,0x95,0x95,0x96,0x98,0x93,0x97,0x96,0x98,0x98,0x01,0x01, | ||
4150 | 0x95,0x92,0x93,0x95,0x94,0x95,0x95,0x95,0x95,0x96,0x95,0x94,0x97,0x95,0x98,0x95, | ||
4151 | 0x94,0x01,0x96,0x95,0x93,0x98,0x98,0x98,0x98,0x96,0x99,0x96,0x98,0x97,0x94,0x96, | ||
4152 | 0x95,0x98,0x01,0x96,0x95,0x92,0x96,0x95,0x92,0x93,0x94,0x93,0x93,0x92,0x92,0x93, | ||
4153 | 0x93,0x95,0x94,0x95,0x92,0x93,0x96,0x01,0x94,0x96,0x94,0x95,0x96,0x98,0x93,0x94, | ||
4154 | 0x96,0x94,0x95,0x98,0x96,0x93,0x98,0x94,0x94,0x92,0x93,0x92,0x95,0x95,0x95,0x96, | ||
4155 | 0x95,0x95,0x94,0x95,0x93,0x92,0x94,0x94,0x98,0x94,0x95,0x93,0x94,0x95,0x95,0x94, | ||
4156 | 0x96,0x95,0x95,0x98,0x95,0x01,0x94,0x95,0x95,0x94,0x96,0x94,0x94,0x98,0x98,0x99, | ||
4157 | 0x98,0x98,0x98,0x99,0x96,0x99,0x98,0x99,0x99,0x99,0x96,0x95,0x97,0x95,0x98,0x01, | ||
4158 | 0x98,0x97,0x98,0x96,0x98,0x96,0x96,0x99,0x98,0x96,0x98,0x95,0x95,0x98,0x94,0x8E, | ||
4159 | 0x93,0x8E,0x92,0x92,0x93,0x95,0x92,0x93,0x94,0x92,0x94,0x93,0x93,0x96,0x94,0x98, | ||
4160 | 0x93,0x98,0x01,0x94,0x96,0x98,0x96,0x94,0x96,0x96,0x01,0x01,0x01,0x95,0x95,0x94, | ||
4161 | 0x96,0x95,0x96,0x96,0x95,0x98,0x95,0x95,0x96,0x95,0x94,0x98,0x93,0x98,0x98,0x01, | ||
4162 | 0x96,0x01,0x94,0x95,0x96,0x01,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x96,0x98,0x95, | ||
4163 | 0x93,0x96,0x95,0x95,0x98,0x92,0x95,0x98,0x94,0x94,0x95,0x98,0x95,0x97,0x98,0x96, | ||
4164 | 0x96,0x97,0x98,0x98,0x01,0x97,0x95,0x95,0x98,0x98,0x98,0x98,0x96,0x99,0x96,0x95, | ||
4165 | 0x98,0x94,0x95,0x94,0x98,0x95,0x94,0x95,0x94,0x97,0x94,0x98,0x96,0x96,0x98,0x98, | ||
4166 | 0x96,0x98,0x94,0x98,0x01,0x95,0x98,0x93,0x98,0x94,0x01,0x98,0x98,0x01,0x96,0x96, | ||
4167 | 0x8D,0x91,0x92,0x95,0x94,0x93,0x92,0x95,0x95,0x91,0x95,0x96,0x96,0x01,0x98,0x98, | ||
4168 | 0x95,0x01,0x91,0x8E,0x8E,0x95,0x92,0x95,0x95,0x94,0x98,0x95,0x95,0x94,0x01,0x01, | ||
4169 | 0x94,0x93,0x98,0x95,0x01,0x95,0x95,0x93,0x93,0x01,0x95,0x93,0x93,0x95,0x99,0x98, | ||
4170 | 0x96,0x94,0x98,0x95,0x95,0x98,0x01,0x95,0x96,0x98,0x97,0x95,0x98,0x94,0x98,0x98, | ||
4171 | 0x01,0x01,0x98,0x98,0x01,0x96,0x98,0x98,0x97,0x94,0x98,0x97,0x98,0x96,0x96,0x98, | ||
4172 | 0x98,0x98,0x95,0x98,0x95,0x95,0x95,0x95,0x96,0x94,0x95,0x92,0x93,0x92,0x95,0x93, | ||
4173 | 0x93,0x95,0x94,0x93,0x95,0x96,0x96,0x96,0x96,0x94,0x94,0x98,0x96,0x96,0x98,0x94, | ||
4174 | 0x96,0x98,0x98,0x95,0x93,0x94,0x96,0x94,0x92,0x93,0x94,0x01,0x93,0x92,0x93,0x93, | ||
4175 | 0x95,0x94,0x93,0x92,0x92,0x93,0x95,0x98,0x95,0x93,0x01,0x96,0x93,0x95,0x96,0x98, | ||
4176 | 0x93,0x95,0x92,0x95,0x92,0x94,0x94,0x92,0x95,0x94,0x92,0x92,0x94,0x93,0x98,0x01, | ||
4177 | 0x94,0x96,0x94,0x94,0x93,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x01,0x98, | ||
4178 | 0x97,0x98,0x98,0x01,0x98,0x98,0x96,0x98,0x96,0x98,0x01,0x96,0x94,0x8E,0x92,0x92, | ||
4179 | 0x92,0x92,0x95,0x93,0x95,0x93,0x01,0x94,0x95,0x94,0x95,0x95,0x01,0x95,0x92,0x96, | ||
4180 | 0x98,0x96,0x96,0x01,0x94,0x96,0x94,0x95,0x96,0x92,0x95,0x96,0x96,0x01,0x98,0x93, | ||
4181 | 0x98,0x96,0x95,0x98,0x93,0x96,0x95,0x98,0x01,0x98,0x94,0x98,0x94,0x96,0x98,0x95, | ||
4182 | 0x95,0x95,0x95,0x93,0x96,0x95,0x93,0x8E,0x94,0x94,0x93,0x94,0x95,0x96,0x95,0x98, | ||
4183 | 0x96,0x94,0x96,0x96,0x96,0x96,0x96,0x96,0x98,0x96,0x98,0x96,0x01,0x01,0x99,0x95, | ||
4184 | 0x99,0x96,0x98,0x98,0x98,0x98,0x99,0x01,0x99,0x98,0x96,0x96,0x98,0x01,0x99,0x98, | ||
4185 | 0x98,0x94,0x01,0x95,0x98,0x98,0x95,0x01,0x01,0x98,0x01,0x98,0x98,0x96,0x01,0x95, | ||
4186 | 0x98,0x94,0x01,0x01,0x96,0x96,0x93,0x94,0x01,0x96,0x98,0x98,0x95,0x96,0x01,0x95, | ||
4187 | 0x97,0x96,0x98,0x98,0x96,0x95,0x96,0x96,0x01,0x96,0x96,0x96,0x96,0x96,0x94,0x94, | ||
4188 | 0x95,0x92,0x95,0x92,0x96,0x01,0x94,0x98,0x01,0x98,0x98,0x01,0x01,0x96,0x93,0x94, | ||
4189 | 0x98,0x95,0x95,0x93,0x01,0x96,0x98,0x95,0x95,0x96,0x95,0x92,0x95,0x01,0x96,0x96, | ||
4190 | 0x97,0x98,0x95,0x98,0x95,0x95,0x95,0x98,0x96,0x94,0x95,0x01,0x98,0x98,0x93,0x94, | ||
4191 | 0x92,0x96,0x96,0x01,0x95,0x92,0x98,0x98,0x93,0x96,0x96,0x95,0x01,0x98,0x97,0x01, | ||
4192 | 0x95,0x96,0x94,0x96,0x99,0x98,0x98,0x96,0x96,0x97,0x94,0x96,0x01,0x94,0x92,0x96, | ||
4193 | 0x95,0x92,0x95,0x94,0x01,0x94,0x98,0x95,0x96,0x96,0x96,0x94,0x93,0x95,0x01,0x95, | ||
4194 | 0x94,0x95,0x95,0x92,0x92,0x98,0x95,0x95,0x92,0x95,0x94,0x94,0x96,0x95,0x95,0x93, | ||
4195 | 0x93,0x95,0x01,0x95,0x96,0x92,0x94,0x94,0x95,0x95,0x94,0x93,0x01,0x95,0x94,0x95, | ||
4196 | 0x01,0x96,0x01,0x96,0x98,0x98,0x94,0x96,0x96,0x95,0x98,0x94,0x95,0x96,0x96,0x92, | ||
4197 | 0x94,0x95,0x98,0x96,0x98,0x98,0x98,0x98,0x01,0x98,0x94,0x01,0x01,0x98,0x99,0x98, | ||
4198 | 0x01,0x98,0x98,0x95,0x95,0x96,0x96,0x93,0x95,0x91,0x94,0x92,0x8E,0x95,0x94,0x98, | ||
4199 | 0x93,0x95,0x94,0x93,0x94,0x92,0x95,0x95,0x98,0x96,0x93,0x95,0x92,0x96,0x95,0x95, | ||
4200 | 0x01,0x96,0x96,0x94,0x95,0x95,0x96,0x94,0x98,0x98,0x01,0x95,0x96,0x95,0x94,0x96, | ||
4201 | 0x95,0x96,0x96,0x96,0x94,0x98,0x96,0x94,0x01,0x98,0x01,0x98,0x98,0x98,0x95,0x95, | ||
4202 | 0x01,0x95,0x94,0x93,0x92,0x8E,0x94,0x91,0x98,0x95,0x98,0x95,0x98,0x95,0x96,0x98, | ||
4203 | 0x96,0x98,0x01,0x96,0x95,0x01,0x98,0x95,0x94,0x95,0x98,0x98,0x99,0x98,0x98,0x96, | ||
4204 | 0x98,0x95,0x98,0x95,0x96,0x96,0x99,0x99,0x95,0x98,0x95,0x01,0x94,0x96,0x98,0x99, | ||
4205 | 0x98,0x96,0x95,0x97,0x94,0x93,0x95,0x98,0x95,0x96,0x98,0x94,0x95,0x95,0x01,0x98, | ||
4206 | 0x01,0x95,0x94,0x96,0x01,0x96,0x96,0x96,0x96,0x92,0x95,0x98,0x01,0x93,0x98,0x98, | ||
4207 | 0x9B,0x94,0x98,0x94,0x98,0x95,0x01,0x94,0x96,0x94,0x93,0x01,0x96,0x92,0x98,0x94, | ||
4208 | 0x98,0x01,0x95,0x96,0x95,0x98,0x98,0x98,0x94,0x8E,0x92,0x98,0x95,0x93,0x93,0x98, | ||
4209 | 0x94,0x92,0x95,0x92,0x01,0x92,0x91,0x96,0x95,0x93,0x91,0x92,0x92,0x95,0x01,0x98, | ||
4210 | 0x95,0x98,0x92,0x98,0x98,0x01,0x01,0x94,0x92,0x95,0x95,0x92,0x93,0x95,0x92,0x91, | ||
4211 | 0x93,0x92,0x92,0x98,0x93,0x93,0x94,0x01,0x98,0x98,0x92,0x01,0x98,0x95,0x98,0x98, | ||
4212 | 0x01,0x96,0x96,0x98,0x98,0x94,0x01,0x92,0x95,0x98,0x98,0x98,0x96,0x95,0x98,0x98, | ||
4213 | 0x96,0x95,0x01,0x98,0x96,0x95,0x96,0x98,0x95,0x92,0x96,0x93,0x93,0x93,0x91,0x95, | ||
4214 | 0x96,0x95,0x96,0x95,0x98,0x95,0x01,0x96,0x95,0x96,0x92,0x95,0x94,0x94,0x95,0x95, | ||
4215 | 0x98,0x94,0x92,0x96,0x94,0x01,0x96,0x94,0x95,0x96,0x96,0x95,0x95,0x01,0x01,0x98, | ||
4216 | 0x98,0x94,0x94,0x98,0x95,0x93,0x01,0x94,0x92,0x01,0x96,0x96,0x98,0x98,0x96,0x96, | ||
4217 | 0x97,0x94,0x98,0x95,0x96,0x95,0x99,0x98,0x95,0x98,0x01,0x98,0x98,0x95,0x95,0x97, | ||
4218 | 0x98,0x96,0x98,0x94,0x93,0x94,0x93,0x95,0x94,0x8E,0x92,0x93,0x95,0x93,0x98,0x96, | ||
4219 | 0x01,0x93,0x94,0x95,0x95,0x93,0x96,0x96,0x95,0x95,0x01,0x94,0x98,0x01,0x95,0x98, | ||
4220 | 0x01,0x94,0x94,0x95,0x98,0x96,0x98,0x01,0x95,0x95,0x98,0x01,0x96,0x98,0x98,0x98, | ||
4221 | 0x98,0x01,0x95,0x01,0x96,0x01,0x96,0x94,0x01,0x98,0x92,0x96,0x95,0x95,0x96,0x95, | ||
4222 | 0x96,0x95,0x95,0x92,0x95,0x93,0x93,0x98,0x95,0x95,0x94,0x92,0x98,0x94,0x96,0x95, | ||
4223 | 0x94,0x95,0x01,0x95,0x01,0x96,0x95,0x98,0x98,0x01,0x98,0x99,0x01,0x98,0x98,0x97, | ||
4224 | 0x94,0x98,0x97,0x95,0x97,0x95,0x98,0x98,0x98,0x96,0x98,0x01,0x98,0x01,0x92,0x96, | ||
4225 | 0x96,0x01,0x98,0x98,0x96,0x01,0x98,0x98,0x95,0x98,0x94,0x92,0x95,0x98,0x98,0x93, | ||
4226 | 0x98,0x01,0x96,0x98,0x98,0x96,0x01,0x96,0x94,0x94,0x96,0x95,0x98,0x94,0x93,0x94, | ||
4227 | 0x9B,0x98,0x98,0x98,0x98,0x98,0x96,0x97,0x98,0x96,0x94,0x96,0x95,0x93,0x98,0x01, | ||
4228 | 0x98,0x98,0x97,0x94,0x95,0x94,0x96,0x95,0x94,0x93,0x95,0x8E,0x8E,0x8E,0x95,0x8E, | ||
4229 | 0x01,0x01,0x98,0x98,0x01,0x93,0x96,0x96,0x95,0x95,0x93,0x92,0x8E,0x8E,0x8E,0x8E, | ||
4230 | 0x8E,0x92,0x93,0x96,0x98,0x93,0x94,0x01,0x95,0x93,0x98,0x93,0x96,0x95,0x95,0x95, | ||
4231 | 0x98,0x98,0x98,0x94,0x95,0x98,0x01,0x01,0x96,0x95,0x96,0x93,0x94,0x98,0x95,0x96, | ||
4232 | 0x94,0x96,0x95,0x95,0x94,0x95,0x92,0x98,0x96,0x95,0x92,0x96,0x98,0x95,0x95,0x98, | ||
4233 | 0x95,0x98,0x94,0x96,0x95,0x96,0x96,0x98,0x95,0x94,0x01,0x96,0x96,0x01,0x96,0x01, | ||
4234 | 0x98,0x98,0x01,0x01,0x94,0x94,0x95,0x01,0x01,0x94,0x98,0x96,0x96,0x98,0x97,0x98, | ||
4235 | 0x95,0x95,0x94,0x01,0x01,0x97,0x96,0x94,0x97,0x98,0x94,0x95,0x96,0x98,0x96,0x95, | ||
4236 | 0x95,0x95,0x98,0x01,0x98,0x95,0x98,0x95,0x95,0x98,0x98,0x95,0x98,0x98,0x95,0x93, | ||
4237 | 0x99,0x01,0x98,0x98,0x98,0x98,0x95,0x96,0x94,0x95,0x95,0x98,0x95,0x96,0x96,0x95, | ||
4238 | 0x91,0x95,0x93,0x92,0x91,0x95,0x94,0x8E,0x95,0x98,0x93,0x93,0x95,0x92,0x95,0x93, | ||
4239 | 0x92,0x96,0x98,0x94,0x96,0x01,0x96,0x95,0x98,0x98,0x93,0x96,0x95,0x98,0x95,0x95, | ||
4240 | 0x01,0x98,0x01,0x95,0x98,0x96,0x98,0x98,0x92,0x95,0x98,0x96,0x01,0x98,0x95,0x95, | ||
4241 | 0x01,0x96,0x95,0x98,0x98,0x96,0x95,0x01,0x01,0x96,0x98,0x96,0x96,0x96,0x96,0x94, | ||
4242 | 0x95,0x95,0x93,0x95,0x95,0x95,0x93,0x98,0x94,0x92,0x95,0x98,0x97,0x94,0x98,0x96, | ||
4243 | 0x98,0x95,0x96,0x98,0x95,0x98,0x98,0x98,0x98,0x98,0x99,0x95,0x95,0x98,0x95,0x97, | ||
4244 | 0x01,0x98,0x98,0x98,0x95,0x96,0x95,0x95,0x94,0x94,0x94,0x95,0x94,0x96,0x96,0x94, | ||
4245 | 0x96,0x94,0x98,0x95,0x98,0x01,0x98,0x94,0x01,0x96,0x96,0x98,0x96,0x98,0x95,0x92, | ||
4246 | 0x96,0x96,0x01,0x95,0x98,0x98,0x96,0x01,0x01,0x94,0x94,0x93,0x93,0x96,0x95,0x8D, | ||
4247 | 0x9B,0x99,0x98,0x98,0x95,0x96,0x94,0x99,0x96,0x95,0x95,0x97,0x96,0x98,0x01,0x94, | ||
4248 | 0x94,0x95,0x96,0x01,0x96,0x93,0x95,0x92,0x01,0x93,0x94,0x96,0x94,0x92,0x95,0x94, | ||
4249 | 0x95,0x94,0x95,0x95,0x01,0x93,0x01,0x95,0x95,0x01,0x98,0x98,0x92,0x98,0x93,0x93, | ||
4250 | 0x95,0x93,0x95,0x93,0x93,0x8E,0x93,0x01,0x96,0x01,0x97,0x01,0x98,0x96,0x96,0x94, | ||
4251 | 0x01,0x01,0x95,0x96,0x95,0x98,0x95,0x98,0x95,0x95,0x98,0x98,0x01,0x95,0x92,0x98, | ||
4252 | 0x93,0x95,0x98,0x94,0x92,0x95,0x92,0x01,0x96,0x93,0x96,0x98,0x98,0x95,0x95,0x94, | ||
4253 | 0x93,0x96,0x95,0x96,0x98,0x95,0x93,0x98,0x01,0x01,0x94,0x96,0x96,0x01,0x95,0x98, | ||
4254 | 0x96,0x96,0x95,0x98,0x99,0x99,0x94,0x98,0x01,0x01,0x93,0x95,0x99,0x99,0x01,0x01, | ||
4255 | 0x99,0x95,0x99,0x96,0x99,0x95,0x98,0x95,0x98,0x01,0x92,0x96,0x99,0x99,0x98,0x99, | ||
4256 | 0x01,0x01,0x95,0x99,0x98,0x99,0x98,0x95,0x98,0x98,0x98,0x99,0x98,0x98,0x01,0x98, | ||
4257 | 0x98,0x96,0x98,0x98,0x01,0x95,0x95,0x92,0x95,0x95,0x92,0x94,0x94,0x92,0x96,0x95, | ||
4258 | 0x93,0x91,0x92,0x94,0x91,0x8E,0x8E,0x94,0x92,0x94,0x98,0x95,0x94,0x94,0x92,0x93, | ||
4259 | 0x98,0x92,0x98,0x98,0x95,0x01,0x96,0x96,0x95,0x01,0x96,0x98,0x94,0x98,0x98,0x98, | ||
4260 | 0x98,0x96,0x01,0x01,0x95,0x95,0x96,0x94,0x98,0x96,0x96,0x98,0x94,0x98,0x96,0x94, | ||
4261 | 0x94,0x98,0x01,0x98,0x92,0x96,0x01,0x96,0x94,0x96,0x94,0x96,0x96,0x91,0x95,0x01, | ||
4262 | 0x96,0x93,0x98,0x98,0x98,0x98,0x94,0x98,0x98,0x99,0x95,0x95,0x99,0x98,0x99,0x98, | ||
4263 | 0x98,0x98,0x99,0x94,0x99,0x93,0x98,0x95,0x96,0x98,0x98,0x98,0x01,0x96,0x96,0x96, | ||
4264 | 0x94,0x01,0x95,0x97,0x95,0x95,0x95,0x98,0x95,0x95,0x94,0x01,0x96,0x95,0x96,0x96, | ||
4265 | 0x98,0x98,0x98,0x92,0x98,0x98,0x98,0x96,0x94,0x96,0x98,0x01,0x96,0x96,0x01,0x96, | ||
4266 | 0x98,0x94,0x96,0x95,0x98,0x96,0x95,0x96,0x96,0x96,0x98,0x94,0x01,0x93,0x8E,0x93, | ||
4267 | 0x98,0x98,0x95,0x98,0x01,0x97,0x95,0x96,0x98,0x98,0x95,0x98,0x94,0x96,0x95,0x93, | ||
4268 | 0x95,0x95,0x96,0x94,0x94,0x96,0x96,0x98,0x95,0x01,0x94,0x01,0x97,0x94,0x97,0x01, | ||
4269 | 0x96,0x98,0x98,0x93,0x95,0x8E,0x96,0x96,0x01,0x95,0x94,0x94,0x95,0x01,0x96,0x96, | ||
4270 | 0x98,0x92,0x96,0x92,0x94,0x93,0x94,0x95,0x96,0x94,0x1C,0x1D,0x1D,0x1D,0x1D,0x1E, | ||
4271 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, | ||
4272 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, | ||
4273 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, | ||
4274 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, | ||
4275 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4276 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4277 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4278 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4279 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4280 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4281 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4282 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4283 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x95,0x01,0x01,0x98,0x01,0x95,0x98,0x96,0x96,0x94,0x96, | ||
4284 | 0x01,0x01,0x95,0x98,0x94,0x98,0x01,0x98,0x98,0x01,0x96,0x96,0x96,0x98,0x92,0x01, | ||
4285 | 0x95,0x94,0x95,0x98,0x93,0x95,0x94,0x95,0x98,0x95,0x93,0x92,0x95,0x95,0x01,0x96, | ||
4286 | 0x96,0x94,0x94,0x95,0x96,0x94,0x94,0x98,0x95,0x95,0x8E,0x8E,0x95,0x92,0x8E,0x98, | ||
4287 | 0x98,0x96,0x98,0x96,0x98,0x98,0x93,0x98,0x01,0x95,0x96,0x98,0x93,0x94,0x94,0x95, | ||
4288 | 0x98,0x95,0x96,0x96,0x95,0x96,0x98,0x94,0x95,0x95,0x95,0x95,0x95,0x93,0x93,0x94, | ||
4289 | 0x93,0x94,0x92,0x98,0x98,0x96,0x96,0x98,0x95,0x94,0x96,0x94,0x98,0x95,0x94,0x95, | ||
4290 | 0x99,0x98,0x99,0x96,0x99,0x98,0x01,0x98,0x95,0x95,0x1D,0x00,0x00,0x00,0x00,0x00, | ||
4291 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4292 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4293 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4294 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4295 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4296 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4297 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4298 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4299 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4300 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4301 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4302 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4303 | 0x00,0x00,0x00,0x00,0xAF,0x9D,0x9A,0x96,0x98,0x01,0x96,0x95,0x96,0x96,0x91,0x96, | ||
4304 | 0x98,0x98,0x98,0x95,0x95,0x95,0x91,0x01,0x96,0x01,0x92,0x92,0x95,0x93,0x95,0x8E, | ||
4305 | 0x8E,0x8E,0x93,0x95,0x93,0x94,0x96,0x94,0x95,0x92,0x8E,0x94,0x96,0x98,0x93,0x95, | ||
4306 | 0x95,0x95,0x8E,0x8E,0x8E,0x95,0x92,0x93,0x8E,0x92,0x93,0x95,0x92,0x96,0x94,0x95, | ||
4307 | 0x94,0x98,0x01,0x98,0x96,0x98,0x96,0x96,0x96,0x94,0x96,0x98,0x95,0x92,0x95,0x95, | ||
4308 | 0x98,0x98,0x94,0x98,0x98,0x94,0x93,0x95,0x01,0x92,0x92,0x95,0x94,0x96,0x96,0x94, | ||
4309 | 0x95,0x92,0x98,0x98,0x01,0x95,0x95,0x98,0x92,0x95,0x96,0x95,0x01,0x96,0x96,0x96, | ||
4310 | 0x94,0x96,0x98,0x98,0x96,0x95,0x98,0x98,0x95,0x98,0x1D,0x00,0x00,0x00,0x00,0x00, | ||
4311 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4312 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4313 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4314 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4315 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4316 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4317 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4318 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4319 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4320 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4321 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4322 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4323 | 0x00,0x00,0x00,0x00,0xAF,0x9D,0x9B,0x96,0x98,0x94,0x93,0x93,0x95,0x01,0x96,0x95, | ||
4324 | 0x96,0x96,0x8E,0x95,0x92,0x8E,0x95,0x92,0x92,0x92,0x8E,0x92,0x8E,0x95,0x93,0x92, | ||
4325 | 0x95,0x8E,0x8E,0x95,0x94,0x94,0x92,0x92,0x94,0x95,0x8E,0x96,0x8E,0x92,0x92,0x01, | ||
4326 | 0x93,0x96,0x95,0x95,0x8E,0x8E,0x92,0x96,0x94,0x91,0x92,0x95,0x98,0x92,0x98,0x94, | ||
4327 | 0x98,0x96,0x98,0x94,0x96,0x95,0x95,0x94,0x95,0x96,0x98,0x01,0x98,0x95,0x98,0x01, | ||
4328 | 0x01,0x98,0x95,0x96,0x01,0x96,0x01,0x92,0x98,0x92,0x95,0x95,0x92,0x95,0x96,0x95, | ||
4329 | 0x95,0x98,0x98,0x96,0x92,0x95,0x95,0x95,0x98,0x95,0x01,0x98,0x96,0x98,0x94,0x01, | ||
4330 | 0x96,0x96,0x01,0x93,0x96,0x94,0x98,0x96,0x96,0x93,0x1D,0x00,0x00,0xA7,0x08,0x1F, | ||
4331 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4332 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4333 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4334 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4335 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4336 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4337 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4338 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4339 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4340 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4341 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4342 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA7, | ||
4343 | 0x08,0x1F,0x00,0x00,0xAF,0x9D,0x01,0x93,0x93,0x98,0x96,0x94,0x01,0x96,0x95,0x95, | ||
4344 | 0x8E,0x93,0x94,0x8E,0x93,0x95,0x92,0x92,0x96,0x93,0x95,0x98,0x96,0x98,0x94,0x95, | ||
4345 | 0x94,0x93,0x94,0x01,0x95,0x94,0x98,0x98,0x91,0x94,0x98,0x96,0x98,0x01,0x98,0x01, | ||
4346 | 0x98,0x95,0x95,0x96,0x01,0x98,0x94,0x95,0x94,0x95,0x96,0x98,0x01,0x9A,0x9A,0x98, | ||
4347 | 0x98,0x98,0x95,0x95,0x92,0x94,0x93,0x93,0x93,0x93,0x01,0x95,0x95,0x97,0x96,0x01, | ||
4348 | 0x98,0x96,0x95,0x93,0x92,0x01,0x95,0x96,0x96,0x95,0x94,0x98,0x94,0x98,0x98,0x95, | ||
4349 | 0x96,0x01,0x95,0x95,0x95,0x96,0x98,0x98,0x98,0x96,0x99,0x95,0x98,0x94,0x96,0x95, | ||
4350 | 0x95,0x92,0x98,0x95,0x96,0x93,0x95,0x96,0x98,0x94,0x1D,0x00,0x00,0x08,0x1D,0x1E, | ||
4351 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4352 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4353 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4354 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4355 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4356 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x10,0x10,0x19,0x1F,0x00,0x00,0x08,0x19, | ||
4357 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x07,0x08,0x00,0x00,0x00, | ||
4358 | 0x00,0x12,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4359 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4360 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4361 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4362 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, | ||
4363 | 0x1D,0x1E,0x00,0x00,0xAF,0x9B,0x9A,0x94,0x96,0x91,0x93,0x93,0x95,0x98,0x93,0x8E, | ||
4364 | 0x92,0x95,0x92,0x98,0x93,0x95,0x94,0x92,0x95,0x01,0x94,0x98,0x01,0x01,0x96,0x01, | ||
4365 | 0x95,0x94,0x96,0x01,0x94,0x92,0x01,0x95,0x94,0x95,0x95,0x99,0x99,0x98,0x98,0x98, | ||
4366 | 0x99,0x96,0x98,0x95,0x96,0x95,0x96,0x95,0x01,0x98,0x98,0x9A,0x01,0x9A,0x98,0x98, | ||
4367 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4368 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4369 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4370 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x1F,0x1E,0xE9, | ||
4371 | 0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x07,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4372 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4373 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4374 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4375 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4376 | 0x00,0x00,0x00,0x00,0x00,0x1E,0x11,0x19,0x19,0x1A,0x1A,0x1A,0x19,0x19,0x1A,0x13, | ||
4377 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x18,0x17,0x11,0x08,0x00,0x00, | ||
4378 | 0x12,0x1A,0xEB,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4379 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4380 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4381 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4382 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F, | ||
4383 | 0x1E,0xE9,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4384 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4385 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4386 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4387 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4388 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4389 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4390 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x00, | ||
4391 | 0x00,0x00,0x00,0x00,0x1D,0x14,0x18,0x1C,0x1C,0x1C,0x00,0x00,0x14,0x1E,0x00,0x00, | ||
4392 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4393 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4394 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4395 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4396 | 0x00,0x00,0x00,0x00,0x00,0x11,0x18,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x13,0x00, | ||
4397 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x19,0x1C,0x08,0x17,0x11,0x12,0x12, | ||
4398 | 0xEB,0x08,0x1C,0x1C,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4399 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4400 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4401 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4402 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4403 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4404 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4405 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4406 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4407 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4408 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4409 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4410 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x00, | ||
4411 | 0x00,0x00,0x1D,0x14,0x15,0x1B,0x1C,0x1C,0x1B,0x1B,0x1C,0x1C,0x1C,0x1E,0x00,0x00, | ||
4412 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4413 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4414 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4415 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4416 | 0x00,0x00,0x00,0x00,0x00,0x10,0x19,0x19,0x19,0x19,0x1D,0x1D,0x1A,0x17,0x00,0x00, | ||
4417 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x18,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, | ||
4418 | 0x1C,0x1C,0x1C,0x1C,0x1C,0x08,0x1A,0x17,0x07,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4419 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4420 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4421 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4422 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4423 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4424 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4425 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4426 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4427 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4428 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4429 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4430 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x00, | ||
4431 | 0x1D,0x13,0x15,0x1A,0x1A,0x1A,0x1A,0x19,0x1A,0x1A,0x1A,0x1A,0x1B,0x1E,0x00,0x00, | ||
4432 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4433 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4434 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4435 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4436 | 0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4437 | 0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x18,0x1A,0x1A,0x1A,0x1B,0x1B,0x1B,0x1B,0x1B, | ||
4438 | 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1A,0x19,0x13,0x13,0x1E,0x00,0x00,0x00,0x00, | ||
4439 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4440 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4441 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4442 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4443 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4444 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4445 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4446 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4447 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4448 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4449 | 0x00,0x00,0x1E,0x1D,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4450 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x12, | ||
4451 | 0x15,0x1A,0x19,0x19,0x19,0x19,0x1A,0x1B,0x16,0x18,0x19,0x19,0x18,0x1E,0x00,0x00, | ||
4452 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4453 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4454 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4455 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4456 | 0x00,0x00,0x00,0x00,0x00,0x10,0x17,0x17,0x17,0x17,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4457 | 0x00,0x00,0x00,0x00,0x00,0x12,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x1A,0x1A,0x1A, | ||
4458 | 0x1A,0x1A,0x19,0x19,0x1A,0x1A,0x1A,0x1A,0x19,0x18,0x16,0x13,0x1E,0x00,0x00,0x00, | ||
4459 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4460 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4461 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4462 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4463 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4464 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x1D,0x1E,0x00,0x00,0x00, | ||
4465 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4466 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4467 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4468 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E, | ||
4469 | 0x1D,0xEC,0x1D,0x1E,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4470 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x12, | ||
4471 | 0x19,0x18,0x18,0x18,0x18,0x18,0x1C,0x1E,0x1C,0x16,0x19,0x18,0x1E,0x00,0x00,0x00, | ||
4472 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4473 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4474 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4475 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4476 | 0x00,0x00,0x00,0x00,0x00,0x10,0x16,0x16,0x16,0x16,0x1F,0x00,0x1F,0x1F,0x00,0x00, | ||
4477 | 0x00,0x00,0x00,0x00,0x00,0x12,0x16,0x17,0x17,0x17,0x17,0x08,0x13,0x17,0x17,0x18, | ||
4478 | 0x18,0x18,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x17,0x17,0x17,0x14,0x00,0x00,0x00, | ||
4479 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4480 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4481 | 0x0F,0x10,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4482 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4483 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4484 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1E,0x1D,0xEC,0x1D,0x1E, | ||
4485 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4486 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4487 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4488 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x1D,0xEC,0x1D, | ||
4489 | 0x1E,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0xEE,0xEC,0x00,0x00,0x00,0x00, | ||
4490 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x12, | ||
4491 | 0x17,0x17,0x17,0x17,0x17,0x17,0x1F,0x1F,0x1F,0x15,0x18,0x1E,0x00,0x00,0x00,0x00, | ||
4492 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4493 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4494 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4495 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4496 | 0x00,0x00,0x00,0x00,0x00,0x10,0x16,0x16,0x16,0x16,0x1F,0x1F,0x07,0x13,0x00,0x00, | ||
4497 | 0x00,0x00,0x00,0x00,0x12,0x07,0x16,0x16,0x16,0x16,0x08,0x1F,0x16,0x16,0x16,0x16, | ||
4498 | 0x16,0x16,0x1E,0x08,0x18,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x07,0x00,0x00,0x00, | ||
4499 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4500 | 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x19,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x12, | ||
4501 | 0x12,0x12,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4502 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4503 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4504 | 0x00,0x00,0x00,0xEC,0xEE,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1E,0x1D, | ||
4505 | 0xEC,0x1D,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4506 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4507 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4508 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x1D,0xEC,0x1D,0x1E,0x1F,0x1F, | ||
4509 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0xEE,0xEC,0x1E,0x1F,0x00,0x00,0x00,0x00, | ||
4510 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x12, | ||
4511 | 0x16,0x16,0x16,0x16,0x16,0x16,0x1C,0x00,0x00,0x1E,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4512 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4513 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4514 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4515 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4516 | 0x00,0x00,0x00,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x13,0x00,0x00, | ||
4517 | 0x00,0x00,0x00,0x00,0x12,0x14,0x07,0x07,0x07,0x08,0x1F,0x00,0x16,0x07,0x07,0x07, | ||
4518 | 0x07,0x07,0x1E,0x00,0x08,0x18,0x07,0x07,0x07,0x07,0x07,0x07,0x18,0x00,0x00,0x00, | ||
4519 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4520 | 0x00,0x00,0x00,0x00,0x00,0x10,0x17,0x17,0x1F,0x00,0x00,0x00,0x00,0x00,0x07,0x16, | ||
4521 | 0x16,0x19,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4522 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4523 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4524 | 0x00,0x00,0x00,0x1F,0x1E,0xEC,0xEE,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4525 | 0x1F,0x1E,0x1D,0xEC,0x1D,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4526 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4527 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4528 | 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x1D,0xEC,0x1D,0x1E,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4529 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0xEE,0xEC,0x1E,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00, | ||
4530 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x13, | ||
4531 | 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4532 | 0x00,0x00,0x0F,0x0F,0x0F,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0F, | ||
4533 | 0x0F,0x0F,0x00,0x00,0x00,0x00,0x0F,0x12,0x12,0x12,0x12,0x11,0x0F,0x17,0x08,0x00, | ||
4534 | 0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x0F,0x1B,0x1F,0x00,0x1F,0x10,0x0F,0x0F,0x0F, | ||
4535 | 0xEB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x11,0x0F,0x07, | ||
4536 | 0x1F,0x00,0x10,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x1E,0x00,0x00, | ||
4537 | 0x00,0x00,0x00,0x00,0x12,0x14,0x14,0x14,0x1A,0x1F,0x00,0x00,0x16,0x14,0x14,0x14, | ||
4538 | 0x14,0x14,0x1E,0x00,0x00,0x08,0x18,0x14,0x14,0x14,0x14,0x14,0x1A,0x00,0x00,0x00, | ||
4539 | 0x00,0x10,0x10,0x17,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x0F,0x11,0x1E,0x1F, | ||
4540 | 0x00,0x0F,0x0F,0x00,0x10,0x14,0x14,0x14,0x0F,0x0F,0x11,0x13,0x00,0x00,0x00,0x00, | ||
4541 | 0x00,0x00,0x00,0x00,0x00,0x0F,0x18,0x1D,0x00,0x00,0x00,0x19,0x07,0x08,0x00,0x00, | ||
4542 | 0x00,0x00,0x0F,0x11,0x13,0x1A,0x00,0x00,0x1F,0x0F,0x0F,0x11,0x1F,0x00,0x00,0x00, | ||
4543 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4544 | 0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1E,0xEC,0xEE,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4545 | 0x1F,0x1F,0x1F,0x1F,0x1E,0x1D,0xEC,0x1D,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4546 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4547 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4548 | 0x00,0x00,0x00,0x1E,0x1D,0xEC,0x1D,0x1E,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4549 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0xED,0xED,0xED,0xED, | ||
4550 | 0x1E,0xE9,0x1D,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0x1E,0x00,0x00,0x00,0x00,0x14, | ||
4551 | 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4552 | 0x00,0x0F,0x16,0x16,0x16,0x10,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x15,0x16, | ||
4553 | 0x16,0x15,0x0F,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x10, | ||
4554 | 0x1E,0x00,0x00,0x10,0x18,0x18,0x18,0x18,0x17,0x1F,0x1F,0x11,0x18,0x18,0x18,0x18, | ||
4555 | 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x13,0x19,0x19,0x19,0x19,0x19,0x17, | ||
4556 | 0x0F,0x1F,0x08,0x08,0x08,0x10,0x13,0x13,0x13,0x13,0x17,0x17,0x1E,0x00,0x00,0x00, | ||
4557 | 0x00,0x00,0x00,0x00,0x00,0x12,0x13,0x13,0x08,0x00,0x00,0x00,0x16,0x13,0x13,0x13, | ||
4558 | 0x13,0x13,0x1E,0x00,0x00,0x00,0x08,0x13,0x13,0x13,0x13,0x13,0x08,0x00,0x00,0x00, | ||
4559 | 0x10,0x18,0x18,0x18,0x18,0x1E,0x00,0x00,0x00,0x1F,0x0F,0x11,0x07,0x07,0x07,0x12, | ||
4560 | 0x0F,0x07,0x07,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x00,0x0F,0x11,0x11, | ||
4561 | 0x11,0x11,0x08,0x00,0x0F,0x14,0x14,0x19,0x1D,0x00,0x18,0x07,0x12,0x0F,0x07,0x00, | ||
4562 | 0x00,0x0F,0x07,0x07,0x07,0x07,0x19,0x1F,0x07,0x07,0x07,0x07,0x07,0x1F,0x00,0x00, | ||
4563 | 0x00,0x00,0x00,0x00,0xAF,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0x1D,0xE9,0x1E,0xED, | ||
4564 | 0xED,0xED,0xED,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
4565 | 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1E,0x1D,0xEC,0x1D,0x1E,0x00,0x00,0x00,0x00, | ||
4566 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4567 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4568 | 0x1E,0x1D,0xEC,0x1D,0x1E,0x1F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0xED,0xED,0xEE, | ||
4569 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4570 | 0xED,0xE9,0x1C,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1E,0x00,0x00,0x00,0x00,0xEA, | ||
4571 | 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1B,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4572 | 0x0F,0x15,0x15,0x14,0x15,0x13,0x10,0x1C,0x00,0x00,0x00,0x00,0x10,0x14,0x14,0x13, | ||
4573 | 0x13,0x14,0x14,0x0F,0x00,0x00,0x1C,0x18,0x19,0x19,0x19,0x17,0x17,0x17,0x17,0x18, | ||
4574 | 0x19,0x00,0x10,0x10,0x0F,0x16,0x16,0x16,0x16,0x11,0x11,0x17,0x16,0x16,0x16,0x16, | ||
4575 | 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x13,0x18,0x17,0x17,0x17,0x17,0x17,0x17, | ||
4576 | 0x17,0x14,0x1F,0x00,0x00,0x10,0x12,0x12,0x12,0x12,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4577 | 0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x07,0x19,0x00,0x00,0x00,0x16,0x12,0x12,0x12, | ||
4578 | 0x12,0x12,0x1E,0x00,0x00,0x00,0x1C,0x12,0x12,0x12,0x12,0x12,0x1C,0x00,0x00,0x10, | ||
4579 | 0x17,0x16,0x15,0x15,0x16,0x17,0x1E,0x00,0x00,0x0F,0x07,0x14,0x14,0x14,0x14,0x14, | ||
4580 | 0x14,0x14,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x1F,0x13,0x13,0x14,0x14, | ||
4581 | 0x14,0x14,0x12,0x0F,0x14,0x14,0x14,0x14,0x08,0x18,0x14,0x14,0x14,0x14,0x14,0x1A, | ||
4582 | 0x0F,0x14,0x14,0x14,0x14,0x14,0x0F,0x0F,0x07,0x14,0x14,0x14,0x30,0x0F,0x1F,0x00, | ||
4583 | 0x00,0x00,0x00,0x00,0xAF,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1C,0xE9,0xED,0x1D, | ||
4584 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0xEE, | ||
4585 | 0xED,0xED,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x1F,0x1F,0x1E,0x1D,0xEC,0x1D,0x1E,0x00, | ||
4586 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4587 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1E,0x1D, | ||
4588 | 0xEC,0x1E,0x1F,0x1F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0xED,0xED,0xEE,0xEE,0xEE,0xEE, | ||
4589 | 0xEE,0xEE,0xEE,0xEE,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED, | ||
4590 | 0x1E,0xE9,0x1D,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4591 | 0x1A,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x1A,0x00,0x00,0x00,0x00,0x0F, | ||
4592 | 0x12,0x12,0x12,0x13,0x13,0x12,0x13,0x13,0x1C,0x00,0x00,0x31,0x30,0x12,0x13,0x1D, | ||
4593 | 0x13,0x13,0x12,0x12,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x16,0x14,0x14,0x14, | ||
4594 | 0xEB,0x00,0x00,0x00,0x0F,0x13,0x13,0x13,0x13,0x14,0x14,0x15,0x14,0x14,0x15,0x13, | ||
4595 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x13,0x14,0x14,0x13,0x1F,0x0F,0x14,0x14, | ||
4596 | 0x14,0x13,0x1F,0x00,0x00,0x10,0x10,0x11,0x11,0x11,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4597 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x19,0x00,0x00,0x00,0x16,0x11,0x10,0x10, | ||
4598 | 0x10,0x10,0x1E,0x00,0x00,0x00,0x1E,0x11,0x10,0x10,0x10,0x10,0x1E,0x00,0x10,0x16, | ||
4599 | 0x15,0x13,0x13,0x13,0x13,0x15,0x16,0x1E,0x00,0x0F,0x13,0x13,0x13,0x13,0x14,0x13, | ||
4600 | 0x13,0x1E,0x10,0x10,0x10,0x11,0x11,0x11,0x11,0x1F,0x1F,0x1F,0x00,0x0F,0x13,0x13, | ||
4601 | 0x13,0x13,0x1E,0x0F,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1A,0x00, | ||
4602 | 0x00,0x0F,0x13,0x13,0x30,0x30,0x1F,0x00,0x0F,0x30,0x30,0x30,0x30,0x1F,0x1F,0x00, | ||
4603 | 0x00,0x00,0x00,0x00,0xAF,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0x1D,0xE9,0x1E,0xED, | ||
4604 | 0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xEE,0xEE,0xEE,0xEE,0xEE, | ||
4605 | 0xEE,0xEE,0xEE,0xED,0xED,0x1E,0x1E,0x1E,0x1F,0x1F,0x1F,0x1F,0x1F,0x1E,0xEC,0x1D, | ||
4606 | 0x1E,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4607 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F, | ||
4608 | 0x1D,0x1C,0x1C,0xEC,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xED,0x1E,0x1E,0x1E, | ||
4609 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, | ||
4610 | 0x1E,0xE9,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4611 | 0x00,0x1A,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x32,0x1A,0x00,0x00,0x00,0x0F, | ||
4612 | 0x32,0x32,0x32,0x18,0x1C,0x12,0x32,0x32,0x32,0x1C,0x00,0x31,0x31,0x31,0x31,0x1D, | ||
4613 | 0x1C,0x12,0x31,0x31,0x12,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x13,0x13,0x13,0x13, | ||
4614 | 0x08,0x00,0x00,0x00,0x0F,0x11,0x11,0x11,0x11,0x14,0x00,0x00,0xEB,0x17,0x15,0x00, | ||
4615 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x12,0x10,0x10,0x12,0x1F,0x0F,0x12,0x10, | ||
4616 | 0x10,0x12,0x1F,0x00,0x00,0x10,0x11,0x11,0x11,0x11,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4617 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x16,0x10,0x10,0x10, | ||
4618 | 0x10,0x10,0x1E,0x00,0x00,0x00,0x1E,0x10,0x10,0x10,0x10,0x10,0x1E,0x00,0x10,0x12, | ||
4619 | 0x12,0x12,0x1E,0x18,0x12,0x12,0x12,0x12,0x00,0x0F,0x12,0x12,0x12,0x12,0x1E,0x1E, | ||
4620 | 0x1E,0x2F,0x2F,0x2F,0x10,0x30,0x30,0x30,0x30,0x1F,0x00,0x00,0x00,0x0F,0x30,0x30, | ||
4621 | 0x30,0x30,0x1E,0x00,0x0F,0x12,0x31,0x31,0x31,0x12,0x31,0x31,0x31,0x12,0x1F,0x00, | ||
4622 | 0x00,0x0F,0x31,0x31,0x31,0x31,0x1F,0x00,0x0F,0x31,0x31,0x31,0x31,0x1F,0x00,0x00, | ||
4623 | 0x00,0x00,0x00,0x00,0xAF,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0xE9,0x1E,0x1E, | ||
4624 | 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, | ||
4625 | 0x1E,0x1E,0xED,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEC,0x1C,0x1C,0x1D,0x1F, | ||
4626 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4627 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4628 | 0x00,0x00,0x1F,0x1D,0x1C,0x1C,0xEC,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4629 | 0x1D,0x1D,0x1D,0x1D,0x1D,0xED,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0xE9,0xE9,0xE9,0xE9, | ||
4630 | 0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4631 | 0x00,0x00,0x1A,0x32,0x32,0x32,0x32,0x33,0x33,0x33,0x32,0x32,0x1A,0x00,0x00,0x0F, | ||
4632 | 0x33,0x33,0x33,0x18,0x00,0x1C,0x33,0x33,0x33,0x18,0x00,0x31,0x32,0x32,0x32,0x1D, | ||
4633 | 0x00,0x1C,0x32,0x32,0x32,0x00,0x00,0x0F,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31, | ||
4634 | 0x08,0x00,0x00,0x00,0x0F,0x31,0x31,0x31,0x31,0x16,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4635 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x11,0x0F,0x0F,0x11,0x1F,0x0F,0x0F,0x0F, | ||
4636 | 0x0F,0x11,0x1F,0x00,0x00,0x10,0x31,0x30,0x30,0x31,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4637 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x30,0x30,0x30, | ||
4638 | 0x30,0x30,0x1E,0x00,0x00,0x00,0x1F,0x30,0x30,0x30,0x30,0x30,0x1E,0x00,0x10,0x31, | ||
4639 | 0x31,0x31,0x1E,0x00,0x0F,0x31,0x31,0x31,0x00,0x0F,0x31,0x31,0x31,0x31,0x1E,0x00, | ||
4640 | 0x00,0x00,0x00,0x2F,0x10,0x31,0x31,0x31,0x31,0x1F,0x00,0x00,0x00,0x0F,0x31,0x31, | ||
4641 | 0x31,0x31,0x1E,0x00,0x0F,0x32,0x32,0x32,0x08,0x08,0x32,0x32,0x32,0x32,0x1F,0x00, | ||
4642 | 0x00,0x0F,0x32,0x32,0x32,0x32,0x1F,0x00,0x0F,0x32,0x32,0x32,0x32,0x1F,0x00,0x00, | ||
4643 | 0x00,0x00,0x00,0x00,0xAF,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9, | ||
4644 | 0xE9,0xE9,0xE9,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0xED,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4645 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0xEC,0x1C,0x1C,0x1D,0x1F,0x00,0x00,0x00, | ||
4646 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4647 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4648 | 0x00,0x00,0x00,0x00,0x00,0x1F,0x1D,0x1C,0x1C,0xEC,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4649 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x00,0xEE,0x1C,0xEC,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x00, | ||
4650 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4651 | 0x00,0x00,0x00,0x1A,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x11,0x00,0x00,0x0F, | ||
4652 | 0x34,0x34,0x34,0x18,0x00,0x00,0x32,0x34,0x34,0x18,0x00,0x31,0x33,0x33,0x33,0x1D, | ||
4653 | 0x00,0x00,0x17,0x33,0x1A,0x00,0x0F,0x33,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, | ||
4654 | 0xEC,0x00,0x00,0x00,0x0F,0x32,0x32,0x32,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4655 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x32,0x31,0x31,0x32,0x1F,0x0F,0x31,0x31, | ||
4656 | 0x31,0x31,0x1F,0x00,0x00,0x10,0x31,0x31,0x31,0x31,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4657 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x31,0x31,0x31, | ||
4658 | 0x31,0x31,0x1E,0x00,0x00,0x00,0x1E,0x31,0x31,0x31,0x31,0x31,0x1E,0x00,0x10,0x32, | ||
4659 | 0x32,0x32,0x1E,0x00,0x0F,0x32,0x32,0x1E,0x00,0x0F,0x32,0x32,0x32,0x32,0x32,0x32, | ||
4660 | 0x32,0x1E,0x00,0x2F,0x10,0x32,0x32,0x32,0x32,0x1F,0x00,0x00,0x00,0x0F,0x33,0x33, | ||
4661 | 0x33,0x33,0x1E,0x00,0x0F,0x33,0x33,0x33,0x08,0x00,0x32,0x33,0x33,0x33,0x1F,0x00, | ||
4662 | 0x00,0x0F,0x33,0x33,0x33,0x33,0x1F,0x00,0x0F,0x33,0x33,0x33,0x33,0x1F,0x00,0x00, | ||
4663 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4664 | 0x00,0x00,0x00,0x1D,0x1D,0x1D,0xEC,0x1C,0xEE,0x00,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4665 | 0x1D,0x1D,0x1D,0x1D,0x1D,0xEC,0x1C,0x1C,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4666 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4667 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4668 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1D,0x1C,0x1C,0xEC,0x1D,0x1D,0x1D, | ||
4669 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x00,0x00,0x00,0xEE,0x1C,0xEC,0x1D,0x00,0x00,0x00,0x00, | ||
4670 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4671 | 0x00,0x00,0x00,0x00,0x1D,0x2D,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,0x35, | ||
4672 | 0x00,0x00,0x2F,0x04,0x00,0x00,0x34,0x00,0x2F,0x2A,0x00,0x25,0x2E,0x2F,0x2E,0x1D, | ||
4673 | 0x00,0x17,0x2E,0x2E,0x00,0x00,0x34,0x00,0x00,0x00,0x2F,0x2F,0x2F,0x00,0x00,0x2F, | ||
4674 | 0x2E,0x00,0x00,0x00,0x33,0x2F,0x00,0x00,0x2F,0x2E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4675 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x2B,0x2B,0x2B,0x2B,0x2E,0x33,0x2B,0x2B, | ||
4676 | 0x2B,0x2B,0x2E,0x00,0x00,0x33,0x2B,0x2B,0x2B,0x2B,0x2F,0x00,0x00,0x00,0x00,0x00, | ||
4677 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x29,0x29,0x29, | ||
4678 | 0x29,0x29,0x1E,0x00,0x00,0x00,0x1C,0x2B,0x2C,0x2D,0x2E,0x2E,0x2F,0x00,0x33,0x2F, | ||
4679 | 0x2F,0x2F,0x1E,0x00,0x0F,0x2F,0x2F,0x00,0x00,0x33,0x27,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
4680 | 0x2F,0x2F,0x2F,0x2F,0x35,0x2F,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x00,0x32,0x2F,0x2F, | ||
4681 | 0x00,0x00,0x2F,0x00,0x32,0x00,0x00,0x00,0x2F,0x00,0x32,0x00,0x00,0x00,0x2F,0x00, | ||
4682 | 0x00,0x32,0x00,0x00,0x00,0x00,0xED,0x00,0x32,0x00,0x00,0x00,0x00,0x2F,0x00,0x00, | ||
4683 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4684 | 0x00,0x00,0x00,0x1D,0xEC,0x1C,0xEE,0x00,0x00,0x00,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4685 | 0x1D,0x1D,0xEC,0x1C,0x1C,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4686 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4687 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4688 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1D,0x1C,0x1C,0xEC, | ||
4689 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0xEE,0x1C,0x00,0x00,0x00,0x00, | ||
4690 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4691 | 0x00,0x00,0x00,0x00,0x00,0x1D,0x2A,0x2F,0x2D,0x2D,0x2D,0x2F,0x34,0x00,0x00,0x34, | ||
4692 | 0x2B,0x2B,0x2B,0x04,0x00,0x00,0x34,0x2B,0x2B,0x2A,0x00,0x25,0x2B,0x2B,0x2B,0x2F, | ||
4693 | 0x17,0x2A,0x2E,0x00,0x00,0x00,0x34,0x2B,0x2B,0x2B,0x2F,0x00,0x23,0x2B,0x2B,0x2B, | ||
4694 | 0x2E,0x00,0x00,0x00,0x33,0x27,0x27,0x27,0x27,0x2E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4695 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x29,0x29,0x29,0x29,0x2E,0x33,0x29,0x29, | ||
4696 | 0x29,0x29,0x2E,0x00,0x00,0x33,0x28,0x28,0x28,0x28,0x2F,0x00,0x00,0x00,0x00,0x00, | ||
4697 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x08,0x1E,0x33,0x27,0x28,0x28, | ||
4698 | 0x28,0x27,0x1E,0x00,0x00,0x1C,0x2B,0x2B,0x2C,0x2C,0x2C,0x2B,0x2F,0x00,0x33,0x2B, | ||
4699 | 0x2E,0x2E,0x2B,0x0F,0x2A,0x2F,0x00,0x00,0x00,0x00,0x21,0x27,0x2D,0x2D,0x2D,0x2D, | ||
4700 | 0x2D,0x2C,0x2F,0x2F,0x35,0x2D,0x2F,0x2F,0x2D,0x2F,0x00,0x00,0x00,0x32,0x2D,0x2C, | ||
4701 | 0x2C,0x2D,0x2F,0x00,0x32,0x2D,0x2D,0x2D,0x2F,0x00,0x32,0x2D,0x2D,0x2F,0x2F,0x00, | ||
4702 | 0x00,0x32,0x2E,0x2E,0x2E,0x2E,0x1E,0x1E,0x34,0x2E,0x2E,0x2E,0x2E,0x2F,0x00,0x00, | ||
4703 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4704 | 0x00,0x00,0x00,0x1C,0xEE,0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0x1D,0x1D,0x1D,0xEC, | ||
4705 | 0x1C,0x1C,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4706 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4707 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4708 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1D, | ||
4709 | 0x1C,0x1C,0xEC,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4710 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4711 | 0x00,0x00,0x1D,0x33,0x31,0x32,0x34,0x28,0x2A,0x2A,0x2A,0x2A,0x34,0x00,0x00,0x34, | ||
4712 | 0x04,0x04,0x04,0x04,0x2F,0x34,0x22,0x26,0x27,0x27,0x00,0x34,0x25,0x25,0x25,0x25, | ||
4713 | 0x28,0x2E,0x00,0x00,0x00,0x00,0x34,0x29,0x29,0x29,0x2F,0x00,0x34,0x29,0x29,0x29, | ||
4714 | 0x2E,0x00,0x00,0x00,0x33,0x22,0x22,0x22,0x22,0x2E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4715 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x2E,0x33,0x24,0x24, | ||
4716 | 0x24,0x24,0x2E,0x00,0x00,0x33,0x25,0x25,0x25,0x25,0x2F,0x00,0x00,0x00,0x00,0x00, | ||
4717 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x22,0x08,0x33,0x24,0x26,0x26, | ||
4718 | 0x26,0x24,0x1E,0x00,0x1C,0x27,0x27,0x29,0x29,0x29,0x29,0x27,0x2F,0x00,0x33,0x28, | ||
4719 | 0x28,0x28,0x28,0x28,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x35,0x28,0x28, | ||
4720 | 0x28,0x28,0x2F,0x2F,0x35,0x28,0x28,0x28,0x28,0x2F,0x00,0x00,0x00,0x32,0x28,0x28, | ||
4721 | 0x28,0x28,0x2F,0x00,0x32,0x28,0x28,0x28,0x2F,0x00,0x32,0x28,0x28,0x28,0x2F,0x00, | ||
4722 | 0x00,0x32,0x2A,0x2B,0x2B,0x2A,0x23,0x34,0x36,0x2A,0x2B,0x2B,0x2A,0x2F,0x00,0x00, | ||
4723 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4724 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0xEC,0x1C,0x1C,0x1D, | ||
4725 | 0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4726 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4727 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4728 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4729 | 0x00,0x1F,0x1D,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4730 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4731 | 0x00,0x31,0x33,0x36,0x37,0x37,0x25,0x25,0x27,0x27,0x27,0x27,0x35,0x00,0x00,0x34, | ||
4732 | 0x24,0x24,0x24,0x36,0x34,0x36,0x24,0x24,0x24,0x04,0x00,0x34,0x25,0x23,0x21,0x37, | ||
4733 | 0x2E,0x00,0x00,0x00,0x00,0x00,0x34,0x25,0x25,0x25,0x2F,0x00,0x32,0x25,0x25,0x25, | ||
4734 | 0x2E,0x00,0x00,0x00,0x32,0x36,0x36,0x36,0x36,0x2E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4735 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x37,0x37,0x37,0x37,0x2E,0x33,0x37,0x37, | ||
4736 | 0x37,0x37,0x2E,0x00,0x00,0x33,0x22,0x22,0x22,0x22,0x2F,0x00,0x00,0x00,0x00,0x00, | ||
4737 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x36,0x08,0x33,0x37,0x23,0x23, | ||
4738 | 0x21,0x36,0x1E,0x1C,0x36,0x21,0x23,0x23,0x23,0x23,0x21,0x36,0x2F,0x00,0x33,0x25, | ||
4739 | 0x25,0x25,0x25,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x35,0x25,0x25, | ||
4740 | 0x25,0x25,0x2F,0x2F,0x35,0x25,0x25,0x25,0x25,0x2F,0x00,0x00,0x00,0x32,0x25,0x25, | ||
4741 | 0x25,0x25,0x2F,0x00,0x32,0x25,0x25,0x25,0x2F,0x00,0x32,0x25,0x25,0x25,0x2F,0x00, | ||
4742 | 0x00,0x32,0x25,0x25,0x27,0x27,0x25,0x36,0x23,0x25,0x27,0x27,0x25,0x2F,0x2F,0x00, | ||
4743 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4744 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1D,0x1F,0x00,0x00, | ||
4745 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4746 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4747 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4748 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4749 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4750 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, | ||
4751 | 0x33,0x34,0x35,0x36,0x36,0x21,0x21,0x21,0x23,0x23,0x23,0x21,0x37,0x00,0x00,0x34, | ||
4752 | 0x21,0x21,0x21,0x36,0x36,0x22,0x22,0x22,0x24,0x2E,0x00,0x34,0x23,0x21,0x21,0x21, | ||
4753 | 0x2E,0x2E,0x2E,0x2E,0x2E,0x00,0x34,0x23,0x23,0x23,0x2F,0x1F,0x32,0x23,0x23,0x23, | ||
4754 | 0x2E,0x00,0x00,0x2E,0x34,0x35,0x35,0x35,0x35,0x37,0x2C,0x00,0x00,0x00,0x00,0x00, | ||
4755 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x36,0x36,0x36,0x36,0x2E,0x24,0x36,0x36, | ||
4756 | 0x36,0x36,0x2E,0x00,0x00,0x33,0x35,0x36,0x36,0x35,0x2F,0x00,0x00,0x00,0x00,0x00, | ||
4757 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x35,0x35,0x35,0x37,0x21,0x21, | ||
4758 | 0x36,0x35,0x1C,0x35,0x35,0x21,0x21,0x21,0x37,0x37,0x34,0x2F,0x00,0x00,0x33,0x22, | ||
4759 | 0x22,0x22,0x22,0x2F,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x33,0x36,0x23,0x23,0x23,0x23, | ||
4760 | 0x23,0x23,0x2F,0x2F,0x35,0x23,0x23,0x23,0x23,0x2F,0x2F,0x00,0x00,0x32,0x23,0x23, | ||
4761 | 0x23,0x23,0x2F,0x00,0x32,0x23,0x23,0x23,0x2F,0x00,0x32,0x23,0x23,0x23,0x2F,0x00, | ||
4762 | 0x00,0x32,0x24,0x24,0x24,0x25,0x25,0x24,0x24,0x24,0x25,0x24,0x24,0x28,0x2F,0x00, | ||
4763 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4764 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4765 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4766 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4767 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4768 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4769 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4770 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4771 | 0x31,0x34,0x35,0x35,0x35,0x35,0x36,0x36,0x21,0x21,0x24,0x28,0x2D,0x00,0x00,0x33, | ||
4772 | 0x37,0x37,0x36,0x36,0x36,0x36,0x36,0x28,0x2D,0x00,0x00,0x34,0x35,0x36,0x36,0x36, | ||
4773 | 0x35,0x35,0x34,0x34,0x2E,0x00,0x34,0x36,0x36,0x36,0x33,0x32,0x33,0x36,0x36,0x36, | ||
4774 | 0x2E,0x2E,0x2E,0x2E,0x33,0x35,0x35,0x35,0x35,0x34,0x2E,0x00,0x00,0x00,0x00,0x00, | ||
4775 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35, | ||
4776 | 0x35,0x2E,0x00,0x00,0x00,0x33,0x34,0x35,0x35,0x34,0x2F,0x00,0x00,0x00,0x00,0x00, | ||
4777 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x34,0x34,0x35,0x35,0x37,0x37, | ||
4778 | 0x36,0x34,0x34,0x35,0x37,0x37,0x37,0x37,0x35,0x34,0x2F,0x00,0x00,0x00,0x33,0x34, | ||
4779 | 0x35,0x35,0x35,0x35,0x35,0x35,0x34,0x2F,0x00,0x33,0x35,0x35,0x35,0x35,0x35,0x35, | ||
4780 | 0x35,0x28,0x2F,0x2F,0x35,0x35,0x35,0x35,0x35,0x35,0x2F,0x00,0x32,0x35,0x35,0x35, | ||
4781 | 0x35,0x35,0x35,0x2F,0x32,0x35,0x35,0x35,0x2F,0x00,0x32,0x35,0x35,0x35,0x2F,0x2F, | ||
4782 | 0x00,0x2A,0x36,0x36,0x36,0x36,0x36,0x35,0x2F,0x35,0x36,0x36,0x36,0x35,0x2F,0x00, | ||
4783 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4784 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4785 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4786 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4787 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4788 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4789 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4790 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4791 | 0x31,0x34,0x34,0x34,0x34,0x34,0x34,0x0C,0x36,0x27,0x2B,0x2F,0x00,0x00,0x00,0x33, | ||
4792 | 0x35,0x35,0x35,0x34,0x2E,0x2E,0x2E,0x2E,0x00,0x00,0x00,0x2B,0x22,0x34,0x33,0x33, | ||
4793 | 0x33,0x33,0x33,0x34,0x2E,0x00,0x21,0x35,0x34,0x34,0x34,0x34,0x34,0x34,0x35,0x35, | ||
4794 | 0x35,0x35,0x2E,0x00,0x2E,0x33,0x34,0x34,0x34,0x28,0x2E,0x00,0x00,0x00,0x00,0x00, | ||
4795 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x0C, | ||
4796 | 0x2E,0x00,0x33,0x33,0x33,0x33,0x34,0x35,0x35,0x34,0x2F,0x00,0x00,0x00,0x00,0x00, | ||
4797 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x34,0x33,0x34,0x34,0x34,0x35, | ||
4798 | 0x35,0x35,0x35,0x35,0x35,0x34,0x33,0x33,0x34,0x2F,0x00,0x00,0x00,0x00,0x2F,0x33, | ||
4799 | 0x32,0x31,0x31,0x31,0x32,0x33,0x34,0x2F,0x00,0x2F,0x28,0x34,0x33,0x33,0x33,0x34, | ||
4800 | 0x28,0x2F,0x00,0x2F,0x28,0x33,0x33,0x33,0x33,0x28,0x2F,0x00,0x28,0x33,0x33,0x33, | ||
4801 | 0x33,0x33,0x28,0x00,0x32,0x33,0x33,0x33,0x2F,0x2F,0x32,0x33,0x33,0x33,0x2F,0x00, | ||
4802 | 0x00,0x00,0x2A,0x34,0x34,0x34,0x34,0x2F,0x00,0x31,0x34,0x34,0x34,0x33,0x2F,0x00, | ||
4803 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4804 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4805 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4806 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4807 | 0x01,0x99,0x99,0x9A,0x98,0x9B,0x9A,0x99,0x99,0x98,0x98,0x9B,0x97,0x98,0x9B,0x98, | ||
4808 | 0x9A,0x9B,0x9A,0x99,0x98,0x98,0x98,0x9A,0x97,0x99,0x98,0x9B,0x98,0x9A,0x9B,0x9B, | ||
4809 | 0x9A,0x9B,0x99,0x9A,0x9B,0x9B,0x9B,0x98,0x9B,0x99,0x98,0x9A,0x9A,0x9B,0x99,0x98, | ||
4810 | 0x9A,0x99,0x99,0x99,0x9A,0x9A,0x9A,0x9B,0x9B,0x9A,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4811 | 0x31,0x2F,0x2F,0x2F,0x28,0x33,0x34,0x04,0x2A,0x2E,0x00,0x00,0x00,0x00,0x2F,0x33, | ||
4812 | 0x34,0x34,0x34,0x33,0x2D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2B,0x2B,0x2B,0x2B, | ||
4813 | 0x2B,0x2B,0x2B,0x2B,0x2E,0x00,0x00,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
4814 | 0x2E,0x2E,0x00,0x00,0x00,0x2E,0x2E,0x2E,0x2E,0x2E,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4815 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x27,0x29,0x2E,0x2E,0x2E,0x2E,0x2E, | ||
4816 | 0x00,0x31,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x2F,0x00,0x00,0x00,0x00,0x00, | ||
4817 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2F,0x24,0x34,0x32,0x32,0x32,0x32, | ||
4818 | 0x32,0x32,0x32,0x32,0x32,0x33,0x34,0x28,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x2F, | ||
4819 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
4820 | 0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x00,0x2F,0x2F,0x2F, | ||
4821 | 0x2F,0x2F,0x00,0x00,0x00,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x2F,0x2F,0x2F,0x2F,0x00, | ||
4822 | 0x00,0x00,0x00,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x31,0x33,0x33,0x33,0x32,0x2F,0x00, | ||
4823 | 0x00,0x00,0x00,0x00,0xAF,0x9B,0x9A,0x9B,0x98,0x9A,0x9A,0x9B,0x9B,0x9A,0x9B,0x9A, | ||
4824 | 0x98,0x9A,0x9B,0x9B,0x9A,0x9B,0x9B,0x9A,0x9B,0x9B,0x98,0x9A,0x9B,0x99,0x98,0x98, | ||
4825 | 0x99,0x9A,0x9B,0x99,0x9A,0x01,0x01,0x01,0x9A,0x01,0x9A,0x98,0x99,0x98,0x98,0x98, | ||
4826 | 0x9B,0x9B,0x9A,0x9B,0x9A,0x9B,0x9A,0x9A,0x9A,0x9B,0x9B,0x9B,0x9B,0x99,0x9A,0x9A, | ||
4827 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4828 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4829 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4830 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4831 | 0x2E,0x2F,0x2F,0x2F,0x2C,0x27,0x2D,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x35,0x32, | ||
4832 | 0x33,0x33,0x33,0x32,0x35,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4833 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4834 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4835 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4836 | 0x31,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x2F,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4837 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F, | ||
4838 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4839 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4840 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4841 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4842 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x33,0x33,0x32,0x32,0x2F,0x00, | ||
4843 | 0x00,0x00,0x00,0x00,0xAF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4844 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4845 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4846 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4847 | 0x98,0x97,0x99,0x9A,0x97,0x9B,0x9B,0x9A,0x99,0x98,0x9B,0x98,0x9A,0x99,0x98,0x99, | ||
4848 | 0x99,0x99,0x9B,0x9A,0x98,0x9B,0x9A,0x9B,0x98,0x98,0x9A,0x9B,0x9A,0x9B,0x9B,0x98, | ||
4849 | 0x98,0x9B,0x9A,0x98,0x9A,0x9A,0x9A,0x98,0x98,0x9B,0x98,0x9A,0x9A,0x98,0x98,0x99, | ||
4850 | 0x9A,0x9A,0x98,0x98,0x98,0x9A,0x98,0x9B,0x99,0x9B,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4851 | 0x00,0x00,0x00,0x00,0x00,0x2E,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x35,0x31, | ||
4852 | 0x32,0x32,0x32,0x32,0x35,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4853 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4854 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4855 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31, | ||
4856 | 0x32,0x32,0x32,0x32,0x32,0x32,0x33,0x33,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4857 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4858 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4859 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4860 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4861 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4862 | 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x32,0x33,0x33,0x32,0x34,0x2F,0x00, | ||
4863 | 0x00,0x00,0x00,0x00,0xAF,0x9F,0x9B,0x9B,0x9A,0x9B,0x9B,0x9A,0x9B,0x9A,0x9A,0x9A, | ||
4864 | 0x01,0x98,0x9A,0x01,0x01,0x98,0x01,0x9A,0x98,0x99,0x99,0x98,0x9B,0x9A,0x9A,0x9B, | ||
4865 | 0x9A,0x9A,0x98,0x9A,0x98,0x9A,0x9A,0x9B,0x9B,0x9B,0x9A,0x9B,0x9A,0x9A,0x9A,0x98, | ||
4866 | 0x9A,0x9A,0x9B,0x9B,0x9A,0x9B,0x9A,0x9B,0x9B,0x9A,0x9A,0x9B,0x9B,0x99,0x9A,0x99, | ||
4867 | 0x93,0x98,0x93,0x94,0x92,0x93,0x96,0x91,0x94,0x92,0x92,0x95,0x94,0x93,0x92,0x95, | ||
4868 | 0x95,0x94,0x96,0x92,0x01,0x94,0x95,0x98,0x95,0x95,0x98,0x98,0x98,0x94,0x01,0x92, | ||
4869 | 0x96,0x94,0x94,0x98,0x96,0x95,0x96,0x96,0x98,0x98,0x98,0x94,0x98,0x95,0x95,0x98, | ||
4870 | 0x95,0x94,0x96,0x94,0x92,0x94,0x95,0x93,0x95,0x93,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4871 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2F,0x35, | ||
4872 | 0x31,0x31,0x31,0x35,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4873 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4874 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4875 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2F, | ||
4876 | 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4877 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4878 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4879 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4880 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4881 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4882 | 0x00,0x00,0x00,0x00,0x30,0x31,0x32,0x32,0x32,0x32,0x32,0x31,0x34,0x28,0x2F,0x00, | ||
4883 | 0x00,0x00,0x00,0x00,0xAF,0x9D,0x9A,0x96,0x98,0x98,0x94,0x95,0x98,0x94,0x93,0x94, | ||
4884 | 0x01,0x98,0x95,0x95,0x95,0x94,0x95,0x92,0x95,0x8E,0x8E,0x92,0x01,0x98,0x98,0x95, | ||
4885 | 0x96,0x98,0x93,0x95,0x96,0x95,0x94,0x93,0x01,0x01,0x98,0x98,0x98,0x94,0x95,0x01, | ||
4886 | 0x93,0x01,0x98,0x96,0x94,0x98,0x96,0x98,0x95,0x95,0x96,0x94,0x94,0x95,0x95,0x01, | ||
4887 | 0x93,0x94,0x93,0x94,0x93,0x92,0x95,0x93,0x01,0x94,0x95,0x94,0x95,0x93,0x01,0x95, | ||
4888 | 0x01,0x94,0x93,0x92,0x95,0x01,0x96,0x96,0x98,0x98,0x96,0x94,0x94,0x01,0x92,0x95, | ||
4889 | 0x94,0x95,0x01,0x95,0x95,0x95,0x92,0x94,0x96,0x93,0x92,0x01,0x95,0x96,0x95,0x94, | ||
4890 | 0x94,0x96,0x95,0x95,0x96,0x98,0x01,0x95,0x96,0x95,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4891 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2F, | ||
4892 | 0x2F,0x2F,0x2E,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4893 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4894 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4895 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4896 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4897 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4898 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4899 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4900 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4901 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4902 | 0x00,0x00,0x00,0x30,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x34,0x26,0x2F,0x00,0x00, | ||
4903 | 0x00,0x00,0x00,0x00,0xAF,0x9D,0x9B,0x96,0x92,0x98,0x95,0x92,0x92,0x95,0x95,0x95, | ||
4904 | 0x98,0x95,0x98,0x94,0x96,0x98,0x94,0x01,0x95,0x95,0x96,0x96,0x01,0x93,0x98,0x96, | ||
4905 | 0x01,0x92,0x01,0x96,0x94,0x98,0x96,0x93,0x95,0x95,0x98,0x96,0x01,0x96,0x96,0x01, | ||
4906 | 0x96,0x93,0x96,0x98,0x98,0x96,0x96,0x95,0x96,0x97,0x92,0x98,0x94,0x98,0x98,0x94, | ||
4907 | 0x96,0x98,0x94,0x93,0x95,0x92,0x92,0x91,0x92,0x94,0x92,0x93,0x93,0x93,0x94,0x92, | ||
4908 | 0x95,0x98,0x96,0x96,0x98,0x96,0x96,0x96,0x96,0x98,0x98,0x95,0x95,0x93,0x98,0x96, | ||
4909 | 0x95,0x95,0x95,0x01,0x95,0x92,0x95,0x01,0x96,0x92,0x95,0x92,0x92,0x95,0x93,0x93, | ||
4910 | 0x01,0x93,0x96,0x95,0x94,0x95,0x95,0x95,0x92,0x95,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4911 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4912 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4913 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4914 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4915 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4916 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4917 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4918 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4919 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4920 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4921 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4922 | 0x00,0x00,0x00,0x30,0x34,0x2F,0x2F,0x34,0x31,0x30,0x34,0x26,0x2F,0x00,0x00,0x00, | ||
4923 | 0x00,0x00,0x00,0x00,0xAF,0x9D,0x01,0x93,0x95,0x92,0x92,0x95,0x8E,0x92,0x01,0x95, | ||
4924 | 0x96,0x94,0x95,0x98,0x98,0x95,0x95,0x95,0x95,0x98,0x95,0x98,0x94,0x96,0x98,0x95, | ||
4925 | 0x95,0x96,0x95,0x98,0x95,0x98,0x96,0x95,0x98,0x95,0x95,0x94,0x01,0x96,0x01,0x94, | ||
4926 | 0x96,0x98,0x93,0x01,0x96,0x98,0x01,0x98,0x96,0x99,0x98,0x98,0x98,0x99,0x96,0x99, | ||
4927 | 0x92,0x96,0x92,0x92,0x01,0x94,0x95,0x91,0x93,0x92,0x94,0x94,0x01,0x96,0x95,0x95, | ||
4928 | 0x93,0x96,0x96,0x98,0x98,0x95,0x95,0x01,0x95,0x98,0x01,0x95,0x95,0x96,0x95,0x01, | ||
4929 | 0x94,0x94,0x93,0x95,0x95,0x8E,0x8E,0x96,0x93,0x01,0x94,0x92,0x93,0x95,0x8E,0x94, | ||
4930 | 0x92,0x92,0x92,0x91,0x93,0x93,0x01,0x93,0x98,0x95,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4931 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4932 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4933 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4934 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4935 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4936 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4937 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4938 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4939 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4940 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4941 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4942 | 0x00,0x00,0x00,0x2F,0x2F,0x00,0x00,0x2F,0x2F,0x2F,0x2F,0x2F,0x00,0x00,0x00,0x00, | ||
4943 | 0x00,0x00,0x00,0x00,0xAF,0x9B,0x9A,0x94,0x95,0x92,0x01,0x96,0x95,0x01,0x95,0x01, | ||
4944 | 0x96,0x96,0x94,0x01,0x94,0x96,0x94,0x96,0x94,0x95,0x95,0x95,0x96,0x96,0x98,0x98, | ||
4945 | 0x96,0x01,0x96,0x96,0x98,0x96,0x95,0x96,0x93,0x95,0x95,0x98,0x96,0x95,0x95,0x98, | ||
4946 | 0x98,0x01,0x97,0x01,0x95,0x96,0x98,0x99,0x95,0x9A,0x98,0x9A,0x98,0x98,0x9A,0x01, | ||
4947 | 0x98,0x94,0x93,0x93,0x95,0x96,0x94,0x93,0x94,0x93,0x94,0x01,0x95,0x95,0x94,0x93, | ||
4948 | 0x01,0x94,0x98,0x01,0x01,0x96,0x96,0x98,0x92,0x98,0x98,0x95,0x92,0x93,0x8E,0x95, | ||
4949 | 0x92,0x94,0x92,0x92,0x92,0x8E,0x94,0x01,0x93,0x96,0x94,0x95,0x94,0x8E,0x8E,0x92, | ||
4950 | 0x92,0x93,0x8E,0x94,0x92,0x92,0x92,0x8E,0x92,0x8E,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4951 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4952 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4953 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1D, | ||
4954 | 0x1D,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4955 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4956 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00, | ||
4957 | 0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x1D, | ||
4958 | 0x1F,0x00,0x00,0x1F,0x1D,0x1D,0x00,0x1F,0x1D,0x1F,0x00,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4959 | 0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1F,0x1D,0x1F,0x00,0x1D,0x1D,0x1F,0x00,0x1D,0x1D, | ||
4960 | 0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4961 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4962 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4963 | 0x00,0x00,0x00,0x00,0xAF,0x9D,0x98,0x96,0x96,0x96,0x94,0x95,0x95,0x96,0x98,0x94, | ||
4964 | 0x01,0x94,0x95,0x95,0x95,0x98,0x01,0x95,0x96,0x98,0x95,0x94,0x92,0x01,0x01,0x98, | ||
4965 | 0x01,0x95,0x94,0x98,0x97,0x98,0x95,0x98,0x01,0x98,0x95,0x94,0x98,0x01,0x98,0x98, | ||
4966 | 0x95,0x93,0x98,0x95,0x98,0x96,0x98,0x9A,0x9A,0x98,0x98,0x99,0x99,0x96,0x96,0x96, | ||
4967 | 0x95,0x98,0x93,0x94,0x94,0x93,0x92,0x92,0x92,0x93,0x92,0x01,0x98,0x94,0x96,0x98, | ||
4968 | 0x96,0x93,0x96,0x94,0x95,0x95,0x95,0x96,0x98,0x96,0x92,0x8E,0x94,0x92,0x92,0x8E, | ||
4969 | 0x92,0x92,0x92,0x94,0x98,0x92,0x8E,0x92,0x94,0x92,0x95,0x93,0x01,0x94,0x92,0x8E, | ||
4970 | 0x92,0x92,0x8E,0x92,0x95,0x95,0x92,0x8E,0x94,0x92,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4971 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4972 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4973 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1D,0x00, | ||
4974 | 0x00,0x00,0x1D,0x1F,0x00,0x1F,0x1D,0x1D,0x00,0x1F,0x1D,0x1D,0x1F,0x00,0x1D,0x1D, | ||
4975 | 0x1F,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D,0x1F,0x00,0x1D,0x00,0x1F,0x1D,0x1D,0x00, | ||
4976 | 0x1D,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00, | ||
4977 | 0x1D,0x00,0x1D,0x00,0x00,0x1F,0x1D,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00, | ||
4978 | 0x1D,0x00,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D, | ||
4979 | 0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00, | ||
4980 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4981 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4982 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
4983 | 0x00,0x00,0x00,0x00,0xAF,0x9D,0x9A,0x95,0x93,0x01,0x95,0x96,0x95,0x96,0x98,0x98, | ||
4984 | 0x98,0x95,0x95,0x01,0x95,0x95,0x98,0x96,0x95,0x96,0x96,0x96,0x96,0x01,0x96,0x01, | ||
4985 | 0x95,0x95,0x98,0x01,0x98,0x96,0x99,0x95,0x96,0x96,0x95,0x98,0x98,0x01,0x99,0x96, | ||
4986 | 0x98,0x01,0x9A,0x98,0x99,0x98,0x99,0x99,0x01,0x98,0x98,0x01,0x95,0x92,0x96,0x98, | ||
4987 | 0x95,0x92,0x98,0x96,0x98,0x96,0x98,0x98,0x95,0x92,0x95,0x01,0x98,0x96,0x95,0x98, | ||
4988 | 0x94,0x96,0x01,0x96,0x95,0x01,0x98,0x98,0x96,0x92,0x95,0x95,0x94,0x92,0x92,0x95, | ||
4989 | 0x92,0x91,0x01,0x92,0x92,0x93,0x95,0x01,0x8E,0x96,0x92,0x8E,0x8E,0x93,0x92,0x8E, | ||
4990 | 0x95,0x8E,0x93,0x01,0x95,0x92,0x98,0x8E,0x98,0x8E,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
4991 | 0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4992 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
4993 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1F,0x1D,0x00,0x00, | ||
4994 | 0x1D,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x00,0x1D,0x00, | ||
4995 | 0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00, | ||
4996 | 0x1D,0x00,0x1D,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00, | ||
4997 | 0x1D,0x1D,0x1D,0x00,0x1F,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00, | ||
4998 | 0x1D,0x00,0x00,0x1F,0x1D,0x1F,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x1D, | ||
4999 | 0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D, | ||
5000 | 0x00,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
5001 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, | ||
5002 | 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5003 | 0x00,0x00,0x00,0x00,0xAF,0x9C,0x98,0x93,0x98,0x96,0x96,0x98,0x96,0x96,0x92,0x94, | ||
5004 | 0x98,0x98,0x98,0x96,0x96,0x95,0x98,0x95,0x94,0x01,0x01,0x96,0x98,0x98,0x95,0x96, | ||
5005 | 0x98,0x95,0x98,0x01,0x98,0x98,0x98,0x95,0x92,0x01,0x94,0x98,0x98,0x98,0x98,0x96, | ||
5006 | 0x01,0x98,0x9A,0x98,0x95,0x99,0x95,0x98,0x95,0x95,0x01,0x98,0x01,0x98,0x95,0x98, | ||
5007 | 0x93,0x98,0x94,0x95,0x98,0x98,0x94,0x98,0x98,0x98,0x96,0x93,0x01,0x95,0x96,0x95, | ||
5008 | 0x01,0x98,0x96,0x96,0x93,0x94,0x98,0x93,0x96,0x92,0x92,0x92,0x95,0x94,0x95,0x91, | ||
5009 | 0x94,0x92,0x92,0x93,0x93,0x95,0x01,0x95,0x94,0x93,0x01,0x96,0x92,0x92,0x92,0x93, | ||
5010 | 0x93,0x96,0x93,0x92,0x01,0x01,0x94,0x92,0x92,0x91,0x1F,0x00,0x00,0xA7,0x08,0x1F, | ||
5011 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5012 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5013 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D, | ||
5014 | 0x1F,0x00,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x00,0x1D,0x1D, | ||
5015 | 0x1F,0x00,0x1F,0x1D,0x1F,0x00,0x1D,0x1D,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00, | ||
5016 | 0x1D,0x1D,0x1D,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00, | ||
5017 | 0x00,0x00,0x1D,0x00,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00, | ||
5018 | 0x1D,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x00,0x00,0x1D, | ||
5019 | 0x00,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x1D,0x1D,0x1F,0x00,0x1D,0x00, | ||
5020 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5021 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5022 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA7, | ||
5023 | 0x08,0x1F,0x00,0x00,0xAF,0x9D,0x9B,0x96,0x98,0x96,0x98,0x92,0x94,0x01,0x94,0x94, | ||
5024 | 0x01,0x01,0x98,0x95,0x95,0x98,0x01,0x98,0x98,0x98,0x97,0x01,0x01,0x93,0x95,0x95, | ||
5025 | 0x98,0x98,0x01,0x01,0x98,0x01,0x98,0x96,0x98,0x97,0x96,0x96,0x01,0x98,0x98,0x98, | ||
5026 | 0x98,0x98,0x98,0x94,0x94,0x98,0x95,0x96,0x01,0x96,0x01,0x95,0x01,0x98,0x98,0x94, | ||
5027 | 0x93,0x98,0x95,0x96,0x95,0x95,0x94,0x95,0x94,0x95,0x95,0x93,0x96,0x01,0x95,0x95, | ||
5028 | 0x94,0x95,0x01,0x94,0x01,0x8E,0x95,0x93,0x95,0x94,0x93,0x93,0x93,0x95,0x91,0x93, | ||
5029 | 0x93,0x96,0x92,0x95,0x96,0x95,0x95,0x93,0x95,0x95,0x96,0x96,0x96,0x93,0x92,0x01, | ||
5030 | 0x96,0x92,0x01,0x92,0x92,0x94,0x95,0x95,0x01,0x95,0x1F,0x00,0x00,0x08,0x1D,0x1E, | ||
5031 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5032 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5033 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x00, | ||
5034 | 0x1D,0x1D,0x00,0x1D,0x00,0x1F,0x1D,0x1D,0x00,0x1F,0x1D,0x1D,0x1F,0x00,0x1D,0x00, | ||
5035 | 0x00,0x00,0x00,0x1D,0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1F,0x1D,0x1D,0x00, | ||
5036 | 0x1D,0x00,0x1D,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x1D,0x00, | ||
5037 | 0x00,0x00,0x1D,0x00,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x1D,0x00,0x1D,0x1D, | ||
5038 | 0x1F,0x00,0x00,0x1D,0x1D,0x1F,0x00,0x1F,0x1D,0x1F,0x00,0x1D,0x00,0x00,0x00,0x1D, | ||
5039 | 0x00,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x00,0x1D,0x1D, | ||
5040 | 0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5041 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5042 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, | ||
5043 | 0x1D,0x1E,0x00,0x00,0xAF,0x9D,0x9B,0x95,0x01,0x95,0x96,0x01,0x98,0x96,0x95,0x01, | ||
5044 | 0x96,0x94,0x96,0x95,0x98,0x01,0x01,0x95,0x01,0x98,0x01,0x01,0x98,0x98,0x98,0x99, | ||
5045 | 0x99,0x98,0x98,0x95,0x95,0x95,0x96,0x98,0x99,0x98,0x95,0x98,0x99,0x98,0x98,0x95, | ||
5046 | 0x97,0x95,0x95,0x01,0x96,0x95,0x01,0x01,0x01,0x95,0x94,0x96,0x97,0x97,0x98,0x95, | ||
5047 | 0x98,0x92,0x95,0x95,0x95,0x93,0x92,0x95,0x95,0x92,0x98,0x95,0x95,0x98,0x95,0x93, | ||
5048 | 0x98,0x98,0x95,0x95,0x92,0x01,0x01,0x94,0x95,0x93,0x92,0x01,0x95,0x95,0x93,0x94, | ||
5049 | 0x95,0x98,0x93,0x95,0x96,0x93,0x92,0x91,0x94,0x95,0x94,0x94,0x95,0x96,0x95,0x95, | ||
5050 | 0x92,0x94,0x95,0x01,0x92,0x92,0x94,0x94,0x96,0x93,0x1F,0x00,0x00,0x1F,0x1E,0xE9, | ||
5051 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5052 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5053 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1D,0x00, | ||
5054 | 0x00,0x00,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5055 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5056 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5057 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5058 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5059 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5060 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5061 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5062 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F, | ||
5063 | 0x1E,0xE9,0x00,0x00,0xAF,0x9D,0x9B,0x98,0x94,0x98,0x98,0x95,0x96,0x01,0x96,0x01, | ||
5064 | 0x98,0x98,0x97,0x01,0x98,0x96,0x95,0x92,0x98,0x01,0x98,0x98,0x98,0x01,0x98,0x98, | ||
5065 | 0x95,0x01,0x94,0x01,0x98,0x92,0x01,0x01,0x95,0x95,0x94,0x98,0x99,0x96,0x92,0x96, | ||
5066 | 0x95,0x95,0x94,0x98,0x95,0x01,0x95,0x95,0x95,0x99,0x99,0x99,0x01,0x98,0x99,0x98, | ||
5067 | 0x98,0x93,0x92,0x92,0x95,0x95,0x95,0x92,0x95,0x93,0x96,0x98,0x92,0x95,0x93,0x98, | ||
5068 | 0x98,0x96,0x92,0x93,0x94,0x91,0x95,0x95,0x95,0x95,0x96,0x95,0x93,0x95,0x98,0x93, | ||
5069 | 0x93,0x98,0x95,0x94,0x98,0x95,0x94,0x92,0x01,0x94,0x96,0x96,0x92,0x93,0x93,0x96, | ||
5070 | 0x95,0x91,0x93,0x95,0x92,0x95,0x96,0x93,0x95,0x98,0x1F,0x00,0x00,0x00,0x00,0x00, | ||
5071 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5072 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5073 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1D, | ||
5074 | 0x1D,0x1D,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5075 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5076 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5077 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5078 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5079 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5080 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5081 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5082 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5083 | 0x00,0x00,0x00,0x00,0xAF,0x9D,0x9A,0x98,0x96,0x98,0x95,0x98,0x95,0x95,0x01,0x95, | ||
5084 | 0x94,0x95,0x98,0x96,0x95,0x96,0x94,0x98,0x99,0x98,0x98,0x98,0x01,0x95,0x95,0x01, | ||
5085 | 0x95,0x96,0x96,0x01,0x96,0x01,0x94,0x95,0x98,0x98,0x98,0x98,0x97,0x01,0x95,0x96, | ||
5086 | 0x95,0x95,0x98,0x96,0x98,0x98,0x96,0x98,0x99,0x01,0x98,0x95,0x99,0x99,0x98,0x98, | ||
5087 | 0x95,0x92,0x01,0x98,0x91,0x95,0x93,0x95,0x95,0x95,0x92,0x8E,0x95,0x93,0x92,0x92, | ||
5088 | 0x93,0x94,0x96,0x93,0x93,0x92,0x94,0x95,0x98,0x01,0x95,0x95,0x98,0x98,0x01,0x93, | ||
5089 | 0x98,0x95,0x95,0x95,0x95,0x94,0x93,0x95,0x98,0x95,0x95,0x98,0x95,0x01,0x98,0x98, | ||
5090 | 0x98,0x93,0x95,0x01,0x93,0x92,0x93,0x94,0x95,0x93,0x1F,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5091 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5092 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5093 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5094 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5095 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5096 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5097 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5098 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5099 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5100 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5101 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5102 | 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF, | ||
5103 | 0xAF,0xAF,0xAF,0xAF,0xAF,0x9D,0x9B,0x95,0x98,0x98,0x98,0x01,0x95,0x01,0x95,0x96, | ||
5104 | 0x95,0x01,0x97,0x98,0x98,0x01,0x01,0x96,0x95,0x95,0x01,0x95,0x01,0x96,0x98,0x96, | ||
5105 | 0x95,0x94,0x98,0x98,0x95,0x95,0x98,0x98,0x98,0x98,0x94,0x95,0x98,0x94,0x98,0x98, | ||
5106 | 0x01,0x99,0x01,0x98,0x98,0x98,0x99,0x98,0x98,0x01,0x95,0x98,0x96,0x95,0x01,0x98, | ||
5107 | 0x8E,0x94,0x8E,0x95,0x95,0x94,0x94,0x8E,0x92,0x93,0x95,0x93,0x96,0x95,0x95,0x93, | ||
5108 | 0x8E,0x94,0x91,0x92,0x95,0x94,0x93,0x93,0x95,0x01,0x92,0x98,0x96,0x96,0x96,0x01, | ||
5109 | 0x95,0x96,0x96,0x98,0x95,0x98,0x98,0x92,0x01,0x92,0x96,0x94,0x95,0x96,0x95,0x96, | ||
5110 | 0x95,0x01,0x92,0x95,0x92,0x93,0x93,0x01,0x93,0x95,0x92,0x93,0x98,0x9D,0x9B,0x9B, | ||
5111 | 0x9C,0x9C,0x9C,0x9D,0x9B,0x9D,0x9B,0x9D,0x9B,0x9C,0x9D,0x9D,0x9C,0x9C,0x9B,0x9B, | ||
5112 | 0x9D,0x9B,0x9D,0x9B,0x9D,0x9C,0x9D,0x9D,0x9D,0x9B,0x9B,0x9D,0x9C,0x9C,0x9B,0x9D, | ||
5113 | 0x9D,0x9C,0x9D,0x9B,0x9D,0x9B,0x9B,0x9B,0x9B,0x9B,0x9C,0x9B,0x9D,0x9D,0x9C,0x9D, | ||
5114 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9C,0x9D,0x9D,0x9C,0x9D,0x9D,0x9D, | ||
5115 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9C,0x9D,0x9B,0x9D,0x9C,0x9B,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5116 | 0x9D,0x9D,0x9C,0x9C,0x9B,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9B, | ||
5117 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9B,0x9D,0x9D,0x9D,0x9B,0x9C,0x9B,0x9D,0x9D, | ||
5118 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5119 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9B,0x9C,0x9D,0x9C, | ||
5120 | 0x9D,0x9C,0x9B,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9C,0x9D,0x9B,0x9C,0x9D, | ||
5121 | 0x9D,0x9D,0x9D,0x9C,0x9C,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5122 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9B,0x9C,0x9C,0x9D,0x9D,0x9D,0x9C,0x9C,0x9C,0x9D, | ||
5123 | 0x9D,0x9D,0x9D,0x9D,0x9B,0x9D,0x9A,0x98,0x01,0x01,0x98,0x96,0x98,0x98,0x98,0x98, | ||
5124 | 0x97,0x98,0x95,0x99,0x95,0x98,0x98,0x96,0x95,0x96,0x96,0x98,0x94,0x96,0x98,0x01, | ||
5125 | 0x98,0x01,0x01,0x01,0x01,0x98,0x98,0x98,0x96,0x01,0x95,0x98,0x98,0x95,0x94,0x98, | ||
5126 | 0x99,0x98,0x95,0x98,0x95,0x98,0x96,0x01,0x97,0x97,0x98,0x97,0x97,0x97,0x98,0x01, | ||
5127 | 0x93,0x93,0x96,0x96,0x01,0x95,0x01,0x96,0x95,0x95,0x93,0x95,0x96,0x95,0x98,0x93, | ||
5128 | 0x92,0x8E,0x94,0x95,0x95,0x91,0x96,0x93,0x98,0x94,0x98,0x95,0x98,0x98,0x95,0x01, | ||
5129 | 0x01,0x01,0x94,0x95,0x95,0x94,0x96,0x94,0x98,0x01,0x96,0x95,0x01,0x96,0x95,0x95, | ||
5130 | 0x95,0x91,0x98,0x94,0x93,0x96,0x94,0x94,0x95,0x95,0x93,0x93,0x9A,0x98,0x98,0x9A, | ||
5131 | 0x9B,0x9A,0x98,0x99,0x9A,0x98,0x9B,0x98,0x9B,0x98,0x98,0x99,0x99,0x98,0x9B,0x99, | ||
5132 | 0x9A,0x9A,0x98,0x9A,0x9B,0x98,0x9A,0x9B,0x98,0x98,0x98,0x9A,0x9B,0x98,0x98,0x01, | ||
5133 | 0x98,0x01,0x98,0x98,0x9B,0x98,0x99,0x99,0x99,0x98,0x98,0x9B,0x99,0x98,0x98,0x01, | ||
5134 | 0x01,0x98,0x01,0x98,0x98,0x98,0x97,0x9B,0x9A,0x99,0x9A,0x9A,0x9A,0x98,0x9B,0x9B, | ||
5135 | 0x9A,0x9B,0x9B,0x99,0x99,0x9A,0x9B,0x9A,0x9A,0x98,0x97,0x98,0x9A,0x99,0x9A,0x98, | ||
5136 | 0x9A,0x9A,0x99,0x98,0x98,0x9A,0x9B,0x9A,0x9B,0x9B,0x9B,0x98,0x9A,0x9B,0x9A,0x9B, | ||
5137 | 0x99,0x9A,0x99,0x9B,0x98,0x9A,0x9A,0x9A,0x9A,0x9A,0x99,0x9A,0x9A,0x9A,0x9B,0x9B, | ||
5138 | 0x99,0x9B,0x9B,0x9A,0x9A,0x9C,0x9B,0x9B,0x9C,0x9B,0x9B,0x9B,0x9B,0x99,0x9B,0x9B, | ||
5139 | 0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9A,0x99,0x99,0x9A,0x9A,0x9A,0x9B,0x9A,0x98, | ||
5140 | 0x98,0x98,0x99,0x9B,0x99,0x9A,0x9A,0x9B,0x9A,0x9A,0x99,0x9B,0x9B,0x99,0x9A,0x98, | ||
5141 | 0x9A,0x98,0x98,0x9A,0x99,0x9A,0x9A,0x9A,0x9B,0x9A,0x9B,0x9A,0x99,0x9A,0x9A,0x9B, | ||
5142 | 0x9B,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9B,0x9A,0x9A,0x9B,0x9B,0x9B,0x9B,0x9A,0x9A, | ||
5143 | 0x9A,0x9B,0x99,0x9A,0x9A,0x9A,0x9A,0x96,0x98,0x96,0x96,0x01,0x95,0x01,0x95,0x95, | ||
5144 | 0x98,0x98,0x9A,0x98,0x98,0x98,0x98,0x98,0x95,0x01,0x96,0x98,0x94,0x96,0x97,0x98, | ||
5145 | 0x98,0x98,0x98,0x01,0x98,0x98,0x94,0x98,0x96,0x01,0x98,0x95,0x99,0x01,0x96,0x01, | ||
5146 | 0x95,0x98,0x98,0x98,0x01,0x96,0x94,0x96,0x98,0x01,0x98,0x01,0x98,0x01,0x01,0x95, | ||
5147 | 0x01,0x94,0x98,0x96,0x98,0x96,0x96,0x95,0x96,0x92,0x98,0x93,0x95,0x95,0x92,0x92, | ||
5148 | 0x8E,0x94,0x01,0x95,0x93,0x95,0x01,0x95,0x94,0x92,0x96,0x93,0x01,0x96,0x95,0x94, | ||
5149 | 0x93,0x95,0x01,0x96,0x91,0x98,0x94,0x98,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x95, | ||
5150 | 0x98,0x94,0x98,0x96,0x95,0x93,0x95,0x92,0x95,0x94,0x92,0x92,0x95,0x98,0x93,0x95, | ||
5151 | 0x94,0x01,0x95,0x94,0x94,0x98,0x95,0x93,0x92,0x95,0x96,0x92,0x95,0x93,0x92,0x95, | ||
5152 | 0x94,0x96,0x96,0x94,0x95,0x93,0x93,0x94,0x96,0x95,0x94,0x92,0x94,0x92,0x95,0x91, | ||
5153 | 0x92,0x8E,0x95,0x01,0x92,0x95,0x92,0x95,0x92,0x94,0x01,0x98,0x92,0x92,0x96,0x96, | ||
5154 | 0x94,0x98,0x94,0x93,0x96,0x94,0x93,0x93,0x95,0x94,0x95,0x01,0x01,0x93,0x92,0x93, | ||
5155 | 0x95,0x93,0x93,0x98,0x94,0x91,0x92,0x95,0x94,0x94,0x92,0x92,0x93,0x96,0x94,0x8E, | ||
5156 | 0x01,0x94,0x8E,0x98,0x95,0x95,0x96,0x96,0x98,0x98,0x96,0x92,0x96,0x01,0x98,0x95, | ||
5157 | 0x96,0x98,0x01,0x95,0x98,0x95,0x93,0x96,0x96,0x94,0x96,0x01,0x01,0x01,0x98,0x98, | ||
5158 | 0x99,0x99,0x01,0x95,0x92,0x98,0x96,0x96,0x98,0x94,0x01,0x98,0x95,0x98,0x01,0x95, | ||
5159 | 0x94,0x95,0x98,0x98,0x99,0x94,0x95,0x94,0x98,0x01,0x96,0x96,0x96,0x92,0x94,0x92, | ||
5160 | 0x94,0x98,0x95,0x01,0x93,0x95,0x01,0x95,0x01,0x98,0x96,0x96,0x95,0x94,0x95,0x01, | ||
5161 | 0x96,0x98,0x01,0x94,0x96,0x98,0x01,0x95,0x98,0x98,0x96,0x97,0x92,0x01,0x94,0x98, | ||
5162 | 0x98,0x96,0x96,0x95,0x98,0x98,0x96,0x96,0x96,0x96,0x94,0x95,0x01,0x98,0x01,0x01, | ||
5163 | 0x96,0x98,0x97,0x93,0x94,0x96,0x94,0x98,0x96,0x98,0x98,0x98,0x99,0x99,0x96,0x99, | ||
5164 | 0x99,0x98,0x98,0x96,0x98,0x94,0x98,0x98,0x98,0x96,0x98,0x98,0x98,0x01,0x95,0x95, | ||
5165 | 0x95,0x98,0x99,0x98,0x98,0x98,0x01,0x99,0x98,0x98,0x98,0x98,0x96,0x98,0x98,0x98, | ||
5166 | 0x97,0x96,0x01,0x94,0x95,0x01,0x95,0x96,0x98,0x98,0x98,0x98,0x95,0x96,0x98,0x96, | ||
5167 | 0x8E,0x98,0x01,0x95,0x96,0x93,0x92,0x94,0x93,0x01,0x95,0x98,0x98,0x98,0x93,0x91, | ||
5168 | 0x94,0x95,0x95,0x92,0x94,0x92,0x95,0x92,0x96,0x91,0x96,0x94,0x95,0x95,0x94,0x93, | ||
5169 | 0x93,0x96,0x94,0x95,0x95,0x95,0x98,0x96,0x95,0x92,0x96,0x92,0x92,0x96,0x95,0x96, | ||
5170 | 0x96,0x98,0x96,0x94,0x91,0x95,0x96,0x92,0x96,0x93,0x94,0x95,0x93,0x94,0x93,0x91, | ||
5171 | 0x92,0x93,0x95,0x96,0x95,0x95,0x92,0x96,0x92,0x93,0x93,0x94,0x01,0x98,0x95,0x95, | ||
5172 | 0x98,0x92,0x93,0x93,0x94,0x96,0x92,0x95,0x92,0x92,0x93,0x94,0x94,0x95,0x95,0x95, | ||
5173 | 0x94,0x92,0x94,0x95,0x93,0x8F,0x95,0x91,0x91,0x93,0x96,0x01,0x95,0x93,0x98,0x92, | ||
5174 | 0x01,0x95,0x98,0x93,0x01,0x8E,0x95,0x92,0x8E,0x93,0x96,0x01,0x92,0x95,0x93,0x95, | ||
5175 | 0x94,0x94,0x94,0x93,0x95,0x92,0x92,0x92,0x95,0x95,0x92,0x92,0x8E,0x92,0x8E,0x92, | ||
5176 | 0x96,0x93,0x96,0x92,0x94,0x95,0x95,0x96,0x95,0x98,0x96,0x93,0x93,0x95,0x94,0x01, | ||
5177 | 0x95,0x93,0x98,0x92,0x96,0x94,0x01,0x98,0x01,0x96,0x94,0x98,0x98,0x95,0x01,0x95, | ||
5178 | 0x98,0x95,0x01,0x95,0x95,0x98,0x96,0x01,0x98,0x95,0x95,0x98,0x98,0x01,0x98,0x93, | ||
5179 | 0x98,0x92,0x98,0x98,0x95,0x94,0x98,0x96,0x94,0x96,0x01,0x98,0x93,0x94,0x95,0x95, | ||
5180 | 0x95,0x94,0x95,0x92,0x95,0x96,0x98,0x95,0x94,0x96,0x95,0x98,0x98,0x01,0x98,0x94, | ||
5181 | 0x95,0x92,0x92,0x94,0x94,0x94,0x96,0x96,0x98,0x98,0x98,0x98,0x94,0x98,0x98,0x98, | ||
5182 | 0x96,0x96,0x96,0x94,0x92,0x98,0x96,0x97,0x96,0x98,0x98,0x98,0x98,0x97,0x95,0x96, | ||
5183 | 0x96,0x98,0x98,0x96,0x98,0x95,0x98,0x01,0x98,0x01,0x98,0x98,0x98,0x98,0x96,0x98, | ||
5184 | 0x95,0x95,0x98,0x95,0x98,0x95,0x98,0x98,0x99,0x99,0x96,0x98,0x98,0x94,0x96,0x99, | ||
5185 | 0x98,0x98,0x01,0x98,0x94,0x01,0x96,0x98,0x98,0x98,0x96,0x95,0x97,0x96,0x96,0x96, | ||
5186 | 0x95,0x96,0x01,0x01,0x98,0x98,0x01,0x94,0x01,0x01,0x93,0x95,0x92,0x94,0x98,0x96, | ||
5187 | 0x95,0x98,0x98,0x93,0x98,0x94,0x98,0x95,0x98,0x96,0x92,0x92,0x94,0x94,0x95,0x95, | ||
5188 | 0x94,0x92,0x96,0x95,0x96,0x94,0x94,0x95,0x01,0x96,0x93,0x93,0x91,0x01,0x96,0x93, | ||
5189 | 0x96,0x95,0x98,0x91,0x01,0x94,0x95,0x96,0x01,0x96,0x93,0x94,0x95,0x95,0x94,0x95, | ||
5190 | 0x95,0x96,0x95,0x98,0x96,0x98,0x98,0x95,0x95,0x01,0x95,0x94,0x95,0x98,0x95,0x95, | ||
5191 | 0x01,0x92,0x95,0x92,0x91,0x92,0x92,0x94,0x93,0x92,0x94,0x92,0x91,0x95,0x91,0x92, | ||
5192 | 0x93,0x93,0x93,0x94,0x92,0x93,0x93,0x98,0x92,0x93,0x95,0x93,0x95,0x94,0x95,0x01, | ||
5193 | 0x95,0x95,0x92,0x92,0x94,0x91,0x94,0x95,0x94,0x94,0x92,0x98,0x95,0x94,0x95,0x93, | ||
5194 | 0x93,0x92,0x94,0x94,0x01,0x94,0x92,0x94,0x94,0x94,0x98,0x95,0x92,0x96,0x91,0x96, | ||
5195 | 0x93,0x94,0x93,0x94,0x92,0x96,0x92,0x95,0x8E,0x93,0x95,0x93,0x94,0x96,0x95,0x98, | ||
5196 | 0x95,0x95,0x95,0x98,0x98,0x96,0x95,0x98,0x95,0x95,0x98,0x01,0x98,0x99,0x98,0x98, | ||
5197 | 0x96,0x95,0x96,0x96,0x98,0x98,0x95,0x94,0x95,0x98,0x01,0x98,0x01,0x92,0x95,0x96, | ||
5198 | 0x96,0x98,0x98,0x94,0x96,0x98,0x96,0x98,0x96,0x98,0x98,0x98,0x98,0x95,0x98,0x98, | ||
5199 | 0x98,0x98,0x95,0x01,0x98,0x95,0x96,0x96,0x96,0x01,0x96,0x95,0x95,0x94,0x94,0x01, | ||
5200 | 0x01,0x97,0x95,0x98,0x98,0x96,0x98,0x94,0x94,0x95,0x97,0x95,0x01,0x98,0x98,0x96, | ||
5201 | 0x93,0x94,0x98,0x98,0x98,0x98,0x01,0x01,0x96,0x93,0x98,0x92,0x96,0x98,0x94,0x95, | ||
5202 | 0x95,0x93,0x95,0x98,0x98,0x95,0x98,0x98,0x96,0x98,0x98,0x97,0x96,0x98,0x96,0x94, | ||
5203 | 0x96,0x98,0x98,0x98,0x98,0x9A,0x98,0x99,0x99,0x98,0x98,0x98,0x98,0x96,0x98,0x98, | ||
5204 | 0x99,0x93,0x98,0x96,0x98,0x98,0x01,0x98,0x01,0x98,0x98,0x98,0x98,0x01,0x96,0x01, | ||
5205 | 0x98,0x98,0x98,0x98,0x98,0x97,0x95,0x96,0x94,0x95,0x98,0x98,0x98,0x96,0x95,0x96, | ||
5206 | 0x94,0x01,0x96,0x97,0x98,0x98,0x98,0x01,0x98,0x98,0x97,0x97,0x95,0x95,0x97,0x01, | ||
5207 | 0x96,0x93,0x93,0x93,0x91,0x93,0x94,0x95,0x94,0x93,0x95,0x8E,0x8E,0x94,0x91,0x95, | ||
5208 | 0x92,0x95,0x95,0x92,0x94,0x93,0x94,0x96,0x92,0x94,0x93,0x96,0x95,0x94,0x95,0x92, | ||
5209 | 0x93,0x95,0x01,0x98,0x96,0x95,0x95,0x94,0x95,0x96,0x94,0x95,0x96,0x95,0x92,0x95, | ||
5210 | 0x96,0x92,0x93,0x94,0x96,0x01,0x95,0x95,0x98,0x93,0x95,0x95,0x95,0x01,0x93,0x92, | ||
5211 | 0x01,0x94,0x95,0x8E,0x94,0x8E,0x8E,0x8E,0x95,0x8E,0x8E,0x94,0x8E,0x92,0x8E,0x94, | ||
5212 | 0x8E,0x95,0x8E,0x95,0x8E,0x94,0x8E,0x93,0x95,0x94,0x93,0x94,0x98,0x94,0x95,0x95, | ||
5213 | 0x93,0x95,0x01,0x96,0x95,0x96,0x92,0x93,0x95,0x94,0x91,0x94,0x95,0x92,0x92,0x01, | ||
5214 | 0x92,0x95,0x94,0x92,0x92,0x01,0x95,0x96,0x93,0x91,0x92,0x91,0x93,0x91,0x95,0x8E, | ||
5215 | 0x95,0x94,0x96,0x92,0x96,0x96,0x93,0x96,0x94,0x93,0x94,0x93,0x98,0x98,0x93,0x92, | ||
5216 | 0x92,0x96,0x01,0x98,0x01,0x96,0x01,0x94,0x98,0x98,0x96,0x95,0x98,0x97,0x01,0x98, | ||
5217 | 0x99,0x01,0x98,0x01,0x98,0x96,0x96,0x95,0x96,0x98,0x98,0x96,0x95,0x98,0x96,0x95, | ||
5218 | 0x98,0x96,0x01,0x93,0x95,0x98,0x95,0x96,0x98,0x94,0x98,0x96,0x98,0x98,0x98,0x98, | ||
5219 | 0x01,0x96,0x98,0x94,0x98,0x01,0x96,0x98,0x98,0x01,0x96,0x98,0x95,0x95,0x95,0x96, | ||
5220 | 0x01,0x94,0x01,0x98,0x98,0x95,0x98,0x01,0x98,0x98,0x98,0x98,0x98,0x96,0x95,0x98, | ||
5221 | 0x92,0x94,0x94,0x96,0x98,0x98,0x95,0x98,0x95,0x95,0x93,0x94,0x98,0x96,0x96,0x94, | ||
5222 | 0x98,0x94,0x98,0x95,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x01,0x98,0x93,0x98,0x97, | ||
5223 | 0x98,0x95,0x98,0x98,0x98,0x98,0x98,0x96,0x98,0x94,0x95,0x01,0x98,0x98,0x98,0x99, | ||
5224 | 0x98,0x95,0x99,0x95,0x96,0x95,0x98,0x95,0x98,0x99,0x99,0x99,0x98,0x98,0x01,0x98, | ||
5225 | 0x98,0x98,0x96,0x95,0x93,0x98,0x95,0x98,0x96,0x96,0x96,0x96,0x01,0x99,0x98,0x96, | ||
5226 | 0x98,0x96,0x99,0x98,0x98,0x01,0x98,0x96,0x98,0x98,0x98,0x01,0x01,0x98,0x98,0x94, | ||
5227 | 0x92,0x96,0x93,0x92,0x92,0x94,0x95,0x8E,0x94,0x92,0x95,0x94,0x01,0x92,0x92,0x8E, | ||
5228 | 0x93,0x94,0x94,0x94,0x01,0x93,0x01,0x95,0x92,0x95,0x93,0x95,0x96,0x94,0x94,0x93, | ||
5229 | 0x94,0x98,0x96,0x95,0x95,0x96,0x96,0x95,0x93,0x94,0x95,0x98,0x92,0x94,0x95,0x95, | ||
5230 | 0x94,0x98,0x94,0x98,0x96,0x98,0x96,0x95,0x96,0x95,0x95,0x93,0x94,0x93,0x92,0x94, | ||
5231 | 0x96,0x95,0x95,0x95,0x95,0x94,0x93,0x95,0x92,0x93,0x93,0x96,0x98,0x92,0x93,0x92, | ||
5232 | 0x94,0x95,0x93,0x95,0x95,0x92,0x8E,0x8E,0x01,0x92,0x92,0x95,0x92,0x94,0x93,0x96, | ||
5233 | 0x93,0x01,0x92,0x95,0x93,0x94,0x98,0x94,0x95,0x95,0x91,0x93,0x95,0x92,0x92,0x92, | ||
5234 | 0x01,0x93,0x95,0x92,0x95,0x91,0x92,0x01,0x92,0x92,0x92,0x92,0x93,0x94,0x95,0x94, | ||
5235 | 0x01,0x95,0x01,0x94,0x95,0x94,0x95,0x93,0x92,0x01,0x01,0x94,0x98,0x98,0x93,0x98, | ||
5236 | 0x95,0x95,0x98,0x95,0x96,0x94,0x96,0x98,0x96,0x95,0x94,0x95,0x96,0x95,0x95,0x01, | ||
5237 | 0x96,0x01,0x98,0x95,0x01,0x96,0x98,0x96,0x96,0x98,0x01,0x95,0x96,0x96,0x95,0x95, | ||
5238 | 0x94,0x94,0x94,0x01,0x98,0x95,0x98,0x96,0x01,0x94,0x98,0x98,0x98,0x93,0x99,0x96, | ||
5239 | 0x98,0x98,0x98,0x95,0x98,0x98,0x95,0x95,0x95,0x92,0x92,0x98,0x01,0x98,0x94,0x01, | ||
5240 | 0x95,0x01,0x98,0x01,0x01,0x98,0x95,0x01,0x98,0x98,0x98,0x96,0x98,0x01,0x96,0x95, | ||
5241 | 0x96,0x95,0x95,0x95,0x98,0x95,0x95,0x98,0x01,0x98,0x96,0x98,0x95,0x95,0x98,0x01, | ||
5242 | 0x95,0x98,0x99,0x98,0x99,0x98,0x95,0x98,0x96,0x96,0x98,0x01,0x96,0x01,0x01,0x95, | ||
5243 | 0x98,0x95,0x98,0x98,0x96,0x96,0x01,0x98,0x95,0x95,0x96,0x95,0x94,0x98,0x95,0x01, | ||
5244 | 0x99,0x98,0x98,0x98,0x01,0x98,0x01,0x94,0x94,0x98,0x98,0x97,0x95,0x98,0x01,0x98, | ||
5245 | 0x98,0x99,0x95,0x98,0x99,0x99,0x95,0x98,0x98,0x98,0x98,0x99,0x98,0x99,0x98,0x99, | ||
5246 | 0x98,0x98,0x99,0x98,0x95,0x95,0x99,0x96,0x9A,0x99,0x9A,0x99,0x98,0x96,0x01,0x98, | ||
5247 | 0x01,0x93,0x95,0x93,0x91,0x01,0x98,0x95,0x94,0x92,0x95,0x92,0x98,0x96,0x95,0x98, | ||
5248 | 0x95,0x96,0x92,0x95,0x95,0x95,0x95,0x93,0x95,0x95,0x92,0x92,0x95,0x92,0x92,0x01, | ||
5249 | 0x92,0x95,0x95,0x93,0x96,0x93,0x95,0x92,0x95,0x95,0x95,0x92,0x92,0x01,0x91,0x93, | ||
5250 | 0x94,0x95,0x93,0x95,0x94,0x92,0x92,0x01,0x01,0x01,0x95,0x8E,0x92,0x98,0x95,0x95, | ||
5251 | 0x98,0x95,0x96,0x95,0x96,0x94,0x94,0x93,0x94,0x91,0x94,0x94,0x93,0x93,0x92,0x95, | ||
5252 | 0x93,0x94,0x01,0x01,0x96,0x92,0x98,0x92,0x8E,0x95,0x8E,0x8E,0x8E,0x94,0x93,0x92, | ||
5253 | 0x93,0x98,0x92,0x94,0x93,0x92,0x95,0x93,0x95,0x91,0x95,0x92,0x94,0x98,0x96,0x01, | ||
5254 | 0x01,0x92,0x94,0x93,0x94,0x92,0x94,0x93,0x01,0x95,0x92,0x92,0x96,0x93,0x95,0x93, | ||
5255 | 0x01,0x93,0x95,0x93,0x96,0x94,0x94,0x01,0x96,0x01,0x92,0x98,0x95,0x01,0x96,0x94, | ||
5256 | 0x01,0x98,0x98,0x01,0x95,0x95,0x96,0x95,0x96,0x94,0x93,0x94,0x95,0x01,0x98,0x98, | ||
5257 | 0x96,0x95,0x95,0x96,0x95,0x96,0x98,0x01,0x95,0x98,0x96,0x96,0x94,0x96,0x94,0x96, | ||
5258 | 0x95,0x01,0x95,0x94,0x94,0x93,0x96,0x96,0x96,0x98,0x98,0x98,0x96,0x96,0x98,0x99, | ||
5259 | 0x98,0x98,0x99,0x99,0x98,0x98,0x96,0x96,0x92,0x94,0x01,0x98,0x94,0x95,0x96,0x98, | ||
5260 | 0x95,0x95,0x93,0x94,0x01,0x98,0x01,0x98,0x98,0x98,0x95,0x01,0x95,0x95,0x96,0x95, | ||
5261 | 0x96,0x94,0x95,0x95,0x01,0x95,0x93,0x96,0x98,0x94,0x01,0x9A,0x01,0x98,0x94,0x9A, | ||
5262 | 0x98,0x98,0x98,0x99,0x98,0x99,0x98,0x94,0x95,0x95,0x95,0x98,0x01,0x98,0x98,0x95, | ||
5263 | 0x95,0x99,0x98,0x99,0x95,0x98,0x98,0x95,0x98,0x01,0x94,0x98,0x98,0x98,0x01,0x96, | ||
5264 | 0x95,0x96,0x01,0x97,0x96,0x95,0x01,0x98,0x95,0x95,0x95,0x98,0x01,0x01,0x93,0x95, | ||
5265 | 0x96,0x98,0x95,0x98,0x98,0x98,0x98,0x01,0x98,0x95,0x98,0x98,0x98,0x98,0x99,0x98, | ||
5266 | 0x96,0x98,0x9A,0x01,0x99,0x99,0x99,0x98,0x98,0x99,0x98,0x99,0x01,0x98,0x99,0x98, | ||
5267 | 0x98,0x98,0x95,0x98,0x92,0x98,0x94,0x95,0x98,0x01,0x92,0x96,0x92,0x92,0x94,0x96, | ||
5268 | 0x98,0x98,0x93,0x92,0x93,0x8E,0x96,0x95,0x96,0x01,0x92,0x95,0x93,0x01,0x94,0x93, | ||
5269 | 0x01,0x93,0x94,0x94,0x94,0x92,0x95,0x95,0x92,0x93,0x92,0x91,0x94,0x94,0x8E,0x92, | ||
5270 | 0x8E,0x01,0x8E,0x8E,0x92,0x94,0x92,0x95,0x92,0x95,0x95,0x95,0x94,0x95,0x94,0x94, | ||
5271 | 0x94,0x01,0x01,0x98,0x95,0x95,0x95,0x94,0x92,0x95,0x95,0x94,0x92,0x92,0x95,0x94, | ||
5272 | 0x98,0x95,0x95,0x93,0x92,0x95,0x92,0x01,0x96,0x92,0x95,0x01,0x95,0x92,0x94,0x95, | ||
5273 | 0x94,0x8E,0x8E,0x95,0x96,0x94,0x92,0x8E,0x92,0x92,0x95,0x92,0x95,0x98,0x95,0x92, | ||
5274 | 0x95,0x93,0x98,0x92,0x95,0x92,0x94,0x94,0x95,0x95,0x93,0x95,0x93,0x94,0x98,0x01, | ||
5275 | 0x94,0x98,0x01,0x94,0x95,0x01,0x95,0x95,0x98,0x98,0x95,0x96,0x93,0x98,0x96,0x98, | ||
5276 | 0x95,0x93,0x96,0x01,0x96,0x01,0x98,0x96,0x98,0x95,0x95,0x94,0x98,0x01,0x96,0x98, | ||
5277 | 0x98,0x96,0x95,0x95,0x98,0x01,0x98,0x98,0x98,0x98,0x94,0x01,0x94,0x01,0x01,0x93, | ||
5278 | 0x98,0x01,0x98,0x01,0x96,0x98,0x98,0x96,0x98,0x01,0x9A,0x98,0x98,0x95,0x98,0x98, | ||
5279 | 0x98,0x95,0x99,0x9A,0x96,0x01,0x98,0x98,0x95,0x95,0x98,0x96,0x01,0x98,0x98,0x01, | ||
5280 | 0x95,0x98,0x96,0x98,0x98,0x95,0x99,0x98,0x01,0x95,0x98,0x95,0x98,0x92,0x95,0x96, | ||
5281 | 0x94,0x98,0x96,0x97,0x01,0x96,0x98,0x98,0x99,0x98,0x98,0x96,0x95,0x95,0x98,0x98, | ||
5282 | 0x98,0x98,0x98,0x01,0x98,0x96,0x96,0x96,0x94,0x98,0x98,0x94,0x95,0x98,0x96,0x98, | ||
5283 | 0x9A,0x98,0x94,0x96,0x99,0x95,0x99,0x98,0x93,0x98,0x95,0x98,0x95,0x95,0x98,0x98, | ||
5284 | 0x98,0x93,0x98,0x98,0x96,0x95,0x96,0x01,0x96,0x98,0x95,0x95,0x94,0x01,0x98,0x98, | ||
5285 | 0x96,0x95,0x01,0x98,0x98,0x98,0x01,0x98,0x98,0x96,0x99,0x98,0x98,0x99,0x99,0x98, | ||
5286 | 0x99,0x01,0x98,0x01,0x98,0x98,0x98,0x96,0x98,0x94,0x98,0x94,0x98,0x98,0x99,0x95, | ||
5287 | 0x98,0x96,0x95,0x93,0x92,0x92,0x92,0x93,0x92,0x93,0x95,0x01,0x01,0x01,0x95,0x96, | ||
5288 | 0x01,0x92,0x95,0x96,0x01,0x93,0x92,0x92,0x94,0x8E,0x92,0x01,0x92,0x01,0x91,0x92, | ||
5289 | 0x93,0x95,0x94,0x96,0x98,0x91,0x91,0x8E,0x95,0x94,0x92,0x8F,0x95,0x01,0x96,0x93, | ||
5290 | 0x94,0x96,0x94,0x96,0x8E,0x92,0x8E,0x94,0x8E,0x92,0x01,0x96,0x92,0x92,0x94,0x93, | ||
5291 | 0x92,0x98,0x98,0x95,0x01,0x96,0x95,0x01,0x98,0x98,0x96,0x01,0x98,0x93,0x98,0x01, | ||
5292 | 0x95,0x91,0x95,0x93,0x93,0x94,0x91,0x94,0x96,0x95,0x93,0x93,0x96,0x95,0x94,0x95, | ||
5293 | 0x94,0x92,0x95,0x96,0x93,0x98,0x96,0x95,0x93,0x96,0x93,0x93,0x98,0x92,0x95,0x93, | ||
5294 | 0x95,0x94,0x93,0x93,0x93,0x95,0x95,0x96,0x96,0x92,0x94,0x96,0x95,0x96,0x95,0x94, | ||
5295 | 0x93,0x93,0x96,0x98,0x01,0x98,0x98,0x97,0x95,0x98,0x96,0x98,0x01,0x96,0x01,0x98, | ||
5296 | 0x95,0x98,0x96,0x96,0x01,0x96,0x01,0x01,0x01,0x95,0x96,0x96,0x96,0x01,0x01,0x98, | ||
5297 | 0x95,0x95,0x98,0x96,0x01,0x01,0x94,0x01,0x01,0x01,0x96,0x98,0x96,0x98,0x98,0x92, | ||
5298 | 0x01,0x01,0x96,0x95,0x98,0x99,0x96,0x99,0x95,0x01,0x01,0x98,0x98,0x99,0x9A,0x98, | ||
5299 | 0x9A,0x95,0x9A,0x98,0x98,0x9A,0x99,0x98,0x95,0x95,0x9A,0x98,0x01,0x95,0x95,0x98, | ||
5300 | 0x01,0x98,0x98,0x98,0x98,0x98,0x99,0x96,0x98,0x96,0x98,0x95,0x92,0x01,0x98,0x99, | ||
5301 | 0x98,0x98,0x98,0x01,0x98,0x98,0x98,0x95,0x94,0x98,0x97,0x98,0x01,0x98,0x98,0x96, | ||
5302 | 0x95,0x93,0x95,0x98,0x96,0x98,0x98,0x98,0x95,0x01,0x96,0x98,0x98,0x99,0x95,0x01, | ||
5303 | 0x98,0x98,0x9A,0x98,0x98,0x01,0x01,0x98,0x98,0x98,0x96,0x96,0x98,0x01,0x94,0x94, | ||
5304 | 0x95,0x96,0x01,0x96,0x98,0x98,0x98,0x95,0x95,0x98,0x95,0x95,0x96,0x96,0x95,0x95, | ||
5305 | 0x94,0x98,0x98,0x01,0x95,0x98,0x98,0x95,0x95,0x98,0x98,0x98,0x99,0x98,0x01,0x95, | ||
5306 | 0x99,0x96,0x95,0x95,0x98,0x98,0x95,0x01,0x98,0x95,0x01,0x96,0x96,0x94,0x95,0x98, | ||
5307 | 0x98,0x01,0x98,0x93,0x95,0x95,0x96,0x93,0x98,0x95,0x98,0x95,0x93,0x01,0x93,0x96, | ||
5308 | 0x93,0x96,0x98,0x92,0x01,0x93,0x93,0x94,0x94,0x92,0x92,0x92,0x8E,0x94,0x93,0x8E, | ||
5309 | 0x92,0x01,0x95,0x95,0x93,0x93,0x92,0x8E,0x8E,0x91,0x94,0x93,0x01,0x94,0x98,0x92, | ||
5310 | 0x95,0x94,0x96,0x92,0x8E,0x8E,0x8E,0x93,0x94,0x95,0x92,0x8E,0x8E,0x95,0x94,0x95, | ||
5311 | 0x94,0x93,0x96,0x93,0x95,0x98,0x95,0x96,0x95,0x93,0x96,0x94,0x98,0x01,0x96,0x94, | ||
5312 | 0x96,0x94,0x94,0x95,0x94,0x95,0x01,0x92,0x94,0x92,0x94,0x95,0x92,0x94,0x93,0x94, | ||
5313 | 0x93,0x96,0x93,0x94,0x92,0x93,0x98,0x01,0x98,0x94,0x95,0x95,0x95,0x93,0x93,0x94, | ||
5314 | 0x95,0x01,0x95,0x98,0x96,0x93,0x94,0x01,0x94,0x95,0x98,0x96,0x93,0x95,0x92,0x93, | ||
5315 | 0x96,0x96,0x98,0x93,0x98,0x94,0x94,0x01,0x92,0x01,0x93,0x94,0x94,0x96,0x01,0x98, | ||
5316 | 0x01,0x01,0x98,0x96,0x01,0x92,0x94,0x98,0x94,0x95,0x96,0x01,0x97,0x95,0x95,0x98, | ||
5317 | 0x98,0x98,0x01,0x98,0x96,0x01,0x95,0x98,0x93,0x98,0x96,0x01,0x01,0x94,0x95,0x98, | ||
5318 | 0x96,0x95,0x98,0x95,0x98,0x96,0x96,0x99,0x98,0x98,0x99,0x96,0x01,0x96,0x98,0x98, | ||
5319 | 0x99,0x96,0x9A,0x01,0x98,0x01,0x98,0x98,0x97,0x98,0x98,0x98,0x99,0x95,0x92,0x92, | ||
5320 | 0x96,0x99,0x98,0x96,0x98,0x98,0x98,0x01,0x95,0x98,0x96,0x99,0x01,0x9A,0x98,0x98, | ||
5321 | 0x98,0x98,0x98,0x96,0x96,0x98,0x95,0x98,0x98,0x93,0x98,0x98,0x98,0x96,0x95,0x97, | ||
5322 | 0x98,0x97,0x97,0x98,0x95,0x01,0x98,0x98,0x01,0x98,0x01,0x95,0x98,0x99,0x98,0x9A, | ||
5323 | 0x98,0x98,0x9A,0x98,0x98,0x9A,0x94,0x01,0x98,0x95,0x01,0x98,0x95,0x96,0x95,0x94, | ||
5324 | 0x95,0x96,0x95,0x95,0x93,0x98,0x96,0x95,0x95,0x01,0x98,0x96,0x96,0x01,0x01,0x96, | ||
5325 | 0x01,0x96,0x92,0x01,0x01,0x98,0x98,0x98,0x98,0x98,0x98,0x01,0x98,0x95,0x97,0x95, | ||
5326 | 0x98,0x94,0x92,0x96,0x98,0x96,0x01,0x98,0x01,0x98,0x95,0x98,0x98,0x01,0x95,0x94, | ||
5327 | 0x98,0x98,0x95,0x93,0x95,0x92,0x95,0x98,0x96,0x93,0x94,0x01,0x93,0x98,0x92,0x95, | ||
5328 | 0x92,0x98,0x92,0x94,0x95,0x96,0x95,0x95,0x92,0x92,0x92,0x93,0x96,0x93,0x96,0x92, | ||
5329 | 0x94,0x01,0x95,0x92,0x95,0x93,0x92,0x95,0x98,0x92,0x94,0x95,0x93,0x94,0x93,0x95, | ||
5330 | 0x95,0x95,0x91,0x93,0x8E,0x8E,0x92,0x92,0x93,0x98,0x92,0x93,0x95,0x92,0x98,0x94, | ||
5331 | 0x96,0x93,0x95,0x98,0x96,0x96,0x96,0x98,0x98,0x95,0x95,0x95,0x98,0x98,0x95,0x96, | ||
5332 | 0x98,0x94,0x98,0x94,0x93,0x98,0x98,0x96,0x01,0x96,0x98,0x01,0x96,0x94,0x94,0x01, | ||
5333 | 0x95,0x95,0x95,0x01,0x96,0x01,0x96,0x94,0x98,0x95,0x95,0x93,0x95,0x94,0x95,0x95, | ||
5334 | 0x95,0x94,0x95,0x95,0x93,0x92,0x95,0x95,0x95,0x01,0x93,0x01,0x98,0x96,0x96,0x98, | ||
5335 | 0x01,0x98,0x98,0x98,0x98,0x94,0x98,0x94,0x01,0x01,0x01,0x98,0x98,0x94,0x95,0x01, | ||
5336 | 0x96,0x94,0x95,0x96,0x01,0x96,0x98,0x98,0x98,0x98,0x95,0x96,0x99,0x01,0x98,0x96, | ||
5337 | 0x98,0x98,0x96,0x95,0x98,0x01,0x95,0x94,0x98,0x98,0x96,0x98,0x95,0x95,0x94,0x96, | ||
5338 | 0x95,0x94,0x98,0x97,0x98,0x96,0x01,0x95,0x99,0x98,0x98,0x98,0x01,0x01,0x98,0x96, | ||
5339 | 0x99,0x99,0x99,0x01,0x96,0x95,0x98,0x94,0x94,0x94,0x01,0x98,0x01,0x98,0x94,0x98, | ||
5340 | 0x98,0x97,0x99,0x01,0x96,0x96,0x95,0x98,0x95,0x99,0x01,0x99,0x98,0x98,0x98,0x98, | ||
5341 | 0x98,0x9B,0x99,0x9B,0x9C,0x99,0x98,0x96,0x01,0x98,0x95,0x98,0x96,0x97,0x98,0x98, | ||
5342 | 0x98,0x01,0x95,0x94,0x98,0x98,0x01,0x98,0x95,0x95,0x95,0x96,0x98,0x98,0x98,0x99, | ||
5343 | 0x99,0x98,0x98,0x92,0x98,0x98,0x98,0x98,0x98,0x94,0x94,0x96,0x96,0x95,0x95,0x01, | ||
5344 | 0x98,0x01,0x95,0x98,0x94,0x98,0x95,0x01,0x98,0x96,0x94,0x96,0x01,0x98,0x96,0x96, | ||
5345 | 0x95,0x98,0x98,0x98,0x99,0x95,0x98,0x95,0x98,0x98,0x96,0x01,0x95,0x01,0x98,0x98, | ||
5346 | 0x98,0x01,0x95,0x95,0x98,0x98,0x94,0x98,0x98,0x96,0x94,0x98,0x94,0x96,0x95,0x98, | ||
5347 | 0x98,0x01,0x93,0x92,0x94,0x95,0x95,0x93,0x95,0x93,0x93,0x92,0x01,0x01,0x94,0x96, | ||
5348 | 0x94,0x93,0x94,0x01,0x01,0x01,0x95,0x92,0x98,0x95,0x95,0x92,0x95,0x96,0x95,0x92, | ||
5349 | 0x93,0x92,0x95,0x93,0x95,0x01,0x94,0x93,0x95,0x92,0x98,0x92,0x95,0x92,0x95,0x98, | ||
5350 | 0x92,0x95,0x96,0x95,0x8E,0x96,0x01,0x8E,0x93,0x93,0x95,0x95,0x95,0x94,0x92,0x95, | ||
5351 | 0x94,0x95,0x94,0x95,0x98,0x01,0x95,0x95,0x94,0x98,0x95,0x98,0x98,0x96,0x95,0x94, | ||
5352 | 0x93,0x96,0x94,0x98,0x95,0x98,0x97,0x98,0x95,0x97,0x96,0x96,0x96,0x96,0x95,0x01, | ||
5353 | 0x96,0x98,0x95,0x95,0x98,0x98,0x96,0x01,0x01,0x96,0x94,0x94,0x94,0x01,0x94,0x98, | ||
5354 | 0x95,0x94,0x94,0x01,0x96,0x96,0x95,0x96,0x95,0x93,0x98,0x95,0x95,0x95,0x99,0x01, | ||
5355 | 0x94,0x98,0x98,0x94,0x95,0x01,0x92,0x96,0x98,0x96,0x01,0x98,0x95,0x95,0x98,0x98, | ||
5356 | 0x94,0x01,0x96,0x01,0x01,0x01,0x96,0x01,0x97,0x95,0x98,0x98,0x98,0x98,0x96,0x96, | ||
5357 | 0x99,0x96,0x98,0x98,0x98,0x98,0x95,0x94,0x98,0x98,0x98,0x96,0x95,0x98,0x95,0x98, | ||
5358 | 0x98,0x98,0x96,0x96,0x98,0x98,0x95,0x9A,0x98,0x98,0x96,0x95,0x95,0x94,0x95,0x94, | ||
5359 | 0x95,0x93,0x96,0x98,0x95,0x94,0x92,0x95,0x95,0x95,0x95,0x98,0x01,0x95,0x01,0x96, | ||
5360 | 0x98,0x01,0x96,0x98,0x99,0x98,0x99,0x98,0x95,0x95,0x98,0x01,0x98,0x98,0x96,0x98, | ||
5361 | 0x98,0x98,0x95,0x9B,0x99,0x99,0x01,0x01,0x98,0x94,0x95,0x99,0x98,0x95,0x98,0x98, | ||
5362 | 0x98,0x98,0x92,0x96,0x95,0x96,0x98,0x98,0x98,0x94,0x98,0x95,0x94,0x94,0x98,0x01, | ||
5363 | 0x96,0x98,0x93,0x98,0x99,0x98,0x01,0x96,0x96,0x01,0x94,0x94,0x95,0x95,0x96,0x94, | ||
5364 | 0x95,0x92,0x01,0x95,0x96,0x96,0x92,0x98,0x94,0x94,0x96,0x98,0x98,0x98,0x96,0x98, | ||
5365 | 0x96,0x96,0x98,0x98,0x01,0x01,0x94,0x01,0x95,0x95,0x01,0x95,0x98,0x96,0x95,0x95, | ||
5366 | 0x95,0x01,0x01,0x95,0x95,0x96,0x94,0x94,0x95,0x98,0x96,0x95,0x95,0x96,0x98,0x95, | ||
5367 | 0x94,0x93,0x01,0x95,0x94,0x95,0x96,0x95,0x96,0x95,0x95,0x98,0x95,0x98,0x98,0x94, | ||
5368 | 0x95,0x96,0x95,0x01,0x95,0x95,0x92,0x92,0x95,0x95,0x94,0x96,0x01,0x92,0x94,0x94, | ||
5369 | 0x94,0x93,0x93,0x96,0x92,0x95,0x94,0x95,0x98,0x95,0x92,0x96,0x96,0x95,0x94,0x98, | ||
5370 | 0x01,0x95,0x92,0x96,0x93,0x96,0x95,0x01,0x98,0x01,0x96,0x01,0x98,0x95,0x92,0x92, | ||
5371 | 0x94,0x8E,0x92,0x94,0x95,0x94,0x93,0x95,0x01,0x95,0x98,0x98,0x98,0x98,0x01,0x95, | ||
5372 | 0x98,0x97,0x95,0x95,0x96,0x95,0x94,0x97,0x95,0x96,0x98,0x95,0x95,0x01,0x98,0x97, | ||
5373 | 0x98,0x94,0x95,0x95,0x98,0x95,0x94,0x01,0x98,0x95,0x96,0x96,0x01,0x96,0x96,0x95, | ||
5374 | 0x94,0x95,0x98,0x01,0x98,0x96,0x95,0x98,0x96,0x98,0x92,0x01,0x95,0x98,0x95,0x95, | ||
5375 | 0x98,0x95,0x95,0x98,0x95,0x98,0x94,0x98,0x94,0x96,0x98,0x98,0x01,0x98,0x95,0x94, | ||
5376 | 0x95,0x98,0x97,0x95,0x01,0x01,0x96,0x98,0x94,0x96,0x01,0x98,0x94,0x98,0x01,0x98, | ||
5377 | 0x97,0x94,0x96,0x96,0x98,0x95,0x94,0x98,0x01,0x96,0x93,0x01,0x98,0x01,0x96,0x99, | ||
5378 | 0x98,0x96,0x98,0x96,0x98,0x96,0x98,0x95,0x98,0x99,0x95,0x98,0x97,0x98,0x95,0x98, | ||
5379 | 0x94,0x92,0x92,0x8E,0x8E,0x95,0x93,0x01,0x96,0x94,0x98,0x98,0x95,0x94,0x94,0x95, | ||
5380 | 0x95,0x98,0x98,0x01,0x98,0x96,0x98,0x98,0x01,0x98,0x98,0x99,0x98,0x96,0x98,0x96, | ||
5381 | 0x95,0x98,0x98,0x98,0x9A,0x94,0x99,0x98,0x98,0x98,0x98,0x98,0x01,0x9A,0x98,0x95, | ||
5382 | 0x01,0x98,0x98,0x96,0x9A,0x9A,0x01,0x94,0x96,0x98,0x96,0x96,0x01,0x98,0x01,0x98, | ||
5383 | 0x98,0x98,0x99,0x99,0x98,0x98,0x98,0x98,0x98,0x94,0x98,0x98,0x98,0x94,0x96,0x95, | ||
5384 | 0x95,0x95,0x98,0x93,0x94,0x98,0x94,0x96,0x98,0x96,0x95,0x98,0x99,0x98,0x01,0x96, | ||
5385 | 0x98,0x98,0x98,0x9A,0x01,0x01,0x01,0x94,0x95,0x01,0x96,0x98,0x95,0x95,0x96,0x96, | ||
5386 | 0x94,0x01,0x01,0x01,0x98,0x01,0x96,0x96,0x01,0x98,0x96,0x94,0x98,0x98,0x96,0x01, | ||
5387 | 0x01,0x94,0x98,0x98,0x93,0x93,0x92,0x95,0x01,0x93,0x94,0x92,0x96,0x95,0x92,0x96, | ||
5388 | 0x93,0x95,0x94,0x93,0x95,0x93,0x01,0x01,0x94,0x95,0x95,0x95,0x92,0x92,0x96,0x92, | ||
5389 | 0x01,0x01,0x95,0x96,0x01,0x01,0x95,0x95,0x93,0x95,0x94,0x98,0x01,0x95,0x01,0x94, | ||
5390 | 0x01,0x94,0x95,0x8E,0x92,0x01,0x95,0x98,0x95,0x96,0x93,0x96,0x96,0x98,0x01,0x01, | ||
5391 | 0x96,0x95,0x95,0x95,0x96,0x93,0x94,0x93,0x95,0x01,0x98,0x95,0x98,0x98,0x98,0x01, | ||
5392 | 0x98,0x98,0x01,0x92,0x98,0x95,0x98,0x95,0x96,0x95,0x98,0x97,0x98,0x98,0x95,0x98, | ||
5393 | 0x98,0x98,0x94,0x94,0x92,0x01,0x01,0x95,0x96,0x95,0x98,0x95,0x98,0x01,0x98,0x98, | ||
5394 | 0x96,0x96,0x95,0x01,0x95,0x98,0x96,0x96,0x98,0x95,0x01,0x01,0x96,0x98,0x94,0x98, | ||
5395 | 0x95,0x01,0x98,0x01,0x95,0x91,0x98,0x96,0x94,0x01,0x95,0x98,0x01,0x98,0x98,0x95, | ||
5396 | 0x98,0x98,0x96,0x98,0x01,0x01,0x96,0x96,0x98,0x96,0x94,0x94,0x94,0x98,0x01,0x95, | ||
5397 | 0x96,0x98,0x98,0x94,0x98,0x95,0x95,0x95,0x95,0x98,0x96,0x01,0x98,0x94,0x98,0x96, | ||
5398 | 0x98,0x96,0x99,0x96,0x98,0x96,0x95,0x96,0x95,0x94,0x98,0x95,0x96,0x92,0x96,0x98, | ||
5399 | 0x98,0x01,0x92,0x8E,0x94,0x91,0x93,0x95,0x94,0x96,0x95,0x96,0x94,0x95,0x95,0x96, | ||
5400 | 0x98,0x96,0x95,0x94,0x96,0x98,0x01,0x96,0x98,0x98,0x98,0x98,0x98,0x97,0x98,0x98, | ||
5401 | 0x01,0x97,0x94,0x95,0x01,0x99,0x96,0x98,0x98,0x98,0x98,0x98,0x98,0x01,0x96,0x9A, | ||
5402 | 0x98,0x9A,0x98,0x95,0x95,0x96,0x01,0x98,0x98,0x98,0x98,0x98,0x98,0x94,0x96,0x95, | ||
5403 | 0x98,0x98,0x98,0x94,0x98,0x95,0x95,0x98,0x98,0x98,0x98,0x98,0x95,0x92,0x98,0x96, | ||
5404 | 0x96,0x95,0x95,0x01,0x98,0x95,0x98,0x98,0x98,0x93,0x95,0x96,0x99,0x95,0x98,0x99, | ||
5405 | 0x95,0x99,0x99,0x95,0x94,0x95,0x95,0x96,0x98,0x98,0x95,0x98,0x98,0x94,0x94,0x95, | ||
5406 | 0x96,0x98,0x95,0x01,0x98,0x98,0x94,0x96,0x98,0x98,0x96,0x98,0x93,0x98,0x01,0x01, | ||
5407 | 0x92,0x92,0x96,0x93,0x96,0x95,0x91,0x01,0x92,0x95,0x01,0x01,0x93,0x95,0x01,0x98, | ||
5408 | 0x94,0x95,0x95,0x94,0x94,0x94,0x95,0x01,0x92,0x94,0x93,0x93,0x01,0x96,0x94,0x94, | ||
5409 | 0x95,0x98,0x98,0x01,0x98,0x95,0x98,0x93,0x95,0x01,0x95,0x94,0x96,0x95,0x98,0x95, | ||
5410 | 0x94,0x93,0x98,0x01,0x95,0x94,0x98,0x95,0x01,0x95,0x95,0x98,0x01,0x98,0x01,0x98, | ||
5411 | 0x95,0x98,0x95,0x8E,0x92,0x92,0x91,0x91,0x93,0x95,0x96,0x96,0x92,0x92,0x94,0x95, | ||
5412 | 0x95,0x98,0x96,0x95,0x96,0x93,0x95,0x01,0x98,0x98,0x98,0x01,0x95,0x96,0x92,0x94, | ||
5413 | 0x98,0x96,0x98,0x95,0x98,0x95,0x96,0x93,0x96,0x01,0x98,0x01,0x95,0x01,0x98,0x9A, | ||
5414 | 0x99,0x95,0x95,0x96,0x94,0x95,0x01,0x98,0x95,0x95,0x95,0x98,0x01,0x95,0x93,0x98, | ||
5415 | 0x98,0x01,0x98,0x94,0x95,0x96,0x98,0x01,0x95,0x95,0x98,0x97,0x96,0x98,0x98,0x96, | ||
5416 | 0x96,0x95,0x96,0x96,0x94,0x96,0x01,0x96,0x96,0x01,0x01,0x98,0x98,0x94,0x94,0x96, | ||
5417 | 0x95,0x98,0x99,0x98,0x98,0x96,0x98,0x01,0x98,0x94,0x96,0x98,0x01,0x98,0x01,0x98, | ||
5418 | 0x01,0x99,0x94,0x99,0x99,0x94,0x98,0x98,0x95,0x95,0x98,0x98,0x98,0x01,0x92,0x94, | ||
5419 | 0x8E,0x8E,0x96,0x93,0x95,0x96,0x98,0x94,0x95,0x01,0x92,0x01,0x96,0x95,0x98,0x98, | ||
5420 | 0x98,0x98,0x94,0x98,0x98,0x01,0x98,0x95,0x01,0x96,0x94,0x01,0x96,0x96,0x98,0x98, | ||
5421 | 0x95,0x01,0x95,0x96,0x01,0x97,0x98,0x93,0x97,0x98,0x98,0x98,0x98,0x98,0x96,0x96, | ||
5422 | 0x98,0x98,0x98,0x01,0x98,0x98,0x95,0x98,0x98,0x99,0x98,0x98,0x98,0x95,0x96,0x94, | ||
5423 | 0x96,0x98,0x96,0x95,0x01,0x95,0x92,0x98,0x98,0x96,0x01,0x99,0x99,0x98,0x95,0x95, | ||
5424 | 0x95,0x01,0x96,0x98,0x98,0x98,0x96,0x98,0x98,0x98,0x99,0x98,0x98,0x01,0x98,0x98, | ||
5425 | 0x98,0x01,0x01,0x96,0x98,0x95,0x93,0x93,0x96,0x95,0x93,0x96,0x01,0x98,0x94,0x96, | ||
5426 | 0x98,0x96,0x01,0x92,0x92,0x92,0x96,0x96,0x01,0x98,0x95,0x95,0x98,0x95,0x96,0x98, | ||
5427 | 0x92,0x94,0x92,0x93,0x92,0x95,0x01,0x95,0x96,0x95,0x98,0x01,0x92,0x93,0x94,0x94, | ||
5428 | 0x95,0x96,0x98,0x01,0x92,0x95,0x96,0x94,0x98,0x01,0x01,0x98,0x96,0x96,0x95,0x98, | ||
5429 | 0x95,0x96,0x96,0x92,0x96,0x96,0x93,0x98,0x92,0x92,0x01,0x96,0x95,0x95,0x96,0x8E, | ||
5430 | 0x92,0x94,0x01,0x95,0x96,0x98,0x94,0x01,0x96,0x95,0x94,0x94,0x96,0x98,0x98,0x96, | ||
5431 | 0x98,0x96,0x96,0x94,0x01,0x93,0x92,0x93,0x96,0x01,0x98,0x96,0x01,0x93,0x92,0x92, | ||
5432 | 0x92,0x93,0x92,0x93,0x95,0x8E,0x8E,0x95,0x95,0x98,0x98,0x95,0x95,0x94,0x93,0x92, | ||
5433 | 0x94,0x95,0x96,0x98,0x01,0x98,0x96,0x99,0x95,0x98,0x98,0x98,0x94,0x98,0x95,0x98, | ||
5434 | 0x99,0x98,0x98,0x98,0x98,0x01,0x98,0x01,0x98,0x95,0x01,0x98,0x98,0x95,0x98,0x98, | ||
5435 | 0x98,0x98,0x97,0x95,0x98,0x98,0x01,0x98,0x95,0x98,0x94,0x98,0x93,0x95,0x98,0x95, | ||
5436 | 0x95,0x98,0x96,0x96,0x98,0x98,0x95,0x98,0x95,0x93,0x01,0x94,0x95,0x98,0x96,0x98, | ||
5437 | 0x96,0x98,0x98,0x99,0x96,0x98,0x98,0x98,0x01,0x98,0x96,0x98,0x95,0x98,0x9A,0x98, | ||
5438 | 0x98,0x96,0x98,0x98,0x98,0x98,0x95,0x96,0x95,0x95,0x96,0x95,0x95,0x95,0x94,0x8E, | ||
5439 | 0x8E,0x92,0x92,0x01,0x95,0x98,0x95,0x01,0x95,0x94,0x96,0x96,0x01,0x95,0x98,0x96, | ||
5440 | 0x98,0x01,0x98,0x96,0x01,0x94,0x95,0x96,0x98,0x01,0x95,0x95,0x01,0x01,0x98,0x95, | ||
5441 | 0x98,0x94,0x98,0x98,0x96,0x94,0x95,0x93,0x01,0x98,0x98,0x95,0x94,0x98,0x96,0x98, | ||
5442 | 0x98,0x98,0x98,0x01,0x96,0x98,0x95,0x01,0x95,0x92,0x96,0x96,0x01,0x94,0x96,0x01, | ||
5443 | 0x98,0x95,0x98,0x96,0x96,0x01,0x98,0x93,0x96,0x94,0x95,0x98,0x96,0x01,0x98,0x96, | ||
5444 | 0x99,0x98,0x98,0x98,0x99,0x98,0x94,0x99,0x98,0x98,0x98,0x98,0x01,0x01,0x95,0x95, | ||
5445 | 0x94,0x94,0x96,0x95,0x95,0x92,0x8E,0x8E,0x92,0x94,0x92,0x93,0x8E,0x8E,0x92,0x8E, | ||
5446 | 0x92,0x8E,0x92,0x8E,0x94,0x93,0x92,0x95,0x93,0x93,0x98,0x96,0x8E,0x8E,0x8E,0x8D, | ||
5447 | 0x95,0x98,0x98,0x95,0x98,0x01,0x96,0x95,0x96,0x95,0x96,0x95,0x96,0x98,0x98,0x01, | ||
5448 | 0x01,0x98,0x96,0x94,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x96,0x98,0x01,0x95,0x95, | ||
5449 | 0x96,0x98,0x98,0x96,0x96,0x96,0x98,0x01,0x92,0x01,0x95,0x95,0x98,0x01,0x96,0x01, | ||
5450 | 0x98,0x98,0x01,0x98,0x01,0x94,0x98,0x98,0x98,0x98,0x98,0x94,0x96,0x94,0x98,0x95, | ||
5451 | 0x01,0x98,0x98,0x93,0x98,0x94,0x94,0x98,0x96,0x95,0x98,0x95,0x95,0x95,0x94,0x92, | ||
5452 | 0x01,0x93,0x95,0x93,0x94,0x94,0x94,0x96,0x96,0x96,0x94,0x98,0x98,0x94,0x92,0x95, | ||
5453 | 0x01,0x95,0x98,0x96,0x99,0x94,0x98,0x95,0x98,0x94,0x98,0x95,0x98,0x94,0x98,0x98, | ||
5454 | 0x96,0x96,0x98,0x95,0x98,0x95,0x98,0x98,0x96,0x98,0x99,0x98,0x98,0x94,0x94,0x94, | ||
5455 | 0x96,0x93,0x96,0x01,0x95,0x01,0x96,0x01,0x95,0x93,0x95,0x01,0x94,0x95,0x94,0x93, | ||
5456 | 0x94,0x96,0x95,0x94,0x94,0x95,0x01,0x95,0x95,0x98,0x98,0x94,0x98,0x95,0x01,0x99, | ||
5457 | 0x95,0x01,0x01,0x98,0x98,0x01,0x98,0x01,0x99,0x01,0x96,0x98,0x98,0x98,0x98,0x98, | ||
5458 | 0x98,0x98,0x94,0x98,0x95,0x01,0x94,0x93,0x92,0x95,0x93,0x8E,0x95,0x93,0x95,0x95, | ||
5459 | 0x95,0x93,0x94,0x96,0x98,0x98,0x95,0x01,0x96,0x01,0x98,0x95,0x96,0x98,0x96,0x95, | ||
5460 | 0x98,0x01,0x95,0x01,0x96,0x98,0x96,0x95,0x98,0x98,0x98,0x98,0x93,0x95,0x95,0x98, | ||
5461 | 0x95,0x98,0x95,0x98,0x95,0x96,0x95,0x95,0x96,0x01,0x96,0x95,0x98,0x98,0x96,0x95, | ||
5462 | 0x96,0x98,0x01,0x98,0x95,0x96,0x95,0x98,0x01,0x01,0x98,0x99,0x01,0x96,0x98,0x96, | ||
5463 | 0x98,0x98,0x99,0x98,0x98,0x99,0x95,0x99,0x95,0x99,0x98,0x99,0x98,0x99,0x98,0x98, | ||
5464 | 0x98,0x98,0x99,0x94,0x01,0x94,0x01,0x95,0x97,0x98,0x94,0x94,0x98,0x01,0x93,0x94, | ||
5465 | 0x93,0x96,0x92,0x94,0x92,0x8E,0x96,0x95,0x98,0x93,0x94,0x01,0x92,0x92,0x93,0x8D, | ||
5466 | 0x94,0x96,0x96,0x8E,0x92,0x8E,0x94,0x92,0x94,0x8E,0x94,0x92,0x94,0x95,0x94,0x98, | ||
5467 | 0x92,0x01,0x94,0x98,0x96,0x98,0x93,0x98,0x98,0x98,0x94,0x96,0x95,0x98,0x98,0x96, | ||
5468 | 0x96,0x98,0x98,0x01,0x96,0x95,0x94,0x96,0x98,0x98,0x01,0x01,0x96,0x93,0x96,0x95, | ||
5469 | 0x95,0x95,0x98,0x98,0x98,0x98,0x01,0x96,0x95,0x96,0x01,0x98,0x98,0x96,0x98,0x98, | ||
5470 | 0x96,0x98,0x96,0x01,0x98,0x98,0x01,0x98,0x98,0x96,0x95,0x98,0x95,0x98,0x01,0x98, | ||
5471 | 0x92,0x96,0x96,0x98,0x96,0x96,0x95,0x97,0x98,0x96,0x95,0x01,0x01,0x98,0x95,0x96, | ||
5472 | 0x01,0x01,0x96,0x95,0x95,0x94,0x01,0x01,0x98,0x95,0x01,0x96,0x98,0x98,0x93,0x01, | ||
5473 | 0x01,0x95,0x96,0x98,0x96,0x01,0x98,0x96,0x96,0x94,0x98,0x95,0x01,0x94,0x94,0x98, | ||
5474 | 0x93,0x95,0x98,0x01,0x98,0x98,0x98,0x98,0x96,0x01,0x01,0x95,0x98,0x96,0x95,0x95, | ||
5475 | 0x01,0x98,0x92,0x01,0x95,0x96,0x98,0x94,0x98,0x98,0x94,0x01,0x95,0x94,0x95,0x98, | ||
5476 | 0x96,0x95,0x95,0x95,0x95,0x95,0x96,0x98,0x01,0x94,0x96,0x98,0x9A,0x01,0x99,0x98, | ||
5477 | 0x98,0x01,0x99,0x98,0x01,0x98,0x01,0x01,0x98,0x98,0x98,0x98,0x98,0x95,0x98,0x95, | ||
5478 | 0x96,0x95,0x95,0x95,0x98,0x94,0x93,0x93,0x01,0x92,0x92,0x98,0x95,0x93,0x94,0x92, | ||
5479 | 0x94,0x98,0x95,0x98,0x95,0x95,0x96,0x94,0x96,0x96,0x91,0x98,0x96,0x95,0x98,0x98, | ||
5480 | 0x94,0x95,0x94,0x96,0x98,0x95,0x95,0x01,0x95,0x94,0x01,0x98,0x96,0x98,0x98,0x96, | ||
5481 | 0x94,0x95,0x98,0x98,0x96,0x92,0x98,0x96,0x95,0x95,0x98,0x95,0x98,0x94,0x95,0x98, | ||
5482 | 0x98,0x98,0x95,0x95,0x98,0x01,0x96,0x98,0x98,0x93,0x98,0x98,0x96,0x98,0x98,0x96, | ||
5483 | 0x98,0x98,0x01,0x01,0x98,0x98,0x98,0x95,0x95,0x01,0x98,0x01,0x98,0x01,0x98,0x98, | ||
5484 | 0x98,0x98,0x01,0x01,0x95,0x96,0x96,0x98,0x98,0x98,0x93,0x98,0x93,0x96,0x95,0x95, | ||
5485 | 0x94,0x8E,0x8E,0x94,0x92,0x94,0x95,0x95,0x96,0x93,0x01,0x8E,0x95,0x94,0x8E,0x95, | ||
5486 | 0x95,0x92,0x8E,0x95,0x96,0x94,0x92,0x92,0x92,0x98,0x95,0x94,0x94,0x96,0x98,0x95, | ||
5487 | 0x92,0x01,0x98,0x98,0x98,0x94,0x95,0x95,0x01,0x95,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5488 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5489 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5490 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5491 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5492 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5493 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5494 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5495 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x96,0x98,0x95,0x96, | ||
5496 | 0x95,0x94,0x01,0x01,0x93,0x93,0x96,0x96,0x93,0x9A,0x98,0x95,0x9F,0x9F,0x9F,0x9F, | ||
5497 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5498 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5499 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5500 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5501 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5502 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5503 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5504 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5505 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5506 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x97,0x96,0x95,0x96,0x95,0x98,0x96,0x94,0x94,0x01,0x94, | ||
5507 | 0x96,0x95,0x98,0x96,0x95,0x98,0x96,0x92,0x95,0x95,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5508 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5509 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5510 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5511 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5512 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5513 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5514 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5515 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x96,0x92,0x95,0x98, | ||
5516 | 0x96,0x92,0x94,0x94,0x94,0x98,0x98,0x01,0x99,0x95,0x98,0x98,0x9F,0x9F,0x9F,0x9F, | ||
5517 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5518 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5519 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5520 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5521 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5522 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5523 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5524 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5525 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5526 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x94,0x98,0x98,0x98,0x01,0x01,0x01,0x98,0x94,0x94,0x98, | ||
5527 | 0x98,0x96,0x95,0x96,0x95,0x98,0x92,0x95,0x95,0x94,0x9F,0x9F,0x9D,0x9D,0x95,0x95, | ||
5528 | 0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95, | ||
5529 | 0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5530 | 0x9D,0x9D,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D, | ||
5531 | 0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D, | ||
5532 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D, | ||
5533 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5534 | 0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95, | ||
5535 | 0x95,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x93,0x94,0x95,0x98, | ||
5536 | 0x01,0x98,0x98,0x96,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x9F,0x9F,0x9D,0x9D, | ||
5537 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5538 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5539 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5540 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5541 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5542 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5543 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5544 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5545 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5546 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x91,0x98,0x01,0x01,0x98,0x94,0x96,0x94,0x98,0x01,0x95, | ||
5547 | 0x91,0x01,0x95,0x92,0x93,0x94,0x95,0x92,0x92,0x93,0x9F,0x9F,0x9D,0x95,0x10,0x10, | ||
5548 | 0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x95,0x95,0x10,0x10,0x95,0x9D,0x95,0x10,0x10, | ||
5549 | 0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x95,0x95,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x9D, | ||
5550 | 0x9D,0x95,0x10,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x95,0x9D, | ||
5551 | 0x95,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x95, | ||
5552 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x95,0x10,0x10,0x95, | ||
5553 | 0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x95, | ||
5554 | 0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x10, | ||
5555 | 0x10,0x95,0x9D,0x95,0x10,0x10,0x95,0x95,0x10,0x10,0x95,0x9D,0x93,0x95,0x98,0x98, | ||
5556 | 0x96,0x99,0x98,0x98,0x01,0x96,0x99,0x98,0x94,0x96,0x98,0x96,0x9F,0x9F,0x9D,0x9D, | ||
5557 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5558 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5559 | 0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95, | ||
5560 | 0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
5561 | 0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5562 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5563 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5564 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5565 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5566 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x98,0x01,0x92,0x95,0x93,0x95,0x98,0x96,0x93, | ||
5567 | 0x99,0x95,0x96,0x98,0x96,0x96,0x98,0x01,0x92,0x92,0x9F,0x9F,0x95,0x10,0x11,0x10, | ||
5568 | 0x11,0x10,0x11,0x95,0x95,0x10,0x11,0x95,0x95,0x10,0x11,0x95,0x95,0x10,0x11,0x10, | ||
5569 | 0x11,0x10,0x11,0x95,0x95,0x10,0x11,0x95,0x95,0x10,0x11,0x95,0x9D,0x9D,0x9D,0x9D, | ||
5570 | 0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x95,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x95, | ||
5571 | 0x95,0x10,0x11,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x95, | ||
5572 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x11,0x10,0x11,0x95,0x9D,0x95,0x11,0x10,0x11,0x95, | ||
5573 | 0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x95,0x95,0x10,0x11,0x10,0x95,0x9D,0x95,0x10, | ||
5574 | 0x11,0x10,0x95,0x95,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x95,0x11,0x10,0x11,0x10, | ||
5575 | 0x11,0x10,0x95,0x95,0x11,0x10,0x95,0x95,0x11,0x10,0x95,0x9D,0x93,0x98,0x98,0x98, | ||
5576 | 0x98,0x01,0x01,0x98,0x98,0x98,0x94,0x98,0x96,0x96,0x98,0x95,0x9F,0x9F,0x9D,0x9D, | ||
5577 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5578 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x95, | ||
5579 | 0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10, | ||
5580 | 0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10, | ||
5581 | 0x95,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5582 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5583 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5584 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5585 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5586 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x98,0x94,0x93,0x98,0x98,0x98,0x95,0x95,0x8E, | ||
5587 | 0x01,0x93,0x01,0x98,0x93,0x94,0x94,0x94,0x95,0x8E,0x9F,0x9F,0x95,0x12,0x12,0x95, | ||
5588 | 0x95,0x12,0x12,0x95,0x95,0x12,0x12,0x95,0x95,0x12,0x12,0x95,0x95,0x12,0x12,0x95, | ||
5589 | 0x95,0x12,0x12,0x95,0x95,0x12,0x12,0x95,0x95,0x12,0x12,0x95,0x9D,0x9D,0x9D,0x9D, | ||
5590 | 0x95,0x12,0x12,0x95,0x95,0x12,0x12,0x95,0x95,0x12,0x12,0x95,0x95,0x12,0x12,0x95, | ||
5591 | 0x95,0x12,0x12,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x12,0x12,0x95,0x95,0x95,0x95,0x9D, | ||
5592 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x12,0x12,0x11,0x12,0x95,0x12,0x11,0x12,0x12,0x95, | ||
5593 | 0x95,0x12,0x12,0x95,0x95,0x95,0x95,0x9D,0x95,0x12,0x12,0x12,0x11,0x95,0x12,0x12, | ||
5594 | 0x11,0x12,0x95,0x95,0x11,0x12,0x95,0x95,0x11,0x12,0x95,0x95,0x11,0x12,0x95,0x95, | ||
5595 | 0x11,0x12,0x95,0x95,0x11,0x12,0x95,0x95,0x11,0x12,0x95,0x9D,0x93,0x95,0x98,0x01, | ||
5596 | 0x01,0x01,0x01,0x96,0x98,0x96,0x95,0x01,0x96,0x96,0x93,0x92,0x9F,0x9F,0x9D,0x9D, | ||
5597 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
5598 | 0x90,0x90,0x91,0x94,0x9F,0x9D,0x9D,0x95,0x10,0x11,0x10,0x11,0x95,0x9D,0x95,0x11, | ||
5599 | 0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11, | ||
5600 | 0x10,0x95,0x9D,0x95,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11, | ||
5601 | 0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5602 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5603 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5604 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5605 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5606 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x94,0x95,0x94,0x98,0x93,0x92,0x95,0x95,0x01, | ||
5607 | 0x98,0x92,0x94,0x8E,0x92,0x92,0x93,0x93,0x93,0x91,0x9F,0x9F,0x95,0x12,0x13,0x12, | ||
5608 | 0x13,0x12,0x13,0x95,0x95,0x12,0x13,0x95,0x95,0x12,0x13,0x95,0x95,0x12,0x13,0x12, | ||
5609 | 0x13,0x12,0x13,0x95,0x95,0x12,0x13,0x95,0x95,0x12,0x13,0x95,0x9D,0x9D,0x9D,0x9D, | ||
5610 | 0x95,0x12,0x13,0x12,0x13,0x12,0x13,0x95,0x95,0x12,0x13,0x12,0x13,0x12,0x95,0x9D, | ||
5611 | 0x95,0x12,0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x12,0x13,0x12,0x13,0x12,0x95,0x9D, | ||
5612 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x95, | ||
5613 | 0x95,0x12,0x13,0x12,0x13,0x12,0x95,0x9D,0x95,0x12,0x13,0x12,0x13,0x12,0x13,0x12, | ||
5614 | 0x13,0x12,0x95,0x95,0x13,0x12,0x95,0x95,0x13,0x12,0x95,0x95,0x13,0x12,0x13,0x12, | ||
5615 | 0x13,0x12,0x95,0x95,0x13,0x12,0x13,0x12,0x13,0x12,0x95,0x9D,0x93,0x96,0x96,0x96, | ||
5616 | 0x95,0x98,0x96,0x96,0x95,0x98,0x98,0x95,0x01,0x94,0x95,0x95,0x9F,0x9F,0x9D,0x9D, | ||
5617 | 0x90,0x90,0x93,0x96,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
5618 | 0x99,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x95,0x12,0x12,0x12,0x11,0x12,0x95,0x12,0x11, | ||
5619 | 0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x95,0x95,0x95,0x12,0x11,0x12,0x95,0x12,0x11, | ||
5620 | 0x12,0x95,0x9D,0x95,0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x95,0x95,0x95,0x12,0x11, | ||
5621 | 0x12,0x95,0x12,0x11,0x12,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5622 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5623 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5624 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5625 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5626 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x94,0x98,0x93,0x92,0x94,0x01,0x8E,0x8E,0x93, | ||
5627 | 0x8D,0x92,0x8E,0x8E,0x94,0x92,0x93,0x94,0x92,0x94,0x9F,0x9F,0x95,0x13,0x13,0x13, | ||
5628 | 0x13,0x13,0x13,0x95,0x95,0x13,0x13,0x95,0x95,0x13,0x13,0x95,0x95,0x13,0x13,0x13, | ||
5629 | 0x13,0x13,0x13,0x95,0x95,0x13,0x13,0x95,0x95,0x13,0x13,0x95,0x9D,0x9D,0x9D,0x9D, | ||
5630 | 0x95,0x13,0x13,0x14,0x13,0x13,0x13,0x95,0x95,0x13,0x13,0x14,0x13,0x13,0x13,0x95, | ||
5631 | 0x95,0x13,0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x13,0x13,0x14,0x13,0x13,0x95,0x9D, | ||
5632 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x13,0x13,0x95,0x13,0x13,0x14,0x95,0x13,0x13,0x95, | ||
5633 | 0x95,0x13,0x13,0x14,0x13,0x13,0x95,0x9D,0x95,0x13,0x13,0x95,0x13,0x13,0x13,0x95, | ||
5634 | 0x13,0x13,0x95,0x95,0x13,0x13,0x95,0x95,0x13,0x13,0x95,0x95,0x13,0x13,0x13,0x13, | ||
5635 | 0x13,0x95,0x9D,0x9D,0x95,0x13,0x13,0x13,0x13,0x95,0x9D,0x9D,0x93,0x92,0x93,0x94, | ||
5636 | 0x95,0x01,0x98,0x96,0x95,0x93,0x01,0x96,0x94,0x92,0x8E,0x95,0x9F,0x9F,0x9D,0x9D, | ||
5637 | 0x90,0x93,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
5638 | 0x00,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x95,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, | ||
5639 | 0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x95,0x9D,0x95,0x12,0x13,0x12,0x95,0x12,0x13, | ||
5640 | 0x12,0x95,0x9D,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x95,0x95,0x95,0x95,0x95, | ||
5641 | 0x95,0x95,0x12,0x13,0x12,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5642 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5643 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5644 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5645 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5646 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x93,0x92,0x01,0x95,0x95,0x01,0x92,0x92,0x93, | ||
5647 | 0x92,0x8E,0x96,0x91,0x94,0x93,0x98,0x93,0x93,0x92,0x9F,0x9F,0x95,0x14,0x14,0x95, | ||
5648 | 0x95,0x14,0x15,0x95,0x95,0x14,0x14,0x14,0x15,0x14,0x15,0x95,0x95,0x14,0x14,0x95, | ||
5649 | 0x95,0x14,0x15,0x95,0x95,0x14,0x14,0x95,0x95,0x14,0x15,0x95,0x95,0x95,0x95,0x9D, | ||
5650 | 0x95,0x14,0x15,0x95,0x95,0x14,0x14,0x95,0x95,0x14,0x15,0x95,0x95,0x14,0x14,0x95, | ||
5651 | 0x95,0x14,0x15,0x95,0x95,0x95,0x95,0x9D,0x95,0x14,0x15,0x95,0x95,0x95,0x95,0x9D, | ||
5652 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x95,0x95,0x15,0x95,0x95,0x14,0x14,0x95, | ||
5653 | 0x95,0x14,0x15,0x95,0x95,0x95,0x95,0x9D,0x95,0x14,0x15,0x95,0x95,0x14,0x95,0x95, | ||
5654 | 0x15,0x14,0x95,0x95,0x15,0x14,0x95,0x95,0x15,0x14,0x95,0x95,0x15,0x14,0x95,0x95, | ||
5655 | 0x15,0x14,0x95,0x9D,0x9D,0x95,0x14,0x14,0x95,0x9D,0x9D,0x9D,0x93,0x92,0x95,0x93, | ||
5656 | 0x92,0x92,0x92,0x8E,0x96,0x8E,0x94,0x8E,0x93,0x96,0x98,0x92,0x9F,0x9F,0x9D,0x9D, | ||
5657 | 0x90,0x96,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
5658 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x13,0x13,0x13,0x95,0x13,0x13,0x14,0x95, | ||
5659 | 0x13,0x13,0x13,0x95,0x13,0x13,0x14,0x95,0x9D,0x95,0x13,0x13,0x13,0x95,0x14,0x13, | ||
5660 | 0x13,0x95,0x9D,0x95,0x13,0x13,0x14,0x95,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x13, | ||
5661 | 0x95,0x95,0x13,0x13,0x13,0x13,0x14,0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5662 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5663 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5664 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5665 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5666 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x98,0x93,0x94,0x01,0x92,0x8E,0x92,0x92,0x96, | ||
5667 | 0x92,0x95,0x91,0x95,0x92,0x94,0x93,0x94,0x94,0x01,0x9F,0x9F,0x95,0x15,0x15,0x95, | ||
5668 | 0x95,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x95, | ||
5669 | 0x95,0x15,0x15,0x95,0x95,0x15,0x15,0x95,0x95,0x15,0x15,0x15,0x15,0x15,0x15,0x95, | ||
5670 | 0x95,0x15,0x15,0x95,0x95,0x15,0x15,0x95,0x95,0x15,0x15,0x15,0x15,0x15,0x15,0x95, | ||
5671 | 0x95,0x15,0x15,0x15,0x15,0x15,0x15,0x95,0x95,0x15,0x15,0x15,0x15,0x15,0x15,0x95, | ||
5672 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x15,0x15,0x95,0x9D,0x95,0x9D,0x95,0x15,0x15,0x95, | ||
5673 | 0x95,0x15,0x15,0x15,0x15,0x15,0x15,0x95,0x95,0x15,0x15,0x95,0x9D,0x95,0x9D,0x95, | ||
5674 | 0x15,0x15,0x95,0x95,0x15,0x15,0x15,0x15,0x15,0x15,0x95,0x95,0x15,0x15,0x95,0x95, | ||
5675 | 0x15,0x15,0x95,0x9D,0x9D,0x95,0x15,0x15,0x95,0x9D,0x9D,0x9D,0x93,0x94,0x96,0x98, | ||
5676 | 0x98,0x01,0x95,0x8E,0x94,0x92,0x94,0x8E,0x93,0x95,0x98,0x95,0x9F,0x9F,0x9D,0x9D, | ||
5677 | 0x90,0x98,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
5678 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x14,0x14,0x14,0x95,0x95,0x15,0x95,0x95, | ||
5679 | 0x14,0x14,0x14,0x95,0x14,0x15,0x14,0x95,0x9D,0x95,0x14,0x15,0x14,0x95,0x14,0x15, | ||
5680 | 0x14,0x95,0x9D,0x95,0x14,0x15,0x14,0x95,0x95,0x14,0x14,0x15,0x14,0x15,0x14,0x15, | ||
5681 | 0x14,0x95,0x14,0x15,0x14,0x15,0x14,0x15,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5682 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5683 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5684 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5685 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5686 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x01,0x95,0x01,0x8E,0x96,0x94,0x93,0x01,0x01, | ||
5687 | 0x95,0x93,0x92,0x95,0x92,0x95,0x93,0x95,0x95,0x98,0x9F,0x9F,0x95,0x16,0x16,0x95, | ||
5688 | 0x95,0x16,0x16,0x95,0x9D,0x9D,0x95,0x15,0x16,0x95,0x9D,0x9D,0x95,0x16,0x16,0x95, | ||
5689 | 0x95,0x16,0x16,0x95,0x95,0x16,0x16,0x95,0x95,0x16,0x16,0x15,0x16,0x16,0x16,0x95, | ||
5690 | 0x95,0x16,0x16,0x95,0x95,0x16,0x16,0x95,0x95,0x16,0x16,0x15,0x16,0x16,0x95,0x9D, | ||
5691 | 0x95,0x16,0x16,0x15,0x16,0x16,0x16,0x95,0x95,0x16,0x16,0x15,0x16,0x16,0x16,0x95, | ||
5692 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x16,0x15,0x95,0x9D,0x9D,0x9D,0x95,0x16,0x16,0x95, | ||
5693 | 0x95,0x16,0x16,0x15,0x16,0x16,0x16,0x95,0x95,0x16,0x16,0x95,0x9D,0x9D,0x9D,0x95, | ||
5694 | 0x16,0x16,0x95,0x9D,0x95,0x16,0x16,0x15,0x16,0x95,0x9D,0x95,0x16,0x16,0x95,0x95, | ||
5695 | 0x16,0x16,0x95,0x9D,0x9D,0x95,0x16,0x15,0x95,0x9D,0x9D,0x9D,0x93,0x92,0x95,0x94, | ||
5696 | 0x96,0x01,0x94,0x91,0x94,0x95,0x92,0x92,0x95,0x96,0x93,0x93,0x9F,0x9F,0x9D,0x9D, | ||
5697 | 0x90,0x98,0x99,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
5698 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x9D,0x95, | ||
5699 | 0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15, | ||
5700 | 0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x15,0x15, | ||
5701 | 0x15,0x95,0x15,0x15,0x15,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5702 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5703 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5704 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5705 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5706 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x8E,0x93,0x95,0x93,0x96,0x94,0x98,0x98,0x01, | ||
5707 | 0x92,0x95,0x94,0x96,0x96,0x98,0x01,0x98,0x01,0x98,0x9F,0x9F,0x9D,0x95,0x95,0x9D, | ||
5708 | 0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D, | ||
5709 | 0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D, | ||
5710 | 0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D, | ||
5711 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D, | ||
5712 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D, | ||
5713 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5714 | 0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D, | ||
5715 | 0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x93,0x95,0x94,0x96, | ||
5716 | 0x93,0x95,0x92,0x95,0x93,0x92,0x96,0x98,0x93,0x8E,0x95,0x92,0x9F,0x9F,0x9D,0x9D, | ||
5717 | 0x91,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
5718 | 0x99,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x16,0x16,0x15,0x95,0x9D,0x9D,0x9D,0x95, | ||
5719 | 0x16,0x16,0x15,0x95,0x16,0x16,0x15,0x95,0x95,0x95,0x15,0x16,0x16,0x95,0x15,0x16, | ||
5720 | 0x16,0x95,0x95,0x95,0x16,0x16,0x15,0x95,0x16,0x16,0x15,0x95,0x95,0x95,0x15,0x16, | ||
5721 | 0x16,0x95,0x15,0x16,0x16,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5722 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5723 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5724 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5725 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5726 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x8E,0x8E,0x98,0x96,0x96,0x95,0x98,0x98,0x01,0x94, | ||
5727 | 0x95,0x96,0x96,0x95,0x01,0x01,0x01,0x95,0x95,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5728 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5729 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5730 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5731 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5732 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5733 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5734 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5735 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x93,0x92,0x95,0x93, | ||
5736 | 0x96,0x95,0x98,0x95,0x98,0x96,0x98,0x98,0x94,0x95,0x95,0x92,0x9F,0x9F,0x9D,0x9D, | ||
5737 | 0x94,0x9B,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5738 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x95,0x17,0x17,0x17,0x95,0x9D,0x9D,0x9D,0x95, | ||
5739 | 0x17,0x17,0x17,0x95,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x95,0x17,0x17, | ||
5740 | 0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x95,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17, | ||
5741 | 0x17,0x95,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5742 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5743 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5744 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5745 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5746 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x94,0x98,0x97,0x95,0x98,0x01,0x98,0x94,0x96, | ||
5747 | 0x98,0x98,0x96,0x95,0x95,0x98,0x96,0x95,0x95,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5748 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5749 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5750 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5751 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5752 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5753 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5754 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5755 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x93,0x96,0x92,0x92, | ||
5756 | 0x93,0x95,0x96,0x95,0x01,0x95,0x98,0x94,0x92,0x96,0x93,0x93,0x9F,0x9F,0x9D,0x9D, | ||
5757 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5758 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x95,0x17,0x18,0x17,0x95,0x9D,0x9D,0x9D,0x95, | ||
5759 | 0x17,0x18,0x17,0x95,0x95,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x9D,0x95,0x18, | ||
5760 | 0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x9D,0x95,0x18,0x17,0x18,0x17,0x18,0x17,0x18, | ||
5761 | 0x95,0x95,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5762 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5763 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5764 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5765 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5766 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x99,0x98,0x99,0x98,0x98,0x95,0x95,0x96, | ||
5767 | 0x98,0x98,0x01,0x95,0x98,0x01,0x98,0x94,0x96,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5768 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5769 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5770 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5771 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5772 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5773 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5774 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5775 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x93,0x94,0x96,0x94, | ||
5776 | 0x96,0x98,0x01,0x92,0x96,0x95,0x95,0x92,0x94,0x95,0x93,0x92,0x9F,0x9F,0x9D,0x9D, | ||
5777 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5778 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5779 | 0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95, | ||
5780 | 0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
5781 | 0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5782 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5783 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5784 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5785 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5786 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x98,0x98,0x95,0x98,0x99,0x99,0x98,0x95, | ||
5787 | 0x98,0x95,0x96,0x95,0x95,0x96,0x96,0x96,0x98,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5788 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
5789 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
5790 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D, | ||
5791 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
5792 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
5793 | 0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
5794 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
5795 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x93,0x91,0x94,0x95, | ||
5796 | 0x01,0x94,0x96,0x95,0x01,0x91,0x94,0x8E,0x94,0x92,0x95,0x95,0x9F,0x9F,0x9D,0x9D, | ||
5797 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5798 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5799 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5800 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5801 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5802 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5803 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5804 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5805 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5806 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x95,0x98,0x95,0x95,0x96,0x95,0x98,0x99,0x95, | ||
5807 | 0x9B,0x01,0x01,0x95,0x95,0x94,0x93,0x96,0x01,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5808 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
5809 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
5810 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D, | ||
5811 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
5812 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
5813 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
5814 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
5815 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x93,0x94,0x94,0x95, | ||
5816 | 0x95,0x92,0x8E,0x8E,0x8E,0x92,0x92,0x96,0x96,0x94,0x93,0x93,0x9F,0x9F,0x9D,0x9D, | ||
5817 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5818 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5819 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5820 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5821 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5822 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5823 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5824 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5825 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5826 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x01,0x95,0x98,0x94,0x95,0x01,0x98,0x94,0x9B, | ||
5827 | 0x98,0x97,0x94,0x95,0x01,0x95,0x95,0x01,0x95,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5828 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
5829 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5830 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x9D, | ||
5831 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
5832 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
5833 | 0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
5834 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5835 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x93,0x94,0x92,0x93, | ||
5836 | 0x92,0x92,0x01,0x94,0x95,0x96,0x95,0x94,0x01,0x95,0x95,0x94,0x99,0x95,0x95,0x95, | ||
5837 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94, | ||
5838 | 0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, | ||
5839 | 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92, | ||
5840 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
5841 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
5842 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
5843 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
5844 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
5845 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
5846 | 0x90,0x90,0x90,0x90,0x90,0x90,0x95,0x95,0x97,0x01,0x98,0x98,0x98,0x98,0x01,0x98, | ||
5847 | 0x95,0x01,0x01,0x95,0x95,0x93,0x96,0x93,0x01,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5848 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x9D, | ||
5849 | 0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5850 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D, | ||
5851 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
5852 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
5853 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
5854 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5855 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x98,0x94,0x95, | ||
5856 | 0x95,0x98,0x94,0x94,0x94,0x95,0x92,0x96,0x95,0x94,0x96,0x93,0x92,0x95,0x01,0x94, | ||
5857 | 0x94,0x98,0x93,0x98,0x93,0x93,0x01,0x96,0x95,0x95,0x95,0x98,0x94,0x96,0x91,0x95, | ||
5858 | 0x94,0x92,0x96,0x94,0x94,0x95,0x01,0x01,0x96,0x95,0x98,0x01,0x95,0x98,0x01,0x96, | ||
5859 | 0x98,0x99,0x99,0x96,0x99,0x01,0x98,0x95,0x01,0x01,0x98,0x95,0x98,0x98,0x98,0x95, | ||
5860 | 0x98,0x98,0x94,0x98,0x01,0x01,0x96,0x94,0x95,0x95,0x96,0x96,0x98,0x98,0x98,0x95, | ||
5861 | 0x96,0x98,0x96,0x95,0x96,0x95,0x98,0x96,0x98,0x99,0x96,0x95,0x98,0x98,0x98,0x96, | ||
5862 | 0x95,0x99,0x01,0x96,0x01,0x94,0x01,0x95,0x95,0x98,0x01,0x95,0x01,0x96,0x98,0x98, | ||
5863 | 0x95,0x98,0x96,0x01,0x99,0x98,0x96,0x95,0x98,0x98,0x95,0x98,0x9A,0x95,0x98,0x98, | ||
5864 | 0x96,0x01,0x93,0x8E,0x94,0x92,0x94,0x92,0x95,0x92,0x95,0x95,0x93,0x92,0x92,0x92, | ||
5865 | 0x96,0x95,0x98,0x96,0x98,0x01,0x01,0x98,0x99,0x98,0x95,0x95,0x98,0x98,0x98,0x98, | ||
5866 | 0x96,0x99,0x93,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, | ||
5867 | 0x93,0x98,0x98,0x95,0x93,0x95,0x93,0x93,0x93,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5868 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x17,0x17,0x98, | ||
5869 | 0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5870 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D, | ||
5871 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
5872 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
5873 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
5874 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5875 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x93,0x95,0x98, | ||
5876 | 0x93,0x96,0x94,0x96,0x95,0x98,0x95,0x95,0x96,0x92,0x93,0x96,0x95,0x93,0x95,0x95, | ||
5877 | 0x94,0x95,0x93,0x95,0x96,0x94,0x96,0x94,0x98,0x95,0x94,0x01,0x92,0x98,0x93,0x98, | ||
5878 | 0x01,0x94,0x01,0x98,0x98,0x98,0x96,0x98,0x96,0x98,0x94,0x98,0x98,0x99,0x98,0x98, | ||
5879 | 0x98,0x98,0x98,0x98,0x98,0x98,0x01,0x95,0x96,0x98,0x01,0x98,0x96,0x98,0x98,0x01, | ||
5880 | 0x95,0x96,0x95,0x96,0x95,0x96,0x94,0x98,0x98,0x96,0x01,0x98,0x94,0x95,0x95,0x98, | ||
5881 | 0x01,0x98,0x98,0x01,0x98,0x96,0x98,0x95,0x96,0x98,0x98,0x98,0x98,0x01,0x98,0x98, | ||
5882 | 0x95,0x96,0x01,0x94,0x95,0x01,0x92,0x92,0x8E,0x98,0x96,0x96,0x98,0x95,0x95,0x01, | ||
5883 | 0x95,0x01,0x93,0x98,0x92,0x92,0x97,0x98,0x95,0x95,0x98,0x01,0x01,0x96,0x98,0x98, | ||
5884 | 0x98,0x95,0x95,0x95,0x94,0x94,0x95,0x93,0x94,0x93,0x95,0x95,0x93,0x94,0x91,0x01, | ||
5885 | 0x96,0x95,0x98,0x95,0x96,0x98,0x01,0x01,0x96,0x99,0x01,0x98,0x99,0x96,0x99,0x98, | ||
5886 | 0x95,0x99,0x98,0x98,0x98,0x96,0x9A,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x99,0x9D, | ||
5887 | 0x92,0x95,0x92,0x92,0x95,0x96,0x95,0x01,0x95,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5888 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
5889 | 0x17,0x17,0x98,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5890 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D, | ||
5891 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
5892 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
5893 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
5894 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5895 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x96,0x94,0x95, | ||
5896 | 0x94,0x93,0x96,0x94,0x94,0x95,0x96,0x92,0x01,0x92,0x96,0x94,0x98,0x94,0x01,0x94, | ||
5897 | 0x95,0x98,0x95,0x96,0x96,0x95,0x98,0x01,0x95,0x94,0x01,0x95,0x95,0x93,0x95,0x98, | ||
5898 | 0x01,0x94,0x01,0x98,0x94,0x98,0x99,0x96,0x98,0x01,0x99,0x95,0x9A,0x96,0x98,0x98, | ||
5899 | 0x98,0x01,0x94,0x98,0x98,0x98,0x93,0x95,0x98,0x94,0x96,0x96,0x95,0x98,0x92,0x96, | ||
5900 | 0x95,0x98,0x01,0x95,0x01,0x98,0x98,0x98,0x96,0x98,0x96,0x98,0x92,0x94,0x96,0x98, | ||
5901 | 0x96,0x96,0x98,0x96,0x98,0x96,0x96,0x95,0x01,0x95,0x94,0x96,0x98,0x96,0x95,0x98, | ||
5902 | 0x94,0x93,0x8E,0x94,0x8E,0x8E,0x93,0x93,0x92,0x98,0x95,0x98,0x01,0x01,0x95,0x98, | ||
5903 | 0x96,0x98,0x94,0x96,0x95,0x98,0x01,0x98,0x98,0x01,0x97,0x98,0x98,0x95,0x98,0x98, | ||
5904 | 0x01,0x95,0x95,0x95,0x01,0x95,0x94,0x8E,0x92,0x93,0x92,0x95,0x93,0x95,0x98,0x98, | ||
5905 | 0x98,0x95,0x98,0x95,0x98,0x98,0x01,0x98,0x98,0x98,0x95,0x98,0x98,0x96,0x98,0x96, | ||
5906 | 0x98,0x95,0x95,0x98,0x98,0x98,0x94,0x95,0x01,0x98,0x98,0x9A,0x98,0x98,0x98,0x98, | ||
5907 | 0x01,0x93,0x93,0x93,0x95,0x01,0x94,0x93,0x94,0x91,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5908 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x98, | ||
5909 | 0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
5910 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98, | ||
5911 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
5912 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
5913 | 0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
5914 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
5915 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x91,0x93,0x92,0x93, | ||
5916 | 0x01,0x95,0x96,0x98,0x94,0x95,0x93,0x96,0x98,0x98,0x01,0x95,0x98,0x98,0x95,0x95, | ||
5917 | 0x98,0x95,0x94,0x93,0x98,0x01,0x93,0x93,0x96,0x92,0x95,0x95,0x96,0x95,0x96,0x98, | ||
5918 | 0x98,0x95,0x96,0x98,0x98,0x98,0x98,0x98,0x96,0x01,0x98,0x98,0x98,0x95,0x95,0x94, | ||
5919 | 0x96,0x98,0x01,0x95,0x98,0x01,0x96,0x98,0x01,0x96,0x98,0x94,0x98,0x98,0x96,0x95, | ||
5920 | 0x01,0x98,0x95,0x01,0x98,0x01,0x98,0x98,0x98,0x01,0x98,0x98,0x94,0x96,0x96,0x94, | ||
5921 | 0x98,0x01,0x96,0x95,0x96,0x95,0x98,0x95,0x96,0x94,0x95,0x96,0x01,0x96,0x95,0x96, | ||
5922 | 0x98,0x8E,0x8E,0x92,0x95,0x93,0x94,0x98,0x93,0x95,0x01,0x95,0x98,0x96,0x95,0x95, | ||
5923 | 0x01,0x94,0x96,0x94,0x96,0x98,0x95,0x95,0x96,0x01,0x96,0x98,0x96,0x95,0x94,0x95, | ||
5924 | 0x95,0x92,0x8E,0x8E,0x92,0x94,0x98,0x98,0x96,0x96,0x01,0x95,0x94,0x98,0x99,0x98, | ||
5925 | 0x98,0x98,0x96,0x98,0x01,0x99,0x98,0x98,0x98,0x98,0x98,0x01,0x98,0x9A,0x9A,0x98, | ||
5926 | 0x96,0x95,0x94,0x98,0x9A,0x96,0x98,0x95,0x9A,0x9A,0x98,0x98,0x98,0x98,0x94,0x92, | ||
5927 | 0x91,0x94,0x92,0x93,0x95,0x93,0x92,0x95,0x93,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5928 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
5929 | 0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
5930 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D, | ||
5931 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
5932 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
5933 | 0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
5934 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
5935 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x91,0x94,0x96,0x94, | ||
5936 | 0x95,0x95,0x95,0x98,0x93,0x98,0x96,0x96,0x93,0x93,0x95,0x98,0x96,0x94,0x96,0x96, | ||
5937 | 0x93,0x96,0x93,0x95,0x94,0x91,0x92,0x92,0x93,0x98,0x92,0x96,0x01,0x98,0x94,0x98, | ||
5938 | 0x01,0x95,0x01,0x95,0x95,0x01,0x96,0x01,0x98,0x01,0x98,0x96,0x97,0x98,0x95,0x94, | ||
5939 | 0x95,0x96,0x95,0x96,0x98,0x95,0x92,0x95,0x98,0x95,0x96,0x95,0x94,0x93,0x95,0x95, | ||
5940 | 0x95,0x95,0x96,0x96,0x98,0x95,0x96,0x01,0x96,0x93,0x98,0x95,0x98,0x01,0x95,0x96, | ||
5941 | 0x96,0x96,0x94,0x96,0x96,0x96,0x96,0x95,0x98,0x92,0x96,0x96,0x01,0x98,0x01,0x96, | ||
5942 | 0x94,0x95,0x8E,0x98,0x95,0x95,0x95,0x94,0x95,0x98,0x98,0x95,0x95,0x01,0x98,0x94, | ||
5943 | 0x96,0x96,0x98,0x96,0x95,0x98,0x01,0x95,0x94,0x95,0x96,0x94,0x98,0x94,0x95,0x8E, | ||
5944 | 0x8E,0x8E,0x94,0x95,0x01,0x95,0x96,0x95,0x95,0x94,0x98,0x01,0x99,0x98,0x98,0x98, | ||
5945 | 0x9A,0x99,0x9A,0x9A,0x98,0x98,0x94,0x98,0x98,0x01,0x95,0x9A,0x95,0x98,0x9A,0x01, | ||
5946 | 0x95,0x96,0x01,0x9A,0x98,0x98,0x9A,0x96,0x98,0x98,0x99,0x96,0x96,0x98,0x01,0x95, | ||
5947 | 0x94,0x93,0x8E,0x8E,0x94,0x92,0x92,0x96,0x94,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5948 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
5949 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
5950 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5951 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
5952 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
5953 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
5954 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
5955 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x91,0x94,0x95,0x01, | ||
5956 | 0x01,0x95,0x98,0x95,0x95,0x01,0x95,0x96,0x01,0x91,0x93,0x98,0x9F,0x9F,0x9F,0x9F, | ||
5957 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5958 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5959 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5960 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5961 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5962 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5963 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5964 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5965 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5966 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x97,0x94,0x98,0x01,0x98,0x96,0x95,0x93,0x98,0x96,0x94, | ||
5967 | 0x94,0x8E,0x8E,0x93,0x93,0x92,0x8E,0x94,0x92,0x8E,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5968 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
5969 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
5970 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5971 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
5972 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
5973 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
5974 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
5975 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x91,0x92,0x95,0x96, | ||
5976 | 0x93,0x92,0x98,0x95,0x98,0x95,0x95,0x95,0x94,0x92,0x95,0x96,0x9F,0x9F,0x9F,0x9F, | ||
5977 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5978 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5979 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5980 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5981 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5982 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5983 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5984 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5985 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
5986 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x94,0x95,0x01,0x95,0x95,0x95,0x96,0x96,0x96,0x98,0x98, | ||
5987 | 0x96,0x8E,0x96,0x8E,0x95,0x92,0x8E,0x94,0x8E,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
5988 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
5989 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5990 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5991 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
5992 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
5993 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
5994 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
5995 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x98,0x91,0x95, | ||
5996 | 0x95,0x93,0x92,0x94,0x92,0x92,0x98,0x01,0x93,0x95,0x98,0x94,0x9F,0x9F,0x9D,0x9D, | ||
5997 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5998 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
5999 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6000 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6001 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6002 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6003 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6004 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6005 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6006 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x91,0x94,0x96,0x98,0x98,0x01,0x01,0x01,0x98,0x01,0x93, | ||
6007 | 0x8D,0x92,0x92,0x93,0x96,0x93,0x8E,0x92,0x95,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6008 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6009 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6010 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6011 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6012 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6013 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6014 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6015 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x94,0x94,0x01, | ||
6016 | 0x93,0x94,0x94,0x98,0x92,0x95,0x93,0x95,0x95,0x01,0x98,0x95,0x9F,0x9F,0x9D,0x9D, | ||
6017 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6018 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95, | ||
6019 | 0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D, | ||
6020 | 0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D, | ||
6021 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x95, | ||
6022 | 0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95, | ||
6023 | 0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6024 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6025 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6026 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x96,0x94,0x92,0x94,0x94,0x98,0x01,0x95,0x95, | ||
6027 | 0x95,0x8E,0x93,0x94,0x8E,0x95,0x94,0x98,0x94,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6028 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x98, | ||
6029 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6030 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6031 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6032 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6033 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98, | ||
6034 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6035 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x93,0x95,0x94, | ||
6036 | 0x98,0x94,0x93,0x93,0x95,0x94,0x96,0x94,0x95,0x94,0x95,0x95,0x9F,0x9F,0x9D,0x9D, | ||
6037 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6038 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x10, | ||
6039 | 0x10,0x95,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x95, | ||
6040 | 0x9D,0x95,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95, | ||
6041 | 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x10,0x10,0x10,0x95,0x95,0x10, | ||
6042 | 0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10, | ||
6043 | 0x10,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6044 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6045 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6046 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x98,0x98,0x92,0x01,0x98,0x95,0x01,0x01,0x94, | ||
6047 | 0x01,0x94,0x92,0x95,0x91,0x92,0x93,0x92,0x96,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6048 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x98, | ||
6049 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6050 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6051 | 0x9D,0x9D,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6052 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6053 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6054 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6055 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x95,0x93,0x93, | ||
6056 | 0x95,0x95,0x95,0x95,0x95,0x93,0x96,0x98,0x95,0x96,0x95,0x96,0x9F,0x9F,0x9D,0x9D, | ||
6057 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6058 | 0x90,0x90,0x91,0x94,0x9F,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x11, | ||
6059 | 0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x95, | ||
6060 | 0x9D,0x95,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95, | ||
6061 | 0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x95,0x10,0x11, | ||
6062 | 0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x95,0x95,0x11,0x10,0x11, | ||
6063 | 0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6064 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6065 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6066 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x96,0x94,0x94,0x01,0x98,0x01,0x96,0x95,0x98, | ||
6067 | 0x98,0x95,0x96,0x95,0x93,0x96,0x95,0x94,0x95,0x01,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6068 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98, | ||
6069 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6070 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6071 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6072 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
6073 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6074 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6075 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x91,0x91,0x92,0x93, | ||
6076 | 0x93,0x96,0x93,0x98,0x94,0x01,0x98,0x98,0x98,0x93,0x98,0x97,0x9F,0x9F,0x9D,0x9D, | ||
6077 | 0x90,0x90,0x93,0x96,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
6078 | 0x99,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x12,0x11, | ||
6079 | 0x12,0x95,0x12,0x11,0x12,0x95,0x95,0x95,0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x95, | ||
6080 | 0x9D,0x95,0x12,0x11,0x12,0x95,0x12,0x11,0x12,0x95,0x95,0x95,0x12,0x12,0x12,0x95, | ||
6081 | 0x95,0x95,0x95,0x11,0x12,0x12,0x95,0x95,0x95,0x95,0x12,0x11,0x12,0x95,0x12,0x11, | ||
6082 | 0x12,0x95,0x95,0x95,0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x11, | ||
6083 | 0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6084 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6085 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6086 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x98,0x98,0x95,0x96,0x96,0x96,0x01,0x94,0x8E, | ||
6087 | 0x93,0x95,0x96,0x92,0x95,0x94,0x95,0x94,0x01,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6088 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D, | ||
6089 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6090 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6091 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6092 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
6093 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6094 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6095 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x91,0x94,0x95,0x94, | ||
6096 | 0x96,0x01,0x95,0x96,0x96,0x01,0x98,0x93,0x01,0x01,0x99,0x98,0x9F,0x9F,0x9D,0x9D, | ||
6097 | 0x90,0x93,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
6098 | 0x00,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x12,0x13, | ||
6099 | 0x12,0x95,0x12,0x13,0x12,0x95,0x9D,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x95, | ||
6100 | 0x95,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x95,0x95,0x95,0x95,0x95,0x95,0x9D, | ||
6101 | 0x9D,0x9D,0x95,0x13,0x12,0x13,0x95,0x9D,0x9D,0x95,0x12,0x13,0x12,0x95,0x12,0x13, | ||
6102 | 0x12,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x95, | ||
6103 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6104 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6105 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6106 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x96,0x98,0x95,0x95,0x98,0x98,0x98,0x94,0x01, | ||
6107 | 0x93,0x96,0x93,0x93,0x95,0x95,0x01,0x95,0x95,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6108 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6109 | 0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6110 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6111 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6112 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
6113 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6114 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6115 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x91,0x98,0x98,0x95, | ||
6116 | 0x96,0x95,0x95,0x96,0x96,0x95,0x01,0x96,0x98,0x98,0x98,0x96,0x9F,0x9F,0x9D,0x9D, | ||
6117 | 0x90,0x96,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
6118 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x13, | ||
6119 | 0x13,0x95,0x13,0x13,0x13,0x95,0x9D,0x95,0x13,0x13,0x13,0x95,0x95,0x13,0x14,0x13, | ||
6120 | 0x13,0x13,0x13,0x13,0x95,0x95,0x14,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x95,0x9D, | ||
6121 | 0x9D,0x9D,0x95,0x13,0x13,0x13,0x95,0x9D,0x9D,0x95,0x13,0x13,0x13,0x95,0x14,0x13, | ||
6122 | 0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x13,0x13,0x13,0x13,0x13,0x13,0x95,0x9D, | ||
6123 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6124 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6125 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6126 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x94,0x95,0x94,0x98,0x93,0x95,0x92,0x01,0x95, | ||
6127 | 0x96,0x95,0x95,0x95,0x98,0x95,0x94,0x93,0x95,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6128 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x98, | ||
6129 | 0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6130 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6131 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6132 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
6133 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6134 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6135 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x91,0x96,0x95,0x93, | ||
6136 | 0x98,0x93,0x96,0x99,0x01,0x98,0x99,0x98,0x98,0x96,0x98,0x98,0x9F,0x9F,0x9D,0x9D, | ||
6137 | 0x90,0x98,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
6138 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x15, | ||
6139 | 0x14,0x95,0x14,0x15,0x14,0x95,0x9D,0x95,0x14,0x14,0x14,0x95,0x9D,0x95,0x14,0x15, | ||
6140 | 0x14,0x14,0x14,0x95,0x9D,0x9D,0x95,0x15,0x14,0x14,0x14,0x15,0x14,0x15,0x14,0x95, | ||
6141 | 0x9D,0x9D,0x95,0x15,0x14,0x15,0x95,0x9D,0x9D,0x95,0x14,0x15,0x14,0x95,0x14,0x15, | ||
6142 | 0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x14,0x15,0x14,0x15,0x95,0x9D, | ||
6143 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6144 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6145 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6146 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x01,0x95,0x96,0x96,0x96,0x98,0x95,0x98, | ||
6147 | 0x95,0x01,0x94,0x93,0x94,0x93,0x94,0x92,0x95,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6148 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6149 | 0x17,0x17,0x98,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6150 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6151 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6152 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6153 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6154 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6155 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x96,0x98,0x95, | ||
6156 | 0x98,0x98,0x95,0x01,0x95,0x99,0x96,0x98,0x98,0x98,0x95,0x93,0x9F,0x9F,0x9D,0x9D, | ||
6157 | 0x90,0x98,0x99,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
6158 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x95,0x15,0x15, | ||
6159 | 0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x9D,0x9D,0x95,0x15, | ||
6160 | 0x15,0x15,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x15,0x15,0x15,0x95, | ||
6161 | 0x9D,0x9D,0x95,0x15,0x15,0x15,0x95,0x9D,0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15, | ||
6162 | 0x15,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x95, | ||
6163 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6164 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6165 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6166 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x95,0x98,0x96,0x98,0x98,0x95,0x98,0x98,0x98, | ||
6167 | 0x93,0x93,0x95,0x96,0x98,0x92,0x95,0x01,0x98,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6168 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6169 | 0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6170 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6171 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6172 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6173 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x98, | ||
6174 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6175 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x98,0x99,0x99, | ||
6176 | 0x95,0x98,0x01,0x01,0x98,0x98,0x98,0x98,0x98,0x95,0x98,0x95,0x9F,0x9F,0x9D,0x9D, | ||
6177 | 0x91,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
6178 | 0x99,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x16,0x16,0x15,0x95,0x95,0x95,0x15,0x16, | ||
6179 | 0x16,0x95,0x15,0x16,0x16,0x95,0x95,0x95,0x16,0x16,0x15,0x95,0x9D,0x9D,0x95,0x16, | ||
6180 | 0x16,0x16,0x95,0x9D,0x9D,0x95,0x15,0x16,0x16,0x95,0x95,0x95,0x16,0x16,0x15,0x95, | ||
6181 | 0x9D,0x9D,0x95,0x16,0x16,0x16,0x95,0x9D,0x9D,0x95,0x15,0x16,0x16,0x95,0x15,0x16, | ||
6182 | 0x16,0x95,0x95,0x95,0x16,0x16,0x15,0x95,0x16,0x16,0x15,0x95,0x16,0x16,0x15,0x16, | ||
6183 | 0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6184 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6185 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6186 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x98,0x96,0x01,0x9A,0x01,0x94,0x98,0x99,0x01, | ||
6187 | 0x95,0x95,0x95,0x95,0x01,0x01,0x94,0x98,0x98,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6188 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6189 | 0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6190 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6191 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6192 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6193 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6194 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6195 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x99,0x98,0x98, | ||
6196 | 0x95,0x98,0x98,0x98,0x99,0x98,0x98,0x97,0x95,0x01,0x98,0x96,0x9F,0x9F,0x9D,0x9D, | ||
6197 | 0x94,0x9B,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6198 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x95,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17, | ||
6199 | 0x17,0x95,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x95,0x9D,0x9D,0x95,0x17, | ||
6200 | 0x17,0x17,0x95,0x9D,0x9D,0x95,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x95, | ||
6201 | 0x9D,0x9D,0x95,0x17,0x17,0x16,0x95,0x9D,0x9D,0x95,0x17,0x17,0x17,0x95,0x17,0x17, | ||
6202 | 0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x95,0x17,0x17,0x17,0x95,0x95,0x16,0x17,0x17, | ||
6203 | 0x17,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6204 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6205 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6206 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x99,0x01,0x98,0x99,0x98,0x01,0x9A,0x9A,0x9A,0x98, | ||
6207 | 0x96,0x98,0x95,0x95,0x01,0x94,0x98,0x01,0x96,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6208 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x9D, | ||
6209 | 0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6210 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6211 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6212 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6213 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6214 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6215 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x91,0x98,0x98,0x99, | ||
6216 | 0x98,0x95,0x99,0x98,0x9A,0x95,0x94,0x98,0x95,0x94,0x96,0x01,0x9F,0x9F,0x9D,0x9D, | ||
6217 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6218 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x9D,0x95,0x18,0x17,0x18,0x17,0x18,0x17,0x18, | ||
6219 | 0x95,0x9D,0x95,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x9D,0x9D,0x9D,0x95,0x18, | ||
6220 | 0x17,0x18,0x95,0x9D,0x9D,0x9D,0x95,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x9D, | ||
6221 | 0x9D,0x9D,0x95,0x18,0x17,0x18,0x95,0x9D,0x9D,0x95,0x17,0x18,0x17,0x95,0x95,0x18, | ||
6222 | 0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x95,0x17,0x18,0x17,0x95,0x9D,0x95,0x17,0x18, | ||
6223 | 0x17,0x18,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6224 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6225 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6226 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x98,0x9A,0x95,0x98,0x01,0x95,0x96,0x98, | ||
6227 | 0x98,0x95,0x95,0x95,0x96,0x95,0x94,0x95,0x98,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6228 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98, | ||
6229 | 0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6230 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6231 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6232 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
6233 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6234 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6235 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x96, | ||
6236 | 0x01,0x98,0x96,0x94,0x92,0x95,0x95,0x95,0x98,0x92,0x8E,0x96,0x9F,0x9F,0x9D,0x9D, | ||
6237 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6238 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
6239 | 0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95, | ||
6240 | 0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D, | ||
6241 | 0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x95, | ||
6242 | 0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95, | ||
6243 | 0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6244 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6245 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6246 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x95,0x95,0x95,0x98,0x98,0x9A,0x01,0x99,0x98, | ||
6247 | 0x98,0x01,0x93,0x96,0x98,0x95,0x98,0x01,0x98,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6248 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D, | ||
6249 | 0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6250 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6251 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6252 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
6253 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6254 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6255 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x98, | ||
6256 | 0x98,0x98,0x95,0x95,0x98,0x92,0x94,0x95,0x95,0x95,0x96,0x01,0x9F,0x9F,0x9D,0x9D, | ||
6257 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6258 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6259 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6260 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6261 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6262 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6263 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6264 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6265 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6266 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x95,0x01,0x98,0x95,0x01,0x9A,0x98,0x9A,0x9B, | ||
6267 | 0x99,0x94,0x98,0x92,0x93,0x94,0x96,0x01,0x95,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6268 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6269 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9F, | ||
6270 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6271 | 0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6272 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
6273 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D, | ||
6274 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6275 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x98,0x96, | ||
6276 | 0x98,0x95,0x92,0x96,0x93,0x93,0x95,0x92,0x8E,0x96,0x8E,0x93,0x9F,0x9F,0x9D,0x9D, | ||
6277 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6278 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6279 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6280 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6281 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6282 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6283 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6284 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6285 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6286 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x99,0x95,0x98,0x98,0x9A,0x98,0x99,0x98,0x95, | ||
6287 | 0x98,0x01,0x93,0x93,0x94,0x94,0x01,0x98,0x94,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6288 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6289 | 0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6290 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6291 | 0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6292 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
6293 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98, | ||
6294 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6295 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x95,0x95, | ||
6296 | 0x8E,0x94,0x93,0x94,0x8E,0x92,0x94,0x95,0x94,0x94,0x95,0x95,0x99,0x95,0x95,0x95, | ||
6297 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94, | ||
6298 | 0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, | ||
6299 | 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92, | ||
6300 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
6301 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
6302 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
6303 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6304 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6305 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6306 | 0x90,0x90,0x90,0x90,0x90,0x90,0x94,0x98,0x96,0x99,0x98,0x95,0x98,0x01,0x96,0x01, | ||
6307 | 0x98,0x01,0x01,0x93,0x98,0x98,0x95,0x95,0x93,0x01,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6308 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6309 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6310 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6311 | 0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6312 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6313 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6314 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6315 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x8E,0x92, | ||
6316 | 0x93,0x8E,0x94,0x92,0x94,0x92,0x8E,0x94,0x95,0x96,0x94,0x95,0x98,0x92,0x01,0x98, | ||
6317 | 0x9A,0x98,0x98,0x96,0x99,0x98,0x99,0x98,0x96,0x95,0x95,0x96,0x94,0x98,0x96,0x98, | ||
6318 | 0x93,0x92,0x8E,0x01,0x96,0x94,0x92,0x98,0x98,0x95,0x93,0x01,0x94,0x92,0x01,0x94, | ||
6319 | 0x01,0x95,0x98,0x95,0x98,0x95,0x94,0x96,0x98,0x01,0x94,0x92,0x01,0x93,0x01,0x01, | ||
6320 | 0x94,0x96,0x96,0x96,0x95,0x95,0x98,0x92,0x93,0x98,0x95,0x98,0x95,0x92,0x95,0x93, | ||
6321 | 0x98,0x01,0x96,0x98,0x95,0x98,0x98,0x94,0x95,0x96,0x95,0x98,0x92,0x92,0x95,0x95, | ||
6322 | 0x98,0x95,0x92,0x95,0x8E,0x95,0x8E,0x95,0x94,0x92,0x94,0x96,0x96,0x01,0x96,0x94, | ||
6323 | 0x96,0x95,0x96,0x94,0x01,0x95,0x96,0x95,0x94,0x96,0x94,0x96,0x96,0x01,0x98,0x96, | ||
6324 | 0x94,0x98,0x95,0x01,0x95,0x98,0x01,0x92,0x94,0x01,0x97,0x96,0x98,0x01,0x95,0x95, | ||
6325 | 0x98,0x98,0x01,0x98,0x99,0x93,0x95,0x98,0x96,0x95,0x92,0x95,0x94,0x92,0x92,0x98, | ||
6326 | 0x99,0x98,0x98,0x98,0x98,0x95,0x01,0x01,0x96,0x99,0x95,0x94,0x01,0x96,0x92,0x94, | ||
6327 | 0x95,0x95,0x98,0x98,0x96,0x01,0x95,0x93,0x01,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6328 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6329 | 0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x9F, | ||
6330 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6331 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6332 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6333 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98, | ||
6334 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6335 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x8E,0x95, | ||
6336 | 0x92,0x94,0x93,0x92,0x95,0x95,0x98,0x96,0x95,0x01,0x94,0x98,0x98,0x99,0x98,0x95, | ||
6337 | 0x9A,0x98,0x98,0x01,0x98,0x95,0x95,0x92,0x92,0x96,0x8E,0x8E,0x96,0x94,0x94,0x98, | ||
6338 | 0x96,0x98,0x95,0x98,0x98,0x95,0x95,0x96,0x98,0x98,0x01,0x98,0x95,0x94,0x95,0x01, | ||
6339 | 0x98,0x96,0x96,0x98,0x01,0x96,0x95,0x96,0x94,0x98,0x98,0x95,0x94,0x98,0x01,0x95, | ||
6340 | 0x95,0x95,0x95,0x95,0x01,0x94,0x01,0x94,0x95,0x01,0x96,0x98,0x95,0x98,0x94,0x95, | ||
6341 | 0x96,0x95,0x96,0x96,0x01,0x98,0x96,0x95,0x96,0x95,0x95,0x95,0x92,0x8E,0x92,0x95, | ||
6342 | 0x93,0x8E,0x8E,0x92,0x98,0x98,0x92,0x94,0x93,0x96,0x95,0x98,0x95,0x98,0x98,0x98, | ||
6343 | 0x93,0x95,0x95,0x94,0x98,0x98,0x96,0x96,0x95,0x95,0x98,0x94,0x95,0x94,0x98,0x95, | ||
6344 | 0x98,0x98,0x98,0x01,0x95,0x98,0x98,0x95,0x98,0x98,0x98,0x99,0x98,0x98,0x98,0x98, | ||
6345 | 0x98,0x99,0x98,0x97,0x97,0x95,0x94,0x94,0x95,0x01,0x96,0x95,0x95,0x98,0x99,0x94, | ||
6346 | 0x96,0x95,0x96,0x95,0x94,0x97,0x95,0x95,0x95,0x01,0x98,0x01,0x01,0x98,0x98,0x98, | ||
6347 | 0x94,0x98,0x96,0x01,0x01,0x92,0x95,0x92,0x94,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6348 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6349 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6350 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6351 | 0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6352 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6353 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98, | ||
6354 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6355 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x8E,0x95,0x95, | ||
6356 | 0x94,0x94,0x96,0x96,0x01,0x95,0x95,0x98,0x98,0x01,0x9A,0x01,0x98,0x98,0x98,0x96, | ||
6357 | 0x98,0x98,0x98,0x96,0x98,0x92,0x93,0x95,0x92,0x96,0x98,0x94,0x95,0x98,0x96,0x98, | ||
6358 | 0x98,0x01,0x96,0x94,0x98,0x95,0x95,0x98,0x95,0x01,0x95,0x92,0x96,0x96,0x94,0x96, | ||
6359 | 0x01,0x98,0x01,0x98,0x95,0x95,0x01,0x98,0x95,0x94,0x96,0x94,0x01,0x01,0x94,0x98, | ||
6360 | 0x95,0x01,0x96,0x96,0x98,0x95,0x95,0x93,0x96,0x01,0x98,0x96,0x95,0x98,0x95,0x94, | ||
6361 | 0x01,0x94,0x92,0x96,0x94,0x98,0x98,0x98,0x96,0x98,0x96,0x94,0x94,0x8E,0x94,0x93, | ||
6362 | 0x8E,0x94,0x98,0x94,0x96,0x95,0x98,0x96,0x01,0x96,0x98,0x95,0x96,0x94,0x93,0x96, | ||
6363 | 0x96,0x98,0x96,0x98,0x92,0x95,0x96,0x95,0x95,0x96,0x01,0x94,0x98,0x01,0x95,0x98, | ||
6364 | 0x96,0x98,0x98,0x99,0x96,0x01,0x01,0x98,0x98,0x95,0x98,0x95,0x98,0x96,0x98,0x96, | ||
6365 | 0x98,0x01,0x98,0x95,0x92,0x98,0x96,0x96,0x98,0x01,0x96,0x99,0x95,0x98,0x94,0x96, | ||
6366 | 0x96,0x96,0x95,0x95,0x95,0x98,0x98,0x96,0x96,0x01,0x94,0x93,0x94,0x95,0x98,0x01, | ||
6367 | 0x95,0x92,0x92,0x91,0x94,0x95,0x95,0x96,0x93,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6368 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x98, | ||
6369 | 0x17,0x17,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6370 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6371 | 0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6372 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6373 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98, | ||
6374 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6375 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x95,0x01, | ||
6376 | 0x95,0x01,0x95,0x98,0x01,0x96,0x98,0x98,0x98,0x94,0x95,0x98,0x98,0x96,0x01,0x98, | ||
6377 | 0x95,0x96,0x96,0x94,0x93,0x01,0x98,0x94,0x98,0x94,0x96,0x98,0x01,0x96,0x96,0x94, | ||
6378 | 0x95,0x94,0x9A,0x96,0x99,0x98,0x98,0x01,0x96,0x98,0x95,0x96,0x96,0x96,0x98,0x96, | ||
6379 | 0x95,0x96,0x96,0x95,0x95,0x95,0x96,0x01,0x01,0x95,0x96,0x95,0x94,0x96,0x96,0x94, | ||
6380 | 0x95,0x96,0x98,0x95,0x98,0x96,0x98,0x96,0x98,0x98,0x96,0x95,0x95,0x95,0x95,0x98, | ||
6381 | 0x93,0x98,0x98,0x92,0x95,0x01,0x98,0x01,0x94,0x94,0x93,0x95,0x01,0x95,0x92,0x8E, | ||
6382 | 0x01,0x96,0x95,0x94,0x96,0x96,0x98,0x96,0x96,0x01,0x96,0x95,0x94,0x95,0x94,0x94, | ||
6383 | 0x98,0x94,0x95,0x01,0x94,0x95,0x96,0x93,0x94,0x97,0x98,0x98,0x98,0x99,0x98,0x95, | ||
6384 | 0x98,0x9A,0x9A,0x9A,0x99,0x9A,0x98,0x96,0x98,0x98,0x96,0x98,0x96,0x94,0x95,0x98, | ||
6385 | 0x96,0x95,0x96,0x01,0x98,0x01,0x98,0x01,0x94,0x98,0x01,0x98,0x98,0x99,0x01,0x98, | ||
6386 | 0x93,0x01,0x98,0x94,0x98,0x96,0x98,0x98,0x98,0x98,0x97,0x95,0x01,0x01,0x98,0x96, | ||
6387 | 0x92,0x92,0x95,0x96,0x01,0x95,0x93,0x96,0x93,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6388 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98, | ||
6389 | 0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6390 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6391 | 0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6392 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
6393 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6394 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6395 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x95,0x94, | ||
6396 | 0x96,0x99,0x98,0x99,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x95,0x94,0x01,0x94, | ||
6397 | 0x96,0x93,0x95,0x93,0x01,0x94,0x95,0x95,0x94,0x96,0x93,0x98,0x98,0x94,0x95,0x98, | ||
6398 | 0x95,0x95,0x98,0x98,0x95,0x98,0x98,0x98,0x9A,0x94,0x98,0x98,0x98,0x98,0x01,0x98, | ||
6399 | 0x01,0x98,0x98,0x96,0x96,0x94,0x96,0x01,0x98,0x01,0x98,0x96,0x01,0x96,0x96,0x93, | ||
6400 | 0x98,0x94,0x95,0x98,0x98,0x96,0x98,0x96,0x94,0x95,0x94,0x95,0x96,0x96,0x92,0x96, | ||
6401 | 0x96,0x94,0x95,0x95,0x94,0x95,0x94,0x98,0x98,0x96,0x94,0x8E,0x94,0x95,0x01,0x93, | ||
6402 | 0x92,0x96,0x94,0x98,0x95,0x98,0x98,0x01,0x94,0x96,0x94,0x98,0x95,0x98,0x96,0x98, | ||
6403 | 0x95,0x98,0x96,0x95,0x98,0x98,0x98,0x93,0x94,0x98,0x96,0x98,0x96,0x95,0x95,0x98, | ||
6404 | 0x01,0x01,0x98,0x98,0x98,0x98,0x01,0x01,0x96,0x99,0x99,0x98,0x96,0x98,0x99,0x96, | ||
6405 | 0x01,0x01,0x96,0x98,0x95,0x98,0x95,0x98,0x98,0x01,0x95,0x9A,0x98,0x98,0x96,0x95, | ||
6406 | 0x01,0x98,0x98,0x95,0x96,0x98,0x94,0x98,0x96,0x98,0x98,0x95,0x96,0x98,0x99,0x95, | ||
6407 | 0x98,0x94,0x93,0x91,0x92,0x98,0x95,0x93,0x91,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6408 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D, | ||
6409 | 0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9A, | ||
6410 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6411 | 0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6412 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
6413 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9D, | ||
6414 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6415 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x95,0x98, | ||
6416 | 0x01,0x01,0x98,0x98,0x98,0x99,0x98,0x96,0x98,0x96,0x94,0x98,0x9F,0x9F,0x9F,0x9F, | ||
6417 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6418 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6419 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6420 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6421 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6422 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6423 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6424 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6425 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6426 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x97,0x98,0x98,0x96,0x01,0x98,0x98,0x01,0x99,0x98,0x01, | ||
6427 | 0x98,0x92,0x96,0x92,0x92,0x93,0x01,0x94,0x95,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6428 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9D, | ||
6429 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6430 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6431 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6432 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
6433 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6434 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6435 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x98,0x95, | ||
6436 | 0x99,0x96,0x96,0x98,0x98,0x96,0x98,0x98,0x96,0x01,0x95,0x01,0x9F,0x9F,0x9F,0x9F, | ||
6437 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6438 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6439 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6440 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6441 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6442 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6443 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6444 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6445 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6446 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x94,0x9A,0x95,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x97, | ||
6447 | 0x95,0x93,0x94,0x93,0x96,0x01,0x98,0x95,0x96,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6448 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6449 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6450 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6451 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6452 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
6453 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6454 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6455 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x95,0x98, | ||
6456 | 0x98,0x98,0x98,0x95,0x98,0x94,0x01,0x96,0x01,0x98,0x98,0x96,0x9F,0x9F,0x9D,0x9D, | ||
6457 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6458 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6459 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6460 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6461 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6462 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6463 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6464 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6465 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6466 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x91,0x99,0x98,0x98,0x01,0x01,0x9A,0x01,0x98,0x94,0x98, | ||
6467 | 0x93,0x94,0x94,0x95,0x93,0x98,0x01,0x96,0x96,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6468 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6469 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6470 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6471 | 0x98,0x17,0x17,0x98,0x98,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6472 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6473 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x98,0x9D,0x98, | ||
6474 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6475 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x95,0x96, | ||
6476 | 0x98,0x96,0x01,0x98,0x01,0x98,0x95,0x94,0x96,0x95,0x92,0x95,0x9F,0x9F,0x9D,0x9D, | ||
6477 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6478 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
6479 | 0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D, | ||
6480 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x95,0x95,0x95,0x95,0x95,0x95, | ||
6481 | 0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6482 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6483 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6484 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6485 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6486 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x99,0x98,0x01,0x98,0x98,0x9A,0x99,0x98,0x98,0x9A, | ||
6487 | 0x94,0x98,0x93,0x01,0x95,0x98,0x92,0x96,0x98,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6488 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98, | ||
6489 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6490 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6491 | 0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6492 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6493 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x98, | ||
6494 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6495 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x95,0x96, | ||
6496 | 0x94,0x96,0x98,0x94,0x01,0x95,0x94,0x92,0x8E,0x8E,0x93,0x94,0x9F,0x9F,0x9D,0x9D, | ||
6497 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6498 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10, | ||
6499 | 0x95,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x95, | ||
6500 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x10,0x10,0x95,0x10,0x10,0x10,0x10,0x10,0x10, | ||
6501 | 0x10,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6502 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6503 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6504 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6505 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6506 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x99,0x98,0x98,0x98,0x98,0x98,0x96,0x01,0x01,0x98, | ||
6507 | 0x96,0x93,0x95,0x01,0x98,0x95,0x95,0x92,0x94,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6508 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6509 | 0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6510 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6511 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6512 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6513 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6514 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6515 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x98,0x95, | ||
6516 | 0x96,0x94,0x8E,0x92,0x8E,0x92,0x96,0x92,0x93,0x95,0x01,0x95,0x9F,0x9F,0x9D,0x9D, | ||
6517 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6518 | 0x90,0x90,0x91,0x94,0x9F,0x9D,0x9D,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11, | ||
6519 | 0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x95, | ||
6520 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11, | ||
6521 | 0x10,0x11,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6522 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6523 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6524 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6525 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6526 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x99,0x99,0x01,0x98,0x01,0x92,0x92,0x8D, | ||
6527 | 0x94,0x01,0x95,0x95,0x93,0x93,0x95,0x92,0x95,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6528 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6529 | 0x9D,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9F, | ||
6530 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6531 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6532 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6533 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6534 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6535 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x8E,0x95, | ||
6536 | 0x95,0x95,0x92,0x01,0x93,0x01,0x94,0x01,0x01,0x94,0x01,0x01,0x9F,0x9F,0x9D,0x9D, | ||
6537 | 0x90,0x90,0x93,0x96,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
6538 | 0x99,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x95,0x12,0x12,0x12,0x95,0x95,0x95,0x12,0x11, | ||
6539 | 0x12,0x95,0x12,0x11,0x12,0x95,0x95,0x95,0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x95, | ||
6540 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x12,0x11,0x12,0x95,0x12,0x11,0x12,0x95,0x95,0x95, | ||
6541 | 0x12,0x12,0x12,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6542 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6543 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6544 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6545 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6546 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x99,0x98,0x97,0x95,0x96,0x92,0x94,0x94,0x8D, | ||
6547 | 0x92,0x98,0x94,0x95,0x94,0x96,0x92,0x98,0x94,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6548 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6549 | 0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D, | ||
6550 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6551 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6552 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
6553 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6554 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6555 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x95,0x95, | ||
6556 | 0x95,0x95,0x95,0x01,0x93,0x01,0x95,0x96,0x95,0x95,0x92,0x96,0x9F,0x9F,0x9D,0x9D, | ||
6557 | 0x90,0x93,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
6558 | 0x00,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x95,0x12,0x13,0x12,0x95,0x95,0x95,0x12,0x13, | ||
6559 | 0x12,0x95,0x12,0x13,0x12,0x95,0x9D,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x95, | ||
6560 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x95,0x95,0x95, | ||
6561 | 0x12,0x13,0x12,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6562 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6563 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6564 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6565 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6566 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x01,0x01,0x93,0x95,0x94,0x95,0x93,0x93,0x01, | ||
6567 | 0x94,0x93,0x96,0x93,0x95,0x95,0x95,0x01,0x92,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6568 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6569 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9A, | ||
6570 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6571 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6572 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
6573 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6574 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6575 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x01,0x94, | ||
6576 | 0x98,0x95,0x95,0x94,0x93,0x94,0x95,0x98,0x93,0x93,0x01,0x01,0x9F,0x9F,0x9D,0x9D, | ||
6577 | 0x90,0x96,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
6578 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x13, | ||
6579 | 0x13,0x95,0x13,0x13,0x13,0x95,0x9D,0x95,0x13,0x13,0x13,0x95,0x13,0x13,0x14,0x95, | ||
6580 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x13,0x13,0x95,0x13,0x13,0x13,0x13,0x14,0x13, | ||
6581 | 0x13,0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6582 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6583 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6584 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6585 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6586 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x95,0x93,0x92,0x01,0x93,0x92,0x98,0x98,0x95, | ||
6587 | 0x92,0x95,0x92,0x93,0x94,0x94,0x8E,0x93,0x96,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6588 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9D, | ||
6589 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6590 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6591 | 0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6592 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
6593 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D, | ||
6594 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6595 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x92,0x94, | ||
6596 | 0x95,0x95,0x94,0x95,0x92,0x95,0x95,0x96,0x95,0x96,0x92,0x98,0x9F,0x9F,0x9D,0x9D, | ||
6597 | 0x90,0x98,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
6598 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x14,0x14,0x14,0x15,0x14,0x15,0x14,0x15, | ||
6599 | 0x14,0x95,0x14,0x15,0x14,0x95,0x9D,0x95,0x14,0x14,0x14,0x95,0x14,0x15,0x14,0x95, | ||
6600 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x15,0x14,0x95,0x14,0x15,0x14,0x15,0x14,0x15, | ||
6601 | 0x14,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6602 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6603 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6604 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6605 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6606 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x92,0x95,0x8E,0x95,0x94,0x95,0x96,0x01,0x94,0x98, | ||
6607 | 0x95,0x93,0x93,0x95,0x94,0x94,0x01,0x01,0x92,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6608 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6609 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6610 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6611 | 0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6612 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
6613 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98, | ||
6614 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6615 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x94,0x98, | ||
6616 | 0x96,0x95,0x01,0x95,0x98,0x94,0x92,0x95,0x96,0x93,0x95,0x95,0x9F,0x9F,0x9D,0x9D, | ||
6617 | 0x90,0x98,0x99,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
6618 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x15,0x15,0x15,0x95,0x95,0x95,0x15,0x15, | ||
6619 | 0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95, | ||
6620 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95,0x95,0x95, | ||
6621 | 0x15,0x15,0x15,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6622 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6623 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6624 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6625 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6626 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x8E,0x92,0x94,0x01,0x95,0x95,0x01,0x01,0x98,0x01, | ||
6627 | 0x92,0x95,0x93,0x95,0x93,0x95,0x91,0x92,0x95,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6628 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6629 | 0x17,0x17,0x98,0x98,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6630 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6631 | 0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6632 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6633 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x98, | ||
6634 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6635 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x92,0x95,0x95, | ||
6636 | 0x93,0x94,0x94,0x94,0x95,0x91,0x94,0x95,0x95,0x92,0x98,0x01,0x9F,0x9F,0x9D,0x9D, | ||
6637 | 0x91,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
6638 | 0x99,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x16,0x16,0x15,0x95,0x9D,0x95,0x15,0x16, | ||
6639 | 0x16,0x95,0x15,0x16,0x16,0x95,0x95,0x95,0x16,0x16,0x15,0x95,0x16,0x16,0x15,0x95, | ||
6640 | 0x95,0x95,0x95,0x95,0x95,0x95,0x15,0x16,0x16,0x95,0x15,0x16,0x16,0x95,0x95,0x95, | ||
6641 | 0x16,0x16,0x15,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6642 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6643 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6644 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6645 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6646 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x93,0x98,0x01,0x93,0x01,0x98,0x96,0x96,0x97, | ||
6647 | 0x92,0x96,0x96,0x95,0x92,0x92,0x8E,0x95,0x8E,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6648 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98, | ||
6649 | 0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6650 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6651 | 0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6652 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6653 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x98, | ||
6654 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6655 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x94,0x01, | ||
6656 | 0x98,0x92,0x96,0x94,0x94,0x95,0x94,0x95,0x98,0x95,0x94,0x94,0x9F,0x9F,0x9D,0x9D, | ||
6657 | 0x94,0x9B,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6658 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x95,0x17,0x17,0x17,0x95,0x9D,0x95,0x17,0x17, | ||
6659 | 0x17,0x95,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x95,0x17,0x16,0x17,0x17, | ||
6660 | 0x17,0x17,0x17,0x17,0x17,0x95,0x17,0x17,0x17,0x95,0x17,0x17,0x17,0x16,0x17,0x17, | ||
6661 | 0x17,0x17,0x17,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6662 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6663 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6664 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6665 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6666 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x96,0x01,0x98,0x96,0x96,0x01,0x01,0x95,0x95, | ||
6667 | 0x92,0x95,0x92,0x94,0x92,0x8E,0x93,0x8E,0x95,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6668 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98, | ||
6669 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6670 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6671 | 0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6672 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6673 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6674 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6675 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x01,0x01, | ||
6676 | 0x95,0x93,0x92,0x95,0x01,0x95,0x96,0x98,0x95,0x94,0x01,0x98,0x9F,0x9F,0x9D,0x9D, | ||
6677 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6678 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x95,0x17,0x18,0x17,0x95,0x9D,0x95,0x17,0x18, | ||
6679 | 0x17,0x95,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x95,0x17,0x18,0x17,0x18, | ||
6680 | 0x17,0x18,0x17,0x18,0x17,0x95,0x17,0x18,0x17,0x95,0x17,0x18,0x17,0x18,0x17,0x18, | ||
6681 | 0x17,0x18,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6682 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6683 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6684 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6685 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6686 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x95,0x95,0x98,0x01,0x96,0x95,0x96,0x98,0x96, | ||
6687 | 0x99,0x8E,0x01,0x92,0x01,0x94,0x94,0x96,0x93,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6688 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98, | ||
6689 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6690 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6691 | 0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6692 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6693 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6694 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6695 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x92,0x95,0x98, | ||
6696 | 0x94,0x92,0x94,0x92,0x01,0x95,0x93,0x92,0x95,0x93,0x94,0x01,0x9F,0x9F,0x9D,0x9D, | ||
6697 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6698 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95, | ||
6699 | 0x95,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95, | ||
6700 | 0x95,0x95,0x95,0x95,0x95,0x9D,0x95,0x95,0x95,0x9D,0x95,0x95,0x95,0x95,0x95,0x95, | ||
6701 | 0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6702 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6703 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6704 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6705 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6706 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x98,0x01,0x98,0x01,0x96,0x98,0x95,0x98, | ||
6707 | 0x92,0x94,0x8E,0x96,0x91,0x95,0x92,0x95,0x98,0x01,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6708 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6709 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6710 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6711 | 0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6712 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
6713 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6714 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6715 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x92,0x01, | ||
6716 | 0x98,0x95,0x93,0x93,0x98,0x95,0x95,0x94,0x94,0x93,0x98,0x94,0x9F,0x9F,0x9D,0x9D, | ||
6717 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6718 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6719 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6720 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6721 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6722 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6723 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6724 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6725 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6726 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x95,0x96,0x98,0x01,0x01,0x94,0x98,0x95,0x98, | ||
6727 | 0x8E,0x8E,0x95,0x01,0x93,0x95,0x92,0x92,0x95,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6728 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6729 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6730 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6731 | 0x9D,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6732 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
6733 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6734 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6735 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x95,0x98, | ||
6736 | 0x94,0x01,0x95,0x94,0x94,0x96,0x95,0x92,0x98,0x93,0x96,0x98,0x9F,0x9F,0x9D,0x9D, | ||
6737 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6738 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6739 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6740 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6741 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6742 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6743 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6744 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6745 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6746 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x98,0x01,0x95,0x01,0x96,0x01,0x01,0x98,0x01, | ||
6747 | 0x8E,0x92,0x96,0x01,0x94,0x92,0x95,0x96,0x93,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6748 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9D, | ||
6749 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6750 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6751 | 0x9D,0x98,0x98,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6752 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
6753 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x98,0x98,0x9D, | ||
6754 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6755 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x96,0x91, | ||
6756 | 0x94,0x96,0x95,0x93,0x95,0x93,0x95,0x95,0x95,0x94,0x93,0x95,0x99,0x95,0x95,0x95, | ||
6757 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94, | ||
6758 | 0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, | ||
6759 | 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92, | ||
6760 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
6761 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
6762 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
6763 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6764 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6765 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6766 | 0x90,0x90,0x90,0x90,0x90,0x90,0x94,0x98,0x98,0x98,0x98,0x98,0x96,0x01,0x01,0x96, | ||
6767 | 0x94,0x92,0x92,0x91,0x8E,0x8E,0x94,0x95,0x8E,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6768 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6769 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6770 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6771 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6772 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
6773 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6774 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6775 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x94,0x93, | ||
6776 | 0x96,0x92,0x94,0x01,0x01,0x96,0x94,0x96,0x93,0x95,0x98,0x01,0x95,0x96,0x92,0x93, | ||
6777 | 0x93,0x93,0x98,0x93,0x95,0x01,0x93,0x93,0x93,0x95,0x95,0x95,0x01,0x98,0x98,0x01, | ||
6778 | 0x01,0x95,0x96,0x96,0x96,0x96,0x98,0x98,0x98,0x98,0x94,0x95,0x96,0x94,0x98,0x98, | ||
6779 | 0x01,0x94,0x95,0x01,0x93,0x96,0x96,0x95,0x95,0x96,0x8E,0x95,0x93,0x96,0x01,0x95, | ||
6780 | 0x95,0x92,0x8E,0x96,0x96,0x98,0x96,0x98,0x01,0x96,0x94,0x98,0x96,0x01,0x98,0x98, | ||
6781 | 0x98,0x98,0x98,0x95,0x98,0x95,0x96,0x98,0x99,0x98,0x98,0x98,0x9A,0x98,0x98,0x95, | ||
6782 | 0x9A,0x96,0x9B,0x99,0x98,0x9B,0x9B,0x9B,0x98,0x98,0x98,0x98,0x98,0x01,0x99,0x96, | ||
6783 | 0x98,0x99,0x98,0x98,0x9B,0x01,0x99,0x95,0x01,0x98,0x94,0x95,0x9A,0x98,0x01,0x98, | ||
6784 | 0x98,0x98,0x98,0x98,0x01,0x91,0x93,0x95,0x93,0x94,0x96,0x94,0x95,0x95,0x94,0x98, | ||
6785 | 0x96,0x94,0x98,0x96,0x94,0x95,0x01,0x94,0x93,0x01,0x98,0x95,0x92,0x98,0x94,0x98, | ||
6786 | 0x98,0x98,0x98,0x98,0x98,0x98,0x01,0x98,0x93,0x93,0x01,0x01,0x96,0x98,0x94,0x95, | ||
6787 | 0x93,0x8E,0x8E,0x8E,0x96,0x95,0x92,0x98,0x95,0x01,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6788 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6789 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6790 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6791 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6792 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6793 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
6794 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6795 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x94, | ||
6796 | 0x93,0x98,0x01,0x01,0x95,0x95,0x94,0x92,0x94,0x94,0x96,0x95,0x95,0x95,0x98,0x98, | ||
6797 | 0x96,0x94,0x94,0x01,0x93,0x01,0x95,0x01,0x96,0x96,0x96,0x95,0x01,0x96,0x94,0x95, | ||
6798 | 0x98,0x96,0x01,0x96,0x98,0x93,0x98,0x98,0x93,0x95,0x01,0x95,0x95,0x96,0x98,0x98, | ||
6799 | 0x95,0x96,0x98,0x96,0x92,0x96,0x93,0x93,0x92,0x92,0x8E,0x96,0x01,0x95,0x98,0x95, | ||
6800 | 0x93,0x93,0x94,0x94,0x98,0x95,0x98,0x98,0x96,0x96,0x93,0x96,0x01,0x98,0x96,0x95, | ||
6801 | 0x94,0x01,0x98,0x96,0x98,0x98,0x98,0x98,0x98,0x92,0x95,0x98,0x96,0x98,0x93,0x94, | ||
6802 | 0x96,0x98,0x96,0x99,0x98,0x99,0x98,0x95,0x98,0x95,0x01,0x98,0x98,0x98,0x9A,0x95, | ||
6803 | 0x9A,0x9B,0x98,0x99,0x01,0x98,0x98,0x01,0x98,0x98,0x98,0x95,0x98,0x01,0x98,0x96, | ||
6804 | 0x98,0x96,0x94,0x93,0x95,0x93,0x95,0x01,0x94,0x94,0x98,0x98,0x95,0x01,0x96,0x98, | ||
6805 | 0x01,0x01,0x95,0x98,0x96,0x01,0x01,0x98,0x94,0x98,0x98,0x96,0x98,0x01,0x98,0x95, | ||
6806 | 0x94,0x95,0x98,0x98,0x96,0x94,0x98,0x98,0x96,0x96,0x01,0x98,0x98,0x95,0x95,0x97, | ||
6807 | 0x8E,0x94,0x96,0x93,0x96,0x95,0x95,0x95,0x95,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6808 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6809 | 0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6810 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6811 | 0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6812 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6813 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98, | ||
6814 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6815 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x98,0x95, | ||
6816 | 0x96,0x95,0x96,0x98,0x01,0x01,0x98,0x01,0x98,0x01,0x96,0x94,0x01,0x01,0x01,0x01, | ||
6817 | 0x01,0x96,0x98,0x96,0x95,0x98,0x98,0x98,0x96,0x98,0x98,0x94,0x01,0x01,0x95,0x95, | ||
6818 | 0x94,0x95,0x93,0x94,0x98,0x01,0x95,0x01,0x01,0x95,0x98,0x98,0x94,0x98,0x95,0x96, | ||
6819 | 0x96,0x96,0x96,0x92,0x91,0x95,0x92,0x8E,0x95,0x93,0x96,0x95,0x95,0x95,0x95,0x94, | ||
6820 | 0x92,0x95,0x95,0x98,0x96,0x98,0x96,0x01,0x94,0x95,0x01,0x95,0x95,0x98,0x92,0x98, | ||
6821 | 0x01,0x98,0x92,0x01,0x95,0x98,0x98,0x98,0x95,0x92,0x01,0x96,0x98,0x92,0x98,0x95, | ||
6822 | 0x93,0x98,0x98,0x01,0x01,0x01,0x98,0x98,0x95,0x97,0x98,0x01,0x98,0x95,0x98,0x9A, | ||
6823 | 0x96,0x98,0x95,0x99,0x98,0x98,0x99,0x98,0x98,0x01,0x98,0x98,0x96,0x01,0x98,0x93, | ||
6824 | 0x95,0x98,0x93,0x92,0x8E,0x8E,0x98,0x98,0x95,0x98,0x94,0x92,0x94,0x98,0x95,0x96, | ||
6825 | 0x96,0x01,0x96,0x01,0x94,0x98,0x94,0x98,0x94,0x98,0x94,0x98,0x93,0x01,0x96,0x96, | ||
6826 | 0x01,0x98,0x98,0x01,0x98,0x98,0x98,0x98,0x95,0x98,0x95,0x95,0x94,0x98,0x98,0x98, | ||
6827 | 0x92,0x96,0x92,0x92,0x98,0x93,0x95,0x92,0x92,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6828 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
6829 | 0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6830 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6831 | 0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6832 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6833 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6834 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6835 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x96,0x96, | ||
6836 | 0x98,0x98,0x98,0x95,0x95,0x95,0x94,0x94,0x95,0x98,0x95,0x98,0x98,0x94,0x96,0x98, | ||
6837 | 0x01,0x96,0x98,0x98,0x96,0x98,0x98,0x98,0x96,0x98,0x94,0x96,0x95,0x96,0x95,0x95, | ||
6838 | 0x01,0x95,0x01,0x96,0x96,0x98,0x96,0x96,0x98,0x92,0x95,0x98,0x95,0x98,0x94,0x95, | ||
6839 | 0x96,0x95,0x8E,0x92,0x93,0x95,0x93,0x98,0x95,0x95,0x96,0x95,0x95,0x95,0x94,0x94, | ||
6840 | 0x95,0x92,0x01,0x95,0x96,0x96,0x96,0x96,0x98,0x94,0x01,0x01,0x95,0x95,0x96,0x96, | ||
6841 | 0x95,0x95,0x95,0x98,0x94,0x96,0x96,0x96,0x94,0x98,0x93,0x98,0x01,0x95,0x95,0x98, | ||
6842 | 0x01,0x98,0x01,0x96,0x01,0x95,0x01,0x95,0x98,0x96,0x98,0x98,0x01,0x98,0x98,0x98, | ||
6843 | 0x98,0x98,0x98,0x96,0x01,0x95,0x01,0x98,0x98,0x95,0x95,0x94,0x95,0x92,0x96,0x96, | ||
6844 | 0x8E,0x92,0x92,0x95,0x92,0x8E,0x93,0x01,0x92,0x94,0x98,0x01,0x98,0x98,0x95,0x95, | ||
6845 | 0x98,0x98,0x95,0x98,0x01,0x98,0x95,0x96,0x96,0x98,0x95,0x95,0x95,0x96,0x98,0x96, | ||
6846 | 0x98,0x96,0x96,0x98,0x98,0x98,0x01,0x93,0x94,0x95,0x95,0x01,0x98,0x01,0x01,0x98, | ||
6847 | 0x92,0x95,0x01,0x96,0x96,0x94,0x95,0x98,0x96,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6848 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98, | ||
6849 | 0x17,0x17,0x98,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6850 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6851 | 0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6852 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6853 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98, | ||
6854 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6855 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x92,0x98,0x98, | ||
6856 | 0x92,0x95,0x98,0x95,0x95,0x96,0x92,0x93,0x96,0x98,0x95,0x96,0x96,0x98,0x98,0x95, | ||
6857 | 0x98,0x95,0x99,0x01,0x96,0x01,0x96,0x01,0x98,0x96,0x95,0x01,0x95,0x98,0x01,0x93, | ||
6858 | 0x98,0x96,0x96,0x94,0x96,0x96,0x95,0x96,0x92,0x94,0x95,0x98,0x92,0x92,0x98,0x94, | ||
6859 | 0x93,0x8E,0x8E,0x92,0x93,0x95,0x01,0x94,0x95,0x95,0x95,0x94,0x92,0x95,0x93,0x93, | ||
6860 | 0x94,0x95,0x98,0x95,0x98,0x95,0x95,0x95,0x01,0x96,0x96,0x93,0x96,0x95,0x98,0x94, | ||
6861 | 0x95,0x01,0x98,0x96,0x95,0x98,0x98,0x96,0x95,0x92,0x96,0x01,0x96,0x93,0x95,0x98, | ||
6862 | 0x98,0x98,0x9A,0x98,0x96,0x95,0x96,0x01,0x98,0x98,0x94,0x98,0x01,0x98,0x9A,0x99, | ||
6863 | 0x99,0x98,0x98,0x96,0x95,0x98,0x01,0x01,0x01,0x96,0x01,0x92,0x92,0x8E,0x93,0x94, | ||
6864 | 0x95,0x93,0x8E,0x8E,0x92,0x94,0x94,0x95,0x01,0x94,0x95,0x96,0x98,0x96,0x95,0x93, | ||
6865 | 0x93,0x95,0x92,0x95,0x96,0x98,0x95,0x95,0x95,0x96,0x94,0x98,0x94,0x01,0x01,0x94, | ||
6866 | 0x96,0x98,0x98,0x98,0x01,0x96,0x01,0x98,0x01,0x94,0x98,0x01,0x96,0x98,0x98,0x98, | ||
6867 | 0x99,0x98,0x98,0x95,0x98,0x94,0x95,0x92,0x92,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6868 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x98, | ||
6869 | 0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6870 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6871 | 0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6872 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
6873 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98, | ||
6874 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
6875 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x01, | ||
6876 | 0x96,0x98,0x98,0x01,0x01,0x01,0x97,0x98,0x94,0x94,0x98,0x96,0x9F,0x9F,0x9F,0x9F, | ||
6877 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6878 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6879 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6880 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6881 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6882 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6883 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6884 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6885 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6886 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x97,0x98,0x98,0x01,0x98,0x92,0x01,0x01,0x95,0x95,0x97, | ||
6887 | 0x98,0x94,0x95,0x95,0x01,0x96,0x98,0x93,0x01,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6888 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6889 | 0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6890 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6891 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6892 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
6893 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D, | ||
6894 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
6895 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x99,0x98, | ||
6896 | 0x96,0x96,0x98,0x98,0x01,0x98,0x98,0x98,0x98,0x98,0x98,0x99,0x9F,0x9F,0x9F,0x9F, | ||
6897 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6898 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6899 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6900 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6901 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6902 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6903 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6904 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6905 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
6906 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x94,0x95,0x96,0x01,0x94,0x98,0x98,0x98,0x96,0x98,0x01, | ||
6907 | 0x95,0x95,0x96,0x01,0x94,0x96,0x98,0x95,0x95,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6908 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6909 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6910 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6911 | 0x9D,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
6912 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
6913 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
6914 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6915 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x01, | ||
6916 | 0x98,0x95,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x99,0x98,0x9F,0x9F,0x9D,0x9D, | ||
6917 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6918 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6919 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6920 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6921 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6922 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6923 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6924 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6925 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6926 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x91,0x98,0x98,0x01,0x98,0x95,0x01,0x98,0x99,0x98,0x9B, | ||
6927 | 0x96,0x98,0x96,0x94,0x95,0x93,0x93,0x95,0x93,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6928 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6929 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6930 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6931 | 0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
6932 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
6933 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
6934 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6935 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x96,0x94, | ||
6936 | 0x95,0x98,0x96,0x95,0x96,0x98,0x96,0x01,0x98,0x98,0x94,0x94,0x9F,0x9F,0x9D,0x9D, | ||
6937 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6938 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
6939 | 0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D, | ||
6940 | 0x9D,0x9D,0x95,0x95,0x95,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D, | ||
6941 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95, | ||
6942 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D, | ||
6943 | 0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95, | ||
6944 | 0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
6945 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x95,0x95,0x95,0x95,0x95,0x95, | ||
6946 | 0x95,0x95,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x99,0x98,0x95,0x98,0x01,0x95,0x95,0x01, | ||
6947 | 0x96,0x95,0x93,0x96,0x93,0x01,0x92,0x93,0x94,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6948 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98, | ||
6949 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
6950 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6951 | 0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6952 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6953 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
6954 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6955 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x95,0x01, | ||
6956 | 0x95,0x98,0x01,0x94,0x96,0x96,0x95,0x92,0x98,0x96,0x01,0x96,0x9F,0x9F,0x9D,0x9D, | ||
6957 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6958 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10, | ||
6959 | 0x95,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x95, | ||
6960 | 0x9D,0x95,0x10,0x10,0x10,0x95,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x95, | ||
6961 | 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10, | ||
6962 | 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x95,0x9D,0x9D,0x9D, | ||
6963 | 0x9D,0x9D,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10, | ||
6964 | 0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, | ||
6965 | 0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x10,0x10,0x10,0x10,0x10,0x10, | ||
6966 | 0x10,0x10,0x95,0x9D,0x9D,0x90,0x98,0x98,0x98,0x98,0x96,0x98,0x01,0x95,0x96,0x96, | ||
6967 | 0x99,0x94,0x96,0x01,0x95,0x92,0x92,0x98,0x98,0x01,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6968 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98, | ||
6969 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
6970 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6971 | 0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6972 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6973 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x98, | ||
6974 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6975 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x94,0x95, | ||
6976 | 0x94,0x93,0x01,0x98,0x95,0x96,0x96,0x98,0x96,0x94,0x01,0x96,0x9F,0x9F,0x9D,0x9D, | ||
6977 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
6978 | 0x90,0x90,0x91,0x94,0x9F,0x9D,0x9D,0x95,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10, | ||
6979 | 0x11,0x95,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x95,0x11,0x10,0x11,0x95, | ||
6980 | 0x9D,0x95,0x11,0x10,0x11,0x95,0x11,0x10,0x11,0x10,0x95,0x95,0x11,0x10,0x11,0x95, | ||
6981 | 0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x10, | ||
6982 | 0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x95,0x9D,0x9D,0x9D, | ||
6983 | 0x9D,0x9D,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11,0x10, | ||
6984 | 0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10, | ||
6985 | 0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x95,0x11,0x10,0x11,0x10,0x11,0x10, | ||
6986 | 0x11,0x10,0x11,0x95,0x9D,0x90,0x98,0x93,0x01,0x96,0x95,0x01,0x98,0x98,0x01,0x94, | ||
6987 | 0x95,0x98,0x93,0x92,0x93,0x93,0x98,0x93,0x95,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
6988 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6989 | 0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6990 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
6991 | 0x9D,0x9D,0x9D,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
6992 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
6993 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x17,0x17,0x98, | ||
6994 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
6995 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x95,0x01, | ||
6996 | 0x94,0x93,0x95,0x92,0x93,0x95,0x01,0x98,0x95,0x92,0x93,0x91,0x9F,0x9F,0x9D,0x9D, | ||
6997 | 0x90,0x90,0x93,0x96,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
6998 | 0x99,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x95,0x11,0x12,0x12,0x95,0x95,0x95,0x12,0x12, | ||
6999 | 0x11,0x95,0x12,0x12,0x11,0x95,0x95,0x95,0x11,0x12,0x12,0x95,0x11,0x12,0x12,0x95, | ||
7000 | 0x9D,0x95,0x12,0x12,0x11,0x95,0x12,0x12,0x11,0x12,0x12,0x95,0x11,0x12,0x12,0x95, | ||
7001 | 0x11,0x12,0x12,0x95,0x95,0x95,0x12,0x12,0x11,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x12, | ||
7002 | 0x11,0x12,0x95,0x95,0x95,0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x95,0x9D,0x9D,0x9D, | ||
7003 | 0x9D,0x9D,0x95,0x12,0x11,0x12,0x95,0x95,0x95,0x12,0x12,0x12,0x95,0x12,0x12,0x12, | ||
7004 | 0x95,0x95,0x95,0x12,0x11,0x12,0x95,0x95,0x95,0x95,0x12,0x12,0x11,0x95,0x95,0x95, | ||
7005 | 0x95,0x12,0x12,0x12,0x95,0x95,0x95,0x95,0x95,0x95,0x12,0x12,0x11,0x95,0x95,0x95, | ||
7006 | 0x11,0x12,0x12,0x95,0x9D,0x90,0x01,0x92,0x01,0x01,0x95,0x98,0x98,0x01,0x93,0x92, | ||
7007 | 0x95,0x98,0x95,0x95,0x95,0x93,0x95,0x01,0x98,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7008 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7009 | 0x9D,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7010 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7011 | 0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7012 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7013 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
7014 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7015 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x93,0x92, | ||
7016 | 0x95,0x94,0x92,0x8E,0x94,0x8E,0x94,0x92,0x93,0x8E,0x8E,0x92,0x9F,0x9F,0x9D,0x9D, | ||
7017 | 0x90,0x93,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
7018 | 0x00,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x95,0x13,0x12,0x13,0x95,0x95,0x95,0x95,0x95, | ||
7019 | 0x95,0x95,0x13,0x12,0x13,0x95,0x9D,0x95,0x13,0x12,0x13,0x95,0x13,0x12,0x13,0x95, | ||
7020 | 0x9D,0x95,0x13,0x12,0x13,0x95,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x95, | ||
7021 | 0x13,0x12,0x13,0x95,0x9D,0x95,0x13,0x12,0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x12, | ||
7022 | 0x13,0x12,0x95,0x95,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x95,0x9D,0x9D,0x9D, | ||
7023 | 0x9D,0x9D,0x95,0x12,0x13,0x12,0x95,0x95,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12, | ||
7024 | 0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x13,0x12,0x13,0x95,0x9D,0x9D, | ||
7025 | 0x95,0x12,0x13,0x12,0x95,0x95,0x95,0x9D,0x9D,0x95,0x13,0x12,0x13,0x95,0x95,0x95, | ||
7026 | 0x13,0x12,0x13,0x95,0x9D,0x90,0x93,0x01,0x95,0x96,0x96,0x95,0x96,0x94,0x92,0x97, | ||
7027 | 0x96,0x98,0x98,0x96,0x94,0x96,0x95,0x01,0x95,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7028 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7029 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
7030 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7031 | 0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
7032 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
7033 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
7034 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
7035 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x92,0x95, | ||
7036 | 0x95,0x01,0x92,0x94,0x92,0x96,0x93,0x95,0x96,0x95,0x96,0x92,0x9F,0x9F,0x9D,0x9D, | ||
7037 | 0x90,0x96,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
7038 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x13,0x13,0x13,0x14,0x13,0x13,0x13,0x13, | ||
7039 | 0x95,0x95,0x13,0x14,0x13,0x95,0x9D,0x95,0x13,0x13,0x13,0x95,0x13,0x13,0x13,0x95, | ||
7040 | 0x9D,0x95,0x13,0x14,0x13,0x95,0x13,0x13,0x13,0x95,0x13,0x14,0x13,0x13,0x13,0x95, | ||
7041 | 0x13,0x13,0x13,0x95,0x9D,0x95,0x13,0x13,0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x13, | ||
7042 | 0x13,0x13,0x13,0x14,0x13,0x13,0x13,0x95,0x95,0x13,0x13,0x14,0x95,0x9D,0x9D,0x9D, | ||
7043 | 0x9D,0x9D,0x95,0x14,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x95,0x13,0x13,0x13, | ||
7044 | 0x13,0x13,0x13,0x14,0x13,0x95,0x9D,0x9D,0x9D,0x95,0x13,0x14,0x13,0x95,0x9D,0x9D, | ||
7045 | 0x95,0x13,0x13,0x14,0x13,0x13,0x13,0x95,0x9D,0x95,0x13,0x14,0x13,0x13,0x13,0x13, | ||
7046 | 0x13,0x13,0x13,0x95,0x9D,0x90,0x95,0x96,0x95,0x96,0x94,0x93,0x95,0x95,0x95,0x92, | ||
7047 | 0x98,0x95,0x01,0x93,0x95,0x98,0x98,0x97,0x99,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7048 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7049 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
7050 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7051 | 0x9D,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
7052 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
7053 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
7054 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
7055 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x98,0x95, | ||
7056 | 0x93,0x01,0x95,0x96,0x01,0x93,0x01,0x96,0x93,0x93,0x95,0x91,0x9F,0x9F,0x9D,0x9D, | ||
7057 | 0x90,0x98,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
7058 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x9D,0x95,0x14,0x15,0x14,0x15,0x14,0x14,0x14, | ||
7059 | 0x15,0x95,0x15,0x14,0x15,0x95,0x9D,0x95,0x15,0x14,0x15,0x95,0x15,0x14,0x14,0x95, | ||
7060 | 0x9D,0x95,0x15,0x14,0x15,0x95,0x14,0x14,0x15,0x95,0x95,0x14,0x15,0x14,0x14,0x95, | ||
7061 | 0x15,0x14,0x15,0x95,0x9D,0x95,0x14,0x14,0x15,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x14, | ||
7062 | 0x15,0x14,0x15,0x14,0x15,0x14,0x14,0x95,0x95,0x14,0x15,0x14,0x95,0x9D,0x9D,0x9D, | ||
7063 | 0x9D,0x9D,0x95,0x14,0x15,0x14,0x14,0x14,0x15,0x14,0x15,0x14,0x95,0x95,0x14,0x14, | ||
7064 | 0x15,0x14,0x15,0x14,0x15,0x14,0x95,0x9D,0x9D,0x95,0x15,0x14,0x15,0x95,0x9D,0x9D, | ||
7065 | 0x95,0x14,0x15,0x14,0x15,0x14,0x14,0x95,0x9D,0x95,0x15,0x14,0x15,0x14,0x14,0x14, | ||
7066 | 0x15,0x14,0x95,0x9D,0x9D,0x90,0x98,0x92,0x01,0x95,0x01,0x95,0x94,0x98,0x95,0x01, | ||
7067 | 0x98,0x98,0x92,0x96,0x01,0x98,0x95,0x98,0x98,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7068 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7069 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9F, | ||
7070 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7071 | 0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
7072 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
7073 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D, | ||
7074 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
7075 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x96,0x95, | ||
7076 | 0x93,0x95,0x98,0x93,0x95,0x92,0x98,0x95,0x96,0x98,0x94,0x94,0x9F,0x9F,0x9D,0x9D, | ||
7077 | 0x90,0x98,0x99,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
7078 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x15,0x15, | ||
7079 | 0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95, | ||
7080 | 0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95, | ||
7081 | 0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x15, | ||
7082 | 0x15,0x15,0x95,0x95,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x9D,0x9D, | ||
7083 | 0x9D,0x9D,0x95,0x15,0x15,0x15,0x95,0x95,0x95,0x15,0x15,0x15,0x95,0x95,0x95,0x95, | ||
7084 | 0x95,0x95,0x95,0x15,0x15,0x15,0x95,0x9D,0x9D,0x95,0x15,0x15,0x15,0x95,0x9D,0x9D, | ||
7085 | 0x95,0x15,0x15,0x15,0x95,0x95,0x95,0x9D,0x9D,0x95,0x15,0x15,0x15,0x15,0x15,0x15, | ||
7086 | 0x95,0x95,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x95,0x98,0x01,0x98,0x93,0x95,0x92,0x97, | ||
7087 | 0x94,0x95,0x94,0x96,0x94,0x98,0x96,0x95,0x96,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7088 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7089 | 0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7090 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7091 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
7092 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
7093 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D, | ||
7094 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
7095 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x96,0x95, | ||
7096 | 0x96,0x96,0x91,0x98,0x93,0x8E,0x8E,0x01,0x96,0x96,0x98,0x94,0x9F,0x9F,0x9D,0x9D, | ||
7097 | 0x91,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
7098 | 0x99,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x16,0x16,0x16,0x95,0x95,0x95,0x16,0x15, | ||
7099 | 0x16,0x95,0x16,0x15,0x16,0x95,0x95,0x95,0x16,0x16,0x16,0x95,0x16,0x16,0x16,0x95, | ||
7100 | 0x95,0x95,0x16,0x15,0x16,0x95,0x16,0x15,0x16,0x95,0x9D,0x95,0x16,0x16,0x16,0x95, | ||
7101 | 0x16,0x16,0x16,0x95,0x95,0x95,0x16,0x15,0x16,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x15, | ||
7102 | 0x16,0x16,0x95,0x95,0x95,0x16,0x16,0x15,0x95,0x16,0x16,0x15,0x95,0x95,0x95,0x95, | ||
7103 | 0x95,0x95,0x95,0x15,0x16,0x16,0x95,0x9D,0x95,0x16,0x16,0x15,0x95,0x16,0x16,0x15, | ||
7104 | 0x95,0x95,0x95,0x15,0x16,0x16,0x95,0x9D,0x9D,0x95,0x16,0x15,0x16,0x95,0x9D,0x9D, | ||
7105 | 0x95,0x16,0x16,0x15,0x95,0x95,0x95,0x95,0x95,0x95,0x16,0x15,0x16,0x16,0x16,0x15, | ||
7106 | 0x16,0x95,0x9D,0x9D,0x9D,0x90,0x93,0x01,0x96,0x98,0x92,0x98,0x01,0x98,0x95,0x94, | ||
7107 | 0x98,0x01,0x01,0x92,0x96,0x99,0x98,0x01,0x91,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7108 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98, | ||
7109 | 0x17,0x17,0x98,0x98,0x98,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7110 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7111 | 0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7112 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7113 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98, | ||
7114 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7115 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x96,0x8E, | ||
7116 | 0x8E,0x96,0x95,0x94,0x92,0x8E,0x94,0x8E,0x98,0x01,0x01,0x98,0x9F,0x9F,0x9D,0x9D, | ||
7117 | 0x94,0x9B,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7118 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x95,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17, | ||
7119 | 0x17,0x95,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x16,0x95,0x17,0x17,0x17,0x17, | ||
7120 | 0x17,0x17,0x16,0x17,0x17,0x95,0x17,0x17,0x17,0x95,0x9D,0x95,0x17,0x17,0x17,0x95, | ||
7121 | 0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x17, | ||
7122 | 0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x95,0x17,0x16,0x17,0x17,0x17,0x17,0x17, | ||
7123 | 0x17,0x17,0x95,0x17,0x17,0x17,0x95,0x9D,0x95,0x17,0x16,0x17,0x95,0x17,0x17,0x17, | ||
7124 | 0x17,0x17,0x16,0x17,0x17,0x17,0x95,0x9D,0x9D,0x95,0x16,0x17,0x17,0x95,0x9D,0x9D, | ||
7125 | 0x95,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x95,0x16,0x17,0x17,0x95,0x17,0x17, | ||
7126 | 0x17,0x17,0x95,0x9D,0x9D,0x90,0x96,0x95,0x94,0x01,0x98,0x94,0x95,0x92,0x97,0x96, | ||
7127 | 0x95,0x01,0x96,0x98,0x96,0x96,0x01,0x95,0x96,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7128 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98, | ||
7129 | 0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x9F, | ||
7130 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7131 | 0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7132 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7133 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98, | ||
7134 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7135 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x95,0x92, | ||
7136 | 0x96,0x95,0x95,0x98,0x98,0x01,0x98,0x96,0x98,0x01,0x94,0x96,0x9F,0x9F,0x9D,0x9D, | ||
7137 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7138 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x9D,0x95,0x17,0x18,0x17,0x18,0x17,0x18,0x17, | ||
7139 | 0x95,0x9D,0x95,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x95,0x9D,0x95,0x17,0x18,0x17, | ||
7140 | 0x18,0x17,0x18,0x17,0x95,0x95,0x18,0x17,0x18,0x95,0x9D,0x95,0x18,0x17,0x18,0x95, | ||
7141 | 0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x17, | ||
7142 | 0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x95,0x17,0x18,0x17,0x18,0x17,0x18,0x17, | ||
7143 | 0x18,0x17,0x95,0x17,0x18,0x17,0x95,0x9D,0x95,0x17,0x18,0x17,0x95,0x95,0x18,0x17, | ||
7144 | 0x18,0x17,0x18,0x17,0x18,0x95,0x9D,0x9D,0x9D,0x95,0x18,0x17,0x18,0x95,0x9D,0x9D, | ||
7145 | 0x95,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x18,0x17,0x18,0x95,0x95,0x17, | ||
7146 | 0x18,0x17,0x18,0x95,0x9D,0x90,0x95,0x95,0x95,0x95,0x01,0x98,0x94,0x98,0x01,0x98, | ||
7147 | 0x98,0x98,0x98,0x01,0x01,0x98,0x98,0x95,0x98,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7148 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98, | ||
7149 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7150 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7151 | 0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7152 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7153 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x98, | ||
7154 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7155 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x01,0x98, | ||
7156 | 0x95,0x94,0x98,0x95,0x01,0x98,0x01,0x95,0x95,0x98,0x98,0x95,0x9F,0x9F,0x9D,0x9D, | ||
7157 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7158 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
7159 | 0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95, | ||
7160 | 0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D, | ||
7161 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95, | ||
7162 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
7163 | 0x95,0x95,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95, | ||
7164 | 0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D, | ||
7165 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x95, | ||
7166 | 0x95,0x95,0x95,0x9D,0x9D,0x90,0x95,0x01,0x95,0x98,0x96,0x01,0x98,0x98,0x98,0x96, | ||
7167 | 0x95,0x98,0x98,0x95,0x95,0x98,0x95,0x98,0x93,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7168 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98, | ||
7169 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7170 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7171 | 0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7172 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7173 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x98, | ||
7174 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7175 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x98, | ||
7176 | 0x93,0x8E,0x94,0x95,0x98,0x98,0x95,0x98,0x98,0x97,0x98,0x96,0x9F,0x9F,0x9D,0x9D, | ||
7177 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7178 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7179 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7180 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7181 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7182 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7183 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7184 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7185 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7186 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x94,0x98,0x98,0x01,0x96,0x98,0x94,0x98,0x95, | ||
7187 | 0x96,0x99,0x96,0x98,0x95,0x98,0x95,0x94,0x92,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7188 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7189 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x9D, | ||
7190 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7191 | 0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
7192 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
7193 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98, | ||
7194 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
7195 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x95,0x96, | ||
7196 | 0x95,0x01,0x98,0x98,0x95,0x01,0x94,0x96,0x96,0x94,0x93,0x96,0x9F,0x9F,0x9D,0x9D, | ||
7197 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7198 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7199 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7200 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7201 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7202 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7203 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7204 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7205 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7206 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x99,0x98,0x98,0x98,0x98,0x98,0x01,0x98,0x96, | ||
7207 | 0x98,0x98,0x96,0x98,0x98,0x98,0x95,0x95,0x01,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7208 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7209 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9A, | ||
7210 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7211 | 0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
7212 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
7213 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D, | ||
7214 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
7215 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x01,0x96, | ||
7216 | 0x95,0x95,0x96,0x98,0x01,0x93,0x96,0x95,0x96,0x96,0x98,0x96,0x99,0x95,0x94,0x95, | ||
7217 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94, | ||
7218 | 0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, | ||
7219 | 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92, | ||
7220 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
7221 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
7222 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
7223 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7224 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7225 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7226 | 0x90,0x90,0x90,0x90,0x90,0x90,0x01,0x95,0x98,0x01,0x98,0x01,0x01,0x99,0x9A,0x96, | ||
7227 | 0x98,0x01,0x96,0x94,0x95,0x92,0x92,0x95,0x94,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7228 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7229 | 0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
7230 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7231 | 0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
7232 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A, | ||
7233 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x9D,0x9D, | ||
7234 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9F, | ||
7235 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9A,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x96,0x97, | ||
7236 | 0x94,0x95,0x95,0x98,0x98,0x98,0x95,0x96,0x98,0x98,0x94,0x01,0x94,0x01,0x01,0x93, | ||
7237 | 0x95,0x97,0x95,0x97,0x96,0x94,0x98,0x97,0x01,0x97,0x95,0x98,0x96,0x96,0x95,0x97, | ||
7238 | 0x98,0x98,0x95,0x95,0x98,0x01,0x98,0x01,0x01,0x98,0x01,0x98,0x98,0x98,0x98,0x98, | ||
7239 | 0x98,0x96,0x98,0x99,0x96,0x95,0x98,0x98,0x94,0x98,0x98,0x01,0x94,0x98,0x96,0x98, | ||
7240 | 0x99,0x95,0x95,0x99,0x97,0x94,0x98,0x96,0x95,0x95,0x94,0x96,0x01,0x98,0x98,0x96, | ||
7241 | 0x96,0x95,0x96,0x96,0x98,0x95,0x94,0x98,0x92,0x95,0x92,0x8E,0x8E,0x92,0x96,0x95, | ||
7242 | 0x95,0x92,0x8E,0x92,0x95,0x01,0x95,0x95,0x96,0x98,0x96,0x95,0x95,0x96,0x95,0x98, | ||
7243 | 0x98,0x98,0x98,0x99,0x98,0x99,0x99,0x98,0x98,0x96,0x98,0x96,0x94,0x94,0x94,0x94, | ||
7244 | 0x98,0x93,0x94,0x95,0x01,0x94,0x95,0x94,0x96,0x96,0x93,0x96,0x95,0x96,0x95,0x96, | ||
7245 | 0x98,0x98,0x01,0x94,0x98,0x98,0x94,0x92,0x95,0x98,0x98,0x98,0x98,0x95,0x99,0x98, | ||
7246 | 0x93,0x98,0x98,0x98,0x01,0x98,0x98,0x98,0x9A,0x01,0x98,0x98,0x9A,0x01,0x98,0x9B, | ||
7247 | 0x01,0x95,0x96,0x96,0x01,0x94,0x95,0x98,0x96,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7248 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98, | ||
7249 | 0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
7250 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7251 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
7252 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, | ||
7253 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x9D, | ||
7254 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
7255 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x97,0x95, | ||
7256 | 0x94,0x94,0x01,0x92,0x98,0x98,0x97,0x01,0x01,0x97,0x98,0x95,0x95,0x95,0x01,0x98, | ||
7257 | 0x96,0x01,0x01,0x01,0x98,0x01,0x93,0x96,0x01,0x01,0x95,0x01,0x98,0x01,0x98,0x01, | ||
7258 | 0x98,0x96,0x01,0x98,0x98,0x98,0x94,0x97,0x98,0x98,0x98,0x01,0x98,0x96,0x98,0x96, | ||
7259 | 0x98,0x98,0x98,0x98,0x98,0x01,0x9A,0x9A,0x99,0x99,0x95,0x98,0x99,0x99,0x98,0x96, | ||
7260 | 0x99,0x98,0x01,0x01,0x96,0x01,0x95,0x8E,0x93,0x95,0x01,0x8E,0x96,0x8E,0x94,0x8E, | ||
7261 | 0x8E,0x95,0x8E,0x92,0x8E,0x92,0x92,0x93,0x8E,0x92,0x8E,0x92,0x96,0x94,0x93,0x8E, | ||
7262 | 0x8E,0x01,0x8E,0x94,0x92,0x96,0x95,0x01,0x01,0x95,0x98,0x95,0x94,0x98,0x98,0x98, | ||
7263 | 0x98,0x96,0x99,0x98,0x98,0x98,0x94,0x01,0x99,0x98,0x98,0x95,0x96,0x93,0x95,0x93, | ||
7264 | 0x95,0x98,0x98,0x96,0x95,0x96,0x96,0x98,0x94,0x93,0x96,0x98,0x98,0x95,0x98,0x98, | ||
7265 | 0x98,0x94,0x98,0x95,0x95,0x92,0x01,0x94,0x95,0x98,0x9A,0x01,0x98,0x99,0x01,0x98, | ||
7266 | 0x95,0x98,0x98,0x98,0x98,0x01,0x98,0x01,0x98,0x99,0x98,0x95,0x94,0x99,0x01,0x98, | ||
7267 | 0x01,0x92,0x94,0x93,0x95,0x98,0x93,0x8E,0x95,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7268 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7269 | 0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7270 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7271 | 0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7272 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7273 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x98,0x98, | ||
7274 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7275 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x98,0x96, | ||
7276 | 0x95,0x98,0x94,0x96,0x96,0x98,0x01,0x01,0x98,0x95,0x98,0x94,0x01,0x94,0x95,0x01, | ||
7277 | 0x01,0x01,0x94,0x96,0x96,0x96,0x92,0x96,0x98,0x96,0x95,0x98,0x96,0x95,0x96,0x96, | ||
7278 | 0x98,0x94,0x96,0x94,0x95,0x95,0x98,0x98,0x98,0x98,0x98,0x99,0x01,0x94,0x98,0x98, | ||
7279 | 0x98,0x01,0x96,0x98,0x98,0x98,0x01,0x9A,0x98,0x98,0x98,0x95,0x96,0x99,0x96,0x01, | ||
7280 | 0x95,0x96,0x91,0x93,0x94,0x94,0x95,0x94,0x96,0x92,0x94,0x96,0x98,0x94,0x94,0x92, | ||
7281 | 0x01,0x98,0x94,0x94,0x01,0x94,0x94,0x93,0x8E,0x92,0x95,0x92,0x93,0x94,0x8E,0x01, | ||
7282 | 0x95,0x95,0x94,0x94,0x94,0x01,0x94,0x01,0x98,0x93,0x96,0x96,0x93,0x98,0x96,0x95, | ||
7283 | 0x98,0x98,0x98,0x99,0x9A,0x98,0x96,0x95,0x98,0x95,0x95,0x95,0x96,0x94,0x94,0x95, | ||
7284 | 0x96,0x95,0x98,0x98,0x95,0x95,0x99,0x95,0x9A,0x98,0x99,0x98,0x98,0x96,0x95,0x98, | ||
7285 | 0x01,0x95,0x96,0x01,0x01,0x98,0x98,0x9A,0x94,0x95,0x98,0x99,0x99,0x98,0x96,0x96, | ||
7286 | 0x98,0x98,0x96,0x94,0x95,0x92,0x97,0x96,0x98,0x98,0x01,0x98,0x97,0x01,0x98,0x98, | ||
7287 | 0x98,0x96,0x01,0x95,0x98,0x94,0x8E,0x95,0x98,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7288 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7289 | 0x9D,0x98,0x17,0x17,0x17,0x98,0x9D,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7290 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7291 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7292 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7293 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98, | ||
7294 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7295 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x96,0x01, | ||
7296 | 0x93,0x95,0x96,0x98,0x96,0x01,0x95,0x01,0x96,0x96,0x96,0x96,0x95,0x98,0x96,0x96, | ||
7297 | 0x95,0x94,0x96,0x95,0x96,0x01,0x98,0x96,0x94,0x96,0x96,0x96,0x96,0x92,0x01,0x01, | ||
7298 | 0x96,0x98,0x98,0x98,0x01,0x98,0x98,0x98,0x99,0x96,0x01,0x94,0x98,0x01,0x95,0x98, | ||
7299 | 0x98,0x98,0x98,0x01,0x98,0x99,0x95,0x9A,0x99,0x01,0x98,0x96,0x96,0x96,0x95,0x93, | ||
7300 | 0x01,0x94,0x94,0x92,0x98,0x92,0x98,0x96,0x96,0x96,0x96,0x94,0x98,0x95,0x01,0x98, | ||
7301 | 0x98,0x95,0x96,0x93,0x92,0x96,0x8E,0x8E,0x92,0x93,0x93,0x93,0x8E,0x8E,0x92,0x95, | ||
7302 | 0x98,0x01,0x01,0x98,0x94,0x95,0x98,0x98,0x98,0x98,0x98,0x01,0x99,0x01,0x98,0x97, | ||
7303 | 0x96,0x96,0x98,0x98,0x98,0x98,0x97,0x98,0x94,0x96,0x98,0x94,0x98,0x96,0x96,0x99, | ||
7304 | 0x98,0x01,0x01,0x95,0x98,0x95,0x96,0x94,0x99,0x01,0x9A,0x98,0x01,0x94,0x98,0x98, | ||
7305 | 0x95,0x94,0x98,0x98,0x99,0x98,0x99,0x98,0x95,0x93,0x95,0x01,0x96,0x94,0x98,0x98, | ||
7306 | 0x98,0x97,0x94,0x95,0x96,0x01,0x96,0x93,0x95,0x94,0x01,0x97,0x98,0x01,0x98,0x01, | ||
7307 | 0x99,0x94,0x98,0x01,0x92,0x92,0x01,0x93,0x94,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7308 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7309 | 0x9D,0x9D,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9F, | ||
7310 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7311 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7312 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7313 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98, | ||
7314 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7315 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x95,0x95, | ||
7316 | 0x94,0x96,0x95,0x95,0x96,0x98,0x96,0x96,0x98,0x96,0x01,0x96,0x94,0x98,0x95,0x96, | ||
7317 | 0x01,0x96,0x96,0x96,0x95,0x96,0x94,0x01,0x96,0x94,0x96,0x95,0x98,0x98,0x98,0x98, | ||
7318 | 0x98,0x95,0x95,0x98,0x98,0x95,0x95,0x99,0x98,0x98,0x98,0x98,0x98,0x01,0x95,0x98, | ||
7319 | 0x98,0x98,0x99,0x95,0x99,0x98,0x9A,0x99,0x98,0x01,0x94,0x93,0x95,0x94,0x95,0x96, | ||
7320 | 0x96,0x94,0x96,0x94,0x96,0x98,0x94,0x98,0x96,0x95,0x98,0x98,0x95,0x92,0x95,0x96, | ||
7321 | 0x92,0x8E,0x8E,0x8E,0x96,0x95,0x8E,0x8E,0x8E,0x92,0x92,0x91,0x8E,0x95,0x95,0x94, | ||
7322 | 0x98,0x01,0x95,0x95,0x98,0x99,0x01,0x98,0x98,0x96,0x98,0x98,0x98,0x96,0x95,0x95, | ||
7323 | 0x98,0x9A,0x98,0x98,0x01,0x94,0x01,0x94,0x01,0x97,0x96,0x95,0x95,0x99,0x95,0x98, | ||
7324 | 0x96,0x98,0x98,0x95,0x98,0x93,0x98,0x98,0x95,0x98,0x98,0x95,0x01,0x96,0x98,0x95, | ||
7325 | 0x96,0x95,0x01,0x95,0x96,0x95,0x97,0x95,0x96,0x01,0x98,0x96,0x94,0x98,0x98,0x98, | ||
7326 | 0x94,0x95,0x95,0x01,0x96,0x98,0x95,0x95,0x95,0x98,0x92,0x01,0x01,0x95,0x93,0x98, | ||
7327 | 0x92,0x95,0x98,0x01,0x8E,0x95,0x94,0x94,0x95,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7328 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7329 | 0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9F, | ||
7330 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7331 | 0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17, | ||
7332 | 0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98, | ||
7333 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x98,0x98, | ||
7334 | 0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x9D,0x9F, | ||
7335 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x98,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x96,0x98, | ||
7336 | 0x96,0x98,0x98,0x96,0x98,0x96,0x95,0x94,0x95,0x98,0x98,0x98,0x9F,0x9F,0x9F,0x9F, | ||
7337 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7338 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7339 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7340 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7341 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7342 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7343 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7344 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7345 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7346 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x97,0x95,0x96,0x98,0x96,0x95,0x94,0x95,0x92,0x95,0x8E, | ||
7347 | 0x95,0x94,0x94,0x93,0x93,0x92,0x92,0x93,0x01,0x93,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7348 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98, | ||
7349 | 0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D, | ||
7350 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7351 | 0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98, | ||
7352 | 0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96, | ||
7353 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x17,0x17,0x17,0x17,0x98, | ||
7354 | 0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x98,0x17,0x17,0x17,0x17,0x98,0x9D,0x9D,0x9D, | ||
7355 | 0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x96,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x95,0x95, | ||
7356 | 0x98,0x94,0x95,0x98,0x01,0x98,0x96,0x98,0x94,0x95,0x95,0x95,0x9F,0x9F,0x9F,0x9F, | ||
7357 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7358 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7359 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7360 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7361 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7362 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7363 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7364 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7365 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7366 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x94,0x95,0x98,0x93,0x93,0x94,0x95,0x98,0x98,0x94,0x98, | ||
7367 | 0x96,0x95,0x93,0x92,0x94,0x93,0x98,0x96,0x92,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7368 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7369 | 0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9A, | ||
7370 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7371 | 0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D, | ||
7372 | 0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93, | ||
7373 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D, | ||
7374 | 0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x98,0x98,0x98,0x98,0x9D,0x9D,0x9D,0x9A, | ||
7375 | 0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x94,0x96, | ||
7376 | 0x96,0x95,0x01,0x96,0x94,0x96,0x96,0x01,0x95,0x95,0x92,0x01,0x9F,0x9F,0x9D,0x9D, | ||
7377 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7378 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7379 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7380 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7381 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7382 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7383 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7384 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7385 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7386 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x91,0x94,0x98,0x98,0x95,0x98,0x98,0x93,0x95,0x98,0x98, | ||
7387 | 0x01,0x8E,0x8E,0x92,0x94,0x94,0x93,0x8E,0x92,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7388 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7389 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7390 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7391 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7392 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7393 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7394 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7395 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x96,0x95, | ||
7396 | 0x01,0x95,0x98,0x96,0x94,0x01,0x96,0x92,0x96,0x95,0x95,0x96,0x9F,0x9F,0x9D,0x9D, | ||
7397 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7398 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
7399 | 0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D, | ||
7400 | 0x9D,0x9D,0x95,0x95,0x95,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D, | ||
7401 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7402 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95, | ||
7403 | 0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x95,0x95,0x95, | ||
7404 | 0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D, | ||
7405 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7406 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x92,0x92,0x95,0x97,0x98,0x98,0x96,0x98,0x98, | ||
7407 | 0x95,0x8E,0x92,0x95,0x01,0x01,0x8E,0x8E,0x96,0x8E,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7408 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x9D,0x9D, | ||
7409 | 0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D, | ||
7410 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7411 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x9D,0x9D, | ||
7412 | 0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7413 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D, | ||
7414 | 0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D, | ||
7415 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x95,0x92, | ||
7416 | 0x92,0x96,0x96,0x95,0x95,0x96,0x94,0x95,0x96,0x96,0x95,0x96,0x9F,0x9F,0x9D,0x9D, | ||
7417 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7418 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10, | ||
7419 | 0x95,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x95,0x10,0x10,0x10,0x95, | ||
7420 | 0x9D,0x95,0x10,0x10,0x10,0x95,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x95, | ||
7421 | 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95, | ||
7422 | 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10, | ||
7423 | 0x10,0x95,0x95,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x95,0x10,0x10,0x10, | ||
7424 | 0x10,0x10,0x10,0x10,0x10,0x95,0x9D,0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95, | ||
7425 | 0x95,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7426 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x97,0x99,0x96,0x98,0x94,0x97,0x94,0x96,0x96, | ||
7427 | 0x8E,0x8E,0x94,0x92,0x92,0x92,0x8E,0x96,0x92,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7428 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x95,0x9D,0x9D,0x95,0x14,0x95,0x95, | ||
7429 | 0x14,0x14,0x14,0x14,0x95,0x95,0x14,0x14,0x95,0x14,0x14,0x95,0x95,0x14,0x14,0x95, | ||
7430 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7431 | 0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x14,0x95,0x9D,0x9D,0x95,0x14,0x95,0x95, | ||
7432 | 0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7433 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x95,0x95,0x14,0x14,0x95, | ||
7434 | 0x14,0x95,0x9D,0x9D,0x95,0x14,0x95,0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x9D, | ||
7435 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x01,0x95, | ||
7436 | 0x01,0x98,0x01,0x96,0x95,0x96,0x96,0x96,0x95,0x98,0x01,0x01,0x9F,0x9F,0x9D,0x9D, | ||
7437 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7438 | 0x90,0x90,0x91,0x94,0x9F,0x9D,0x9D,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11, | ||
7439 | 0x10,0x95,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x95, | ||
7440 | 0x9D,0x95,0x10,0x11,0x10,0x95,0x10,0x11,0x10,0x11,0x95,0x95,0x10,0x11,0x10,0x95, | ||
7441 | 0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x11, | ||
7442 | 0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x95,0x11,0x10,0x11,0x10,0x11,0x10,0x11, | ||
7443 | 0x10,0x11,0x95,0x11,0x10,0x11,0x95,0x9D,0x95,0x11,0x10,0x11,0x95,0x11,0x10,0x11, | ||
7444 | 0x10,0x11,0x10,0x11,0x10,0x11,0x95,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11, | ||
7445 | 0x95,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7446 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x98,0x97,0x98,0x97,0x93,0x97,0x96,0x98, | ||
7447 | 0x92,0x92,0x95,0x95,0x95,0x95,0x94,0x98,0x95,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7448 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x95,0x95,0x14,0x14,0x95,0x14, | ||
7449 | 0x14,0x95,0x95,0x14,0x14,0x95,0x14,0x14,0x95,0x14,0x14,0x14,0x95,0x14,0x14,0x95, | ||
7450 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7451 | 0x95,0x14,0x14,0x95,0x95,0x95,0x95,0x95,0x14,0x14,0x95,0x95,0x14,0x14,0x95,0x14, | ||
7452 | 0x14,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7453 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x14,0x14,0x95,0x95, | ||
7454 | 0x14,0x14,0x95,0x95,0x14,0x14,0x95,0x14,0x14,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D, | ||
7455 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x94,0x96, | ||
7456 | 0x95,0x95,0x93,0x96,0x95,0x95,0x98,0x96,0x98,0x98,0x94,0x98,0x9F,0x9F,0x9D,0x9D, | ||
7457 | 0x90,0x90,0x93,0x96,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
7458 | 0x99,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x95,0x12,0x12,0x12,0x95,0x95,0x95,0x12,0x11, | ||
7459 | 0x12,0x95,0x12,0x11,0x12,0x95,0x95,0x95,0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x95, | ||
7460 | 0x9D,0x95,0x12,0x11,0x12,0x95,0x12,0x11,0x12,0x12,0x12,0x95,0x12,0x12,0x12,0x95, | ||
7461 | 0x12,0x12,0x12,0x95,0x95,0x95,0x12,0x11,0x12,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x11, | ||
7462 | 0x12,0x12,0x95,0x95,0x95,0x12,0x12,0x11,0x95,0x12,0x12,0x11,0x95,0x95,0x95,0x11, | ||
7463 | 0x12,0x12,0x95,0x11,0x12,0x12,0x95,0x9D,0x95,0x12,0x12,0x11,0x95,0x12,0x12,0x11, | ||
7464 | 0x95,0x95,0x95,0x11,0x12,0x12,0x95,0x11,0x12,0x12,0x95,0x95,0x95,0x12,0x12,0x11, | ||
7465 | 0x95,0x12,0x12,0x11,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7466 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x98,0x01,0x94,0x98,0x97,0x94,0x98,0x95,0x95, | ||
7467 | 0x94,0x95,0x94,0x95,0x95,0x96,0x95,0x95,0x01,0x95,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7468 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x14, | ||
7469 | 0x14,0x14,0x14,0x14,0x14,0x95,0x14,0x14,0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95, | ||
7470 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7471 | 0x95,0x14,0x14,0x14,0x14,0x14,0x95,0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x95, | ||
7472 | 0x14,0x14,0x14,0x14,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7473 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x95,0x9D,0x95, | ||
7474 | 0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x95,0x14,0x14,0x14,0x14,0x14,0x95,0x9D,0x9D, | ||
7475 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x94,0x96, | ||
7476 | 0x95,0x98,0x96,0x94,0x96,0x95,0x94,0x96,0x94,0x96,0x98,0x98,0x9F,0x9F,0x9D,0x9D, | ||
7477 | 0x90,0x93,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | ||
7478 | 0x00,0x99,0x99,0x9D,0x9F,0x9D,0x9D,0x95,0x12,0x13,0x12,0x95,0x95,0x95,0x95,0x95, | ||
7479 | 0x95,0x95,0x12,0x13,0x12,0x95,0x9D,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x95, | ||
7480 | 0x9D,0x95,0x12,0x13,0x12,0x95,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x95, | ||
7481 | 0x12,0x13,0x12,0x95,0x9D,0x95,0x12,0x13,0x12,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x13, | ||
7482 | 0x12,0x13,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x13,0x12,0x13,0x95,0x9D,0x95,0x13, | ||
7483 | 0x12,0x13,0x95,0x13,0x12,0x13,0x95,0x9D,0x95,0x13,0x12,0x13,0x95,0x13,0x12,0x13, | ||
7484 | 0x95,0x95,0x95,0x13,0x12,0x13,0x95,0x13,0x12,0x13,0x95,0x9D,0x9D,0x95,0x95,0x95, | ||
7485 | 0x95,0x13,0x12,0x13,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7486 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x97,0x95,0x92,0x96,0x97,0x98,0x98,0x98,0x98,0x95, | ||
7487 | 0x93,0x96,0x96,0x95,0x98,0x98,0x98,0x98,0x98,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7488 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x14, | ||
7489 | 0x14,0x95,0x95,0x14,0x14,0x95,0x14,0x14,0x95,0x14,0x14,0x95,0x14,0x14,0x14,0x95, | ||
7490 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7491 | 0x95,0x14,0x14,0x95,0x95,0x95,0x95,0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x95, | ||
7492 | 0x95,0x95,0x95,0x95,0x14,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7493 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x14,0x14,0x95,0x95, | ||
7494 | 0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x95,0x95,0x95,0x95,0x95,0x14,0x14,0x95,0x9D, | ||
7495 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x01,0x98, | ||
7496 | 0x01,0x96,0x98,0x96,0x93,0x95,0x01,0x96,0x96,0x94,0x01,0x98,0x9F,0x9F,0x9D,0x9D, | ||
7497 | 0x90,0x96,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
7498 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x13, | ||
7499 | 0x95,0x95,0x13,0x13,0x13,0x95,0x9D,0x95,0x13,0x13,0x13,0x95,0x13,0x13,0x14,0x95, | ||
7500 | 0x9D,0x95,0x13,0x13,0x13,0x95,0x14,0x13,0x13,0x95,0x13,0x13,0x13,0x13,0x14,0x95, | ||
7501 | 0x13,0x13,0x13,0x95,0x9D,0x95,0x14,0x13,0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x13, | ||
7502 | 0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x95,0x95,0x13,0x13,0x13,0x95,0x9D,0x95,0x13, | ||
7503 | 0x13,0x13,0x95,0x13,0x13,0x13,0x95,0x9D,0x95,0x13,0x13,0x13,0x95,0x13,0x14,0x13, | ||
7504 | 0x13,0x13,0x13,0x13,0x13,0x13,0x95,0x13,0x13,0x13,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7505 | 0x95,0x13,0x13,0x13,0x13,0x13,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7506 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x97,0x94,0x98,0x97,0x94,0x92,0x95,0x94,0x94,0x95, | ||
7507 | 0x98,0x96,0x95,0x93,0x98,0x01,0x01,0x98,0x94,0x01,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7508 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x95,0x95,0x14,0x14,0x95,0x14, | ||
7509 | 0x14,0x95,0x95,0x14,0x14,0x95,0x14,0x14,0x95,0x14,0x14,0x95,0x95,0x14,0x14,0x95, | ||
7510 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7511 | 0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x14,0x14,0x95,0x95,0x14,0x14,0x95,0x14, | ||
7512 | 0x14,0x14,0x14,0x14,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7513 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x95,0x95,0x14,0x14,0x95, | ||
7514 | 0x14,0x14,0x95,0x95,0x14,0x14,0x95,0x14,0x14,0x14,0x14,0x14,0x14,0x95,0x9D,0x9D, | ||
7515 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x94,0x96, | ||
7516 | 0x96,0x98,0x01,0x01,0x01,0x95,0x98,0x95,0x98,0x01,0x98,0x98,0x9F,0x9F,0x9D,0x9D, | ||
7517 | 0x90,0x98,0x98,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
7518 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x9D,0x95,0x14,0x14,0x15,0x14,0x15,0x14,0x15, | ||
7519 | 0x14,0x95,0x14,0x15,0x14,0x95,0x9D,0x95,0x14,0x14,0x14,0x95,0x14,0x15,0x14,0x95, | ||
7520 | 0x9D,0x95,0x14,0x15,0x14,0x95,0x14,0x15,0x14,0x95,0x95,0x15,0x14,0x15,0x14,0x95, | ||
7521 | 0x14,0x14,0x14,0x95,0x9D,0x95,0x14,0x15,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95, | ||
7522 | 0x14,0x14,0x14,0x15,0x14,0x15,0x14,0x15,0x95,0x14,0x14,0x15,0x95,0x9D,0x95,0x15, | ||
7523 | 0x14,0x14,0x95,0x15,0x14,0x15,0x95,0x9D,0x95,0x14,0x14,0x15,0x95,0x15,0x14,0x15, | ||
7524 | 0x14,0x14,0x14,0x15,0x14,0x95,0x95,0x15,0x14,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7525 | 0x95,0x14,0x14,0x15,0x14,0x15,0x14,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7526 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x93,0x96,0x98,0x97,0x98,0x96,0x98,0x95,0x01, | ||
7527 | 0x96,0x98,0x98,0x01,0x96,0x92,0x01,0x91,0x95,0x92,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7528 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x95, | ||
7529 | 0x95,0x9D,0x9D,0x95,0x95,0x9D,0x95,0x95,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D, | ||
7530 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7531 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x95, | ||
7532 | 0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7533 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D, | ||
7534 | 0x95,0x95,0x9D,0x9D,0x95,0x95,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D, | ||
7535 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x95, | ||
7536 | 0x98,0x96,0x98,0x95,0x96,0x99,0x98,0x01,0x96,0x96,0x98,0x01,0x9F,0x9F,0x9D,0x9D, | ||
7537 | 0x90,0x98,0x99,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, | ||
7538 | 0x1F,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x15,0x15, | ||
7539 | 0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95, | ||
7540 | 0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95, | ||
7541 | 0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x95, | ||
7542 | 0x95,0x95,0x95,0x95,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15, | ||
7543 | 0x15,0x15,0x95,0x15,0x15,0x15,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x15,0x15,0x15, | ||
7544 | 0x15,0x15,0x15,0x95,0x95,0x9D,0x95,0x15,0x15,0x15,0x95,0x9D,0x9D,0x95,0x95,0x95, | ||
7545 | 0x95,0x15,0x15,0x15,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7546 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x98,0x98,0x98,0x01,0x97,0x96,0x95,0x01,0x95, | ||
7547 | 0x8E,0x96,0x98,0x96,0x95,0x92,0x96,0x95,0x92,0x01,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7548 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7549 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7550 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7551 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7552 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7553 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7554 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7555 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x94,0x96, | ||
7556 | 0x98,0x95,0x95,0x98,0x99,0x94,0x98,0x98,0x98,0x01,0x98,0x96,0x9F,0x9F,0x9D,0x9D, | ||
7557 | 0x91,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, | ||
7558 | 0x99,0x99,0x99,0x9F,0x9F,0x9D,0x9D,0x95,0x16,0x16,0x15,0x95,0x95,0x95,0x15,0x16, | ||
7559 | 0x16,0x95,0x15,0x16,0x16,0x95,0x95,0x95,0x16,0x16,0x15,0x95,0x16,0x16,0x15,0x95, | ||
7560 | 0x95,0x95,0x15,0x16,0x16,0x95,0x15,0x16,0x16,0x95,0x9D,0x95,0x16,0x16,0x15,0x95, | ||
7561 | 0x16,0x16,0x15,0x95,0x95,0x95,0x15,0x16,0x16,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x16, | ||
7562 | 0x16,0x16,0x95,0x95,0x95,0x16,0x15,0x16,0x95,0x16,0x15,0x16,0x95,0x95,0x95,0x16, | ||
7563 | 0x16,0x16,0x95,0x16,0x16,0x16,0x95,0x95,0x95,0x16,0x15,0x16,0x95,0x16,0x15,0x16, | ||
7564 | 0x16,0x16,0x15,0x16,0x95,0x9D,0x95,0x16,0x16,0x16,0x95,0x95,0x95,0x16,0x15,0x16, | ||
7565 | 0x95,0x16,0x15,0x16,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7566 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x95,0x96,0x95,0x94,0x98,0x95,0x95,0x94,0x94, | ||
7567 | 0x8E,0x95,0x94,0x93,0x93,0x93,0x95,0x94,0x91,0x94,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7568 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7569 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7570 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7571 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7572 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7573 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7574 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7575 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x97,0x95, | ||
7576 | 0x01,0x98,0x98,0x96,0x98,0x95,0x01,0x98,0x95,0x95,0x96,0x96,0x9F,0x9F,0x9D,0x9D, | ||
7577 | 0x94,0x9B,0x9D,0x9D,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7578 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x95,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17, | ||
7579 | 0x17,0x95,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x95,0x17,0x16,0x17,0x17, | ||
7580 | 0x17,0x17,0x17,0x17,0x17,0x95,0x17,0x17,0x17,0x95,0x9D,0x95,0x17,0x16,0x17,0x95, | ||
7581 | 0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x95,0x9D,0x9D,0x9D,0x9D,0x95,0x17, | ||
7582 | 0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17,0x95,0x17,0x17,0x17,0x17,0x16,0x17,0x17, | ||
7583 | 0x17,0x17,0x95,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x95,0x16,0x17,0x17, | ||
7584 | 0x95,0x17,0x17,0x17,0x17,0x95,0x95,0x17,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17, | ||
7585 | 0x95,0x17,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7586 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x96,0x96,0x95,0x98,0x93,0x95,0x95,0x93,0x93,0x95, | ||
7587 | 0x8E,0x95,0x92,0x93,0x94,0x95,0x92,0x01,0x93,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7588 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7589 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7590 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7591 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7592 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7593 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7594 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7595 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x95,0x94,0x99, | ||
7596 | 0x01,0x99,0x96,0x97,0x95,0x01,0x94,0x98,0x94,0x01,0x92,0x95,0x9F,0x9F,0x9D,0x9D, | ||
7597 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, | ||
7598 | 0x9F,0x9F,0x9F,0x9F,0x9F,0x9D,0x9D,0x9D,0x95,0x18,0x17,0x18,0x17,0x18,0x17,0x18, | ||
7599 | 0x95,0x9D,0x95,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x9D,0x95,0x18,0x17,0x18, | ||
7600 | 0x17,0x18,0x17,0x18,0x95,0x95,0x17,0x18,0x17,0x95,0x9D,0x95,0x17,0x18,0x17,0x95, | ||
7601 | 0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95, | ||
7602 | 0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x95,0x9D,0x95,0x17,0x18,0x17,0x18,0x17,0x18, | ||
7603 | 0x17,0x95,0x9D,0x95,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x95,0x95,0x18,0x17,0x18, | ||
7604 | 0x95,0x95,0x17,0x18,0x17,0x18,0x95,0x95,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x95, | ||
7605 | 0x95,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7606 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x94,0x98,0x95,0x95,0x92,0x01,0x93,0x95,0x98,0x95, | ||
7607 | 0x94,0x93,0x95,0x93,0x94,0x96,0x94,0x96,0x98,0x96,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7608 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7609 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7610 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7611 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7612 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7613 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7614 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7615 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x98,0x95, | ||
7616 | 0x98,0x98,0x98,0x98,0x98,0x94,0x01,0x95,0x95,0x96,0x94,0x96,0x9F,0x9F,0x9D,0x9D, | ||
7617 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7618 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95, | ||
7619 | 0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95, | ||
7620 | 0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x9D, | ||
7621 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7622 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95, | ||
7623 | 0x95,0x9D,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95, | ||
7624 | 0x9D,0x9D,0x95,0x95,0x95,0x95,0x9D,0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D, | ||
7625 | 0x9D,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7626 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x93,0x92,0x98,0x94,0x95,0x95,0x92,0x98,0x97,0x94, | ||
7627 | 0x93,0x93,0x93,0x93,0x93,0x98,0x94,0x98,0x98,0x98,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7628 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7629 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7630 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7631 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7632 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7633 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7634 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7635 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x01,0x01,0x98, | ||
7636 | 0x95,0x95,0x93,0x98,0x01,0x01,0x01,0x01,0x97,0x98,0x98,0x95,0x9F,0x9F,0x9D,0x9D, | ||
7637 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7638 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7639 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7640 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7641 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7642 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7643 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7644 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7645 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7646 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x92,0x93,0x95,0x95,0x97,0x96,0x93,0x98,0x96,0x01, | ||
7647 | 0x94,0x92,0x92,0x92,0x01,0x98,0x94,0x97,0x96,0x97,0x9F,0x9F,0x9D,0x9D,0x9D,0x9D, | ||
7648 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7649 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7650 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7651 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7652 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7653 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7654 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7655 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x95,0x01, | ||
7656 | 0x01,0x01,0x95,0x94,0x95,0x94,0x98,0x98,0x96,0x95,0x01,0x95,0x9F,0x9F,0x9D,0x9D, | ||
7657 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7658 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7659 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7660 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7661 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7662 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7663 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7664 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7665 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, | ||
7666 | 0x9D,0x9D,0x9D,0x9D,0x9D,0x90,0x98,0x94,0x95,0x92,0x01,0x97,0x01,0x92,0x98,0x95, | ||
7667 | 0x95,0x95,0x95,0x98,0x95,0x98,0x98,0x98,0x98,0x92,0x96,0x96,0x96,0x95,0x95,0x95, | ||
7668 | 0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93, | ||
7669 | 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, | ||
7670 | 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x91,0x91,0x91,0x91, | ||
7671 | 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91, | ||
7672 | 0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7673 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7674 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7675 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x98,0x95,0x94, | ||
7676 | 0x95,0x98,0x98,0x96,0x96,0x98,0x98,0x01,0x01,0x95,0x96,0x01,0x99,0x95,0x94,0x95, | ||
7677 | 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94, | ||
7678 | 0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, | ||
7679 | 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92, | ||
7680 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
7681 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
7682 | 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, | ||
7683 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7684 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7685 | 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, | ||
7686 | 0x90,0x90,0x90,0x90,0x90,0x90,0x98,0x94,0x98,0x96,0x96,0x97,0x92,0x98,0x98,0x98, | ||
7687 | 0x98,0x93,0x98,0x95,0x01,0x95,0x98,0x01,0x92,0x96,0x94,0x92,0x92,0x93,0x01,0x95, | ||
7688 | 0x92,0x96,0x95,0x93,0x92,0x94,0x94,0x96,0x92,0x93,0x98,0x96,0x95,0x98,0x98,0x93, | ||
7689 | 0x92,0x95,0x8E,0x92,0x8E,0x94,0x92,0x93,0x8E,0x8E,0x92,0x8E,0x92,0x95,0x8E,0x95, | ||
7690 | 0x8E,0x8E,0x95,0x92,0x94,0x92,0x92,0x8E,0x8E,0x8E,0x8E,0x8E,0x92,0x91,0x8E,0x8E, | ||
7691 | 0x8E,0x91,0x93,0x93,0x92,0x95,0x94,0x95,0x98,0x01,0x98,0x95,0x95,0x99,0x98,0x96, | ||
7692 | 0x94,0x98,0x95,0x98,0x98,0x98,0x94,0x96,0x96,0x94,0x95,0x98,0x96,0x94,0x95,0x94, | ||
7693 | 0x97,0x97,0x95,0x97,0x95,0x01,0x98,0x96,0x01,0x96,0x01,0x98,0x98,0x98,0x93,0x99, | ||
7694 | 0x01,0x01,0x98,0x98,0x96,0x99,0x98,0x98,0x96,0x98,0x95,0x96,0x98,0x98,0x99,0x98, | ||
7695 | 0x95,0x98,0x95,0x01,0x98,0x99,0x99,0x95,0x98,0x96,0x96,0x01,0x9A,0x01,0x98,0x96, | ||
7696 | 0x9A,0x98,0x98,0x96,0x98,0x95,0x95,0x98,0x98,0x95,0x95,0x96,0x01,0x93,0x94,0x95, | ||
7697 | 0x93,0x94,0x92,0x8E,0x8E,0x01,0x95,0x8E,0x92,0x8E,0x8E,0x96,0x8E,0x8E,0x96,0x95, | ||
7698 | 0x98,0x93,0x95,0x94,0x93,0x96,0x96,0x98,0x01,0x96,0x94,0x94,0x96,0x95,0x96,0x95, | ||
7699 | 0x98,0x98,0x01,0x96,0x93,0x96,0x01,0x96,0x96,0x95,0x98,0x99,0x01,0x98,0x97,0x96, | ||
7700 | 0x95,0x98,0x93,0x93,0x93,0x94,0x92,0x92,0x95,0x91,0x92,0x95,0x96,0x95,0x94,0x98, | ||
7701 | 0x94,0x95,0x95,0x95,0x98,0x95,0x95,0x95,0x94,0x98,0x98,0x97,0x93,0x96,0x01,0x94, | ||
7702 | 0x94,0x94,0x95,0x94,0x95,0x95,0x94,0x92,0x98,0x94,0x94,0x96,0x96,0x95,0x98,0x95, | ||
7703 | 0x96,0x99,0x98,0x01,0x98,0x01,0x96,0x98,0x98,0x01,0x9A,0x98,0x98,0x94,0x98,0x96, | ||
7704 | 0x96,0x01,0x95,0x96,0x98,0x97,0x95,0x99,0x98,0x98,0x94,0x98,0x96,0x98,0x01,0x98, | ||
7705 | 0x01,0x01,0x94,0x95,0x93,0x93,0x01,0x94,0x98,0x94,0x01,0x92,0x96,0x96,0x95,0x95, | ||
7706 | 0x98,0x95,0x98,0x98,0x01,0x97,0x95,0x95,0x94,0x95,0x97,0x97,0x95,0x93,0x94,0x97, | ||
7707 | 0x93,0x01,0x96,0x95,0x96,0x96,0x96,0x92,0x01,0x95,0x01,0x95,0x98,0x98,0x95,0x95, | ||
7708 | 0x01,0x95,0x94,0x95,0x95,0x98,0x98,0x98,0x94,0x01,0x98,0x98,0x95,0x95,0x94,0x94, | ||
7709 | 0x94,0x95,0x8E,0x93,0x92,0x93,0x92,0x95,0x95,0x94,0x95,0x95,0x98,0x95,0x98,0x92, | ||
7710 | 0x94,0x94,0x94,0x93,0x95,0x96,0x01,0x95,0x92,0x95,0x8E,0x94,0x8E,0x8E,0x94,0x93, | ||
7711 | 0x94,0x92,0x92,0x94,0x95,0x94,0x94,0x98,0x95,0x92,0x93,0x98,0x98,0x95,0x98,0x96, | ||
7712 | 0x96,0x93,0x98,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x95,0x96,0x96,0x98,0x98,0x98, | ||
7713 | 0x99,0x98,0x98,0x01,0x99,0x98,0x96,0x99,0x01,0x95,0x98,0x01,0x99,0x99,0x99,0x98, | ||
7714 | 0x98,0x94,0x01,0x98,0x98,0x98,0x96,0x96,0x01,0x98,0x99,0x01,0x99,0x01,0x99,0x96, | ||
7715 | 0x98,0x99,0x95,0x98,0x99,0x94,0x01,0x99,0x9A,0x9A,0x98,0x01,0x01,0x99,0x98,0x01, | ||
7716 | 0x99,0x9A,0x98,0x98,0x98,0x96,0x95,0x99,0x96,0x95,0x98,0x94,0x94,0x96,0x93,0x8E, | ||
7717 | 0x92,0x8E,0x01,0x8E,0x95,0x95,0x8E,0x8E,0x95,0x92,0x92,0x8E,0x92,0x98,0x95,0x95, | ||
7718 | 0x95,0x95,0x95,0x96,0x98,0x96,0x98,0x98,0x95,0x95,0x98,0x98,0x01,0x98,0x98,0x95, | ||
7719 | 0x95,0x98,0x98,0x96,0x01,0x96,0x98,0x96,0x98,0x98,0x98,0x98,0x98,0x01,0x95,0x94, | ||
7720 | 0x95,0x95,0x94,0x91,0x93,0x94,0x01,0x94,0x92,0x94,0x95,0x95,0x95,0x94,0x92,0x95, | ||
7721 | 0x98,0x01,0x01,0x96,0x96,0x95,0x01,0x98,0x98,0x98,0x96,0x96,0x96,0x93,0x98,0x95, | ||
7722 | 0x95,0x93,0x97,0x98,0x94,0x98,0x97,0x98,0x93,0x01,0x96,0x98,0x98,0x99,0x01,0x98, | ||
7723 | 0x98,0x98,0x99,0x9A,0x95,0x95,0x9A,0x98,0x96,0x99,0x99,0x98,0x95,0x98,0x93,0x95, | ||
7724 | 0x95,0x97,0x95,0x96,0x96,0x98,0x99,0x98,0x01,0x01,0x98,0x98,0x01,0x01,0x01,0x01, | ||
7725 | 0x95,0x95,0x95,0x95,0x96,0x92,0x94,0x95,0x98,0x98,0x94,0x94,0x92,0x96,0x94,0x98, | ||
7726 | 0x95,0x94,0x94,0x94,0x01,0x97,0x94,0x93,0x98,0x94,0x97,0x96,0x98,0x94,0x95,0x01, | ||
7727 | 0x01,0x98,0x95,0x94,0x92,0x93,0x98,0x95,0x95,0x01,0x95,0x92,0x95,0x94,0x96,0x94, | ||
7728 | 0x96,0x96,0x94,0x95,0x96,0x96,0x95,0x01,0x95,0x93,0x96,0x95,0x95,0x92,0x94,0x92, | ||
7729 | 0x8E,0x8E,0x8E,0x98,0x92,0x98,0x96,0x94,0x96,0x96,0x96,0x96,0x01,0x96,0x98,0x01, | ||
7730 | 0x94,0x98,0x95,0x01,0x98,0x01,0x95,0x95,0x95,0x95,0x01,0x94,0x92,0x94,0x93,0x94, | ||
7731 | 0x96,0x96,0x01,0x95,0x94,0x96,0x94,0x96,0x98,0x95,0x98,0x94,0x97,0x98,0x92,0x96, | ||
7732 | 0x96,0x94,0x94,0x95,0x95,0x94,0x93,0x95,0x01,0x95,0x01,0x95,0x96,0x98,0x98,0x98, | ||
7733 | 0x99,0x98,0x98,0x99,0x95,0x9A,0x99,0x99,0x9A,0x98,0x99,0x98,0x9A,0x98,0x01,0x98, | ||
7734 | 0x96,0x98,0x94,0x94,0x98,0x95,0x98,0x96,0x99,0x98,0x9A,0x98,0x9A,0x9A,0x01,0x99, | ||
7735 | 0x99,0x98,0x95,0x99,0x98,0x96,0x99,0x98,0x96,0x94,0x96,0x95,0x94,0x98,0x01,0x95, | ||
7736 | 0x01,0x01,0x01,0x96,0x98,0x95,0x95,0x96,0x94,0x94,0x95,0x95,0x92,0x94,0x93,0x8E, | ||
7737 | 0x93,0x94,0x95,0x92,0x98,0x96,0x93,0x8E,0x93,0x95,0x93,0x95,0x95,0x96,0x98,0x96, | ||
7738 | 0x96,0x98,0x98,0x94,0x94,0x94,0x96,0x01,0x98,0x95,0x97,0x98,0x01,0x01,0x98,0x98, | ||
7739 | 0x98,0x98,0x96,0x98,0x98,0x01,0x99,0x98,0x99,0x95,0x95,0x96,0x95,0x96,0x93,0x92, | ||
7740 | 0x94,0x96,0x93,0x93,0x91,0x01,0x92,0x94,0x98,0x94,0x96,0x94,0x95,0x95,0x94,0x95, | ||
7741 | 0x96,0x95,0x95,0x93,0x96,0x01,0x98,0x01,0x96,0x95,0x94,0x94,0x93,0x95,0x96,0x98, | ||
7742 | 0x96,0x95,0x98,0x96,0x98,0x96,0x9A,0x9A,0x9A,0x9A,0x9A,0x98,0x96,0x9A,0x9A,0x98, | ||
7743 | 0x98,0x98,0x96,0x98,0x9A,0x98,0x98,0x98,0x95,0x99,0x99,0x98,0x96,0x95,0x98,0x98, | ||
7744 | 0x98,0x98,0x99,0x97,0x01,0x98,0x01,0x94,0x01,0x98,0x96,0x94,0x94,0x96,0x94,0x95, | ||
7745 | 0x98,0x98,0x95,0x94,0x98,0x95,0x94,0x96,0x92,0x95,0x95,0x98,0x01,0x95,0x94,0x92, | ||
7746 | 0x93,0x98,0x96,0x01,0x95,0x97,0x95,0x98,0x94,0x94,0x95,0x97,0x98,0x98,0x94,0x01, | ||
7747 | 0x98,0x98,0x95,0x92,0x94,0x96,0x92,0x95,0x93,0x94,0x95,0x95,0x98,0x96,0x98,0x96, | ||
7748 | 0x96,0x98,0x95,0x01,0x95,0x98,0x01,0x98,0x98,0x94,0x95,0x01,0x95,0x95,0x8E,0x8E, | ||
7749 | 0x8E,0x95,0x95,0x95,0x98,0x98,0x01,0x96,0x96,0x95,0x93,0x94,0x95,0x98,0x93,0x93, | ||
7750 | 0x93,0x98,0x95,0x96,0x98,0x95,0x94,0x95,0x95,0x95,0x98,0x95,0x96,0x92,0x96,0x01, | ||
7751 | 0x94,0x92,0x95,0x98,0x98,0x95,0x98,0x01,0x01,0x91,0x95,0x01,0x95,0x95,0x01,0x96, | ||
7752 | 0x98,0x95,0x94,0x01,0x92,0x94,0x98,0x98,0x94,0x96,0x94,0x94,0x01,0x01,0x98,0x98, | ||
7753 | 0x98,0x98,0x95,0x95,0x94,0x98,0x98,0x98,0x01,0x95,0x98,0x98,0x01,0x96,0x93,0x97, | ||
7754 | 0x95,0x95,0x94,0x97,0x94,0x98,0x01,0x95,0x98,0x95,0x92,0x94,0x98,0x98,0x94,0x95, | ||
7755 | 0x96,0x96,0x92,0x95,0x95,0x01,0x96,0x96,0x96,0x96,0x96,0x01,0x94,0x01,0x93,0x95, | ||
7756 | 0x95,0x96,0x98,0x94,0x95,0x94,0x95,0x93,0x95,0x96,0x96,0x01,0x98,0x98,0x96,0x01, | ||
7757 | 0x95,0x98,0x99,0x99,0x98,0x98,0x01,0x98,0x01,0x99,0x99,0x98,0x98,0x96,0x98,0x95, | ||
7758 | 0x98,0x01,0x95,0x98,0x98,0x96,0x98,0x01,0x96,0x98,0x96,0x98,0x96,0x98,0x98,0x98, | ||
7759 | 0x98,0x99,0x99,0x98,0x98,0x98,0x98,0x98,0x97,0x95,0x95,0x93,0x92,0x96,0x95,0x96, | ||
7760 | 0x94,0x98,0x98,0x93,0x95,0x93,0x96,0x92,0x92,0x95,0x95,0x95,0x94,0x93,0x92,0x93, | ||
7761 | 0x93,0x95,0x95,0x95,0x96,0x93,0x93,0x95,0x94,0x98,0x93,0x01,0x94,0x01,0x96,0x95, | ||
7762 | 0x99,0x96,0x98,0x99,0x01,0x99,0x96,0x98,0x01,0x01,0x98,0x98,0x96,0x95,0x98,0x99, | ||
7763 | 0x9A,0x9A,0x98,0x9A,0x98,0x98,0x99,0x98,0x96,0x95,0x99,0x96,0x98,0x9A,0x98,0x9A, | ||
7764 | 0x9A,0x9A,0x99,0x95,0x93,0x96,0x93,0x98,0x94,0x92,0x98,0x01,0x95,0x92,0x96,0x95, | ||
7765 | 0x92,0x96,0x95,0x95,0x94,0x01,0x98,0x95,0x95,0x95,0x95,0x94,0x97,0x98,0x96,0x96, | ||
7766 | 0x95,0x92,0x01,0x95,0x97,0x95,0x98,0x94,0x01,0x93,0x95,0x95,0x98,0x01,0x96,0x8E, | ||
7767 | 0x95,0x95,0x95,0x93,0x01,0x95,0x98,0x98,0x95,0x01,0x96,0x93,0x95,0x94,0x98,0x98, | ||
7768 | 0x01,0x01,0x98,0x98,0x95,0x95,0x98,0x98,0x98,0x95,0x96,0x95,0x8E,0x93,0x8E,0x93, | ||
7769 | 0x98,0x01,0x98,0x94,0x01,0x98,0x96,0x95,0x95,0x92,0x94,0x94,0x93,0x93,0x01,0x93, | ||
7770 | 0x93,0x93,0x95,0x95,0x93,0x95,0x94,0x96,0x94,0x95,0x93,0x95,0x94,0x96,0x95,0x94, | ||
7771 | 0x95,0x95,0x92,0x98,0x97,0x96,0x96,0x96,0x95,0x98,0x96,0x98,0x95,0x98,0x98,0x94, | ||
7772 | 0x96,0x01,0x94,0x92,0x01,0x01,0x98,0x99,0x96,0x96,0x98,0x94,0x95,0x93,0x95,0x98, | ||
7773 | 0x95,0x98,0x98,0x93,0x96,0x97,0x97,0x95,0x96,0x98,0x94,0x94,0x98,0x01,0x98,0x01, | ||
7774 | 0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x98,0x94,0x96,0x96,0x95,0x96,0x98,0x96,0x95, | ||
7775 | 0x95,0x95,0x94,0x94,0x94,0x95,0x93,0x01,0x95,0x95,0x92,0x93,0x94,0x95,0x95,0x93, | ||
7776 | 0x8E,0x93,0x92,0x94,0x8E,0x8E,0x92,0x8E,0x8E,0x94,0x96,0x98,0x01,0x98,0x98,0x98, | ||
7777 | 0x95,0x95,0x96,0x01,0x98,0x95,0x95,0x99,0x98,0x99,0x99,0x99,0x95,0x98,0x98,0x98, | ||
7778 | 0x95,0x01,0x95,0x98,0x95,0x01,0x95,0x98,0x98,0x01,0x98,0x96,0x01,0x96,0x98,0x95, | ||
7779 | 0x98,0x98,0x98,0x98,0x98,0x96,0x96,0x98,0x96,0x95,0x95,0x95,0x95,0x96,0x97,0x95, | ||
7780 | 0x96,0x98,0x96,0x95,0x96,0x97,0x94,0x95,0x98,0x93,0x95,0x94,0x95,0x01,0x92,0x96, | ||
7781 | 0x95,0x95,0x96,0x95,0x95,0x96,0x01,0x96,0x96,0x95,0x95,0x96,0x98,0x97,0x96,0x95, | ||
7782 | 0x95,0x92,0x97,0x98,0x97,0x94,0x97,0x93,0x94,0x96,0x96,0x01,0x95,0x94,0x98,0x98, | ||
7783 | 0x94,0x97,0x96,0x98,0x92,0x97,0x98,0x98,0x96,0x98,0x94,0x98,0x98,0x94,0x01,0x98, | ||
7784 | 0x99,0x98,0x96,0x98,0x94,0x98,0x01,0x96,0x98,0x01,0x94,0x96,0x94,0x98,0x96,0x95, | ||
7785 | 0x01,0x94,0x95,0x96,0x97,0x96,0x95,0x96,0x01,0x95,0x97,0x98,0x95,0x95,0x96,0x96, | ||
7786 | 0x94,0x98,0x95,0x98,0x95,0x98,0x96,0x96,0x98,0x01,0x01,0x98,0x92,0x95,0x01,0x98, | ||
7787 | 0x95,0x94,0x96,0x93,0x98,0x98,0x96,0x95,0x98,0x98,0x95,0x98,0x95,0x95,0x95,0x01, | ||
7788 | 0x95,0x95,0x93,0x93,0x96,0x95,0x95,0x93,0x95,0x94,0x95,0x92,0x8E,0x94,0x98,0x95, | ||
7789 | 0x96,0x94,0x98,0x96,0x95,0x95,0x95,0x94,0x92,0x95,0x01,0x92,0x98,0x93,0x92,0x95, | ||
7790 | 0x01,0x93,0x92,0x94,0x92,0x93,0x94,0x92,0x95,0x92,0x94,0x94,0x95,0x93,0x95,0x96, | ||
7791 | 0x95,0x94,0x95,0x92,0x97,0x94,0x95,0x01,0x01,0x94,0x98,0x01,0x01,0x98,0x95,0x98, | ||
7792 | 0x01,0x98,0x95,0x95,0x01,0x98,0x01,0x96,0x98,0x94,0x97,0x01,0x01,0x95,0x96,0x98, | ||
7793 | 0x98,0x95,0x96,0x96,0x96,0x94,0x01,0x96,0x94,0x95,0x98,0x92,0x94,0x96,0x96,0x98, | ||
7794 | 0x17,0x17,0x17,0x17,0x98,0x95,0x96,0x96,0x93,0x01,0x93,0x93,0x01,0x96,0x95,0x94, | ||
7795 | 0x95,0x93,0x95,0x95,0x96,0x96,0x95,0x91,0x96,0x93,0x92,0x92,0x94,0x95,0x91,0x94, | ||
7796 | 0x92,0x93,0x8E,0x8E,0x8E,0x95,0x92,0x91,0x95,0x93,0x92,0x94,0x96,0x95,0x95,0x01, | ||
7797 | 0x98,0x98,0x93,0x98,0x01,0x98,0x95,0x01,0x92,0x93,0x94,0x96,0x95,0x98,0x96,0x97, | ||
7798 | 0x95,0x98,0x98,0x98,0x98,0x01,0x98,0x17,0x17,0x98,0x01,0x98,0x98,0x96,0x94,0x95, | ||
7799 | 0x94,0x95,0x96,0x98,0x96,0x94,0x95,0x01,0x98,0x01,0x94,0x95,0x98,0x92,0x01,0x98, | ||
7800 | 0x98,0x98,0x98,0x01,0x98,0x98,0x96,0x98,0x9A,0x95,0x99,0x98,0x95,0x97,0x97,0x95, | ||
7801 | 0x98,0x95,0x98,0x98,0x95,0x95,0x98,0x92,0x98,0x94,0x95,0x95,0x96,0x96,0x94,0x96, | ||
7802 | 0x98,0x92,0x96,0x95,0x01,0x98,0x01,0x98,0x92,0x92,0x98,0x01,0x98,0x98,0x01,0x96, | ||
7803 | 0x92,0x94,0x95,0x95,0x95,0x98,0x95,0x96,0x96,0x95,0x93,0x01,0x01,0x94,0x98,0x96, | ||
7804 | 0x01,0x98,0x99,0x98,0x98,0x98,0x01,0x98,0x01,0x96,0x9A,0x9A,0x96,0x96,0x98,0x9A, | ||
7805 | 0x95,0x98,0x96,0x01,0x98,0x94,0x97,0x93,0x96,0x98,0x01,0x95,0x95,0x97,0x96,0x01, | ||
7806 | 0x98,0x96,0x96,0x01,0x95,0x96,0x01,0x98,0x94,0x01,0x01,0x94,0x95,0x96,0x97,0x98, | ||
7807 | 0x93,0x95,0x01,0x98,0x94,0x94,0x95,0x94,0x96,0x95,0x95,0x95,0x94,0x96,0x95,0x95, | ||
7808 | 0x93,0x92,0x94,0x95,0x98,0x93,0x92,0x92,0x96,0x94,0x96,0x95,0x93,0x92,0x94,0x95, | ||
7809 | 0x96,0x95,0x95,0x95,0x01,0x95,0x98,0x93,0x93,0x93,0x95,0x93,0x94,0x95,0x92,0x95, | ||
7810 | 0x01,0x92,0x95,0x94,0x92,0x95,0x92,0x95,0x95,0x95,0x94,0x92,0x93,0x95,0x01,0x95, | ||
7811 | 0x95,0x98,0x94,0x96,0x95,0x98,0x94,0x01,0x98,0x01,0x94,0x98,0x96,0x01,0x01,0x93, | ||
7812 | 0x94,0x92,0x97,0x01,0x98,0x96,0x01,0x01,0x98,0x94,0x94,0x95,0x01,0x94,0x96,0x01, | ||
7813 | 0x01,0x98,0x96,0x96,0x92,0x96,0x01,0x95,0x96,0x96,0x94,0x96,0x01,0x96,0x98,0x17, | ||
7814 | 0x17,0x98,0x98,0x17,0x17,0x98,0x94,0x98,0x98,0x98,0x98,0x98,0x01,0x93,0x94,0x93, | ||
7815 | 0x98,0x98,0x98,0x98,0x95,0x94,0x01,0x95,0x94,0x92,0x93,0x95,0x95,0x93,0x93,0x98, | ||
7816 | 0x98,0x8E,0x93,0x94,0x98,0x98,0x94,0x95,0x98,0x98,0x98,0x98,0x98,0x01,0x94,0x98, | ||
7817 | 0x98,0x93,0x01,0x01,0x98,0x98,0x94,0x94,0x98,0x98,0x98,0x98,0x95,0x96,0x01,0x98, | ||
7818 | 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x98,0x96,0x98,0x95,0x94, | ||
7819 | 0x92,0x96,0x96,0x96,0x95,0x96,0x96,0x98,0x98,0x01,0x96,0x98,0x97,0x98,0x98,0x95, | ||
7820 | 0x98,0x01,0x98,0x98,0x96,0x98,0x98,0x98,0x96,0x95,0x98,0x97,0x94,0x94,0x93,0x01, | ||
7821 | 0x95,0x94,0x96,0x98,0x01,0x95,0x96,0x98,0x01,0x98,0x95,0x01,0x01,0x94,0x01,0x95, | ||
7822 | 0x01,0x96,0x95,0x01,0x98,0x92,0x95,0x01,0x96,0x94,0x01,0x01,0x95,0x98,0x93,0x96, | ||
7823 | 0x95,0x94,0x96,0x96,0x01,0x94,0x95,0x96,0x01,0x94,0x95,0x96,0x91,0x95,0x01,0x97, | ||
7824 | 0x95,0x98,0x96,0x96,0x98,0x98,0x01,0x98,0x98,0x96,0x95,0x01,0x98,0x01,0x01,0x98, | ||
7825 | 0x99,0x01,0x9A,0x99,0x98,0x96,0x94,0x98,0x96,0x96,0x95,0x95,0x98,0x94,0x95,0x96, | ||
7826 | 0x94,0x98,0x94,0x98,0x01,0x96,0x98,0x94,0x95,0x01,0x94,0x98,0x98,0x98,0x98,0x95, | ||
7827 | 0x95,0x92,0x98,0x92,0x93,0x94,0x93,0x96,0x01,0x92,0x92,0x96,0x98,0x92,0x01,0x93, | ||
7828 | 0x94,0x93,0x95,0x92,0x93,0x93,0x01,0x93,0x8E,0x92,0x92,0x96,0x96,0x93,0x95,0x94, | ||
7829 | 0x95,0x94,0x92,0x93,0x01,0x96,0x93,0x92,0x95,0x93,0x92,0x92,0x94,0x91,0x95,0x95, | ||
7830 | 0x01,0x95,0x94,0x94,0x93,0x95,0x95,0x01,0x95,0x93,0x96,0x01,0x94,0x95,0x92,0x96, | ||
7831 | 0x95,0x01,0x94,0x01,0x01,0x01,0x95,0x98,0x95,0x95,0x98,0x98,0x94,0x95,0x98,0x98, | ||
7832 | 0x96,0x99,0x01,0x96,0x98,0x99,0x98,0x98,0x98,0x01,0x94,0x94,0x98,0x98,0x96,0x95, | ||
7833 | 0x95,0x94,0x01,0x98,0x94,0x95,0x96,0x95,0x96,0x95,0x94,0x96,0x96,0x96,0x98,0x17, | ||
7834 | 0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x92,0x92,0x98, | ||
7835 | 0x17,0x17,0x17,0x17,0x98,0x95,0x93,0x92,0x96,0x95,0x94,0x98,0x96,0x96,0x98,0x17, | ||
7836 | 0x17,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x98,0x17, | ||
7837 | 0x17,0x98,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x96,0x98,0x17, | ||
7838 | 0x17,0x17,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x95,0x95,0x01, | ||
7839 | 0x01,0x94,0x95,0x96,0x96,0x95,0x98,0x98,0x97,0x98,0x96,0x95,0x95,0x98,0x95,0x95, | ||
7840 | 0x96,0x98,0x92,0x98,0x96,0x01,0x94,0x94,0x92,0x96,0x94,0x98,0x94,0x98,0x95,0x01, | ||
7841 | 0x01,0x95,0x01,0x98,0x01,0x98,0x01,0x98,0x94,0x94,0x98,0x95,0x96,0x01,0x96,0x01, | ||
7842 | 0x95,0x94,0x01,0x94,0x95,0x95,0x95,0x98,0x96,0x01,0x94,0x98,0x92,0x01,0x95,0x01, | ||
7843 | 0x92,0x96,0x98,0x95,0x01,0x98,0x01,0x95,0x98,0x96,0x96,0x96,0x01,0x98,0x01,0x98, | ||
7844 | 0x01,0x97,0x94,0x98,0x01,0x96,0x01,0x95,0x99,0x01,0x98,0x9A,0x9A,0x95,0x98,0x9B, | ||
7845 | 0x98,0x98,0x9A,0x98,0x9A,0x01,0x99,0x95,0x96,0x9D,0x98,0x9D,0x98,0x96,0x9B,0x98, | ||
7846 | 0x01,0x95,0x9B,0x9D,0x9B,0x94,0x01,0x95,0x97,0x01,0x94,0x98,0x98,0x98,0x98,0x98, | ||
7847 | 0x93,0x98,0x96,0x95,0x95,0x92,0x93,0x93,0x95,0x93,0x96,0x94,0x93,0x95,0x95,0x94, | ||
7848 | 0x93,0x98,0x92,0x94,0x95,0x95,0x94,0x92,0x92,0x92,0x98,0x93,0x96,0x92,0x95,0x95, | ||
7849 | 0x92,0x91,0x94,0x96,0x94,0x95,0x93,0x98,0x95,0x94,0x01,0x98,0x96,0x98,0x93,0x94, | ||
7850 | 0x93,0x92,0x93,0x94,0x96,0x01,0x98,0x93,0x93,0x96,0x96,0x96,0x96,0x01,0x95,0x96, | ||
7851 | 0x95,0x94,0x95,0x94,0x98,0x01,0x94,0x95,0x96,0x98,0x99,0x99,0x98,0x96,0x01,0x95, | ||
7852 | 0x98,0x98,0x98,0x98,0x01,0x01,0x98,0x98,0x01,0x95,0x95,0x94,0x98,0x94,0x96,0x96, | ||
7853 | 0x01,0x94,0x95,0x94,0x95,0x93,0x96,0x94,0x96,0x95,0x94,0x01,0x96,0x95,0x98,0x17, | ||
7854 | 0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17, | ||
7855 | 0x17,0x98,0x98,0x17,0x17,0x98,0x01,0x93,0x94,0x92,0x96,0x8E,0x93,0x8E,0x98,0x17, | ||
7856 | 0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17, | ||
7857 | 0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17, | ||
7858 | 0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x98,0x01,0x96,0x98,0x96, | ||
7859 | 0x96,0x01,0x95,0x92,0x01,0x98,0x95,0x98,0x95,0x98,0x98,0x95,0x98,0x96,0x01,0x95, | ||
7860 | 0x98,0x01,0x95,0x98,0x96,0x94,0x96,0x96,0x01,0x95,0x96,0x98,0x94,0x96,0x96,0x96, | ||
7861 | 0x98,0x01,0x96,0x01,0x01,0x98,0x01,0x01,0x96,0x96,0x95,0x01,0x92,0x95,0x01,0x96, | ||
7862 | 0x96,0x94,0x96,0x01,0x92,0x93,0x01,0x95,0x98,0x94,0x96,0x01,0x01,0x95,0x01,0x92, | ||
7863 | 0x98,0x01,0x98,0x01,0x98,0x95,0x01,0x01,0x01,0x93,0x98,0x96,0x95,0x98,0x01,0x98, | ||
7864 | 0x95,0x94,0x95,0x96,0x98,0x98,0x96,0x97,0x95,0x01,0x96,0x99,0x99,0x98,0x95,0x98, | ||
7865 | 0x99,0x98,0x01,0x98,0x98,0x01,0x96,0x98,0x98,0x9D,0x99,0x9D,0x98,0x9B,0x9D,0x01, | ||
7866 | 0x96,0x98,0x9C,0x98,0x9C,0x97,0x95,0x01,0x94,0x98,0x98,0x98,0x98,0x98,0x01,0x98, | ||
7867 | 0x96,0x98,0x96,0x92,0x93,0x94,0x95,0x95,0x92,0x93,0x93,0x91,0x96,0x94,0x95,0x95, | ||
7868 | 0x98,0x96,0x93,0x95,0x92,0x92,0x95,0x92,0x8E,0x92,0x93,0x94,0x98,0x95,0x95,0x93, | ||
7869 | 0x93,0x92,0x96,0x93,0x96,0x95,0x92,0x92,0x94,0x92,0x95,0x96,0x95,0x94,0x92,0x94, | ||
7870 | 0x96,0x01,0x01,0x95,0x95,0x94,0x96,0x94,0x93,0x95,0x98,0x94,0x98,0x01,0x01,0x95, | ||
7871 | 0x95,0x95,0x96,0x96,0x01,0x99,0x96,0x99,0x96,0x95,0x96,0x99,0x99,0x95,0x94,0x94, | ||
7872 | 0x01,0x98,0x96,0x96,0x98,0x96,0x01,0x95,0x98,0x96,0x96,0x98,0x93,0x98,0x01,0x96, | ||
7873 | 0x96,0x95,0x96,0x91,0x01,0x96,0x01,0x96,0x96,0x95,0x96,0x95,0x01,0x94,0x98,0x17, | ||
7874 | 0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17, | ||
7875 | 0x17,0x17,0x17,0x17,0x17,0x98,0x94,0x95,0x98,0x8E,0x92,0x91,0x92,0x93,0x98,0x17, | ||
7876 | 0x17,0x98,0x17,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17, | ||
7877 | 0x17,0x98,0x17,0x98,0x17,0x17,0x98,0x17,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17, | ||
7878 | 0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x01,0x93,0x94,0x98,0x96,0x95, | ||
7879 | 0x98,0x98,0x01,0x95,0x96,0x98,0x98,0x97,0x98,0x98,0x98,0x98,0x93,0x96,0x96,0x95, | ||
7880 | 0x98,0x98,0x94,0x98,0x96,0x98,0x92,0x96,0x96,0x96,0x98,0x96,0x96,0x95,0x01,0x98, | ||
7881 | 0x93,0x96,0x01,0x95,0x98,0x95,0x01,0x95,0x96,0x96,0x98,0x01,0x01,0x94,0x98,0x98, | ||
7882 | 0x94,0x96,0x95,0x95,0x95,0x92,0x98,0x95,0x01,0x01,0x95,0x98,0x95,0x98,0x01,0x96, | ||
7883 | 0x96,0x98,0x01,0x98,0x98,0x93,0x93,0x95,0x98,0x01,0x01,0x96,0x95,0x95,0x96,0x95, | ||
7884 | 0x98,0x94,0x98,0x94,0x98,0x94,0x96,0x98,0x95,0x95,0x97,0x95,0x98,0x98,0x01,0x98, | ||
7885 | 0x98,0x96,0x98,0x98,0x01,0x98,0x96,0x98,0x98,0x9D,0x98,0x9D,0x9A,0x98,0x9D,0x99, | ||
7886 | 0x96,0x96,0x9D,0x96,0x9D,0x01,0x98,0x97,0x94,0x98,0x98,0x98,0x98,0x98,0x98,0x98, | ||
7887 | 0x93,0x95,0x96,0x93,0x93,0x95,0x93,0x94,0x91,0x94,0x92,0x94,0x96,0x93,0x93,0x95, | ||
7888 | 0x93,0x96,0x8E,0x8E,0x95,0x8F,0x93,0x94,0x91,0x92,0x94,0x95,0x92,0x93,0x93,0x93, | ||
7889 | 0x92,0x95,0x94,0x92,0x96,0x94,0x96,0x95,0x95,0x94,0x93,0x01,0x95,0x92,0x95,0x93, | ||
7890 | 0x92,0x95,0x94,0x95,0x94,0x95,0x93,0x95,0x98,0x98,0x01,0x98,0x97,0x98,0x98,0x93, | ||
7891 | 0x98,0x95,0x98,0x96,0x95,0x99,0x99,0x01,0x95,0x98,0x98,0x98,0x96,0x96,0x94,0x95, | ||
7892 | 0x96,0x98,0x95,0x94,0x98,0x98,0x94,0x98,0x95,0x96,0x98,0x98,0x95,0x94,0x01,0x95, | ||
7893 | 0x96,0x01,0x01,0x96,0x96,0x94,0x96,0x96,0x95,0x98,0x93,0x95,0x94,0x92,0x98,0x17, | ||
7894 | 0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17, | ||
7895 | 0x17,0x98,0x98,0x98,0x98,0x01,0x95,0x92,0x8E,0x01,0x92,0x95,0x96,0x95,0x98,0x17, | ||
7896 | 0x17,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17, | ||
7897 | 0x17,0x98,0x98,0x98,0x17,0x17,0x98,0x17,0x17,0x98,0x98,0x98,0x98,0x01,0x98,0x17, | ||
7898 | 0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x98,0x96,0x96,0x96,0x98, | ||
7899 | 0x17,0x17,0x98,0x94,0x95,0x98,0x98,0x98,0x17,0x17,0x98,0x01,0x96,0x95,0x01,0x98, | ||
7900 | 0x17,0x17,0x98,0x95,0x96,0x98,0x96,0x96,0x95,0x96,0x98,0x01,0x98,0x01,0x95,0x96, | ||
7901 | 0x95,0x98,0x98,0x01,0x01,0x98,0x95,0x98,0x01,0x98,0x98,0x01,0x94,0x98,0x98,0x01, | ||
7902 | 0x96,0x95,0x96,0x93,0x93,0x98,0x93,0x96,0x98,0x98,0x98,0x96,0x95,0x98,0x96,0x96, | ||
7903 | 0x95,0x96,0x95,0x94,0x95,0x96,0x01,0x01,0x96,0x01,0x93,0x93,0x01,0x98,0x96,0x93, | ||
7904 | 0x93,0x01,0x95,0x01,0x01,0x96,0x01,0x94,0x98,0x95,0x01,0x95,0x95,0x96,0x01,0x97, | ||
7905 | 0x97,0x96,0x98,0x98,0x96,0x96,0x94,0x96,0x95,0x9C,0x98,0x9C,0x96,0x98,0x9D,0x01, | ||
7906 | 0x01,0x98,0x9D,0x95,0x9D,0x01,0x01,0x96,0x95,0x95,0x95,0x95,0x01,0x95,0x98,0x98, | ||
7907 | 0x95,0x92,0x93,0x95,0x95,0x92,0x93,0x93,0x92,0x95,0x96,0x93,0x95,0x92,0x95,0x95, | ||
7908 | 0x96,0x92,0x92,0x91,0x94,0x01,0x94,0x96,0x95,0x93,0x93,0x93,0x92,0x95,0x93,0x92, | ||
7909 | 0x91,0x95,0x96,0x94,0x91,0x98,0x95,0x96,0x92,0x93,0x93,0x95,0x94,0x95,0x96,0x94, | ||
7910 | 0x94,0x92,0x95,0x01,0x96,0x98,0x98,0x94,0x95,0x95,0x01,0x97,0x94,0x97,0x98,0x95, | ||
7911 | 0x98,0x01,0x98,0x93,0x99,0x96,0x95,0x95,0x98,0x01,0x01,0x96,0x92,0x96,0x96,0x96, | ||
7912 | 0x95,0x92,0x96,0x95,0x93,0x93,0x96,0x96,0x96,0x95,0x95,0x93,0x96,0x96,0x98,0x96, | ||
7913 | 0x01,0x94,0x96,0x95,0x96,0x96,0x96,0x95,0x92,0x96,0x92,0x95,0x95,0x95,0x94,0x98, | ||
7914 | 0x17,0x17,0x17,0x17,0x98,0x95,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x98,0x95,0x98, | ||
7915 | 0x17,0x17,0x17,0x17,0x17,0x98,0x8E,0x8E,0x92,0x95,0x95,0x92,0x93,0x92,0x98,0x17, | ||
7916 | 0x17,0x98,0x96,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x98,0x98,0x17, | ||
7917 | 0x17,0x98,0x96,0x98,0x17,0x17,0x98,0x98,0x17,0x17,0x17,0x17,0x17,0x98,0x98,0x17, | ||
7918 | 0x17,0x98,0x98,0x17,0x17,0x98,0x98,0x98,0x17,0x17,0x17,0x17,0x98,0x96,0x01,0x98, | ||
7919 | 0x17,0x17,0x98,0x97,0x95,0x96,0x95,0x98,0x17,0x17,0x98,0x98,0x96,0x96,0x95,0x98, | ||
7920 | 0x17,0x17,0x98,0x95,0x95,0x96,0x96,0x95,0x01,0x95,0x92,0x95,0x95,0x01,0x98,0x96, | ||
7921 | 0x01,0x98,0x98,0x98,0x01,0x95,0x94,0x94,0x01,0x98,0x98,0x98,0x95,0x98,0x92,0x01, | ||
7922 | 0x01,0x98,0x96,0x95,0x98,0x95,0x94,0x01,0x01,0x01,0x96,0x01,0x95,0x95,0x01,0x01, | ||
7923 | 0x01,0x93,0x94,0x98,0x01,0x01,0x01,0x94,0x95,0x95,0x01,0x95,0x92,0x01,0x94,0x92, | ||
7924 | 0x96,0x94,0x95,0x95,0x93,0x95,0x01,0x01,0x94,0x93,0x95,0x01,0x98,0x95,0x95,0x94, | ||
7925 | 0x93,0x98,0x96,0x95,0x94,0x93,0x97,0x01,0x95,0x9B,0x9D,0x9B,0x96,0x94,0x9D,0x98, | ||
7926 | 0x98,0x98,0x9C,0x99,0x9C,0x98,0x99,0x9A,0x99,0x96,0x98,0x98,0x95,0x98,0x95,0x01, | ||
7927 | 0x93,0x92,0x93,0x92,0x94,0x93,0x95,0x92,0x92,0x94,0x93,0x93,0x93,0x98,0x01,0x94, | ||
7928 | 0x8E,0x94,0x01,0x93,0x01,0x94,0x95,0x98,0x93,0x95,0x01,0x93,0x94,0x93,0x94,0x93, | ||
7929 | 0x92,0x92,0x95,0x96,0x95,0x92,0x96,0x95,0x95,0x94,0x92,0x94,0x95,0x01,0x94,0x92, | ||
7930 | 0x95,0x95,0x95,0x95,0x01,0x95,0x95,0x95,0x98,0x01,0x92,0x98,0x93,0x97,0x92,0x93, | ||
7931 | 0x98,0x99,0x01,0x99,0x94,0x97,0x98,0x98,0x95,0x96,0x94,0x95,0x98,0x94,0x95,0x96, | ||
7932 | 0x98,0x94,0x95,0x96,0x93,0x95,0x94,0x95,0x96,0x95,0x96,0x98,0x96,0x96,0x95,0x95, | ||
7933 | 0x95,0x93,0x93,0x95,0x95,0x95,0x93,0x93,0x95,0x95,0x92,0x93,0x92,0x95,0x92,0x95, | ||
7934 | 0x98,0x98,0x98,0x98,0x94,0x94,0x94,0x98,0x98,0x98,0x96,0x98,0x98,0x93,0x92,0x95, | ||
7935 | 0x98,0x98,0x98,0x98,0x98,0x94,0x92,0x92,0x92,0x01,0x92,0x94,0x92,0x95,0x94,0x98, | ||
7936 | 0x98,0x96,0x98,0x96,0x98,0x98,0x95,0x95,0x98,0x98,0x98,0x98,0x98,0x96,0x94,0x98, | ||
7937 | 0x98,0x95,0x95,0x93,0x98,0x98,0x96,0x96,0x98,0x98,0x98,0x98,0x98,0x98,0x94,0x98, | ||
7938 | 0x98,0x01,0x94,0x98,0x98,0x98,0x98,0x94,0x98,0x98,0x98,0x98,0x98,0x01,0x01,0x95, | ||
7939 | 0x98,0x98,0x98,0x01,0x96,0x92,0x98,0x95,0x98,0x98,0x94,0x98,0x01,0x98,0x95,0x96, | ||
7940 | 0x98,0x98,0x01,0x96,0x96,0x96,0x96,0x96,0x01,0x93,0x01,0x95,0x98,0x98,0x95,0x95, | ||
7941 | 0x94,0x94,0x95,0x01,0x01,0x01,0x01,0x01,0x98,0x94,0x92,0x96,0x01,0x01,0x01,0x94, | ||
7942 | 0x98,0x94,0x93,0x95,0x94,0x95,0x96,0x94,0x95,0x01,0x95,0x94,0x94,0x01,0x01,0x01, | ||
7943 | 0x95,0x94,0x98,0x01,0x01,0x98,0x96,0x95,0x96,0x96,0x98,0x96,0x96,0x94,0x98,0x96, | ||
7944 | 0x01,0x95,0x96,0x96,0x01,0x96,0x01,0x96,0x98,0x96,0x95,0x95,0x96,0x98,0x01,0x92, | ||
7945 | 0x95,0x01,0x95,0x01,0x94,0x98,0x01,0x97,0x95,0x98,0x9D,0x01,0x01,0x01,0x9D,0x98, | ||
7946 | 0x9C,0x01,0x9B,0x9D,0x9B,0x96,0x9A,0x98,0x9A,0x01,0x95,0x01,0x99,0x98,0x95,0x95, | ||
7947 | 0x92,0x96,0x92,0x95,0x94,0x94,0x93,0x93,0x93,0x96,0x93,0x92,0x93,0x92,0x8E,0x92, | ||
7948 | 0x92,0x92,0x92,0x95,0x92,0x91,0x92,0x93,0x92,0x92,0x01,0x92,0x96,0x92,0x98,0x01, | ||
7949 | 0x95,0x95,0x95,0x94,0x95,0x95,0x93,0x95,0x95,0x95,0x93,0x01,0x94,0x95,0x01,0x01, | ||
7950 | 0x96,0x95,0x98,0x95,0x95,0x98,0x95,0x98,0x98,0x98,0x01,0x98,0x97,0x97,0x01,0x98, | ||
7951 | 0x94,0x95,0x98,0x93,0x97,0x98,0x94,0x96,0x95,0x94,0x95,0x92,0x98,0x93,0x95,0x95, | ||
7952 | 0x96,0x01,0x93,0x01,0x94,0x96,0x93,0x95,0x93,0x01,0x96,0x96,0x95,0x95,0x96,0x95, | ||
7953 | 0x98,0x95,0x93,0x96,0x94,0x95,0x92,0x95,0x96,0x92,0x92,0x91,0x92,0x96,0x95,0x93, | ||
7954 | 0x93,0x95,0x95,0x95,0x93,0x92,0x94,0x93,0x95,0x92,0x94,0x95,0x92,0x92,0x92,0x91, | ||
7955 | 0x8E,0x92,0x92,0x8E,0x93,0x94,0x94,0x91,0x94,0x96,0x94,0x94,0x96,0x96,0x95,0x01, | ||
7956 | 0x95,0x01,0x95,0x98,0x93,0x01,0x95,0x98,0x96,0x96,0x96,0x98,0x93,0x96,0x94,0x98, | ||
7957 | 0x95,0x95,0x95,0x95,0x95,0x95,0x01,0x01,0x01,0x98,0x98,0x01,0x95,0x95,0x98,0x94, | ||
7958 | 0x01,0x98,0x94,0x01,0x01,0x01,0x01,0x95,0x01,0x95,0x94,0x01,0x01,0x97,0x96,0x98, | ||
7959 | 0x96,0x94,0x95,0x95,0x95,0x95,0x98,0x95,0x98,0x95,0x96,0x95,0x98,0x93,0x94,0x94, | ||
7960 | 0x95,0x96,0x98,0x96,0x98,0x96,0x98,0x95,0x98,0x94,0x96,0x94,0x98,0x01,0x98,0x96, | ||
7961 | 0x01,0x94,0x01,0x01,0x94,0x96,0x96,0x01,0x95,0x01,0x98,0x98,0x95,0x98,0x96,0x98, | ||
7962 | 0x93,0x01,0x01,0x01,0x93,0x01,0x01,0x95,0x01,0x92,0x98,0x94,0x96,0x94,0x95,0x95, | ||
7963 | 0x94,0x01,0x96,0x01,0x98,0x96,0x01,0x01,0x01,0x95,0x95,0x01,0x01,0x01,0x95,0x98, | ||
7964 | 0x95,0x95,0x94,0x96,0x95,0x01,0x98,0x01,0x01,0x98,0x96,0x01,0x96,0x98,0x96,0x96, | ||
7965 | 0x96,0x96,0x96,0x98,0x93,0x96,0x95,0x01,0x96,0x94,0x94,0x95,0x98,0x95,0x98,0x96, | ||
7966 | 0x98,0x98,0x99,0x9A,0x95,0x94,0x01,0x98,0x98,0x9A,0x9A,0x98,0x98,0x01,0x96,0x96, | ||
7967 | 0x95,0x95,0x93,0x96,0x92,0x92,0x96,0x8E,0x94,0x8E,0x8E,0x8E,0x94,0x8E,0x8E,0x8E, | ||
7968 | 0x92,0x98,0x01,0x94,0x93,0x96,0x98,0x98,0x01,0x95,0x94,0x98,0x95,0x98,0x98,0x98, | ||
7969 | 0x98,0x01,0x98,0x95,0x01,0x95,0x98,0x01,0x01,0x98,0x94,0x93,0x98,0x96,0x01,0x01, | ||
7970 | 0x95,0x95,0x98,0x95,0x98,0x01,0x98,0x96,0x98,0x95,0x98,0x99,0x98,0x94,0x94,0x95, | ||
7971 | 0x94,0x98,0x01,0x96,0x94,0x95,0x98,0x95,0x93,0x94,0x95,0x93,0x92,0x94,0x95,0x95, | ||
7972 | 0x94,0x95,0x94,0x95,0x92,0x96,0x01,0x96,0x92,0x95,0x94,0x01,0x92,0x95,0x95,0x92, | ||
7973 | 0x96,0x94,0x92,0x94,0x95,0x96,0x94,0x92,0x96,0x95,0x8E,0x8E,0x8E,0x92,0x92,0x93, | ||
7974 | 0x93,0x92,0x95,0x93,0x95,0x92,0x94,0x92,0x94,0x92,0x93,0x93,0x8E,0x96,0x8E,0x92, | ||
7975 | 0x8E,0x93,0x95,0x92,0x01,0x94,0x95,0x96,0x95,0x93,0x01,0x95,0x99,0x96,0x98,0x96, | ||
7976 | 0x01,0x98,0x94,0x99,0x99,0x98,0x98,0x98,0x94,0x99,0x98,0x99,0x98,0x98,0x99,0x96, | ||
7977 | 0x01,0x96,0x01,0x96,0x96,0x95,0x98,0x96,0x98,0x94,0x98,0x98,0x99,0x99,0x98,0x98, | ||
7978 | 0x96,0x96,0x99,0x98,0x99,0x96,0x98,0x01,0x96,0x98,0x95,0x95,0x94,0x95,0x93,0x94, | ||
7979 | 0x92,0x95,0x96,0x96,0x94,0x96,0x94,0x96,0x94,0x96,0x98,0x01,0x95,0x96,0x96,0x96, | ||
7980 | 0x95,0x95,0x01,0x94,0x96,0x95,0x94,0x01,0x01,0x95,0x95,0x96,0x98,0x98,0x98,0x01, | ||
7981 | 0x01,0x01,0x01,0x01,0x96,0x95,0x95,0x94,0x01,0x94,0x95,0x96,0x01,0x01,0x94,0x98, | ||
7982 | 0x01,0x98,0x94,0x01,0x98,0x96,0x98,0x95,0x98,0x98,0x01,0x94,0x01,0x95,0x95,0x98, | ||
7983 | 0x95,0x95,0x94,0x01,0x95,0x96,0x95,0x94,0x01,0x94,0x96,0x95,0x94,0x96,0x95,0x95, | ||
7984 | 0x96,0x98,0x95,0x98,0x95,0x94,0x95,0x01,0x98,0x01,0x98,0x01,0x01,0x96,0x01,0x98, | ||
7985 | 0x94,0x96,0x98,0x97,0x97,0x95,0x95,0x95,0x98,0x96,0x98,0x98,0x94,0x98,0x01,0x98, | ||
7986 | 0x98,0x96,0x98,0x99,0x99,0x98,0x98,0x9A,0x98,0x01,0x98,0x98,0x9A,0x95,0x9A,0x95, | ||
7987 | 0x8D,0x8E,0x94,0x93,0x8E,0x8E,0x94,0x8E,0x8E,0x94,0x8E,0x92,0x8D,0x8D,0x92,0x8E, | ||
7988 | 0x94,0x99,0x96,0x96,0x01,0x98,0x01,0x9A,0x01,0x9A,0x01,0x98,0x98,0x01,0x99,0x9A, | ||
7989 | 0x01,0x98,0x98,0x99,0x98,0x9A,0x01,0x01,0x98,0x98,0x99,0x98,0x9A,0x98,0x01,0x99, | ||
7990 | 0x92,0x9A,0x9A,0x98,0x94,0x9A,0x9A,0x01,0x98,0x9A,0x01,0x9B,0x01,0x9A,0x98,0x98, | ||
7991 | 0x95,0x95,0x96,0x95,0x94,0x95,0x94,0x93,0x93,0x92,0x98,0x96,0x94,0x95,0x94,0x95, | ||
7992 | 0x93,0x95,0x95,0x96,0x93,0x98,0x94,0x92,0x8E,0x8E,0x8E,0x94,0x8D,0x92,0x94,0x8E, | ||
7993 | 0x8D,0x8D,0x8E,0x8E,0x8E,0x8E,0x92,0x8E,0x8E,0x8D,0x8E,0x92,0x8D,0x8E,0x8E,0x8E, | ||
7994 | 0x8D,0x92,0x8E,0x8E,0x92,0x92,0x8D,0x8E,0x95,0x94,0x8E,0x95,0x8D,0x01,0x8E,0x8E, | ||
7995 | 0x93,0x94,0x94,0x96,0x94,0x96,0x99,0x01,0x9B,0x99,0x9A,0x9C,0x98,0x99,0x98,0x98, | ||
7996 | 0x98,0x01,0x01,0x9C,0x98,0x9A,0x98,0x9C,0x98,0x01,0x98,0x99,0x9C,0x9C,0x96,0x9A, | ||
7997 | 0x98,0x9C,0x98,0x9C,0x98,0x98,0x9C,0x98,0x99,0x98,0x01,0x99,0x01,0x9C,0x98,0x9C, | ||
7998 | 0x98,0x9C,0x9C,0x9C,0x9C,0x98,0x98,0x98,0x98,0x99,0x8E,0x95,0x95,0x92,0x8E,0x95, | ||
7999 | 0x95,0x8E,0x8E,0x94,0x96,0x01,0x94,0x01,0x95,0x94,0x96,0x96,0x96,0x98,0x94,0x01, | ||
8000 | 0x98,0x95,0x01,0x96,0x98,0x94,0x95,0x98,0x95,0x95,0x96,0x94,0x96,0x96,0x93,0x01, | ||
8001 | 0x96,0x96,0x8E,0x8E,0x8E,0x92,0x92,0x92,0x92,0x8E,0x8E,0x93,0x96,0x98,0x01,0x95, | ||
8002 | 0x95,0x98,0x98,0x93,0x92,0x95,0x95,0x94,0x94,0x95,0x96,0x01,0x98,0x94,0x01,0x01, | ||
8003 | 0x01,0x98,0x96,0x8E,0x8E,0x92,0x94,0x8E,0x8E,0x01,0x94,0x95,0x94,0x98,0x96,0x94, | ||
8004 | 0x01,0x01,0x01,0x97,0x92,0x94,0x01,0x95,0x01,0x96,0x01,0x94,0x01,0x95,0x98,0x97, | ||
8005 | 0x96,0x97,0x94,0x96,0x95,0x96,0x96,0x98,0x93,0x96,0x94,0x95,0x98,0x95,0x97,0x01, | ||
8006 | 0x97,0x98,0x94,0x93,0x97,0x98,0x97,0x01,0x98,0x98,0x98,0x99,0x98,0x9B,0x9A,0x98}; | ||
8007 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/sodpal.inc b/apps/plugins/sdl/progs/wolf3d/sodpal.inc new file mode 100644 index 0000000000..b2ea06fcd1 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/sodpal.inc | |||
@@ -0,0 +1,52 @@ | |||
1 | RGB( 0, 0, 0),RGB( 0, 0, 42),RGB( 0, 42, 0),RGB( 0, 42, 42),RGB( 42, 0, 0), | ||
2 | RGB( 42, 0, 42),RGB( 42, 21, 0),RGB( 42, 42, 42),RGB( 21, 21, 21),RGB( 21, 21, 63), | ||
3 | RGB( 21, 63, 21),RGB( 21, 63, 63),RGB( 63, 21, 21),RGB( 63, 21, 63),RGB( 63, 63, 21), | ||
4 | RGB( 63, 63, 63),RGB( 59, 59, 59),RGB( 55, 55, 55),RGB( 52, 52, 52),RGB( 48, 48, 48), | ||
5 | RGB( 45, 45, 45),RGB( 42, 42, 42),RGB( 38, 38, 38),RGB( 35, 35, 35),RGB( 31, 31, 31), | ||
6 | RGB( 28, 28, 28),RGB( 25, 25, 25),RGB( 21, 21, 21),RGB( 18, 18, 18),RGB( 14, 14, 14), | ||
7 | RGB( 11, 11, 11),RGB( 8, 8, 8),RGB( 63, 0, 0),RGB( 59, 0, 0),RGB( 56, 0, 0), | ||
8 | RGB( 53, 0, 0),RGB( 50, 0, 0),RGB( 47, 0, 0),RGB( 44, 0, 0),RGB( 41, 0, 0), | ||
9 | RGB( 38, 0, 0),RGB( 34, 0, 0),RGB( 31, 0, 0),RGB( 28, 0, 0),RGB( 25, 0, 0), | ||
10 | RGB( 22, 0, 0),RGB( 19, 0, 0),RGB( 16, 0, 0),RGB( 63, 54, 54),RGB( 63, 46, 46), | ||
11 | RGB( 63, 39, 39),RGB( 63, 31, 31),RGB( 63, 23, 23),RGB( 63, 16, 16),RGB( 63, 8, 8), | ||
12 | RGB( 63, 0, 0),RGB( 63, 42, 23),RGB( 63, 38, 16),RGB( 63, 34, 8),RGB( 63, 30, 0), | ||
13 | RGB( 57, 27, 0),RGB( 51, 24, 0),RGB( 45, 21, 0),RGB( 39, 19, 0),RGB( 63, 63, 54), | ||
14 | RGB( 63, 63, 46),RGB( 63, 63, 39),RGB( 63, 63, 31),RGB( 63, 62, 23),RGB( 63, 61, 16), | ||
15 | RGB( 63, 61, 8),RGB( 63, 61, 0),RGB( 57, 54, 0),RGB( 51, 49, 0),RGB( 45, 43, 0), | ||
16 | RGB( 39, 39, 0),RGB( 33, 33, 0),RGB( 28, 27, 0),RGB( 22, 21, 0),RGB( 16, 16, 0), | ||
17 | RGB( 52, 63, 23),RGB( 49, 63, 16),RGB( 45, 63, 8),RGB( 40, 63, 0),RGB( 36, 57, 0), | ||
18 | RGB( 32, 51, 0),RGB( 29, 45, 0),RGB( 24, 39, 0),RGB( 54, 63, 54),RGB( 47, 63, 46), | ||
19 | RGB( 39, 63, 39),RGB( 32, 63, 31),RGB( 24, 63, 23),RGB( 16, 63, 16),RGB( 8, 63, 8), | ||
20 | RGB( 0, 63, 0),RGB( 0, 63, 0),RGB( 0, 59, 0),RGB( 0, 56, 0),RGB( 0, 53, 0), | ||
21 | RGB( 1, 50, 0),RGB( 1, 47, 0),RGB( 1, 44, 0),RGB( 1, 41, 0),RGB( 1, 38, 0), | ||
22 | RGB( 1, 34, 0),RGB( 1, 31, 0),RGB( 1, 28, 0),RGB( 1, 25, 0),RGB( 1, 22, 0), | ||
23 | RGB( 1, 19, 0),RGB( 1, 16, 0),RGB( 54, 63, 63),RGB( 46, 63, 63),RGB( 39, 63, 63), | ||
24 | RGB( 31, 63, 62),RGB( 23, 63, 63),RGB( 16, 63, 63),RGB( 8, 63, 63),RGB( 0, 63, 63), | ||
25 | RGB( 0, 57, 57),RGB( 0, 51, 51),RGB( 0, 45, 45),RGB( 0, 39, 39),RGB( 0, 33, 33), | ||
26 | RGB( 0, 28, 28),RGB( 0, 22, 22),RGB( 0, 16, 16),RGB( 23, 47, 63),RGB( 16, 44, 63), | ||
27 | RGB( 8, 42, 63),RGB( 0, 39, 63),RGB( 0, 35, 57),RGB( 0, 31, 51),RGB( 0, 27, 45), | ||
28 | RGB( 0, 23, 39),RGB( 54, 54, 63),RGB( 46, 47, 63),RGB( 39, 39, 63),RGB( 31, 32, 63), | ||
29 | RGB( 23, 24, 63),RGB( 16, 16, 63),RGB( 8, 9, 63),RGB( 0, 1, 63),RGB( 0, 0, 63), | ||
30 | RGB( 0, 0, 59),RGB( 0, 0, 56),RGB( 0, 0, 53),RGB( 0, 0, 50),RGB( 0, 0, 47), | ||
31 | RGB( 0, 0, 44),RGB( 0, 0, 41),RGB( 0, 0, 38),RGB( 0, 0, 34),RGB( 0, 0, 31), | ||
32 | RGB( 0, 0, 28),RGB( 0, 0, 25),RGB( 0, 0, 22),RGB( 0, 0, 19),RGB( 0, 0, 16), | ||
33 | RGB( 10, 10, 10),RGB( 63, 56, 13),RGB( 63, 53, 9),RGB( 63, 51, 6),RGB( 63, 48, 2), | ||
34 | RGB( 63, 45, 0),RGB( 0, 14, 0),RGB( 0, 10, 0),RGB( 38, 0, 57),RGB( 32, 0, 51), | ||
35 | RGB( 29, 0, 45),RGB( 24, 0, 39),RGB( 20, 0, 33),RGB( 17, 0, 28),RGB( 13, 0, 22), | ||
36 | RGB( 10, 0, 16),RGB( 63, 54, 63),RGB( 63, 46, 63),RGB( 63, 39, 63),RGB( 63, 31, 63), | ||
37 | RGB( 63, 23, 63),RGB( 63, 16, 63),RGB( 63, 8, 63),RGB( 63, 0, 63),RGB( 56, 0, 57), | ||
38 | RGB( 50, 0, 51),RGB( 45, 0, 45),RGB( 39, 0, 39),RGB( 33, 0, 33),RGB( 27, 0, 28), | ||
39 | RGB( 22, 0, 22),RGB( 16, 0, 16),RGB( 63, 58, 55),RGB( 63, 56, 52),RGB( 63, 54, 49), | ||
40 | RGB( 63, 53, 47),RGB( 63, 51, 44),RGB( 63, 49, 41),RGB( 63, 47, 39),RGB( 63, 46, 36), | ||
41 | RGB( 63, 44, 32),RGB( 63, 41, 28),RGB( 63, 39, 24),RGB( 60, 37, 23),RGB( 58, 35, 22), | ||
42 | RGB( 55, 34, 21),RGB( 52, 32, 20),RGB( 50, 31, 19),RGB( 47, 30, 18),RGB( 45, 28, 17), | ||
43 | RGB( 42, 26, 16),RGB( 40, 25, 15),RGB( 39, 24, 14),RGB( 36, 23, 13),RGB( 34, 22, 12), | ||
44 | RGB( 32, 20, 11),RGB( 29, 19, 10),RGB( 27, 18, 9),RGB( 23, 16, 8),RGB( 21, 15, 7), | ||
45 | RGB( 18, 14, 6),RGB( 16, 12, 6),RGB( 14, 11, 5),RGB( 10, 8, 3),RGB( 24, 0, 25), | ||
46 | RGB( 0, 25, 25),RGB( 0, 24, 24),RGB( 0, 0, 7),RGB( 0, 0, 11),RGB( 12, 9, 4), | ||
47 | RGB( 18, 0, 18),RGB( 20, 0, 20),RGB( 0, 0, 13),RGB( 7, 7, 7),RGB( 19, 19, 19), | ||
48 | RGB( 23, 23, 23),RGB( 16, 16, 16),RGB( 12, 12, 12),RGB( 13, 13, 13),RGB( 54, 61, 61), | ||
49 | RGB( 46, 58, 58),RGB( 39, 55, 55),RGB( 29, 50, 50),RGB( 18, 48, 48),RGB( 8, 45, 45), | ||
50 | RGB( 8, 44, 44),RGB( 0, 41, 41),RGB( 0, 38, 38),RGB( 0, 35, 35),RGB( 0, 33, 33), | ||
51 | RGB( 0, 31, 31),RGB( 0, 30, 30),RGB( 0, 29, 29),RGB( 0, 28, 28),RGB( 0, 27, 27), | ||
52 | RGB( 38, 0, 34) | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/version.h b/apps/plugins/sdl/progs/wolf3d/version.h new file mode 100644 index 0000000000..48b2177674 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/version.h | |||
@@ -0,0 +1,55 @@ | |||
1 | #ifndef _VERSION_H_ | ||
2 | #define _VERSION_H_ | ||
3 | |||
4 | #ifndef VERSIONALREADYCHOSEN // used for batch compiling | ||
5 | |||
6 | #ifndef DATADIR | ||
7 | #define DATADIR "/.rockbox/wolf3d/" | ||
8 | #endif | ||
9 | |||
10 | /* Defines used for different versions */ | ||
11 | |||
12 | //#define SPEAR | ||
13 | //#define SPEARDEMO | ||
14 | //#define UPLOAD | ||
15 | #define GOODTIMES | ||
16 | #define CARMACIZED | ||
17 | //#define APOGEE_1_0 | ||
18 | //#define APOGEE_1_1 | ||
19 | //#define APOGEE_1_2 | ||
20 | |||
21 | /* | ||
22 | Wolf3d Full v1.1 Apogee (with ReadThis) - define CARMACIZED and APOGEE_1_1 | ||
23 | Wolf3d Full v1.4 Apogee (with ReadThis) - define CARMACIZED | ||
24 | Wolf3d Full v1.4 GT/ID/Activision - define CARMACIZED and GOODTIMES | ||
25 | Wolf3d Shareware v1.0 - define UPLOAD and APOGEE_1_0 | ||
26 | Wolf3d Shareware v1.1 - define CARMACIZED and UPLOAD and APOGEE_1_1 | ||
27 | Wolf3d Shareware v1.2 - define CARMACIZED and UPLOAD and APOGEE_1_2 | ||
28 | Wolf3d Shareware v1.4 - define CARMACIZED and UPLOAD | ||
29 | Spear of Destiny Full and Mission Disks - define CARMACIZED and SPEAR | ||
30 | (and GOODTIMES for no FormGen quiz) | ||
31 | Spear of Destiny Demo - define CARMACIZED and SPEAR and SPEARDEMO | ||
32 | */ | ||
33 | |||
34 | #endif | ||
35 | |||
36 | //#define USE_FEATUREFLAGS // Enables the level feature flags (see bottom of wl_def.h) | ||
37 | //#define USE_SHADING // Enables shading support (see wl_shade.cpp) | ||
38 | //#define USE_DIR3DSPR // Enables directional 3d sprites (see wl_dir3dspr.cpp) | ||
39 | //#define USE_FLOORCEILINGTEX // Enables floor and ceiling textures stored in the third mapplane (see wl_floorceiling.cpp) | ||
40 | //#define USE_HIRES // Enables high resolution textures/sprites (128x128) | ||
41 | //#define USE_PARALLAX 16 // Enables parallax sky with 16 textures per sky (see wl_parallax.cpp) | ||
42 | //#define USE_CLOUDSKY // Enables cloud sky support (see wl_cloudsky.cpp) | ||
43 | //#define USE_STARSKY // Enables star sky support (see wl_atmos.cpp) | ||
44 | //#define USE_RAIN // Enables rain support (see wl_atmos.cpp) | ||
45 | //#define USE_SNOW // Enables snow support (see wl_atmos.cpp) | ||
46 | //#define FIXRAINSNOWLEAKS // Enables leaking ceilings fix (by Adam Biser, only needed if maps with rain/snow and ceilings exist) | ||
47 | |||
48 | #define DEBUGKEYS // Comment this out to compile without the Tab debug keys | ||
49 | #define ARTSEXTERN | ||
50 | #define DEMOSEXTERN | ||
51 | #define PLAYDEMOLIKEORIGINAL // When playing or recording demos, several bug fixes do not take | ||
52 | // effect to let the original demos work as in the original Wolf3D v1.4 | ||
53 | // (actually better, as the second demo rarely worked) | ||
54 | |||
55 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_act1.c b/apps/plugins/sdl/progs/wolf3d/wl_act1.c new file mode 100644 index 0000000000..e9553c97c5 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_act1.c | |||
@@ -0,0 +1,859 @@ | |||
1 | // WL_ACT1.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | /* | ||
7 | ============================================================================= | ||
8 | |||
9 | STATICS | ||
10 | |||
11 | ============================================================================= | ||
12 | */ | ||
13 | |||
14 | |||
15 | statobj_t statobjlist[MAXSTATS]; | ||
16 | statobj_t *laststatobj; | ||
17 | |||
18 | |||
19 | struct | ||
20 | { | ||
21 | short picnum; | ||
22 | wl_stat_t type; | ||
23 | uint32_t specialFlags; // they are ORed to the statobj_t flags | ||
24 | } statinfo[] = | ||
25 | { | ||
26 | {SPR_STAT_0}, // puddle spr1v | ||
27 | {SPR_STAT_1,block}, // Green Barrel " | ||
28 | {SPR_STAT_2,block}, // Table/chairs " | ||
29 | {SPR_STAT_3,block,FL_FULLBRIGHT}, // Floor lamp " | ||
30 | {SPR_STAT_4,none,FL_FULLBRIGHT}, // Chandelier " | ||
31 | {SPR_STAT_5,block}, // Hanged man " | ||
32 | {SPR_STAT_6,bo_alpo}, // Bad food " | ||
33 | {SPR_STAT_7,block}, // Red pillar " | ||
34 | // | ||
35 | // NEW PAGE | ||
36 | // | ||
37 | {SPR_STAT_8,block}, // Tree spr2v | ||
38 | {SPR_STAT_9}, // Skeleton flat " | ||
39 | {SPR_STAT_10,block}, // Sink " (SOD:gibs) | ||
40 | {SPR_STAT_11,block}, // Potted plant " | ||
41 | {SPR_STAT_12,block}, // Urn " | ||
42 | {SPR_STAT_13,block}, // Bare table " | ||
43 | {SPR_STAT_14,none,FL_FULLBRIGHT}, // Ceiling light " | ||
44 | #ifndef SPEAR | ||
45 | {SPR_STAT_15}, // Kitchen stuff " | ||
46 | #else | ||
47 | {SPR_STAT_15,block}, // Gibs! | ||
48 | #endif | ||
49 | // | ||
50 | // NEW PAGE | ||
51 | // | ||
52 | {SPR_STAT_16,block}, // suit of armor spr3v | ||
53 | {SPR_STAT_17,block}, // Hanging cage " | ||
54 | {SPR_STAT_18,block}, // SkeletoninCage " | ||
55 | {SPR_STAT_19}, // Skeleton relax " | ||
56 | {SPR_STAT_20,bo_key1}, // Key 1 " | ||
57 | {SPR_STAT_21,bo_key2}, // Key 2 " | ||
58 | {SPR_STAT_22,block}, // stuff (SOD:gibs) | ||
59 | {SPR_STAT_23}, // stuff | ||
60 | // | ||
61 | // NEW PAGE | ||
62 | // | ||
63 | {SPR_STAT_24,bo_food}, // Good food spr4v | ||
64 | {SPR_STAT_25,bo_firstaid}, // First aid " | ||
65 | {SPR_STAT_26,bo_clip}, // Clip " | ||
66 | {SPR_STAT_27,bo_machinegun}, // Machine gun " | ||
67 | {SPR_STAT_28,bo_chaingun}, // Gatling gun " | ||
68 | {SPR_STAT_29,bo_cross}, // Cross " | ||
69 | {SPR_STAT_30,bo_chalice}, // Chalice " | ||
70 | {SPR_STAT_31,bo_bible}, // Bible " | ||
71 | // | ||
72 | // NEW PAGE | ||
73 | // | ||
74 | {SPR_STAT_32,bo_crown}, // crown spr5v | ||
75 | {SPR_STAT_33,bo_fullheal,FL_FULLBRIGHT},// one up " | ||
76 | {SPR_STAT_34,bo_gibs}, // gibs " | ||
77 | {SPR_STAT_35,block}, // barrel " | ||
78 | {SPR_STAT_36,block}, // well " | ||
79 | {SPR_STAT_37,block}, // Empty well " | ||
80 | {SPR_STAT_38,bo_gibs}, // Gibs 2 " | ||
81 | {SPR_STAT_39,block}, // flag " | ||
82 | // | ||
83 | // NEW PAGE | ||
84 | // | ||
85 | #ifndef SPEAR | ||
86 | {SPR_STAT_40,block}, // Call Apogee spr7v | ||
87 | #else | ||
88 | {SPR_STAT_40}, // Red light | ||
89 | #endif | ||
90 | // | ||
91 | // NEW PAGE | ||
92 | // | ||
93 | {SPR_STAT_41}, // junk " | ||
94 | {SPR_STAT_42}, // junk " | ||
95 | {SPR_STAT_43}, // junk " | ||
96 | #ifndef SPEAR | ||
97 | {SPR_STAT_44}, // pots " | ||
98 | #else | ||
99 | {SPR_STAT_44,block}, // Gibs! | ||
100 | #endif | ||
101 | {SPR_STAT_45,block}, // stove " (SOD:gibs) | ||
102 | {SPR_STAT_46,block}, // spears " (SOD:gibs) | ||
103 | {SPR_STAT_47}, // vines " | ||
104 | // | ||
105 | // NEW PAGE | ||
106 | // | ||
107 | #ifdef SPEAR | ||
108 | {SPR_STAT_48,block}, // marble pillar | ||
109 | {SPR_STAT_49,bo_25clip}, // bonus 25 clip | ||
110 | {SPR_STAT_50,block}, // truck | ||
111 | {SPR_STAT_51,bo_spear}, // SPEAR OF DESTINY! | ||
112 | #endif | ||
113 | |||
114 | {SPR_STAT_26,bo_clip2}, // Clip " | ||
115 | #ifdef USE_DIR3DSPR | ||
116 | // These are just two examples showing the new way of using dir 3d sprites. | ||
117 | // You can find the allowed values in the objflag_t enum in wl_def.h. | ||
118 | {SPR_STAT_47,none,FL_DIR_VERT_MID}, | ||
119 | {SPR_STAT_47,block,FL_DIR_HORIZ_MID}, | ||
120 | #endif | ||
121 | {-1} // terminator | ||
122 | }; | ||
123 | |||
124 | /* | ||
125 | =============== | ||
126 | = | ||
127 | = InitStaticList | ||
128 | = | ||
129 | =============== | ||
130 | */ | ||
131 | |||
132 | void InitStaticList (void) | ||
133 | { | ||
134 | laststatobj = &statobjlist[0]; | ||
135 | } | ||
136 | |||
137 | |||
138 | |||
139 | /* | ||
140 | =============== | ||
141 | = | ||
142 | = SpawnStatic | ||
143 | = | ||
144 | =============== | ||
145 | */ | ||
146 | |||
147 | void SpawnStatic (int tilex, int tiley, int type) | ||
148 | { | ||
149 | laststatobj->shapenum = statinfo[type].picnum; | ||
150 | laststatobj->tilex = tilex; | ||
151 | laststatobj->tiley = tiley; | ||
152 | laststatobj->visspot = &spotvis[tilex][tiley]; | ||
153 | |||
154 | switch (statinfo[type].type) | ||
155 | { | ||
156 | case block: | ||
157 | actorat[tilex][tiley] = (objtype *) 64; // consider it a blocking tile | ||
158 | case none: | ||
159 | laststatobj->flags = 0; | ||
160 | break; | ||
161 | |||
162 | case bo_cross: | ||
163 | case bo_chalice: | ||
164 | case bo_bible: | ||
165 | case bo_crown: | ||
166 | case bo_fullheal: | ||
167 | if (!loadedgame) | ||
168 | gamestate.treasuretotal++; | ||
169 | |||
170 | case bo_firstaid: | ||
171 | case bo_key1: | ||
172 | case bo_key2: | ||
173 | case bo_key3: | ||
174 | case bo_key4: | ||
175 | case bo_clip: | ||
176 | case bo_25clip: | ||
177 | case bo_machinegun: | ||
178 | case bo_chaingun: | ||
179 | case bo_food: | ||
180 | case bo_alpo: | ||
181 | case bo_gibs: | ||
182 | case bo_spear: | ||
183 | laststatobj->flags = FL_BONUS; | ||
184 | laststatobj->itemnumber = statinfo[type].type; | ||
185 | break; | ||
186 | } | ||
187 | |||
188 | laststatobj->flags |= statinfo[type].specialFlags; | ||
189 | |||
190 | laststatobj++; | ||
191 | |||
192 | if (laststatobj == &statobjlist[MAXSTATS]) | ||
193 | Quit ("Too many static objects!\n"); | ||
194 | } | ||
195 | |||
196 | |||
197 | /* | ||
198 | =============== | ||
199 | = | ||
200 | = PlaceItemType | ||
201 | = | ||
202 | = Called during game play to drop actors' items. It finds the proper | ||
203 | = item number based on the item type (bo_???). If there are no free item | ||
204 | = spots, nothing is done. | ||
205 | = | ||
206 | =============== | ||
207 | */ | ||
208 | |||
209 | void PlaceItemType (int itemtype, int tilex, int tiley) | ||
210 | { | ||
211 | int type; | ||
212 | statobj_t *spot; | ||
213 | |||
214 | // | ||
215 | // find the item number | ||
216 | // | ||
217 | for (type=0; ; type++) | ||
218 | { | ||
219 | if (statinfo[type].picnum == -1) // end of list | ||
220 | Quit ("PlaceItemType: couldn't find type!"); | ||
221 | if (statinfo[type].type == itemtype) | ||
222 | break; | ||
223 | } | ||
224 | |||
225 | // | ||
226 | // find a spot in statobjlist to put it in | ||
227 | // | ||
228 | for (spot=&statobjlist[0]; ; spot++) | ||
229 | { | ||
230 | if (spot==laststatobj) | ||
231 | { | ||
232 | if (spot == &statobjlist[MAXSTATS]) | ||
233 | return; // no free spots | ||
234 | laststatobj++; // space at end | ||
235 | break; | ||
236 | } | ||
237 | |||
238 | if (spot->shapenum == -1) // -1 is a free spot | ||
239 | break; | ||
240 | } | ||
241 | // | ||
242 | // place it | ||
243 | // | ||
244 | spot->shapenum = statinfo[type].picnum; | ||
245 | spot->tilex = tilex; | ||
246 | spot->tiley = tiley; | ||
247 | spot->visspot = &spotvis[tilex][tiley]; | ||
248 | spot->flags = FL_BONUS | statinfo[type].specialFlags; | ||
249 | spot->itemnumber = statinfo[type].type; | ||
250 | } | ||
251 | |||
252 | |||
253 | |||
254 | /* | ||
255 | ============================================================================= | ||
256 | |||
257 | DOORS | ||
258 | |||
259 | doorobjlist[] holds most of the information for the doors | ||
260 | |||
261 | doorposition[] holds the amount the door is open, ranging from 0 to 0xffff | ||
262 | this is directly accessed by AsmRefresh during rendering | ||
263 | |||
264 | The number of doors is limited to 64 because a spot in tilemap holds the | ||
265 | door number in the low 6 bits, with the high bit meaning a door center | ||
266 | and bit 6 meaning a door side tile | ||
267 | |||
268 | Open doors conect two areas, so sounds will travel between them and sight | ||
269 | will be checked when the player is in a connected area. | ||
270 | |||
271 | Areaconnect is incremented/decremented by each door. If >0 they connect | ||
272 | |||
273 | Every time a door opens or closes the areabyplayer matrix gets recalculated. | ||
274 | An area is true if it connects with the player's current spor. | ||
275 | |||
276 | ============================================================================= | ||
277 | */ | ||
278 | |||
279 | #define DOORWIDTH 0x7800 | ||
280 | #define OPENTICS 300 | ||
281 | |||
282 | doorobj_t doorobjlist[MAXDOORS],*lastdoorobj; | ||
283 | short doornum; | ||
284 | |||
285 | word doorposition[MAXDOORS]; // leading edge of door 0=closed | ||
286 | // 0xffff = fully open | ||
287 | |||
288 | byte areaconnect[NUMAREAS][NUMAREAS]; | ||
289 | |||
290 | boolean areabyplayer[NUMAREAS]; | ||
291 | |||
292 | |||
293 | /* | ||
294 | ============== | ||
295 | = | ||
296 | = ConnectAreas | ||
297 | = | ||
298 | = Scans outward from playerarea, marking all connected areas | ||
299 | = | ||
300 | ============== | ||
301 | */ | ||
302 | |||
303 | void RecursiveConnect (int areanumber) | ||
304 | { | ||
305 | int i; | ||
306 | |||
307 | for (i=0;i<NUMAREAS;i++) | ||
308 | { | ||
309 | if (areaconnect[areanumber][i] && !areabyplayer[i]) | ||
310 | { | ||
311 | areabyplayer[i] = true; | ||
312 | RecursiveConnect (i); | ||
313 | } | ||
314 | } | ||
315 | } | ||
316 | |||
317 | |||
318 | void ConnectAreas (void) | ||
319 | { | ||
320 | memset (areabyplayer,0,sizeof(areabyplayer)); | ||
321 | areabyplayer[player->areanumber] = true; | ||
322 | RecursiveConnect (player->areanumber); | ||
323 | } | ||
324 | |||
325 | |||
326 | void InitAreas (void) | ||
327 | { | ||
328 | memset (areabyplayer,0,sizeof(areabyplayer)); | ||
329 | if (player->areanumber < NUMAREAS) | ||
330 | areabyplayer[player->areanumber] = true; | ||
331 | } | ||
332 | |||
333 | |||
334 | |||
335 | /* | ||
336 | =============== | ||
337 | = | ||
338 | = InitDoorList | ||
339 | = | ||
340 | =============== | ||
341 | */ | ||
342 | |||
343 | void InitDoorList (void) | ||
344 | { | ||
345 | memset (areabyplayer,0,sizeof(areabyplayer)); | ||
346 | memset (areaconnect,0,sizeof(areaconnect)); | ||
347 | |||
348 | lastdoorobj = &doorobjlist[0]; | ||
349 | doornum = 0; | ||
350 | } | ||
351 | |||
352 | |||
353 | /* | ||
354 | =============== | ||
355 | = | ||
356 | = SpawnDoor | ||
357 | = | ||
358 | =============== | ||
359 | */ | ||
360 | |||
361 | void SpawnDoor (int tilex, int tiley, boolean vertical, int lock) | ||
362 | { | ||
363 | word *map; | ||
364 | |||
365 | if (doornum==MAXDOORS) | ||
366 | Quit ("64+ doors on level!"); | ||
367 | |||
368 | doorposition[doornum] = 0; // doors start out fully closed | ||
369 | lastdoorobj->tilex = tilex; | ||
370 | lastdoorobj->tiley = tiley; | ||
371 | lastdoorobj->vertical = vertical; | ||
372 | lastdoorobj->lock = lock; | ||
373 | lastdoorobj->action = dr_closed; | ||
374 | |||
375 | actorat[tilex][tiley] = (objtype *)(uintptr_t)(doornum | 0x80); // consider it a solid wall | ||
376 | |||
377 | // | ||
378 | // make the door tile a special tile, and mark the adjacent tiles | ||
379 | // for door sides | ||
380 | // | ||
381 | tilemap[tilex][tiley] = doornum | 0x80; | ||
382 | map = mapsegs[0] + (tiley<<mapshift) +tilex; | ||
383 | if (vertical) | ||
384 | { | ||
385 | *map = *(map-1); // set area number | ||
386 | tilemap[tilex][tiley-1] |= 0x40; | ||
387 | tilemap[tilex][tiley+1] |= 0x40; | ||
388 | } | ||
389 | else | ||
390 | { | ||
391 | *map = *(map-mapwidth); // set area number | ||
392 | tilemap[tilex-1][tiley] |= 0x40; | ||
393 | tilemap[tilex+1][tiley] |= 0x40; | ||
394 | } | ||
395 | |||
396 | doornum++; | ||
397 | lastdoorobj++; | ||
398 | } | ||
399 | |||
400 | //=========================================================================== | ||
401 | |||
402 | /* | ||
403 | ===================== | ||
404 | = | ||
405 | = OpenDoor | ||
406 | = | ||
407 | ===================== | ||
408 | */ | ||
409 | |||
410 | void OpenDoor (int door) | ||
411 | { | ||
412 | if (doorobjlist[door].action == dr_open) | ||
413 | doorobjlist[door].ticcount = 0; // reset open time | ||
414 | else | ||
415 | doorobjlist[door].action = dr_opening; // start it opening | ||
416 | } | ||
417 | |||
418 | |||
419 | /* | ||
420 | ===================== | ||
421 | = | ||
422 | = CloseDoor | ||
423 | = | ||
424 | ===================== | ||
425 | */ | ||
426 | |||
427 | void CloseDoor (int door) | ||
428 | { | ||
429 | int tilex,tiley,area; | ||
430 | objtype *check; | ||
431 | |||
432 | // | ||
433 | // don't close on anything solid | ||
434 | // | ||
435 | tilex = doorobjlist[door].tilex; | ||
436 | tiley = doorobjlist[door].tiley; | ||
437 | |||
438 | if (actorat[tilex][tiley]) | ||
439 | return; | ||
440 | |||
441 | if (player->tilex == tilex && player->tiley == tiley) | ||
442 | return; | ||
443 | |||
444 | if (doorobjlist[door].vertical) | ||
445 | { | ||
446 | if ( player->tiley == tiley ) | ||
447 | { | ||
448 | if ( ((player->x+MINDIST) >>TILESHIFT) == tilex ) | ||
449 | return; | ||
450 | if ( ((player->x-MINDIST) >>TILESHIFT) == tilex ) | ||
451 | return; | ||
452 | } | ||
453 | check = actorat[tilex-1][tiley]; | ||
454 | if (ISPOINTER(check) && ((check->x+MINDIST) >> TILESHIFT) == tilex ) | ||
455 | return; | ||
456 | check = actorat[tilex+1][tiley]; | ||
457 | if (ISPOINTER(check) && ((check->x-MINDIST) >> TILESHIFT) == tilex ) | ||
458 | return; | ||
459 | } | ||
460 | else if (!doorobjlist[door].vertical) | ||
461 | { | ||
462 | if (player->tilex == tilex) | ||
463 | { | ||
464 | if ( ((player->y+MINDIST) >>TILESHIFT) == tiley ) | ||
465 | return; | ||
466 | if ( ((player->y-MINDIST) >>TILESHIFT) == tiley ) | ||
467 | return; | ||
468 | } | ||
469 | check = actorat[tilex][tiley-1]; | ||
470 | if (ISPOINTER(check) && ((check->y+MINDIST) >> TILESHIFT) == tiley ) | ||
471 | return; | ||
472 | check = actorat[tilex][tiley+1]; | ||
473 | if (ISPOINTER(check) && ((check->y-MINDIST) >> TILESHIFT) == tiley ) | ||
474 | return; | ||
475 | } | ||
476 | |||
477 | |||
478 | // | ||
479 | // play door sound if in a connected area | ||
480 | // | ||
481 | area = *(mapsegs[0] + (doorobjlist[door].tiley<<mapshift) | ||
482 | +doorobjlist[door].tilex)-AREATILE; | ||
483 | if (areabyplayer[area]) | ||
484 | { | ||
485 | PlaySoundLocTile(CLOSEDOORSND,doorobjlist[door].tilex,doorobjlist[door].tiley); // JAB | ||
486 | } | ||
487 | |||
488 | doorobjlist[door].action = dr_closing; | ||
489 | // | ||
490 | // make the door space solid | ||
491 | // | ||
492 | actorat[tilex][tiley] = (objtype *)(uintptr_t)(door | 0x80); | ||
493 | } | ||
494 | |||
495 | |||
496 | |||
497 | /* | ||
498 | ===================== | ||
499 | = | ||
500 | = OperateDoor | ||
501 | = | ||
502 | = The player wants to change the door's direction | ||
503 | = | ||
504 | ===================== | ||
505 | */ | ||
506 | |||
507 | void OperateDoor (int door) | ||
508 | { | ||
509 | int lock; | ||
510 | |||
511 | lock = doorobjlist[door].lock; | ||
512 | if (lock >= dr_lock1 && lock <= dr_lock4) | ||
513 | { | ||
514 | if ( ! (gamestate.keys & (1 << (lock-dr_lock1) ) ) ) | ||
515 | { | ||
516 | SD_PlaySound (NOWAYSND); // locked | ||
517 | return; | ||
518 | } | ||
519 | } | ||
520 | |||
521 | switch (doorobjlist[door].action) | ||
522 | { | ||
523 | case dr_closed: | ||
524 | case dr_closing: | ||
525 | OpenDoor (door); | ||
526 | break; | ||
527 | case dr_open: | ||
528 | case dr_opening: | ||
529 | CloseDoor (door); | ||
530 | break; | ||
531 | } | ||
532 | } | ||
533 | |||
534 | |||
535 | //=========================================================================== | ||
536 | |||
537 | /* | ||
538 | =============== | ||
539 | = | ||
540 | = DoorOpen | ||
541 | = | ||
542 | = Close the door after three seconds | ||
543 | = | ||
544 | =============== | ||
545 | */ | ||
546 | |||
547 | void DoorOpen (int door) | ||
548 | { | ||
549 | if ( (doorobjlist[door].ticcount += (short) tics) >= OPENTICS) | ||
550 | CloseDoor (door); | ||
551 | } | ||
552 | |||
553 | |||
554 | |||
555 | /* | ||
556 | =============== | ||
557 | = | ||
558 | = DoorOpening | ||
559 | = | ||
560 | =============== | ||
561 | */ | ||
562 | |||
563 | void DoorOpening (int door) | ||
564 | { | ||
565 | unsigned area1,area2; | ||
566 | word *map; | ||
567 | int32_t position; | ||
568 | |||
569 | position = doorposition[door]; | ||
570 | if (!position) | ||
571 | { | ||
572 | // | ||
573 | // door is just starting to open, so connect the areas | ||
574 | // | ||
575 | map = mapsegs[0] + (doorobjlist[door].tiley<<mapshift) | ||
576 | +doorobjlist[door].tilex; | ||
577 | |||
578 | if (doorobjlist[door].vertical) | ||
579 | { | ||
580 | area1 = *(map+1); | ||
581 | area2 = *(map-1); | ||
582 | } | ||
583 | else | ||
584 | { | ||
585 | area1 = *(map-mapwidth); | ||
586 | area2 = *(map+mapwidth); | ||
587 | } | ||
588 | area1 -= AREATILE; | ||
589 | area2 -= AREATILE; | ||
590 | |||
591 | if (area1 < NUMAREAS && area2 < NUMAREAS) | ||
592 | { | ||
593 | areaconnect[area1][area2]++; | ||
594 | areaconnect[area2][area1]++; | ||
595 | |||
596 | if (player->areanumber < NUMAREAS) | ||
597 | ConnectAreas (); | ||
598 | |||
599 | if (areabyplayer[area1]) | ||
600 | PlaySoundLocTile(OPENDOORSND,doorobjlist[door].tilex,doorobjlist[door].tiley); // JAB | ||
601 | } | ||
602 | } | ||
603 | |||
604 | // | ||
605 | // slide the door by an adaptive amount | ||
606 | // | ||
607 | position += tics<<10; | ||
608 | if (position >= 0xffff) | ||
609 | { | ||
610 | // | ||
611 | // door is all the way open | ||
612 | // | ||
613 | position = 0xffff; | ||
614 | doorobjlist[door].ticcount = 0; | ||
615 | doorobjlist[door].action = dr_open; | ||
616 | actorat[doorobjlist[door].tilex][doorobjlist[door].tiley] = 0; | ||
617 | } | ||
618 | |||
619 | doorposition[door] = (word) position; | ||
620 | } | ||
621 | |||
622 | |||
623 | /* | ||
624 | =============== | ||
625 | = | ||
626 | = DoorClosing | ||
627 | = | ||
628 | =============== | ||
629 | */ | ||
630 | |||
631 | void DoorClosing (int door) | ||
632 | { | ||
633 | unsigned area1,area2; | ||
634 | word *map; | ||
635 | int32_t position; | ||
636 | int tilex,tiley; | ||
637 | |||
638 | tilex = doorobjlist[door].tilex; | ||
639 | tiley = doorobjlist[door].tiley; | ||
640 | |||
641 | if ( ((int)(uintptr_t)actorat[tilex][tiley] != (door | 0x80)) | ||
642 | || (player->tilex == tilex && player->tiley == tiley) ) | ||
643 | { // something got inside the door | ||
644 | OpenDoor (door); | ||
645 | return; | ||
646 | }; | ||
647 | |||
648 | position = doorposition[door]; | ||
649 | |||
650 | // | ||
651 | // slide the door by an adaptive amount | ||
652 | // | ||
653 | position -= tics<<10; | ||
654 | if (position <= 0) | ||
655 | { | ||
656 | // | ||
657 | // door is closed all the way, so disconnect the areas | ||
658 | // | ||
659 | position = 0; | ||
660 | |||
661 | doorobjlist[door].action = dr_closed; | ||
662 | |||
663 | map = mapsegs[0] + (doorobjlist[door].tiley<<mapshift) + doorobjlist[door].tilex; | ||
664 | |||
665 | if (doorobjlist[door].vertical) | ||
666 | { | ||
667 | area1 = *(map+1); | ||
668 | area2 = *(map-1); | ||
669 | } | ||
670 | else | ||
671 | { | ||
672 | area1 = *(map-mapwidth); | ||
673 | area2 = *(map+mapwidth); | ||
674 | } | ||
675 | area1 -= AREATILE; | ||
676 | area2 -= AREATILE; | ||
677 | |||
678 | if (area1 < NUMAREAS && area2 < NUMAREAS) | ||
679 | { | ||
680 | areaconnect[area1][area2]--; | ||
681 | areaconnect[area2][area1]--; | ||
682 | |||
683 | if (player->areanumber < NUMAREAS) | ||
684 | ConnectAreas (); | ||
685 | } | ||
686 | } | ||
687 | |||
688 | doorposition[door] = (word) position; | ||
689 | } | ||
690 | |||
691 | |||
692 | |||
693 | |||
694 | /* | ||
695 | ===================== | ||
696 | = | ||
697 | = MoveDoors | ||
698 | = | ||
699 | = Called from PlayLoop | ||
700 | = | ||
701 | ===================== | ||
702 | */ | ||
703 | |||
704 | void MoveDoors (void) | ||
705 | { | ||
706 | int door; | ||
707 | |||
708 | if (gamestate.victoryflag) // don't move door during victory sequence | ||
709 | return; | ||
710 | |||
711 | for (door = 0; door < doornum; door++) | ||
712 | { | ||
713 | switch (doorobjlist[door].action) | ||
714 | { | ||
715 | case dr_open: | ||
716 | DoorOpen (door); | ||
717 | break; | ||
718 | |||
719 | case dr_opening: | ||
720 | DoorOpening(door); | ||
721 | break; | ||
722 | |||
723 | case dr_closing: | ||
724 | DoorClosing(door); | ||
725 | break; | ||
726 | } | ||
727 | } | ||
728 | } | ||
729 | |||
730 | |||
731 | /* | ||
732 | ============================================================================= | ||
733 | |||
734 | PUSHABLE WALLS | ||
735 | |||
736 | ============================================================================= | ||
737 | */ | ||
738 | |||
739 | word pwallstate; | ||
740 | word pwallpos; // amount a pushable wall has been moved (0-63) | ||
741 | word pwallx,pwally; | ||
742 | byte pwalldir,pwalltile; | ||
743 | int dirs[4][2]={{0,-1},{1,0},{0,1},{-1,0}}; | ||
744 | |||
745 | /* | ||
746 | =============== | ||
747 | = | ||
748 | = PushWall | ||
749 | = | ||
750 | =============== | ||
751 | */ | ||
752 | |||
753 | void PushWall (int checkx, int checky, int dir) | ||
754 | { | ||
755 | int oldtile, dx, dy; | ||
756 | |||
757 | if (pwallstate) | ||
758 | return; | ||
759 | |||
760 | oldtile = tilemap[checkx][checky]; | ||
761 | if (!oldtile) | ||
762 | return; | ||
763 | |||
764 | dx = dirs[dir][0]; | ||
765 | dy = dirs[dir][1]; | ||
766 | |||
767 | if (actorat[checkx+dx][checky+dy]) | ||
768 | { | ||
769 | SD_PlaySound (NOWAYSND); | ||
770 | return; | ||
771 | } | ||
772 | actorat[checkx+dx][checky+dy] = (objtype *)(uintptr_t) (tilemap[checkx+dx][checky+dy] = oldtile); | ||
773 | |||
774 | gamestate.secretcount++; | ||
775 | pwallx = checkx; | ||
776 | pwally = checky; | ||
777 | pwalldir = dir; | ||
778 | pwallstate = 1; | ||
779 | pwallpos = 0; | ||
780 | pwalltile = tilemap[pwallx][pwally]; | ||
781 | tilemap[pwallx][pwally] = 64; | ||
782 | tilemap[pwallx+dx][pwally+dy] = 64; | ||
783 | *(mapsegs[1]+(pwally<<mapshift)+pwallx) = 0; // remove P tile info | ||
784 | *(mapsegs[0]+(pwally<<mapshift)+pwallx) = *(mapsegs[0]+(player->tiley<<mapshift)+player->tilex); // set correct floorcode (BrotherTank's fix) | ||
785 | |||
786 | SD_PlaySound (PUSHWALLSND); | ||
787 | } | ||
788 | |||
789 | |||
790 | |||
791 | /* | ||
792 | ================= | ||
793 | = | ||
794 | = MovePWalls | ||
795 | = | ||
796 | ================= | ||
797 | */ | ||
798 | |||
799 | void MovePWalls (void) | ||
800 | { | ||
801 | int oldblock,oldtile; | ||
802 | |||
803 | if (!pwallstate) | ||
804 | return; | ||
805 | |||
806 | oldblock = pwallstate/128; | ||
807 | |||
808 | pwallstate += (word)tics; | ||
809 | |||
810 | if (pwallstate/128 != oldblock) | ||
811 | { | ||
812 | // block crossed into a new block | ||
813 | oldtile = pwalltile; | ||
814 | |||
815 | // | ||
816 | // the tile can now be walked into | ||
817 | // | ||
818 | tilemap[pwallx][pwally] = 0; | ||
819 | actorat[pwallx][pwally] = 0; | ||
820 | *(mapsegs[0]+(pwally<<mapshift)+pwallx) = player->areanumber+AREATILE; | ||
821 | |||
822 | int dx=dirs[pwalldir][0], dy=dirs[pwalldir][1]; | ||
823 | // | ||
824 | // see if it should be pushed farther | ||
825 | // | ||
826 | if (pwallstate>=256) // only move two tiles fix | ||
827 | { | ||
828 | // | ||
829 | // the block has been pushed two tiles | ||
830 | // | ||
831 | pwallstate = 0; | ||
832 | tilemap[pwallx+dx][pwally+dy] = oldtile; | ||
833 | return; | ||
834 | } | ||
835 | else | ||
836 | { | ||
837 | int xl,yl,xh,yh; | ||
838 | xl = (player->x-PLAYERSIZE) >> TILESHIFT; | ||
839 | yl = (player->y-PLAYERSIZE) >> TILESHIFT; | ||
840 | xh = (player->x+PLAYERSIZE) >> TILESHIFT; | ||
841 | yh = (player->y+PLAYERSIZE) >> TILESHIFT; | ||
842 | |||
843 | pwallx += dx; | ||
844 | pwally += dy; | ||
845 | |||
846 | if (actorat[pwallx+dx][pwally+dy] | ||
847 | || xl<=pwallx+dx && pwallx+dx<=xh && yl<=pwally+dy && pwally+dy<=yh) | ||
848 | { | ||
849 | pwallstate = 0; | ||
850 | tilemap[pwallx][pwally] = oldtile; | ||
851 | return; | ||
852 | } | ||
853 | actorat[pwallx+dx][pwally+dy] = (objtype *)(uintptr_t) (tilemap[pwallx+dx][pwally+dy] = oldtile); | ||
854 | tilemap[pwallx+dx][pwally+dy] = 64; | ||
855 | } | ||
856 | } | ||
857 | |||
858 | pwallpos = (pwallstate/2)&63; | ||
859 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_act2.c b/apps/plugins/sdl/progs/wolf3d/wl_act2.c new file mode 100644 index 0000000000..20a81f6329 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_act2.c | |||
@@ -0,0 +1,3899 @@ | |||
1 | // WL_ACT2.C | ||
2 | |||
3 | #include <stdio.h> | ||
4 | #include <math.h> | ||
5 | #include "wl_def.h" | ||
6 | #pragma hdrstop | ||
7 | |||
8 | /* | ||
9 | ============================================================================= | ||
10 | |||
11 | LOCAL CONSTANTS | ||
12 | |||
13 | ============================================================================= | ||
14 | */ | ||
15 | |||
16 | #define PROJECTILESIZE 0xc000l | ||
17 | |||
18 | #define BJRUNSPEED 2048 | ||
19 | #define BJJUMPSPEED 680 | ||
20 | |||
21 | |||
22 | /* | ||
23 | ============================================================================= | ||
24 | |||
25 | GLOBAL VARIABLES | ||
26 | |||
27 | ============================================================================= | ||
28 | */ | ||
29 | |||
30 | |||
31 | |||
32 | /* | ||
33 | ============================================================================= | ||
34 | |||
35 | LOCAL VARIABLES | ||
36 | |||
37 | ============================================================================= | ||
38 | */ | ||
39 | |||
40 | |||
41 | dirtype dirtable[9] = {northwest,north,northeast,west,nodir,east, | ||
42 | southwest,south,southeast}; | ||
43 | |||
44 | short starthitpoints[4][NUMENEMIES] = | ||
45 | // | ||
46 | // BABY MODE | ||
47 | // | ||
48 | { | ||
49 | { | ||
50 | 25, // guards | ||
51 | 50, // officer | ||
52 | 100, // SS | ||
53 | 1, // dogs | ||
54 | 850, // Hans | ||
55 | 850, // Schabbs | ||
56 | 200, // fake hitler | ||
57 | 800, // mecha hitler | ||
58 | 45, // mutants | ||
59 | 25, // ghosts | ||
60 | 25, // ghosts | ||
61 | 25, // ghosts | ||
62 | 25, // ghosts | ||
63 | |||
64 | 850, // Gretel | ||
65 | 850, // Gift | ||
66 | 850, // Fat | ||
67 | 5, // en_spectre, | ||
68 | 1450, // en_angel, | ||
69 | 850, // en_trans, | ||
70 | 1050, // en_uber, | ||
71 | 950, // en_will, | ||
72 | 1250 // en_death | ||
73 | }, | ||
74 | // | ||
75 | // DON'T HURT ME MODE | ||
76 | // | ||
77 | { | ||
78 | 25, // guards | ||
79 | 50, // officer | ||
80 | 100, // SS | ||
81 | 1, // dogs | ||
82 | 950, // Hans | ||
83 | 950, // Schabbs | ||
84 | 300, // fake hitler | ||
85 | 950, // mecha hitler | ||
86 | 55, // mutants | ||
87 | 25, // ghosts | ||
88 | 25, // ghosts | ||
89 | 25, // ghosts | ||
90 | 25, // ghosts | ||
91 | |||
92 | 950, // Gretel | ||
93 | 950, // Gift | ||
94 | 950, // Fat | ||
95 | 10, // en_spectre, | ||
96 | 1550, // en_angel, | ||
97 | 950, // en_trans, | ||
98 | 1150, // en_uber, | ||
99 | 1050, // en_will, | ||
100 | 1350 // en_death | ||
101 | }, | ||
102 | // | ||
103 | // BRING 'EM ON MODE | ||
104 | // | ||
105 | { | ||
106 | 25, // guards | ||
107 | 50, // officer | ||
108 | 100, // SS | ||
109 | 1, // dogs | ||
110 | |||
111 | 1050, // Hans | ||
112 | 1550, // Schabbs | ||
113 | 400, // fake hitler | ||
114 | 1050, // mecha hitler | ||
115 | |||
116 | 55, // mutants | ||
117 | 25, // ghosts | ||
118 | 25, // ghosts | ||
119 | 25, // ghosts | ||
120 | 25, // ghosts | ||
121 | |||
122 | 1050, // Gretel | ||
123 | 1050, // Gift | ||
124 | 1050, // Fat | ||
125 | 15, // en_spectre, | ||
126 | 1650, // en_angel, | ||
127 | 1050, // en_trans, | ||
128 | 1250, // en_uber, | ||
129 | 1150, // en_will, | ||
130 | 1450 // en_death | ||
131 | }, | ||
132 | // | ||
133 | // DEATH INCARNATE MODE | ||
134 | // | ||
135 | { | ||
136 | 25, // guards | ||
137 | 50, // officer | ||
138 | 100, // SS | ||
139 | 1, // dogs | ||
140 | |||
141 | 1200, // Hans | ||
142 | 2400, // Schabbs | ||
143 | 500, // fake hitler | ||
144 | 1200, // mecha hitler | ||
145 | |||
146 | 65, // mutants | ||
147 | 25, // ghosts | ||
148 | 25, // ghosts | ||
149 | 25, // ghosts | ||
150 | 25, // ghosts | ||
151 | |||
152 | 1200, // Gretel | ||
153 | 1200, // Gift | ||
154 | 1200, // Fat | ||
155 | 25, // en_spectre, | ||
156 | 2000, // en_angel, | ||
157 | 1200, // en_trans, | ||
158 | 1400, // en_uber, | ||
159 | 1300, // en_will, | ||
160 | 1600 // en_death | ||
161 | } | ||
162 | }; | ||
163 | |||
164 | void A_StartDeathCam (objtype *ob); | ||
165 | |||
166 | |||
167 | void T_Path (objtype *ob); | ||
168 | void T_Shoot (objtype *ob); | ||
169 | void T_Bite (objtype *ob); | ||
170 | void T_DogChase (objtype *ob); | ||
171 | void T_Chase (objtype *ob); | ||
172 | void T_Projectile (objtype *ob); | ||
173 | void T_Stand (objtype *ob); | ||
174 | |||
175 | void A_DeathScream (objtype *ob); | ||
176 | |||
177 | extern statetype s_rocket; | ||
178 | extern statetype s_smoke1; | ||
179 | extern statetype s_smoke2; | ||
180 | extern statetype s_smoke3; | ||
181 | extern statetype s_smoke4; | ||
182 | extern statetype s_boom2; | ||
183 | extern statetype s_boom3; | ||
184 | |||
185 | void A_Smoke (objtype *ob); | ||
186 | |||
187 | statetype s_rocket = {true,SPR_ROCKET_1,3,(statefunc)T_Projectile,(statefunc)A_Smoke,&s_rocket}; | ||
188 | statetype s_smoke1 = {false,SPR_SMOKE_1,3,NULL,NULL,&s_smoke2}; | ||
189 | statetype s_smoke2 = {false,SPR_SMOKE_2,3,NULL,NULL,&s_smoke3}; | ||
190 | statetype s_smoke3 = {false,SPR_SMOKE_3,3,NULL,NULL,&s_smoke4}; | ||
191 | statetype s_smoke4 = {false,SPR_SMOKE_4,3,NULL,NULL,NULL}; | ||
192 | |||
193 | statetype s_boom1 = {false,SPR_BOOM_1,6,NULL,NULL,&s_boom2}; | ||
194 | statetype s_boom2 = {false,SPR_BOOM_2,6,NULL,NULL,&s_boom3}; | ||
195 | statetype s_boom3 = {false,SPR_BOOM_3,6,NULL,NULL,NULL}; | ||
196 | |||
197 | #ifdef SPEAR | ||
198 | |||
199 | extern statetype s_hrocket; | ||
200 | extern statetype s_hsmoke1; | ||
201 | extern statetype s_hsmoke2; | ||
202 | extern statetype s_hsmoke3; | ||
203 | extern statetype s_hsmoke4; | ||
204 | extern statetype s_hboom2; | ||
205 | extern statetype s_hboom3; | ||
206 | |||
207 | void A_Smoke (objtype *ob); | ||
208 | |||
209 | statetype s_hrocket = {true,SPR_HROCKET_1,3,(statefunc)T_Projectile,(statefunc)A_Smoke,&s_hrocket}; | ||
210 | statetype s_hsmoke1 = {false,SPR_HSMOKE_1,3,NULL,NULL,&s_hsmoke2}; | ||
211 | statetype s_hsmoke2 = {false,SPR_HSMOKE_2,3,NULL,NULL,&s_hsmoke3}; | ||
212 | statetype s_hsmoke3 = {false,SPR_HSMOKE_3,3,NULL,NULL,&s_hsmoke4}; | ||
213 | statetype s_hsmoke4 = {false,SPR_HSMOKE_4,3,NULL,NULL,NULL}; | ||
214 | |||
215 | statetype s_hboom1 = {false,SPR_HBOOM_1,6,NULL,NULL,&s_hboom2}; | ||
216 | statetype s_hboom2 = {false,SPR_HBOOM_2,6,NULL,NULL,&s_hboom3}; | ||
217 | statetype s_hboom3 = {false,SPR_HBOOM_3,6,NULL,NULL,NULL}; | ||
218 | |||
219 | #endif | ||
220 | |||
221 | void T_Schabb (objtype *ob); | ||
222 | void T_SchabbThrow (objtype *ob); | ||
223 | void T_Fake (objtype *ob); | ||
224 | void T_FakeFire (objtype *ob); | ||
225 | void T_Ghosts (objtype *ob); | ||
226 | |||
227 | void A_Slurpie (objtype *ob); | ||
228 | void A_HitlerMorph (objtype *ob); | ||
229 | void A_MechaSound (objtype *ob); | ||
230 | |||
231 | /* | ||
232 | ================= | ||
233 | = | ||
234 | = A_Smoke | ||
235 | = | ||
236 | ================= | ||
237 | */ | ||
238 | |||
239 | void A_Smoke (objtype *ob) | ||
240 | { | ||
241 | GetNewActor (); | ||
242 | #ifdef SPEAR | ||
243 | if (ob->obclass == hrocketobj) | ||
244 | newobj->state = &s_hsmoke1; | ||
245 | else | ||
246 | #endif | ||
247 | newobj->state = &s_smoke1; | ||
248 | newobj->ticcount = 6; | ||
249 | |||
250 | newobj->tilex = ob->tilex; | ||
251 | newobj->tiley = ob->tiley; | ||
252 | newobj->x = ob->x; | ||
253 | newobj->y = ob->y; | ||
254 | newobj->obclass = inertobj; | ||
255 | newobj->active = ac_yes; | ||
256 | |||
257 | newobj->flags = FL_NEVERMARK; | ||
258 | } | ||
259 | |||
260 | |||
261 | /* | ||
262 | =================== | ||
263 | = | ||
264 | = ProjectileTryMove | ||
265 | = | ||
266 | = returns true if move ok | ||
267 | =================== | ||
268 | */ | ||
269 | |||
270 | #define PROJSIZE 0x2000 | ||
271 | |||
272 | boolean ProjectileTryMove (objtype *ob) | ||
273 | { | ||
274 | int xl,yl,xh,yh,x,y; | ||
275 | objtype *check; | ||
276 | |||
277 | xl = (ob->x-PROJSIZE) >> TILESHIFT; | ||
278 | yl = (ob->y-PROJSIZE) >> TILESHIFT; | ||
279 | |||
280 | xh = (ob->x+PROJSIZE) >> TILESHIFT; | ||
281 | yh = (ob->y+PROJSIZE) >> TILESHIFT; | ||
282 | |||
283 | // | ||
284 | // check for solid walls | ||
285 | // | ||
286 | for (y=yl;y<=yh;y++) | ||
287 | for (x=xl;x<=xh;x++) | ||
288 | { | ||
289 | check = actorat[x][y]; | ||
290 | if (check && !ISPOINTER(check)) | ||
291 | return false; | ||
292 | } | ||
293 | |||
294 | return true; | ||
295 | } | ||
296 | |||
297 | |||
298 | |||
299 | /* | ||
300 | ================= | ||
301 | = | ||
302 | = T_Projectile | ||
303 | = | ||
304 | ================= | ||
305 | */ | ||
306 | |||
307 | void T_Projectile (objtype *ob) | ||
308 | { | ||
309 | int32_t deltax,deltay; | ||
310 | int damage; | ||
311 | int32_t speed; | ||
312 | |||
313 | speed = (int32_t)ob->speed*tics; | ||
314 | |||
315 | deltax = FixedMul(speed,costable[ob->angle]); | ||
316 | deltay = -FixedMul(speed,sintable[ob->angle]); | ||
317 | |||
318 | if (deltax>0x10000l) | ||
319 | deltax = 0x10000l; | ||
320 | if (deltay>0x10000l) | ||
321 | deltay = 0x10000l; | ||
322 | |||
323 | ob->x += deltax; | ||
324 | ob->y += deltay; | ||
325 | |||
326 | deltax = LABS(ob->x - player->x); | ||
327 | deltay = LABS(ob->y - player->y); | ||
328 | |||
329 | if (!ProjectileTryMove (ob)) | ||
330 | { | ||
331 | #ifndef APOGEE_1_0 // actually the whole method is never reached in shareware 1.0 | ||
332 | if (ob->obclass == rocketobj) | ||
333 | { | ||
334 | PlaySoundLocActor(MISSILEHITSND,ob); | ||
335 | ob->state = &s_boom1; | ||
336 | } | ||
337 | #ifdef SPEAR | ||
338 | else if (ob->obclass == hrocketobj) | ||
339 | { | ||
340 | PlaySoundLocActor(MISSILEHITSND,ob); | ||
341 | ob->state = &s_hboom1; | ||
342 | } | ||
343 | #endif | ||
344 | else | ||
345 | #endif | ||
346 | ob->state = NULL; // mark for removal | ||
347 | |||
348 | return; | ||
349 | } | ||
350 | |||
351 | if (deltax < PROJECTILESIZE && deltay < PROJECTILESIZE) | ||
352 | { // hit the player | ||
353 | switch (ob->obclass) | ||
354 | { | ||
355 | case needleobj: | ||
356 | damage = (US_RndT() >>3) + 20; | ||
357 | break; | ||
358 | case rocketobj: | ||
359 | case hrocketobj: | ||
360 | case sparkobj: | ||
361 | damage = (US_RndT() >>3) + 30; | ||
362 | break; | ||
363 | case fireobj: | ||
364 | damage = (US_RndT() >>3); | ||
365 | break; | ||
366 | } | ||
367 | |||
368 | TakeDamage (damage,ob); | ||
369 | ob->state = NULL; // mark for removal | ||
370 | return; | ||
371 | } | ||
372 | |||
373 | ob->tilex = (short)(ob->x >> TILESHIFT); | ||
374 | ob->tiley = (short)(ob->y >> TILESHIFT); | ||
375 | } | ||
376 | |||
377 | |||
378 | /* | ||
379 | ============================================================================= | ||
380 | |||
381 | GUARD | ||
382 | |||
383 | ============================================================================= | ||
384 | */ | ||
385 | |||
386 | // | ||
387 | // guards | ||
388 | // | ||
389 | |||
390 | extern statetype s_grdstand; | ||
391 | |||
392 | extern statetype s_grdpath1; | ||
393 | extern statetype s_grdpath1s; | ||
394 | extern statetype s_grdpath2; | ||
395 | extern statetype s_grdpath3; | ||
396 | extern statetype s_grdpath3s; | ||
397 | extern statetype s_grdpath4; | ||
398 | |||
399 | extern statetype s_grdpain; | ||
400 | extern statetype s_grdpain1; | ||
401 | |||
402 | extern statetype s_grdgiveup; | ||
403 | |||
404 | extern statetype s_grdshoot1; | ||
405 | extern statetype s_grdshoot2; | ||
406 | extern statetype s_grdshoot3; | ||
407 | extern statetype s_grdshoot4; | ||
408 | |||
409 | extern statetype s_grdchase1; | ||
410 | extern statetype s_grdchase1s; | ||
411 | extern statetype s_grdchase2; | ||
412 | extern statetype s_grdchase3; | ||
413 | extern statetype s_grdchase3s; | ||
414 | extern statetype s_grdchase4; | ||
415 | |||
416 | extern statetype s_grddie1; | ||
417 | extern statetype s_grddie1d; | ||
418 | extern statetype s_grddie2; | ||
419 | extern statetype s_grddie3; | ||
420 | extern statetype s_grddie4; | ||
421 | |||
422 | statetype s_grdstand = {true,SPR_GRD_S_1,0,(statefunc)T_Stand,NULL,&s_grdstand}; | ||
423 | |||
424 | statetype s_grdpath1 = {true,SPR_GRD_W1_1,20,(statefunc)T_Path,NULL,&s_grdpath1s}; | ||
425 | statetype s_grdpath1s = {true,SPR_GRD_W1_1,5,NULL,NULL,&s_grdpath2}; | ||
426 | statetype s_grdpath2 = {true,SPR_GRD_W2_1,15,(statefunc)T_Path,NULL,&s_grdpath3}; | ||
427 | statetype s_grdpath3 = {true,SPR_GRD_W3_1,20,(statefunc)T_Path,NULL,&s_grdpath3s}; | ||
428 | statetype s_grdpath3s = {true,SPR_GRD_W3_1,5,NULL,NULL,&s_grdpath4}; | ||
429 | statetype s_grdpath4 = {true,SPR_GRD_W4_1,15,(statefunc)T_Path,NULL,&s_grdpath1}; | ||
430 | |||
431 | statetype s_grdpain = {2,SPR_GRD_PAIN_1,10,NULL,NULL,&s_grdchase1}; | ||
432 | statetype s_grdpain1 = {2,SPR_GRD_PAIN_2,10,NULL,NULL,&s_grdchase1}; | ||
433 | |||
434 | statetype s_grdshoot1 = {false,SPR_GRD_SHOOT1,20,NULL,NULL,&s_grdshoot2}; | ||
435 | statetype s_grdshoot2 = {false,SPR_GRD_SHOOT2,20,NULL,(statefunc)T_Shoot,&s_grdshoot3}; | ||
436 | statetype s_grdshoot3 = {false,SPR_GRD_SHOOT3,20,NULL,NULL,&s_grdchase1}; | ||
437 | |||
438 | statetype s_grdchase1 = {true,SPR_GRD_W1_1,10,(statefunc)T_Chase,NULL,&s_grdchase1s}; | ||
439 | statetype s_grdchase1s = {true,SPR_GRD_W1_1,3,NULL,NULL,&s_grdchase2}; | ||
440 | statetype s_grdchase2 = {true,SPR_GRD_W2_1,8,(statefunc)T_Chase,NULL,&s_grdchase3}; | ||
441 | statetype s_grdchase3 = {true,SPR_GRD_W3_1,10,(statefunc)T_Chase,NULL,&s_grdchase3s}; | ||
442 | statetype s_grdchase3s = {true,SPR_GRD_W3_1,3,NULL,NULL,&s_grdchase4}; | ||
443 | statetype s_grdchase4 = {true,SPR_GRD_W4_1,8,(statefunc)T_Chase,NULL,&s_grdchase1}; | ||
444 | |||
445 | statetype s_grddie1 = {false,SPR_GRD_DIE_1,15,NULL,(statefunc)A_DeathScream,&s_grddie2}; | ||
446 | statetype s_grddie2 = {false,SPR_GRD_DIE_2,15,NULL,NULL,&s_grddie3}; | ||
447 | statetype s_grddie3 = {false,SPR_GRD_DIE_3,15,NULL,NULL,&s_grddie4}; | ||
448 | statetype s_grddie4 = {false,SPR_GRD_DEAD,0,NULL,NULL,&s_grddie4}; | ||
449 | |||
450 | |||
451 | #ifndef SPEAR | ||
452 | // | ||
453 | // ghosts | ||
454 | // | ||
455 | extern statetype s_blinkychase1; | ||
456 | extern statetype s_blinkychase2; | ||
457 | extern statetype s_inkychase1; | ||
458 | extern statetype s_inkychase2; | ||
459 | extern statetype s_pinkychase1; | ||
460 | extern statetype s_pinkychase2; | ||
461 | extern statetype s_clydechase1; | ||
462 | extern statetype s_clydechase2; | ||
463 | |||
464 | statetype s_blinkychase1 = {false,SPR_BLINKY_W1,10,(statefunc)T_Ghosts,NULL,&s_blinkychase2}; | ||
465 | statetype s_blinkychase2 = {false,SPR_BLINKY_W2,10,(statefunc)T_Ghosts,NULL,&s_blinkychase1}; | ||
466 | |||
467 | statetype s_inkychase1 = {false,SPR_INKY_W1,10,(statefunc)T_Ghosts,NULL,&s_inkychase2}; | ||
468 | statetype s_inkychase2 = {false,SPR_INKY_W2,10,(statefunc)T_Ghosts,NULL,&s_inkychase1}; | ||
469 | |||
470 | statetype s_pinkychase1 = {false,SPR_PINKY_W1,10,(statefunc)T_Ghosts,NULL,&s_pinkychase2}; | ||
471 | statetype s_pinkychase2 = {false,SPR_PINKY_W2,10,(statefunc)T_Ghosts,NULL,&s_pinkychase1}; | ||
472 | |||
473 | statetype s_clydechase1 = {false,SPR_CLYDE_W1,10,(statefunc)T_Ghosts,NULL,&s_clydechase2}; | ||
474 | statetype s_clydechase2 = {false,SPR_CLYDE_W2,10,(statefunc)T_Ghosts,NULL,&s_clydechase1}; | ||
475 | #endif | ||
476 | |||
477 | // | ||
478 | // dogs | ||
479 | // | ||
480 | |||
481 | extern statetype s_dogpath1; | ||
482 | extern statetype s_dogpath1s; | ||
483 | extern statetype s_dogpath2; | ||
484 | extern statetype s_dogpath3; | ||
485 | extern statetype s_dogpath3s; | ||
486 | extern statetype s_dogpath4; | ||
487 | |||
488 | extern statetype s_dogjump1; | ||
489 | extern statetype s_dogjump2; | ||
490 | extern statetype s_dogjump3; | ||
491 | extern statetype s_dogjump4; | ||
492 | extern statetype s_dogjump5; | ||
493 | |||
494 | extern statetype s_dogchase1; | ||
495 | extern statetype s_dogchase1s; | ||
496 | extern statetype s_dogchase2; | ||
497 | extern statetype s_dogchase3; | ||
498 | extern statetype s_dogchase3s; | ||
499 | extern statetype s_dogchase4; | ||
500 | |||
501 | extern statetype s_dogdie1; | ||
502 | extern statetype s_dogdie1d; | ||
503 | extern statetype s_dogdie2; | ||
504 | extern statetype s_dogdie3; | ||
505 | extern statetype s_dogdead; | ||
506 | |||
507 | statetype s_dogpath1 = {true,SPR_DOG_W1_1,20,(statefunc)T_Path,NULL,&s_dogpath1s}; | ||
508 | statetype s_dogpath1s = {true,SPR_DOG_W1_1,5,NULL,NULL,&s_dogpath2}; | ||
509 | statetype s_dogpath2 = {true,SPR_DOG_W2_1,15,(statefunc)T_Path,NULL,&s_dogpath3}; | ||
510 | statetype s_dogpath3 = {true,SPR_DOG_W3_1,20,(statefunc)T_Path,NULL,&s_dogpath3s}; | ||
511 | statetype s_dogpath3s = {true,SPR_DOG_W3_1,5,NULL,NULL,&s_dogpath4}; | ||
512 | statetype s_dogpath4 = {true,SPR_DOG_W4_1,15,(statefunc)T_Path,NULL,&s_dogpath1}; | ||
513 | |||
514 | statetype s_dogjump1 = {false,SPR_DOG_JUMP1,10,NULL,NULL,&s_dogjump2}; | ||
515 | statetype s_dogjump2 = {false,SPR_DOG_JUMP2,10,NULL,(statefunc)T_Bite,&s_dogjump3}; | ||
516 | statetype s_dogjump3 = {false,SPR_DOG_JUMP3,10,NULL,NULL,&s_dogjump4}; | ||
517 | statetype s_dogjump4 = {false,SPR_DOG_JUMP1,10,NULL,NULL,&s_dogjump5}; | ||
518 | statetype s_dogjump5 = {false,SPR_DOG_W1_1,10,NULL,NULL,&s_dogchase1}; | ||
519 | |||
520 | statetype s_dogchase1 = {true,SPR_DOG_W1_1,10,(statefunc)T_DogChase,NULL,&s_dogchase1s}; | ||
521 | statetype s_dogchase1s = {true,SPR_DOG_W1_1,3,NULL,NULL,&s_dogchase2}; | ||
522 | statetype s_dogchase2 = {true,SPR_DOG_W2_1,8,(statefunc)T_DogChase,NULL,&s_dogchase3}; | ||
523 | statetype s_dogchase3 = {true,SPR_DOG_W3_1,10,(statefunc)T_DogChase,NULL,&s_dogchase3s}; | ||
524 | statetype s_dogchase3s = {true,SPR_DOG_W3_1,3,NULL,NULL,&s_dogchase4}; | ||
525 | statetype s_dogchase4 = {true,SPR_DOG_W4_1,8,(statefunc)T_DogChase,NULL,&s_dogchase1}; | ||
526 | |||
527 | statetype s_dogdie1 = {false,SPR_DOG_DIE_1,15,NULL,(statefunc)A_DeathScream,&s_dogdie2}; | ||
528 | statetype s_dogdie2 = {false,SPR_DOG_DIE_2,15,NULL,NULL,&s_dogdie3}; | ||
529 | statetype s_dogdie3 = {false,SPR_DOG_DIE_3,15,NULL,NULL,&s_dogdead}; | ||
530 | statetype s_dogdead = {false,SPR_DOG_DEAD,15,NULL,NULL,&s_dogdead}; | ||
531 | |||
532 | |||
533 | // | ||
534 | // officers | ||
535 | // | ||
536 | |||
537 | extern statetype s_ofcstand; | ||
538 | |||
539 | extern statetype s_ofcpath1; | ||
540 | extern statetype s_ofcpath1s; | ||
541 | extern statetype s_ofcpath2; | ||
542 | extern statetype s_ofcpath3; | ||
543 | extern statetype s_ofcpath3s; | ||
544 | extern statetype s_ofcpath4; | ||
545 | |||
546 | extern statetype s_ofcpain; | ||
547 | extern statetype s_ofcpain1; | ||
548 | |||
549 | extern statetype s_ofcgiveup; | ||
550 | |||
551 | extern statetype s_ofcshoot1; | ||
552 | extern statetype s_ofcshoot2; | ||
553 | extern statetype s_ofcshoot3; | ||
554 | extern statetype s_ofcshoot4; | ||
555 | |||
556 | extern statetype s_ofcchase1; | ||
557 | extern statetype s_ofcchase1s; | ||
558 | extern statetype s_ofcchase2; | ||
559 | extern statetype s_ofcchase3; | ||
560 | extern statetype s_ofcchase3s; | ||
561 | extern statetype s_ofcchase4; | ||
562 | |||
563 | extern statetype s_ofcdie1; | ||
564 | extern statetype s_ofcdie2; | ||
565 | extern statetype s_ofcdie3; | ||
566 | extern statetype s_ofcdie4; | ||
567 | extern statetype s_ofcdie5; | ||
568 | |||
569 | statetype s_ofcstand = {true,SPR_OFC_S_1,0,(statefunc)T_Stand,NULL,&s_ofcstand}; | ||
570 | |||
571 | statetype s_ofcpath1 = {true,SPR_OFC_W1_1,20,(statefunc)T_Path,NULL,&s_ofcpath1s}; | ||
572 | statetype s_ofcpath1s = {true,SPR_OFC_W1_1,5,NULL,NULL,&s_ofcpath2}; | ||
573 | statetype s_ofcpath2 = {true,SPR_OFC_W2_1,15,(statefunc)T_Path,NULL,&s_ofcpath3}; | ||
574 | statetype s_ofcpath3 = {true,SPR_OFC_W3_1,20,(statefunc)T_Path,NULL,&s_ofcpath3s}; | ||
575 | statetype s_ofcpath3s = {true,SPR_OFC_W3_1,5,NULL,NULL,&s_ofcpath4}; | ||
576 | statetype s_ofcpath4 = {true,SPR_OFC_W4_1,15,(statefunc)T_Path,NULL,&s_ofcpath1}; | ||
577 | |||
578 | statetype s_ofcpain = {2,SPR_OFC_PAIN_1,10,NULL,NULL,&s_ofcchase1}; | ||
579 | statetype s_ofcpain1 = {2,SPR_OFC_PAIN_2,10,NULL,NULL,&s_ofcchase1}; | ||
580 | |||
581 | statetype s_ofcshoot1 = {false,SPR_OFC_SHOOT1,6,NULL,NULL,&s_ofcshoot2}; | ||
582 | statetype s_ofcshoot2 = {false,SPR_OFC_SHOOT2,20,NULL,(statefunc)T_Shoot,&s_ofcshoot3}; | ||
583 | statetype s_ofcshoot3 = {false,SPR_OFC_SHOOT3,10,NULL,NULL,&s_ofcchase1}; | ||
584 | |||
585 | statetype s_ofcchase1 = {true,SPR_OFC_W1_1,10,(statefunc)T_Chase,NULL,&s_ofcchase1s}; | ||
586 | statetype s_ofcchase1s = {true,SPR_OFC_W1_1,3,NULL,NULL,&s_ofcchase2}; | ||
587 | statetype s_ofcchase2 = {true,SPR_OFC_W2_1,8,(statefunc)T_Chase,NULL,&s_ofcchase3}; | ||
588 | statetype s_ofcchase3 = {true,SPR_OFC_W3_1,10,(statefunc)T_Chase,NULL,&s_ofcchase3s}; | ||
589 | statetype s_ofcchase3s = {true,SPR_OFC_W3_1,3,NULL,NULL,&s_ofcchase4}; | ||
590 | statetype s_ofcchase4 = {true,SPR_OFC_W4_1,8,(statefunc)T_Chase,NULL,&s_ofcchase1}; | ||
591 | |||
592 | statetype s_ofcdie1 = {false,SPR_OFC_DIE_1,11,NULL,(statefunc)A_DeathScream,&s_ofcdie2}; | ||
593 | statetype s_ofcdie2 = {false,SPR_OFC_DIE_2,11,NULL,NULL,&s_ofcdie3}; | ||
594 | statetype s_ofcdie3 = {false,SPR_OFC_DIE_3,11,NULL,NULL,&s_ofcdie4}; | ||
595 | statetype s_ofcdie4 = {false,SPR_OFC_DIE_4,11,NULL,NULL,&s_ofcdie5}; | ||
596 | statetype s_ofcdie5 = {false,SPR_OFC_DEAD,0,NULL,NULL,&s_ofcdie5}; | ||
597 | |||
598 | |||
599 | // | ||
600 | // mutant | ||
601 | // | ||
602 | |||
603 | extern statetype s_mutstand; | ||
604 | |||
605 | extern statetype s_mutpath1; | ||
606 | extern statetype s_mutpath1s; | ||
607 | extern statetype s_mutpath2; | ||
608 | extern statetype s_mutpath3; | ||
609 | extern statetype s_mutpath3s; | ||
610 | extern statetype s_mutpath4; | ||
611 | |||
612 | extern statetype s_mutpain; | ||
613 | extern statetype s_mutpain1; | ||
614 | |||
615 | extern statetype s_mutgiveup; | ||
616 | |||
617 | extern statetype s_mutshoot1; | ||
618 | extern statetype s_mutshoot2; | ||
619 | extern statetype s_mutshoot3; | ||
620 | extern statetype s_mutshoot4; | ||
621 | |||
622 | extern statetype s_mutchase1; | ||
623 | extern statetype s_mutchase1s; | ||
624 | extern statetype s_mutchase2; | ||
625 | extern statetype s_mutchase3; | ||
626 | extern statetype s_mutchase3s; | ||
627 | extern statetype s_mutchase4; | ||
628 | |||
629 | extern statetype s_mutdie1; | ||
630 | extern statetype s_mutdie2; | ||
631 | extern statetype s_mutdie3; | ||
632 | extern statetype s_mutdie4; | ||
633 | extern statetype s_mutdie5; | ||
634 | |||
635 | statetype s_mutstand = {true,SPR_MUT_S_1,0,(statefunc)T_Stand,NULL,&s_mutstand}; | ||
636 | |||
637 | statetype s_mutpath1 = {true,SPR_MUT_W1_1,20,(statefunc)T_Path,NULL,&s_mutpath1s}; | ||
638 | statetype s_mutpath1s = {true,SPR_MUT_W1_1,5,NULL,NULL,&s_mutpath2}; | ||
639 | statetype s_mutpath2 = {true,SPR_MUT_W2_1,15,(statefunc)T_Path,NULL,&s_mutpath3}; | ||
640 | statetype s_mutpath3 = {true,SPR_MUT_W3_1,20,(statefunc)T_Path,NULL,&s_mutpath3s}; | ||
641 | statetype s_mutpath3s = {true,SPR_MUT_W3_1,5,NULL,NULL,&s_mutpath4}; | ||
642 | statetype s_mutpath4 = {true,SPR_MUT_W4_1,15,(statefunc)T_Path,NULL,&s_mutpath1}; | ||
643 | |||
644 | statetype s_mutpain = {2,SPR_MUT_PAIN_1,10,NULL,NULL,&s_mutchase1}; | ||
645 | statetype s_mutpain1 = {2,SPR_MUT_PAIN_2,10,NULL,NULL,&s_mutchase1}; | ||
646 | |||
647 | statetype s_mutshoot1 = {false,SPR_MUT_SHOOT1,6,NULL,(statefunc)T_Shoot,&s_mutshoot2}; | ||
648 | statetype s_mutshoot2 = {false,SPR_MUT_SHOOT2,20,NULL,NULL,&s_mutshoot3}; | ||
649 | statetype s_mutshoot3 = {false,SPR_MUT_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_mutshoot4}; | ||
650 | statetype s_mutshoot4 = {false,SPR_MUT_SHOOT4,20,NULL,NULL,&s_mutchase1}; | ||
651 | |||
652 | statetype s_mutchase1 = {true,SPR_MUT_W1_1,10,(statefunc)T_Chase,NULL,&s_mutchase1s}; | ||
653 | statetype s_mutchase1s = {true,SPR_MUT_W1_1,3,NULL,NULL,&s_mutchase2}; | ||
654 | statetype s_mutchase2 = {true,SPR_MUT_W2_1,8,(statefunc)T_Chase,NULL,&s_mutchase3}; | ||
655 | statetype s_mutchase3 = {true,SPR_MUT_W3_1,10,(statefunc)T_Chase,NULL,&s_mutchase3s}; | ||
656 | statetype s_mutchase3s = {true,SPR_MUT_W3_1,3,NULL,NULL,&s_mutchase4}; | ||
657 | statetype s_mutchase4 = {true,SPR_MUT_W4_1,8,(statefunc)T_Chase,NULL,&s_mutchase1}; | ||
658 | |||
659 | statetype s_mutdie1 = {false,SPR_MUT_DIE_1,7,NULL,(statefunc)A_DeathScream,&s_mutdie2}; | ||
660 | statetype s_mutdie2 = {false,SPR_MUT_DIE_2,7,NULL,NULL,&s_mutdie3}; | ||
661 | statetype s_mutdie3 = {false,SPR_MUT_DIE_3,7,NULL,NULL,&s_mutdie4}; | ||
662 | statetype s_mutdie4 = {false,SPR_MUT_DIE_4,7,NULL,NULL,&s_mutdie5}; | ||
663 | statetype s_mutdie5 = {false,SPR_MUT_DEAD,0,NULL,NULL,&s_mutdie5}; | ||
664 | |||
665 | |||
666 | // | ||
667 | // SS | ||
668 | // | ||
669 | |||
670 | extern statetype s_ssstand; | ||
671 | |||
672 | extern statetype s_sspath1; | ||
673 | extern statetype s_sspath1s; | ||
674 | extern statetype s_sspath2; | ||
675 | extern statetype s_sspath3; | ||
676 | extern statetype s_sspath3s; | ||
677 | extern statetype s_sspath4; | ||
678 | |||
679 | extern statetype s_sspain; | ||
680 | extern statetype s_sspain1; | ||
681 | |||
682 | extern statetype s_ssshoot1; | ||
683 | extern statetype s_ssshoot2; | ||
684 | extern statetype s_ssshoot3; | ||
685 | extern statetype s_ssshoot4; | ||
686 | extern statetype s_ssshoot5; | ||
687 | extern statetype s_ssshoot6; | ||
688 | extern statetype s_ssshoot7; | ||
689 | extern statetype s_ssshoot8; | ||
690 | extern statetype s_ssshoot9; | ||
691 | |||
692 | extern statetype s_sschase1; | ||
693 | extern statetype s_sschase1s; | ||
694 | extern statetype s_sschase2; | ||
695 | extern statetype s_sschase3; | ||
696 | extern statetype s_sschase3s; | ||
697 | extern statetype s_sschase4; | ||
698 | |||
699 | extern statetype s_ssdie1; | ||
700 | extern statetype s_ssdie2; | ||
701 | extern statetype s_ssdie3; | ||
702 | extern statetype s_ssdie4; | ||
703 | |||
704 | statetype s_ssstand = {true,SPR_SS_S_1,0,(statefunc)T_Stand,NULL,&s_ssstand}; | ||
705 | |||
706 | statetype s_sspath1 = {true,SPR_SS_W1_1,20,(statefunc)T_Path,NULL,&s_sspath1s}; | ||
707 | statetype s_sspath1s = {true,SPR_SS_W1_1,5,NULL,NULL,&s_sspath2}; | ||
708 | statetype s_sspath2 = {true,SPR_SS_W2_1,15,(statefunc)T_Path,NULL,&s_sspath3}; | ||
709 | statetype s_sspath3 = {true,SPR_SS_W3_1,20,(statefunc)T_Path,NULL,&s_sspath3s}; | ||
710 | statetype s_sspath3s = {true,SPR_SS_W3_1,5,NULL,NULL,&s_sspath4}; | ||
711 | statetype s_sspath4 = {true,SPR_SS_W4_1,15,(statefunc)T_Path,NULL,&s_sspath1}; | ||
712 | |||
713 | statetype s_sspain = {2,SPR_SS_PAIN_1,10,NULL,NULL,&s_sschase1}; | ||
714 | statetype s_sspain1 = {2,SPR_SS_PAIN_2,10,NULL,NULL,&s_sschase1}; | ||
715 | |||
716 | statetype s_ssshoot1 = {false,SPR_SS_SHOOT1,20,NULL,NULL,&s_ssshoot2}; | ||
717 | statetype s_ssshoot2 = {false,SPR_SS_SHOOT2,20,NULL,(statefunc)T_Shoot,&s_ssshoot3}; | ||
718 | statetype s_ssshoot3 = {false,SPR_SS_SHOOT3,10,NULL,NULL,&s_ssshoot4}; | ||
719 | statetype s_ssshoot4 = {false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_ssshoot5}; | ||
720 | statetype s_ssshoot5 = {false,SPR_SS_SHOOT3,10,NULL,NULL,&s_ssshoot6}; | ||
721 | statetype s_ssshoot6 = {false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_ssshoot7}; | ||
722 | statetype s_ssshoot7 = {false,SPR_SS_SHOOT3,10,NULL,NULL,&s_ssshoot8}; | ||
723 | statetype s_ssshoot8 = {false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_ssshoot9}; | ||
724 | statetype s_ssshoot9 = {false,SPR_SS_SHOOT3,10,NULL,NULL,&s_sschase1}; | ||
725 | |||
726 | statetype s_sschase1 = {true,SPR_SS_W1_1,10,(statefunc)T_Chase,NULL,&s_sschase1s}; | ||
727 | statetype s_sschase1s = {true,SPR_SS_W1_1,3,NULL,NULL,&s_sschase2}; | ||
728 | statetype s_sschase2 = {true,SPR_SS_W2_1,8,(statefunc)T_Chase,NULL,&s_sschase3}; | ||
729 | statetype s_sschase3 = {true,SPR_SS_W3_1,10,(statefunc)T_Chase,NULL,&s_sschase3s}; | ||
730 | statetype s_sschase3s = {true,SPR_SS_W3_1,3,NULL,NULL,&s_sschase4}; | ||
731 | statetype s_sschase4 = {true,SPR_SS_W4_1,8,(statefunc)T_Chase,NULL,&s_sschase1}; | ||
732 | |||
733 | statetype s_ssdie1 = {false,SPR_SS_DIE_1,15,NULL,(statefunc)A_DeathScream,&s_ssdie2}; | ||
734 | statetype s_ssdie2 = {false,SPR_SS_DIE_2,15,NULL,NULL,&s_ssdie3}; | ||
735 | statetype s_ssdie3 = {false,SPR_SS_DIE_3,15,NULL,NULL,&s_ssdie4}; | ||
736 | statetype s_ssdie4 = {false,SPR_SS_DEAD,0,NULL,NULL,&s_ssdie4}; | ||
737 | |||
738 | |||
739 | #ifndef SPEAR | ||
740 | // | ||
741 | // hans | ||
742 | // | ||
743 | extern statetype s_bossstand; | ||
744 | |||
745 | extern statetype s_bosschase1; | ||
746 | extern statetype s_bosschase1s; | ||
747 | extern statetype s_bosschase2; | ||
748 | extern statetype s_bosschase3; | ||
749 | extern statetype s_bosschase3s; | ||
750 | extern statetype s_bosschase4; | ||
751 | |||
752 | extern statetype s_bossdie1; | ||
753 | extern statetype s_bossdie2; | ||
754 | extern statetype s_bossdie3; | ||
755 | extern statetype s_bossdie4; | ||
756 | |||
757 | extern statetype s_bossshoot1; | ||
758 | extern statetype s_bossshoot2; | ||
759 | extern statetype s_bossshoot3; | ||
760 | extern statetype s_bossshoot4; | ||
761 | extern statetype s_bossshoot5; | ||
762 | extern statetype s_bossshoot6; | ||
763 | extern statetype s_bossshoot7; | ||
764 | extern statetype s_bossshoot8; | ||
765 | |||
766 | |||
767 | statetype s_bossstand = {false,SPR_BOSS_W1,0,(statefunc)T_Stand,NULL,&s_bossstand}; | ||
768 | |||
769 | statetype s_bosschase1 = {false,SPR_BOSS_W1,10,(statefunc)T_Chase,NULL,&s_bosschase1s}; | ||
770 | statetype s_bosschase1s = {false,SPR_BOSS_W1,3,NULL,NULL,&s_bosschase2}; | ||
771 | statetype s_bosschase2 = {false,SPR_BOSS_W2,8,(statefunc)T_Chase,NULL,&s_bosschase3}; | ||
772 | statetype s_bosschase3 = {false,SPR_BOSS_W3,10,(statefunc)T_Chase,NULL,&s_bosschase3s}; | ||
773 | statetype s_bosschase3s = {false,SPR_BOSS_W3,3,NULL,NULL,&s_bosschase4}; | ||
774 | statetype s_bosschase4 = {false,SPR_BOSS_W4,8,(statefunc)T_Chase,NULL,&s_bosschase1}; | ||
775 | |||
776 | statetype s_bossdie1 = {false,SPR_BOSS_DIE1,15,NULL,(statefunc)A_DeathScream,&s_bossdie2}; | ||
777 | statetype s_bossdie2 = {false,SPR_BOSS_DIE2,15,NULL,NULL,&s_bossdie3}; | ||
778 | statetype s_bossdie3 = {false,SPR_BOSS_DIE3,15,NULL,NULL,&s_bossdie4}; | ||
779 | statetype s_bossdie4 = {false,SPR_BOSS_DEAD,0,NULL,NULL,&s_bossdie4}; | ||
780 | |||
781 | statetype s_bossshoot1 = {false,SPR_BOSS_SHOOT1,30,NULL,NULL,&s_bossshoot2}; | ||
782 | statetype s_bossshoot2 = {false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_bossshoot3}; | ||
783 | statetype s_bossshoot3 = {false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_bossshoot4}; | ||
784 | statetype s_bossshoot4 = {false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_bossshoot5}; | ||
785 | statetype s_bossshoot5 = {false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_bossshoot6}; | ||
786 | statetype s_bossshoot6 = {false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_bossshoot7}; | ||
787 | statetype s_bossshoot7 = {false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_bossshoot8}; | ||
788 | statetype s_bossshoot8 = {false,SPR_BOSS_SHOOT1,10,NULL,NULL,&s_bosschase1}; | ||
789 | |||
790 | |||
791 | // | ||
792 | // gretel | ||
793 | // | ||
794 | extern statetype s_gretelstand; | ||
795 | |||
796 | extern statetype s_gretelchase1; | ||
797 | extern statetype s_gretelchase1s; | ||
798 | extern statetype s_gretelchase2; | ||
799 | extern statetype s_gretelchase3; | ||
800 | extern statetype s_gretelchase3s; | ||
801 | extern statetype s_gretelchase4; | ||
802 | |||
803 | extern statetype s_greteldie1; | ||
804 | extern statetype s_greteldie2; | ||
805 | extern statetype s_greteldie3; | ||
806 | extern statetype s_greteldie4; | ||
807 | |||
808 | extern statetype s_gretelshoot1; | ||
809 | extern statetype s_gretelshoot2; | ||
810 | extern statetype s_gretelshoot3; | ||
811 | extern statetype s_gretelshoot4; | ||
812 | extern statetype s_gretelshoot5; | ||
813 | extern statetype s_gretelshoot6; | ||
814 | extern statetype s_gretelshoot7; | ||
815 | extern statetype s_gretelshoot8; | ||
816 | |||
817 | |||
818 | statetype s_gretelstand = {false,SPR_GRETEL_W1,0,(statefunc)T_Stand,NULL,&s_gretelstand}; | ||
819 | |||
820 | statetype s_gretelchase1 = {false,SPR_GRETEL_W1,10,(statefunc)T_Chase,NULL,&s_gretelchase1s}; | ||
821 | statetype s_gretelchase1s = {false,SPR_GRETEL_W1,3,NULL,NULL,&s_gretelchase2}; | ||
822 | statetype s_gretelchase2 = {false,SPR_GRETEL_W2,8,(statefunc)T_Chase,NULL,&s_gretelchase3}; | ||
823 | statetype s_gretelchase3 = {false,SPR_GRETEL_W3,10,(statefunc)T_Chase,NULL,&s_gretelchase3s}; | ||
824 | statetype s_gretelchase3s = {false,SPR_GRETEL_W3,3,NULL,NULL,&s_gretelchase4}; | ||
825 | statetype s_gretelchase4 = {false,SPR_GRETEL_W4,8,(statefunc)T_Chase,NULL,&s_gretelchase1}; | ||
826 | |||
827 | statetype s_greteldie1 = {false,SPR_GRETEL_DIE1,15,NULL,(statefunc)A_DeathScream,&s_greteldie2}; | ||
828 | statetype s_greteldie2 = {false,SPR_GRETEL_DIE2,15,NULL,NULL,&s_greteldie3}; | ||
829 | statetype s_greteldie3 = {false,SPR_GRETEL_DIE3,15,NULL,NULL,&s_greteldie4}; | ||
830 | statetype s_greteldie4 = {false,SPR_GRETEL_DEAD,0,NULL,NULL,&s_greteldie4}; | ||
831 | |||
832 | statetype s_gretelshoot1 = {false,SPR_GRETEL_SHOOT1,30,NULL,NULL,&s_gretelshoot2}; | ||
833 | statetype s_gretelshoot2 = {false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_gretelshoot3}; | ||
834 | statetype s_gretelshoot3 = {false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_gretelshoot4}; | ||
835 | statetype s_gretelshoot4 = {false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_gretelshoot5}; | ||
836 | statetype s_gretelshoot5 = {false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_gretelshoot6}; | ||
837 | statetype s_gretelshoot6 = {false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_gretelshoot7}; | ||
838 | statetype s_gretelshoot7 = {false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_gretelshoot8}; | ||
839 | statetype s_gretelshoot8 = {false,SPR_GRETEL_SHOOT1,10,NULL,NULL,&s_gretelchase1}; | ||
840 | #endif | ||
841 | |||
842 | |||
843 | /* | ||
844 | =============== | ||
845 | = | ||
846 | = SpawnStand | ||
847 | = | ||
848 | =============== | ||
849 | */ | ||
850 | |||
851 | void SpawnStand (enemy_t which, int tilex, int tiley, int dir) | ||
852 | { | ||
853 | word *map; | ||
854 | word tile; | ||
855 | |||
856 | switch (which) | ||
857 | { | ||
858 | case en_guard: | ||
859 | SpawnNewObj (tilex,tiley,&s_grdstand); | ||
860 | newobj->speed = SPDPATROL; | ||
861 | if (!loadedgame) | ||
862 | gamestate.killtotal++; | ||
863 | break; | ||
864 | |||
865 | case en_officer: | ||
866 | SpawnNewObj (tilex,tiley,&s_ofcstand); | ||
867 | newobj->speed = SPDPATROL; | ||
868 | if (!loadedgame) | ||
869 | gamestate.killtotal++; | ||
870 | break; | ||
871 | |||
872 | case en_mutant: | ||
873 | SpawnNewObj (tilex,tiley,&s_mutstand); | ||
874 | newobj->speed = SPDPATROL; | ||
875 | if (!loadedgame) | ||
876 | gamestate.killtotal++; | ||
877 | break; | ||
878 | |||
879 | case en_ss: | ||
880 | SpawnNewObj (tilex,tiley,&s_ssstand); | ||
881 | newobj->speed = SPDPATROL; | ||
882 | if (!loadedgame) | ||
883 | gamestate.killtotal++; | ||
884 | break; | ||
885 | } | ||
886 | |||
887 | |||
888 | map = mapsegs[0]+(tiley<<mapshift)+tilex; | ||
889 | tile = *map; | ||
890 | if (tile == AMBUSHTILE) | ||
891 | { | ||
892 | tilemap[tilex][tiley] = 0; | ||
893 | |||
894 | if (*(map+1) >= AREATILE) | ||
895 | tile = *(map+1); | ||
896 | if (*(map-mapwidth) >= AREATILE) | ||
897 | tile = *(map-mapwidth); | ||
898 | if (*(map+mapwidth) >= AREATILE) | ||
899 | tile = *(map+mapwidth); | ||
900 | if ( *(map-1) >= AREATILE) | ||
901 | tile = *(map-1); | ||
902 | |||
903 | *map = tile; | ||
904 | newobj->areanumber = tile-AREATILE; | ||
905 | |||
906 | newobj->flags |= FL_AMBUSH; | ||
907 | } | ||
908 | |||
909 | newobj->obclass = (classtype)(guardobj + which); | ||
910 | newobj->hitpoints = starthitpoints[gamestate.difficulty][which]; | ||
911 | newobj->dir = (dirtype)(dir * 2); | ||
912 | newobj->flags |= FL_SHOOTABLE; | ||
913 | } | ||
914 | |||
915 | |||
916 | |||
917 | /* | ||
918 | =============== | ||
919 | = | ||
920 | = SpawnDeadGuard | ||
921 | = | ||
922 | =============== | ||
923 | */ | ||
924 | |||
925 | void SpawnDeadGuard (int tilex, int tiley) | ||
926 | { | ||
927 | SpawnNewObj (tilex,tiley,&s_grddie4); | ||
928 | DEMOIF_SDL | ||
929 | { | ||
930 | newobj->flags |= FL_NONMARK; // walk through moving enemy fix | ||
931 | } | ||
932 | newobj->obclass = inertobj; | ||
933 | } | ||
934 | |||
935 | |||
936 | |||
937 | #ifndef SPEAR | ||
938 | /* | ||
939 | =============== | ||
940 | = | ||
941 | = SpawnBoss | ||
942 | = | ||
943 | =============== | ||
944 | */ | ||
945 | |||
946 | void SpawnBoss (int tilex, int tiley) | ||
947 | { | ||
948 | SpawnNewObj (tilex,tiley,&s_bossstand); | ||
949 | newobj->speed = SPDPATROL; | ||
950 | |||
951 | newobj->obclass = bossobj; | ||
952 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_boss]; | ||
953 | newobj->dir = nodir; | ||
954 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
955 | if (!loadedgame) | ||
956 | gamestate.killtotal++; | ||
957 | } | ||
958 | |||
959 | /* | ||
960 | =============== | ||
961 | = | ||
962 | = SpawnGretel | ||
963 | = | ||
964 | =============== | ||
965 | */ | ||
966 | |||
967 | void SpawnGretel (int tilex, int tiley) | ||
968 | { | ||
969 | SpawnNewObj (tilex,tiley,&s_gretelstand); | ||
970 | newobj->speed = SPDPATROL; | ||
971 | |||
972 | newobj->obclass = gretelobj; | ||
973 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_gretel]; | ||
974 | newobj->dir = nodir; | ||
975 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
976 | if (!loadedgame) | ||
977 | gamestate.killtotal++; | ||
978 | } | ||
979 | #endif | ||
980 | |||
981 | /* | ||
982 | =============== | ||
983 | = | ||
984 | = SpawnPatrol | ||
985 | = | ||
986 | =============== | ||
987 | */ | ||
988 | |||
989 | void SpawnPatrol (enemy_t which, int tilex, int tiley, int dir) | ||
990 | { | ||
991 | switch (which) | ||
992 | { | ||
993 | case en_guard: | ||
994 | SpawnNewObj (tilex,tiley,&s_grdpath1); | ||
995 | newobj->speed = SPDPATROL; | ||
996 | if (!loadedgame) | ||
997 | gamestate.killtotal++; | ||
998 | break; | ||
999 | |||
1000 | case en_officer: | ||
1001 | SpawnNewObj (tilex,tiley,&s_ofcpath1); | ||
1002 | newobj->speed = SPDPATROL; | ||
1003 | if (!loadedgame) | ||
1004 | gamestate.killtotal++; | ||
1005 | break; | ||
1006 | |||
1007 | case en_ss: | ||
1008 | SpawnNewObj (tilex,tiley,&s_sspath1); | ||
1009 | newobj->speed = SPDPATROL; | ||
1010 | if (!loadedgame) | ||
1011 | gamestate.killtotal++; | ||
1012 | break; | ||
1013 | |||
1014 | case en_mutant: | ||
1015 | SpawnNewObj (tilex,tiley,&s_mutpath1); | ||
1016 | newobj->speed = SPDPATROL; | ||
1017 | if (!loadedgame) | ||
1018 | gamestate.killtotal++; | ||
1019 | break; | ||
1020 | |||
1021 | case en_dog: | ||
1022 | SpawnNewObj (tilex,tiley,&s_dogpath1); | ||
1023 | newobj->speed = SPDDOG; | ||
1024 | if (!loadedgame) | ||
1025 | gamestate.killtotal++; | ||
1026 | break; | ||
1027 | } | ||
1028 | |||
1029 | newobj->obclass = (classtype)(guardobj+which); | ||
1030 | newobj->dir = (dirtype)(dir*2); | ||
1031 | newobj->hitpoints = starthitpoints[gamestate.difficulty][which]; | ||
1032 | newobj->distance = TILEGLOBAL; | ||
1033 | newobj->flags |= FL_SHOOTABLE; | ||
1034 | newobj->active = ac_yes; | ||
1035 | |||
1036 | actorat[newobj->tilex][newobj->tiley] = NULL; // don't use original spot | ||
1037 | |||
1038 | switch (dir) | ||
1039 | { | ||
1040 | case 0: | ||
1041 | newobj->tilex++; | ||
1042 | break; | ||
1043 | case 1: | ||
1044 | newobj->tiley--; | ||
1045 | break; | ||
1046 | case 2: | ||
1047 | newobj->tilex--; | ||
1048 | break; | ||
1049 | case 3: | ||
1050 | newobj->tiley++; | ||
1051 | break; | ||
1052 | } | ||
1053 | |||
1054 | actorat[newobj->tilex][newobj->tiley] = newobj; | ||
1055 | } | ||
1056 | |||
1057 | |||
1058 | |||
1059 | /* | ||
1060 | ================== | ||
1061 | = | ||
1062 | = A_DeathScream | ||
1063 | = | ||
1064 | ================== | ||
1065 | */ | ||
1066 | |||
1067 | void A_DeathScream (objtype *ob) | ||
1068 | { | ||
1069 | #ifndef UPLOAD | ||
1070 | #ifndef SPEAR | ||
1071 | if (mapon==9 && !US_RndT()) | ||
1072 | #else | ||
1073 | if ((mapon==18 || mapon==19) && !US_RndT()) | ||
1074 | #endif | ||
1075 | { | ||
1076 | switch(ob->obclass) | ||
1077 | { | ||
1078 | case mutantobj: | ||
1079 | case guardobj: | ||
1080 | case officerobj: | ||
1081 | case ssobj: | ||
1082 | case dogobj: | ||
1083 | PlaySoundLocActor(DEATHSCREAM6SND,ob); | ||
1084 | return; | ||
1085 | } | ||
1086 | } | ||
1087 | #endif | ||
1088 | |||
1089 | switch (ob->obclass) | ||
1090 | { | ||
1091 | case mutantobj: | ||
1092 | PlaySoundLocActor(AHHHGSND,ob); | ||
1093 | break; | ||
1094 | |||
1095 | case guardobj: | ||
1096 | { | ||
1097 | int sounds[9]={ DEATHSCREAM1SND, | ||
1098 | DEATHSCREAM2SND, | ||
1099 | DEATHSCREAM3SND, | ||
1100 | #ifndef APOGEE_1_0 | ||
1101 | DEATHSCREAM4SND, | ||
1102 | DEATHSCREAM5SND, | ||
1103 | DEATHSCREAM7SND, | ||
1104 | DEATHSCREAM8SND, | ||
1105 | DEATHSCREAM9SND | ||
1106 | #endif | ||
1107 | }; | ||
1108 | |||
1109 | #ifndef UPLOAD | ||
1110 | PlaySoundLocActor(sounds[US_RndT()%8],ob); | ||
1111 | #else | ||
1112 | PlaySoundLocActor(sounds[US_RndT()%2],ob); | ||
1113 | #endif | ||
1114 | break; | ||
1115 | } | ||
1116 | case officerobj: | ||
1117 | PlaySoundLocActor(NEINSOVASSND,ob); | ||
1118 | break; | ||
1119 | case ssobj: | ||
1120 | PlaySoundLocActor(LEBENSND,ob); // JAB | ||
1121 | break; | ||
1122 | case dogobj: | ||
1123 | PlaySoundLocActor(DOGDEATHSND,ob); // JAB | ||
1124 | break; | ||
1125 | #ifndef SPEAR | ||
1126 | case bossobj: | ||
1127 | SD_PlaySound(MUTTISND); // JAB | ||
1128 | break; | ||
1129 | case schabbobj: | ||
1130 | SD_PlaySound(MEINGOTTSND); | ||
1131 | break; | ||
1132 | case fakeobj: | ||
1133 | SD_PlaySound(HITLERHASND); | ||
1134 | break; | ||
1135 | case mechahitlerobj: | ||
1136 | SD_PlaySound(SCHEISTSND); | ||
1137 | break; | ||
1138 | case realhitlerobj: | ||
1139 | SD_PlaySound(EVASND); | ||
1140 | break; | ||
1141 | #ifndef APOGEE_1_0 | ||
1142 | case gretelobj: | ||
1143 | SD_PlaySound(MEINSND); | ||
1144 | break; | ||
1145 | case giftobj: | ||
1146 | SD_PlaySound(DONNERSND); | ||
1147 | break; | ||
1148 | case fatobj: | ||
1149 | SD_PlaySound(ROSESND); | ||
1150 | break; | ||
1151 | #endif | ||
1152 | #else | ||
1153 | case spectreobj: | ||
1154 | SD_PlaySound(GHOSTFADESND); | ||
1155 | break; | ||
1156 | case angelobj: | ||
1157 | SD_PlaySound(ANGELDEATHSND); | ||
1158 | break; | ||
1159 | case transobj: | ||
1160 | SD_PlaySound(TRANSDEATHSND); | ||
1161 | break; | ||
1162 | case uberobj: | ||
1163 | SD_PlaySound(UBERDEATHSND); | ||
1164 | break; | ||
1165 | case willobj: | ||
1166 | SD_PlaySound(WILHELMDEATHSND); | ||
1167 | break; | ||
1168 | case deathobj: | ||
1169 | SD_PlaySound(KNIGHTDEATHSND); | ||
1170 | break; | ||
1171 | #endif | ||
1172 | } | ||
1173 | } | ||
1174 | |||
1175 | |||
1176 | /* | ||
1177 | ============================================================================= | ||
1178 | |||
1179 | SPEAR ACTORS | ||
1180 | |||
1181 | ============================================================================= | ||
1182 | */ | ||
1183 | |||
1184 | #ifdef SPEAR | ||
1185 | |||
1186 | void T_Launch (objtype *ob); | ||
1187 | void T_Will (objtype *ob); | ||
1188 | |||
1189 | extern statetype s_angelshoot1; | ||
1190 | extern statetype s_deathshoot1; | ||
1191 | extern statetype s_spark1; | ||
1192 | |||
1193 | // | ||
1194 | // trans | ||
1195 | // | ||
1196 | extern statetype s_transstand; | ||
1197 | |||
1198 | extern statetype s_transchase1; | ||
1199 | extern statetype s_transchase1s; | ||
1200 | extern statetype s_transchase2; | ||
1201 | extern statetype s_transchase3; | ||
1202 | extern statetype s_transchase3s; | ||
1203 | extern statetype s_transchase4; | ||
1204 | |||
1205 | extern statetype s_transdie0; | ||
1206 | extern statetype s_transdie01; | ||
1207 | extern statetype s_transdie1; | ||
1208 | extern statetype s_transdie2; | ||
1209 | extern statetype s_transdie3; | ||
1210 | extern statetype s_transdie4; | ||
1211 | |||
1212 | extern statetype s_transshoot1; | ||
1213 | extern statetype s_transshoot2; | ||
1214 | extern statetype s_transshoot3; | ||
1215 | extern statetype s_transshoot4; | ||
1216 | extern statetype s_transshoot5; | ||
1217 | extern statetype s_transshoot6; | ||
1218 | extern statetype s_transshoot7; | ||
1219 | extern statetype s_transshoot8; | ||
1220 | |||
1221 | |||
1222 | statetype s_transstand = {false,SPR_TRANS_W1,0,(statefunc)T_Stand,NULL,&s_transstand}; | ||
1223 | |||
1224 | statetype s_transchase1 = {false,SPR_TRANS_W1,10,(statefunc)T_Chase,NULL,&s_transchase1s}; | ||
1225 | statetype s_transchase1s = {false,SPR_TRANS_W1,3,NULL,NULL,&s_transchase2}; | ||
1226 | statetype s_transchase2 = {false,SPR_TRANS_W2,8,(statefunc)T_Chase,NULL,&s_transchase3}; | ||
1227 | statetype s_transchase3 = {false,SPR_TRANS_W3,10,(statefunc)T_Chase,NULL,&s_transchase3s}; | ||
1228 | statetype s_transchase3s = {false,SPR_TRANS_W3,3,NULL,NULL,&s_transchase4}; | ||
1229 | statetype s_transchase4 = {false,SPR_TRANS_W4,8,(statefunc)T_Chase,NULL,&s_transchase1}; | ||
1230 | |||
1231 | statetype s_transdie0 = {false,SPR_TRANS_W1,1,NULL,(statefunc)A_DeathScream,&s_transdie01}; | ||
1232 | statetype s_transdie01 = {false,SPR_TRANS_W1,1,NULL,NULL,&s_transdie1}; | ||
1233 | statetype s_transdie1 = {false,SPR_TRANS_DIE1,15,NULL,NULL,&s_transdie2}; | ||
1234 | statetype s_transdie2 = {false,SPR_TRANS_DIE2,15,NULL,NULL,&s_transdie3}; | ||
1235 | statetype s_transdie3 = {false,SPR_TRANS_DIE3,15,NULL,NULL,&s_transdie4}; | ||
1236 | statetype s_transdie4 = {false,SPR_TRANS_DEAD,0,NULL,NULL,&s_transdie4}; | ||
1237 | |||
1238 | statetype s_transshoot1 = {false,SPR_TRANS_SHOOT1,30,NULL,NULL,&s_transshoot2}; | ||
1239 | statetype s_transshoot2 = {false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_transshoot3}; | ||
1240 | statetype s_transshoot3 = {false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_transshoot4}; | ||
1241 | statetype s_transshoot4 = {false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_transshoot5}; | ||
1242 | statetype s_transshoot5 = {false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_transshoot6}; | ||
1243 | statetype s_transshoot6 = {false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_transshoot7}; | ||
1244 | statetype s_transshoot7 = {false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_transshoot8}; | ||
1245 | statetype s_transshoot8 = {false,SPR_TRANS_SHOOT1,10,NULL,NULL,&s_transchase1}; | ||
1246 | |||
1247 | |||
1248 | /* | ||
1249 | =============== | ||
1250 | = | ||
1251 | = SpawnTrans | ||
1252 | = | ||
1253 | =============== | ||
1254 | */ | ||
1255 | |||
1256 | void SpawnTrans (int tilex, int tiley) | ||
1257 | { | ||
1258 | // word *map; | ||
1259 | // word tile; | ||
1260 | |||
1261 | if (SoundBlasterPresent && DigiMode != sds_Off) | ||
1262 | s_transdie01.tictime = 105; | ||
1263 | |||
1264 | SpawnNewObj (tilex,tiley,&s_transstand); | ||
1265 | newobj->obclass = transobj; | ||
1266 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_trans]; | ||
1267 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
1268 | if (!loadedgame) | ||
1269 | gamestate.killtotal++; | ||
1270 | } | ||
1271 | |||
1272 | |||
1273 | // | ||
1274 | // uber | ||
1275 | // | ||
1276 | void T_UShoot (objtype *ob); | ||
1277 | |||
1278 | extern statetype s_uberstand; | ||
1279 | |||
1280 | extern statetype s_uberchase1; | ||
1281 | extern statetype s_uberchase1s; | ||
1282 | extern statetype s_uberchase2; | ||
1283 | extern statetype s_uberchase3; | ||
1284 | extern statetype s_uberchase3s; | ||
1285 | extern statetype s_uberchase4; | ||
1286 | |||
1287 | extern statetype s_uberdie0; | ||
1288 | extern statetype s_uberdie01; | ||
1289 | extern statetype s_uberdie1; | ||
1290 | extern statetype s_uberdie2; | ||
1291 | extern statetype s_uberdie3; | ||
1292 | extern statetype s_uberdie4; | ||
1293 | extern statetype s_uberdie5; | ||
1294 | |||
1295 | extern statetype s_ubershoot1; | ||
1296 | extern statetype s_ubershoot2; | ||
1297 | extern statetype s_ubershoot3; | ||
1298 | extern statetype s_ubershoot4; | ||
1299 | extern statetype s_ubershoot5; | ||
1300 | extern statetype s_ubershoot6; | ||
1301 | extern statetype s_ubershoot7; | ||
1302 | |||
1303 | |||
1304 | statetype s_uberstand = {false,SPR_UBER_W1,0,(statefunc)T_Stand,NULL,&s_uberstand}; | ||
1305 | |||
1306 | statetype s_uberchase1 = {false,SPR_UBER_W1,10,(statefunc)T_Chase,NULL,&s_uberchase1s}; | ||
1307 | statetype s_uberchase1s = {false,SPR_UBER_W1,3,NULL,NULL,&s_uberchase2}; | ||
1308 | statetype s_uberchase2 = {false,SPR_UBER_W2,8,(statefunc)T_Chase,NULL,&s_uberchase3}; | ||
1309 | statetype s_uberchase3 = {false,SPR_UBER_W3,10,(statefunc)T_Chase,NULL,&s_uberchase3s}; | ||
1310 | statetype s_uberchase3s = {false,SPR_UBER_W3,3,NULL,NULL,&s_uberchase4}; | ||
1311 | statetype s_uberchase4 = {false,SPR_UBER_W4,8,(statefunc)T_Chase,NULL,&s_uberchase1}; | ||
1312 | |||
1313 | statetype s_uberdie0 = {false,SPR_UBER_W1,1,NULL,(statefunc)A_DeathScream,&s_uberdie01}; | ||
1314 | statetype s_uberdie01 = {false,SPR_UBER_W1,1,NULL,NULL,&s_uberdie1}; | ||
1315 | statetype s_uberdie1 = {false,SPR_UBER_DIE1,15,NULL,NULL,&s_uberdie2}; | ||
1316 | statetype s_uberdie2 = {false,SPR_UBER_DIE2,15,NULL,NULL,&s_uberdie3}; | ||
1317 | statetype s_uberdie3 = {false,SPR_UBER_DIE3,15,NULL,NULL,&s_uberdie4}; | ||
1318 | statetype s_uberdie4 = {false,SPR_UBER_DIE4,15,NULL,NULL,&s_uberdie5}; | ||
1319 | statetype s_uberdie5 = {false,SPR_UBER_DEAD,0,NULL,NULL,&s_uberdie5}; | ||
1320 | |||
1321 | statetype s_ubershoot1 = {false,SPR_UBER_SHOOT1,30,NULL,NULL,&s_ubershoot2}; | ||
1322 | statetype s_ubershoot2 = {false,SPR_UBER_SHOOT2,12,NULL,(statefunc)T_UShoot,&s_ubershoot3}; | ||
1323 | statetype s_ubershoot3 = {false,SPR_UBER_SHOOT3,12,NULL,(statefunc)T_UShoot,&s_ubershoot4}; | ||
1324 | statetype s_ubershoot4 = {false,SPR_UBER_SHOOT4,12,NULL,(statefunc)T_UShoot,&s_ubershoot5}; | ||
1325 | statetype s_ubershoot5 = {false,SPR_UBER_SHOOT3,12,NULL,(statefunc)T_UShoot,&s_ubershoot6}; | ||
1326 | statetype s_ubershoot6 = {false,SPR_UBER_SHOOT2,12,NULL,(statefunc)T_UShoot,&s_ubershoot7}; | ||
1327 | statetype s_ubershoot7 = {false,SPR_UBER_SHOOT1,12,NULL,NULL,&s_uberchase1}; | ||
1328 | |||
1329 | |||
1330 | /* | ||
1331 | =============== | ||
1332 | = | ||
1333 | = SpawnUber | ||
1334 | = | ||
1335 | =============== | ||
1336 | */ | ||
1337 | |||
1338 | void SpawnUber (int tilex, int tiley) | ||
1339 | { | ||
1340 | if (SoundBlasterPresent && DigiMode != sds_Off) | ||
1341 | s_uberdie01.tictime = 70; | ||
1342 | |||
1343 | SpawnNewObj (tilex,tiley,&s_uberstand); | ||
1344 | newobj->obclass = uberobj; | ||
1345 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_uber]; | ||
1346 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
1347 | if (!loadedgame) | ||
1348 | gamestate.killtotal++; | ||
1349 | } | ||
1350 | |||
1351 | |||
1352 | /* | ||
1353 | =============== | ||
1354 | = | ||
1355 | = T_UShoot | ||
1356 | = | ||
1357 | =============== | ||
1358 | */ | ||
1359 | |||
1360 | void T_UShoot (objtype *ob) | ||
1361 | { | ||
1362 | int dx,dy,dist; | ||
1363 | |||
1364 | T_Shoot (ob); | ||
1365 | |||
1366 | dx = abs(ob->tilex - player->tilex); | ||
1367 | dy = abs(ob->tiley - player->tiley); | ||
1368 | dist = dx>dy ? dx : dy; | ||
1369 | if (dist <= 1) | ||
1370 | TakeDamage (10,ob); | ||
1371 | } | ||
1372 | |||
1373 | |||
1374 | // | ||
1375 | // will | ||
1376 | // | ||
1377 | extern statetype s_willstand; | ||
1378 | |||
1379 | extern statetype s_willchase1; | ||
1380 | extern statetype s_willchase1s; | ||
1381 | extern statetype s_willchase2; | ||
1382 | extern statetype s_willchase3; | ||
1383 | extern statetype s_willchase3s; | ||
1384 | extern statetype s_willchase4; | ||
1385 | |||
1386 | extern statetype s_willdie1; | ||
1387 | extern statetype s_willdie2; | ||
1388 | extern statetype s_willdie3; | ||
1389 | extern statetype s_willdie4; | ||
1390 | extern statetype s_willdie5; | ||
1391 | extern statetype s_willdie6; | ||
1392 | |||
1393 | extern statetype s_willshoot1; | ||
1394 | extern statetype s_willshoot2; | ||
1395 | extern statetype s_willshoot3; | ||
1396 | extern statetype s_willshoot4; | ||
1397 | extern statetype s_willshoot5; | ||
1398 | extern statetype s_willshoot6; | ||
1399 | |||
1400 | |||
1401 | statetype s_willstand = {false,SPR_WILL_W1,0,(statefunc)T_Stand,NULL,&s_willstand}; | ||
1402 | |||
1403 | statetype s_willchase1 = {false,SPR_WILL_W1,10,(statefunc)T_Will,NULL,&s_willchase1s}; | ||
1404 | statetype s_willchase1s = {false,SPR_WILL_W1,3,NULL,NULL,&s_willchase2}; | ||
1405 | statetype s_willchase2 = {false,SPR_WILL_W2,8,(statefunc)T_Will,NULL,&s_willchase3}; | ||
1406 | statetype s_willchase3 = {false,SPR_WILL_W3,10,(statefunc)T_Will,NULL,&s_willchase3s}; | ||
1407 | statetype s_willchase3s = {false,SPR_WILL_W3,3,NULL,NULL,&s_willchase4}; | ||
1408 | statetype s_willchase4 = {false,SPR_WILL_W4,8,(statefunc)T_Will,NULL,&s_willchase1}; | ||
1409 | |||
1410 | statetype s_willdeathcam = {false,SPR_WILL_W1,1,NULL,NULL,&s_willdie1}; | ||
1411 | |||
1412 | statetype s_willdie1 = {false,SPR_WILL_W1,1,NULL,(statefunc)A_DeathScream,&s_willdie2}; | ||
1413 | statetype s_willdie2 = {false,SPR_WILL_W1,10,NULL,NULL,&s_willdie3}; | ||
1414 | statetype s_willdie3 = {false,SPR_WILL_DIE1,10,NULL,NULL,&s_willdie4}; | ||
1415 | statetype s_willdie4 = {false,SPR_WILL_DIE2,10,NULL,NULL,&s_willdie5}; | ||
1416 | statetype s_willdie5 = {false,SPR_WILL_DIE3,10,NULL,NULL,&s_willdie6}; | ||
1417 | statetype s_willdie6 = {false,SPR_WILL_DEAD,20,NULL,NULL,&s_willdie6}; | ||
1418 | |||
1419 | statetype s_willshoot1 = {false,SPR_WILL_SHOOT1,30,NULL,NULL,&s_willshoot2}; | ||
1420 | statetype s_willshoot2 = {false,SPR_WILL_SHOOT2,10,NULL,(statefunc)T_Launch,&s_willshoot3}; | ||
1421 | statetype s_willshoot3 = {false,SPR_WILL_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_willshoot4}; | ||
1422 | statetype s_willshoot4 = {false,SPR_WILL_SHOOT4,10,NULL,(statefunc)T_Shoot,&s_willshoot5}; | ||
1423 | statetype s_willshoot5 = {false,SPR_WILL_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_willshoot6}; | ||
1424 | statetype s_willshoot6 = {false,SPR_WILL_SHOOT4,10,NULL,(statefunc)T_Shoot,&s_willchase1}; | ||
1425 | |||
1426 | |||
1427 | /* | ||
1428 | =============== | ||
1429 | = | ||
1430 | = SpawnWill | ||
1431 | = | ||
1432 | =============== | ||
1433 | */ | ||
1434 | |||
1435 | void SpawnWill (int tilex, int tiley) | ||
1436 | { | ||
1437 | if (SoundBlasterPresent && DigiMode != sds_Off) | ||
1438 | s_willdie2.tictime = 70; | ||
1439 | |||
1440 | SpawnNewObj (tilex,tiley,&s_willstand); | ||
1441 | newobj->obclass = willobj; | ||
1442 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_will]; | ||
1443 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
1444 | if (!loadedgame) | ||
1445 | gamestate.killtotal++; | ||
1446 | } | ||
1447 | |||
1448 | |||
1449 | /* | ||
1450 | ================ | ||
1451 | = | ||
1452 | = T_Will | ||
1453 | = | ||
1454 | ================ | ||
1455 | */ | ||
1456 | |||
1457 | void T_Will (objtype *ob) | ||
1458 | { | ||
1459 | int32_t move; | ||
1460 | int dx,dy,dist; | ||
1461 | boolean dodge; | ||
1462 | |||
1463 | dodge = false; | ||
1464 | dx = abs(ob->tilex - player->tilex); | ||
1465 | dy = abs(ob->tiley - player->tiley); | ||
1466 | dist = dx>dy ? dx : dy; | ||
1467 | |||
1468 | if (CheckLine(ob)) // got a shot at player? | ||
1469 | { | ||
1470 | ob->hidden = false; | ||
1471 | if ( (unsigned) US_RndT() < (tics<<3) && objfreelist) | ||
1472 | { | ||
1473 | // | ||
1474 | // go into attack frame | ||
1475 | // | ||
1476 | if (ob->obclass == willobj) | ||
1477 | NewState (ob,&s_willshoot1); | ||
1478 | else if (ob->obclass == angelobj) | ||
1479 | NewState (ob,&s_angelshoot1); | ||
1480 | else | ||
1481 | NewState (ob,&s_deathshoot1); | ||
1482 | return; | ||
1483 | } | ||
1484 | dodge = true; | ||
1485 | } | ||
1486 | else | ||
1487 | ob->hidden = true; | ||
1488 | |||
1489 | if (ob->dir == nodir) | ||
1490 | { | ||
1491 | if (dodge) | ||
1492 | SelectDodgeDir (ob); | ||
1493 | else | ||
1494 | SelectChaseDir (ob); | ||
1495 | if (ob->dir == nodir) | ||
1496 | return; // object is blocked in | ||
1497 | } | ||
1498 | |||
1499 | move = ob->speed*tics; | ||
1500 | |||
1501 | while (move) | ||
1502 | { | ||
1503 | if (ob->distance < 0) | ||
1504 | { | ||
1505 | // | ||
1506 | // waiting for a door to open | ||
1507 | // | ||
1508 | OpenDoor (-ob->distance-1); | ||
1509 | if (doorobjlist[-ob->distance-1].action != dr_open) | ||
1510 | return; | ||
1511 | ob->distance = TILEGLOBAL; // go ahead, the door is now open | ||
1512 | TryWalk(ob); | ||
1513 | } | ||
1514 | |||
1515 | if (move < ob->distance) | ||
1516 | { | ||
1517 | MoveObj (ob,move); | ||
1518 | break; | ||
1519 | } | ||
1520 | |||
1521 | // | ||
1522 | // reached goal tile, so select another one | ||
1523 | // | ||
1524 | |||
1525 | // | ||
1526 | // fix position to account for round off during moving | ||
1527 | // | ||
1528 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
1529 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
1530 | |||
1531 | move -= ob->distance; | ||
1532 | |||
1533 | if (dist <4) | ||
1534 | SelectRunDir (ob); | ||
1535 | else if (dodge) | ||
1536 | SelectDodgeDir (ob); | ||
1537 | else | ||
1538 | SelectChaseDir (ob); | ||
1539 | |||
1540 | if (ob->dir == nodir) | ||
1541 | return; // object is blocked in | ||
1542 | } | ||
1543 | |||
1544 | } | ||
1545 | |||
1546 | |||
1547 | // | ||
1548 | // death | ||
1549 | // | ||
1550 | extern statetype s_deathstand; | ||
1551 | |||
1552 | extern statetype s_deathchase1; | ||
1553 | extern statetype s_deathchase1s; | ||
1554 | extern statetype s_deathchase2; | ||
1555 | extern statetype s_deathchase3; | ||
1556 | extern statetype s_deathchase3s; | ||
1557 | extern statetype s_deathchase4; | ||
1558 | |||
1559 | extern statetype s_deathdie1; | ||
1560 | extern statetype s_deathdie2; | ||
1561 | extern statetype s_deathdie3; | ||
1562 | extern statetype s_deathdie4; | ||
1563 | extern statetype s_deathdie5; | ||
1564 | extern statetype s_deathdie6; | ||
1565 | extern statetype s_deathdie7; | ||
1566 | extern statetype s_deathdie8; | ||
1567 | extern statetype s_deathdie9; | ||
1568 | |||
1569 | extern statetype s_deathshoot1; | ||
1570 | extern statetype s_deathshoot2; | ||
1571 | extern statetype s_deathshoot3; | ||
1572 | extern statetype s_deathshoot4; | ||
1573 | extern statetype s_deathshoot5; | ||
1574 | |||
1575 | |||
1576 | statetype s_deathstand = {false,SPR_DEATH_W1,0,(statefunc)T_Stand,NULL,&s_deathstand}; | ||
1577 | |||
1578 | statetype s_deathchase1 = {false,SPR_DEATH_W1,10,(statefunc)T_Will,NULL,&s_deathchase1s}; | ||
1579 | statetype s_deathchase1s = {false,SPR_DEATH_W1,3,NULL,NULL,&s_deathchase2}; | ||
1580 | statetype s_deathchase2 = {false,SPR_DEATH_W2,8,(statefunc)T_Will,NULL,&s_deathchase3}; | ||
1581 | statetype s_deathchase3 = {false,SPR_DEATH_W3,10,(statefunc)T_Will,NULL,&s_deathchase3s}; | ||
1582 | statetype s_deathchase3s = {false,SPR_DEATH_W3,3,NULL,NULL,&s_deathchase4}; | ||
1583 | statetype s_deathchase4 = {false,SPR_DEATH_W4,8,(statefunc)T_Will,NULL,&s_deathchase1}; | ||
1584 | |||
1585 | statetype s_deathdeathcam = {false,SPR_DEATH_W1,1,NULL,NULL,&s_deathdie1}; | ||
1586 | |||
1587 | statetype s_deathdie1 = {false,SPR_DEATH_W1,1,NULL,(statefunc)A_DeathScream,&s_deathdie2}; | ||
1588 | statetype s_deathdie2 = {false,SPR_DEATH_W1,10,NULL,NULL,&s_deathdie3}; | ||
1589 | statetype s_deathdie3 = {false,SPR_DEATH_DIE1,10,NULL,NULL,&s_deathdie4}; | ||
1590 | statetype s_deathdie4 = {false,SPR_DEATH_DIE2,10,NULL,NULL,&s_deathdie5}; | ||
1591 | statetype s_deathdie5 = {false,SPR_DEATH_DIE3,10,NULL,NULL,&s_deathdie6}; | ||
1592 | statetype s_deathdie6 = {false,SPR_DEATH_DIE4,10,NULL,NULL,&s_deathdie7}; | ||
1593 | statetype s_deathdie7 = {false,SPR_DEATH_DIE5,10,NULL,NULL,&s_deathdie8}; | ||
1594 | statetype s_deathdie8 = {false,SPR_DEATH_DIE6,10,NULL,NULL,&s_deathdie9}; | ||
1595 | statetype s_deathdie9 = {false,SPR_DEATH_DEAD,0,NULL,NULL,&s_deathdie9}; | ||
1596 | |||
1597 | statetype s_deathshoot1 = {false,SPR_DEATH_SHOOT1,30,NULL,NULL,&s_deathshoot2}; | ||
1598 | statetype s_deathshoot2 = {false,SPR_DEATH_SHOOT2,10,NULL,(statefunc)T_Launch,&s_deathshoot3}; | ||
1599 | statetype s_deathshoot3 = {false,SPR_DEATH_SHOOT4,10,NULL,(statefunc)T_Shoot,&s_deathshoot4}; | ||
1600 | statetype s_deathshoot4 = {false,SPR_DEATH_SHOOT3,10,NULL,(statefunc)T_Launch,&s_deathshoot5}; | ||
1601 | statetype s_deathshoot5 = {false,SPR_DEATH_SHOOT4,10,NULL,(statefunc)T_Shoot,&s_deathchase1}; | ||
1602 | |||
1603 | |||
1604 | /* | ||
1605 | =============== | ||
1606 | = | ||
1607 | = SpawnDeath | ||
1608 | = | ||
1609 | =============== | ||
1610 | */ | ||
1611 | |||
1612 | void SpawnDeath (int tilex, int tiley) | ||
1613 | { | ||
1614 | if (SoundBlasterPresent && DigiMode != sds_Off) | ||
1615 | s_deathdie2.tictime = 105; | ||
1616 | |||
1617 | SpawnNewObj (tilex,tiley,&s_deathstand); | ||
1618 | newobj->obclass = deathobj; | ||
1619 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_death]; | ||
1620 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
1621 | if (!loadedgame) | ||
1622 | gamestate.killtotal++; | ||
1623 | } | ||
1624 | |||
1625 | /* | ||
1626 | =============== | ||
1627 | = | ||
1628 | = T_Launch | ||
1629 | = | ||
1630 | =============== | ||
1631 | */ | ||
1632 | |||
1633 | void T_Launch (objtype *ob) | ||
1634 | { | ||
1635 | int32_t deltax,deltay; | ||
1636 | float angle; | ||
1637 | int iangle; | ||
1638 | |||
1639 | deltax = player->x - ob->x; | ||
1640 | deltay = ob->y - player->y; | ||
1641 | angle = (float) atan2 ((float) deltay, (float) deltax); | ||
1642 | if (angle<0) | ||
1643 | angle = (float) (M_PI*2+angle); | ||
1644 | iangle = (int) (angle/(M_PI*2)*ANGLES); | ||
1645 | if (ob->obclass == deathobj) | ||
1646 | { | ||
1647 | T_Shoot (ob); | ||
1648 | if (ob->state == &s_deathshoot2) | ||
1649 | { | ||
1650 | iangle-=4; | ||
1651 | if (iangle<0) | ||
1652 | iangle+=ANGLES; | ||
1653 | } | ||
1654 | else | ||
1655 | { | ||
1656 | iangle+=4; | ||
1657 | if (iangle>=ANGLES) | ||
1658 | iangle-=ANGLES; | ||
1659 | } | ||
1660 | } | ||
1661 | |||
1662 | GetNewActor (); | ||
1663 | newobj->state = &s_rocket; | ||
1664 | newobj->ticcount = 1; | ||
1665 | |||
1666 | newobj->tilex = ob->tilex; | ||
1667 | newobj->tiley = ob->tiley; | ||
1668 | newobj->x = ob->x; | ||
1669 | newobj->y = ob->y; | ||
1670 | newobj->obclass = rocketobj; | ||
1671 | switch(ob->obclass) | ||
1672 | { | ||
1673 | case deathobj: | ||
1674 | newobj->state = &s_hrocket; | ||
1675 | newobj->obclass = hrocketobj; | ||
1676 | PlaySoundLocActor (KNIGHTMISSILESND,newobj); | ||
1677 | break; | ||
1678 | case angelobj: | ||
1679 | newobj->state = &s_spark1; | ||
1680 | newobj->obclass = sparkobj; | ||
1681 | PlaySoundLocActor (ANGELFIRESND,newobj); | ||
1682 | break; | ||
1683 | default: | ||
1684 | PlaySoundLocActor (MISSILEFIRESND,newobj); | ||
1685 | } | ||
1686 | |||
1687 | newobj->dir = nodir; | ||
1688 | newobj->angle = iangle; | ||
1689 | newobj->speed = 0x2000l; | ||
1690 | newobj->flags = FL_NEVERMARK; | ||
1691 | newobj->active = ac_yes; | ||
1692 | } | ||
1693 | |||
1694 | |||
1695 | |||
1696 | // | ||
1697 | // angel | ||
1698 | // | ||
1699 | void A_Relaunch (objtype *ob); | ||
1700 | void A_Victory (objtype *ob); | ||
1701 | void A_StartAttack (objtype *ob); | ||
1702 | void A_Breathing (objtype *ob); | ||
1703 | |||
1704 | extern statetype s_angelstand; | ||
1705 | |||
1706 | extern statetype s_angelchase1; | ||
1707 | extern statetype s_angelchase1s; | ||
1708 | extern statetype s_angelchase2; | ||
1709 | extern statetype s_angelchase3; | ||
1710 | extern statetype s_angelchase3s; | ||
1711 | extern statetype s_angelchase4; | ||
1712 | |||
1713 | extern statetype s_angeldie1; | ||
1714 | extern statetype s_angeldie11; | ||
1715 | extern statetype s_angeldie2; | ||
1716 | extern statetype s_angeldie3; | ||
1717 | extern statetype s_angeldie4; | ||
1718 | extern statetype s_angeldie5; | ||
1719 | extern statetype s_angeldie6; | ||
1720 | extern statetype s_angeldie7; | ||
1721 | extern statetype s_angeldie8; | ||
1722 | extern statetype s_angeldie9; | ||
1723 | |||
1724 | extern statetype s_angelshoot1; | ||
1725 | extern statetype s_angelshoot2; | ||
1726 | extern statetype s_angelshoot3; | ||
1727 | extern statetype s_angelshoot4; | ||
1728 | extern statetype s_angelshoot5; | ||
1729 | extern statetype s_angelshoot6; | ||
1730 | |||
1731 | extern statetype s_angeltired; | ||
1732 | extern statetype s_angeltired2; | ||
1733 | extern statetype s_angeltired3; | ||
1734 | extern statetype s_angeltired4; | ||
1735 | extern statetype s_angeltired5; | ||
1736 | extern statetype s_angeltired6; | ||
1737 | extern statetype s_angeltired7; | ||
1738 | |||
1739 | extern statetype s_spark1; | ||
1740 | extern statetype s_spark2; | ||
1741 | extern statetype s_spark3; | ||
1742 | extern statetype s_spark4; | ||
1743 | |||
1744 | |||
1745 | statetype s_angelstand = {false,SPR_ANGEL_W1,0,(statefunc)T_Stand,NULL,&s_angelstand}; | ||
1746 | |||
1747 | statetype s_angelchase1 = {false,SPR_ANGEL_W1,10,(statefunc)T_Will,NULL,&s_angelchase1s}; | ||
1748 | statetype s_angelchase1s = {false,SPR_ANGEL_W1,3,NULL,NULL,&s_angelchase2}; | ||
1749 | statetype s_angelchase2 = {false,SPR_ANGEL_W2,8,(statefunc)T_Will,NULL,&s_angelchase3}; | ||
1750 | statetype s_angelchase3 = {false,SPR_ANGEL_W3,10,(statefunc)T_Will,NULL,&s_angelchase3s}; | ||
1751 | statetype s_angelchase3s = {false,SPR_ANGEL_W3,3,NULL,NULL,&s_angelchase4}; | ||
1752 | statetype s_angelchase4 = {false,SPR_ANGEL_W4,8,(statefunc)T_Will,NULL,&s_angelchase1}; | ||
1753 | |||
1754 | statetype s_angeldie1 = {false,SPR_ANGEL_W1,1,NULL,(statefunc)A_DeathScream,&s_angeldie11}; | ||
1755 | statetype s_angeldie11 = {false,SPR_ANGEL_W1,1,NULL,NULL,&s_angeldie2}; | ||
1756 | statetype s_angeldie2 = {false,SPR_ANGEL_DIE1,10,NULL,(statefunc)A_Slurpie,&s_angeldie3}; | ||
1757 | statetype s_angeldie3 = {false,SPR_ANGEL_DIE2,10,NULL,NULL,&s_angeldie4}; | ||
1758 | statetype s_angeldie4 = {false,SPR_ANGEL_DIE3,10,NULL,NULL,&s_angeldie5}; | ||
1759 | statetype s_angeldie5 = {false,SPR_ANGEL_DIE4,10,NULL,NULL,&s_angeldie6}; | ||
1760 | statetype s_angeldie6 = {false,SPR_ANGEL_DIE5,10,NULL,NULL,&s_angeldie7}; | ||
1761 | statetype s_angeldie7 = {false,SPR_ANGEL_DIE6,10,NULL,NULL,&s_angeldie8}; | ||
1762 | statetype s_angeldie8 = {false,SPR_ANGEL_DIE7,10,NULL,NULL,&s_angeldie9}; | ||
1763 | statetype s_angeldie9 = {false,SPR_ANGEL_DEAD,130,NULL,(statefunc)A_Victory,&s_angeldie9}; | ||
1764 | |||
1765 | statetype s_angelshoot1 = {false,SPR_ANGEL_SHOOT1,10,NULL,(statefunc)A_StartAttack,&s_angelshoot2}; | ||
1766 | statetype s_angelshoot2 = {false,SPR_ANGEL_SHOOT2,20,NULL,(statefunc)T_Launch,&s_angelshoot3}; | ||
1767 | statetype s_angelshoot3 = {false,SPR_ANGEL_SHOOT1,10,NULL,(statefunc)A_Relaunch,&s_angelshoot2}; | ||
1768 | |||
1769 | statetype s_angeltired = {false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,&s_angeltired2}; | ||
1770 | statetype s_angeltired2 = {false,SPR_ANGEL_TIRED2,40,NULL,NULL,&s_angeltired3}; | ||
1771 | statetype s_angeltired3 = {false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,&s_angeltired4}; | ||
1772 | statetype s_angeltired4 = {false,SPR_ANGEL_TIRED2,40,NULL,NULL,&s_angeltired5}; | ||
1773 | statetype s_angeltired5 = {false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,&s_angeltired6}; | ||
1774 | statetype s_angeltired6 = {false,SPR_ANGEL_TIRED2,40,NULL,NULL,&s_angeltired7}; | ||
1775 | statetype s_angeltired7 = {false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,&s_angelchase1}; | ||
1776 | |||
1777 | statetype s_spark1 = {false,SPR_SPARK1,6,(statefunc)T_Projectile,NULL,&s_spark2}; | ||
1778 | statetype s_spark2 = {false,SPR_SPARK2,6,(statefunc)T_Projectile,NULL,&s_spark3}; | ||
1779 | statetype s_spark3 = {false,SPR_SPARK3,6,(statefunc)T_Projectile,NULL,&s_spark4}; | ||
1780 | statetype s_spark4 = {false,SPR_SPARK4,6,(statefunc)T_Projectile,NULL,&s_spark1}; | ||
1781 | |||
1782 | |||
1783 | void A_Slurpie (objtype *) | ||
1784 | { | ||
1785 | SD_PlaySound(SLURPIESND); | ||
1786 | } | ||
1787 | |||
1788 | void A_Breathing (objtype *) | ||
1789 | { | ||
1790 | SD_PlaySound(ANGELTIREDSND); | ||
1791 | } | ||
1792 | |||
1793 | /* | ||
1794 | =============== | ||
1795 | = | ||
1796 | = SpawnAngel | ||
1797 | = | ||
1798 | =============== | ||
1799 | */ | ||
1800 | |||
1801 | void SpawnAngel (int tilex, int tiley) | ||
1802 | { | ||
1803 | if (SoundBlasterPresent && DigiMode != sds_Off) | ||
1804 | s_angeldie11.tictime = 105; | ||
1805 | |||
1806 | SpawnNewObj (tilex,tiley,&s_angelstand); | ||
1807 | newobj->obclass = angelobj; | ||
1808 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_angel]; | ||
1809 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
1810 | if (!loadedgame) | ||
1811 | gamestate.killtotal++; | ||
1812 | } | ||
1813 | |||
1814 | |||
1815 | /* | ||
1816 | ================= | ||
1817 | = | ||
1818 | = A_Victory | ||
1819 | = | ||
1820 | ================= | ||
1821 | */ | ||
1822 | |||
1823 | void A_Victory (objtype *) | ||
1824 | { | ||
1825 | playstate = ex_victorious; | ||
1826 | } | ||
1827 | |||
1828 | |||
1829 | /* | ||
1830 | ================= | ||
1831 | = | ||
1832 | = A_StartAttack | ||
1833 | = | ||
1834 | ================= | ||
1835 | */ | ||
1836 | |||
1837 | void A_StartAttack (objtype *ob) | ||
1838 | { | ||
1839 | ob->temp1 = 0; | ||
1840 | } | ||
1841 | |||
1842 | |||
1843 | /* | ||
1844 | ================= | ||
1845 | = | ||
1846 | = A_Relaunch | ||
1847 | = | ||
1848 | ================= | ||
1849 | */ | ||
1850 | |||
1851 | void A_Relaunch (objtype *ob) | ||
1852 | { | ||
1853 | if (++ob->temp1 == 3) | ||
1854 | { | ||
1855 | NewState (ob,&s_angeltired); | ||
1856 | return; | ||
1857 | } | ||
1858 | |||
1859 | if (US_RndT()&1) | ||
1860 | { | ||
1861 | NewState (ob,&s_angelchase1); | ||
1862 | return; | ||
1863 | } | ||
1864 | } | ||
1865 | |||
1866 | |||
1867 | |||
1868 | |||
1869 | // | ||
1870 | // spectre | ||
1871 | // | ||
1872 | void T_SpectreWait (objtype *ob); | ||
1873 | void A_Dormant (objtype *ob); | ||
1874 | |||
1875 | extern statetype s_spectrewait1; | ||
1876 | extern statetype s_spectrewait2; | ||
1877 | extern statetype s_spectrewait3; | ||
1878 | extern statetype s_spectrewait4; | ||
1879 | |||
1880 | extern statetype s_spectrechase1; | ||
1881 | extern statetype s_spectrechase2; | ||
1882 | extern statetype s_spectrechase3; | ||
1883 | extern statetype s_spectrechase4; | ||
1884 | |||
1885 | extern statetype s_spectredie1; | ||
1886 | extern statetype s_spectredie2; | ||
1887 | extern statetype s_spectredie3; | ||
1888 | extern statetype s_spectredie4; | ||
1889 | |||
1890 | extern statetype s_spectrewake; | ||
1891 | |||
1892 | statetype s_spectrewait1 = {false,SPR_SPECTRE_W1,10,(statefunc)T_Stand,NULL,&s_spectrewait2}; | ||
1893 | statetype s_spectrewait2 = {false,SPR_SPECTRE_W2,10,(statefunc)T_Stand,NULL,&s_spectrewait3}; | ||
1894 | statetype s_spectrewait3 = {false,SPR_SPECTRE_W3,10,(statefunc)T_Stand,NULL,&s_spectrewait4}; | ||
1895 | statetype s_spectrewait4 = {false,SPR_SPECTRE_W4,10,(statefunc)T_Stand,NULL,&s_spectrewait1}; | ||
1896 | |||
1897 | statetype s_spectrechase1 = {false,SPR_SPECTRE_W1,10,(statefunc)T_Ghosts,NULL,&s_spectrechase2}; | ||
1898 | statetype s_spectrechase2 = {false,SPR_SPECTRE_W2,10,(statefunc)T_Ghosts,NULL,&s_spectrechase3}; | ||
1899 | statetype s_spectrechase3 = {false,SPR_SPECTRE_W3,10,(statefunc)T_Ghosts,NULL,&s_spectrechase4}; | ||
1900 | statetype s_spectrechase4 = {false,SPR_SPECTRE_W4,10,(statefunc)T_Ghosts,NULL,&s_spectrechase1}; | ||
1901 | |||
1902 | statetype s_spectredie1 = {false,SPR_SPECTRE_F1,10,NULL,NULL,&s_spectredie2}; | ||
1903 | statetype s_spectredie2 = {false,SPR_SPECTRE_F2,10,NULL,NULL,&s_spectredie3}; | ||
1904 | statetype s_spectredie3 = {false,SPR_SPECTRE_F3,10,NULL,NULL,&s_spectredie4}; | ||
1905 | statetype s_spectredie4 = {false,SPR_SPECTRE_F4,300,NULL,NULL,&s_spectrewake}; | ||
1906 | statetype s_spectrewake = {false,SPR_SPECTRE_F4,10,NULL,(statefunc)A_Dormant,&s_spectrewake}; | ||
1907 | |||
1908 | /* | ||
1909 | =============== | ||
1910 | = | ||
1911 | = SpawnSpectre | ||
1912 | = | ||
1913 | =============== | ||
1914 | */ | ||
1915 | |||
1916 | void SpawnSpectre (int tilex, int tiley) | ||
1917 | { | ||
1918 | SpawnNewObj (tilex,tiley,&s_spectrewait1); | ||
1919 | newobj->obclass = spectreobj; | ||
1920 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_spectre]; | ||
1921 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH|FL_BONUS; // |FL_NEVERMARK|FL_NONMARK; | ||
1922 | if (!loadedgame) | ||
1923 | gamestate.killtotal++; | ||
1924 | } | ||
1925 | |||
1926 | |||
1927 | /* | ||
1928 | =============== | ||
1929 | = | ||
1930 | = A_Dormant | ||
1931 | = | ||
1932 | =============== | ||
1933 | */ | ||
1934 | |||
1935 | void A_Dormant (objtype *ob) | ||
1936 | { | ||
1937 | int32_t deltax,deltay; | ||
1938 | int xl,xh,yl,yh; | ||
1939 | int x,y; | ||
1940 | uintptr_t tile; | ||
1941 | |||
1942 | deltax = ob->x - player->x; | ||
1943 | if (deltax < -MINACTORDIST || deltax > MINACTORDIST) | ||
1944 | goto moveok; | ||
1945 | deltay = ob->y - player->y; | ||
1946 | if (deltay < -MINACTORDIST || deltay > MINACTORDIST) | ||
1947 | goto moveok; | ||
1948 | |||
1949 | return; | ||
1950 | moveok: | ||
1951 | |||
1952 | xl = (ob->x-MINDIST) >> TILESHIFT; | ||
1953 | xh = (ob->x+MINDIST) >> TILESHIFT; | ||
1954 | yl = (ob->y-MINDIST) >> TILESHIFT; | ||
1955 | yh = (ob->y+MINDIST) >> TILESHIFT; | ||
1956 | |||
1957 | for (y=yl ; y<=yh ; y++) | ||
1958 | for (x=xl ; x<=xh ; x++) | ||
1959 | { | ||
1960 | tile = (uintptr_t)actorat[x][y]; | ||
1961 | if (!tile) | ||
1962 | continue; | ||
1963 | if (!ISPOINTER(tile)) | ||
1964 | return; | ||
1965 | if (((objtype *)tile)->flags&FL_SHOOTABLE) | ||
1966 | return; | ||
1967 | } | ||
1968 | |||
1969 | ob->flags |= FL_AMBUSH | FL_SHOOTABLE; | ||
1970 | ob->flags &= ~FL_ATTACKMODE; | ||
1971 | ob->flags &= ~FL_NONMARK; // stuck bugfix 1 | ||
1972 | ob->dir = nodir; | ||
1973 | NewState (ob,&s_spectrewait1); | ||
1974 | } | ||
1975 | |||
1976 | |||
1977 | #endif | ||
1978 | |||
1979 | /* | ||
1980 | ============================================================================= | ||
1981 | |||
1982 | SCHABBS / GIFT / FAT | ||
1983 | |||
1984 | ============================================================================= | ||
1985 | */ | ||
1986 | |||
1987 | #ifndef SPEAR | ||
1988 | /* | ||
1989 | =============== | ||
1990 | = | ||
1991 | = SpawnGhosts | ||
1992 | = | ||
1993 | =============== | ||
1994 | */ | ||
1995 | |||
1996 | void SpawnGhosts (int which, int tilex, int tiley) | ||
1997 | { | ||
1998 | switch(which) | ||
1999 | { | ||
2000 | case en_blinky: | ||
2001 | SpawnNewObj (tilex,tiley,&s_blinkychase1); | ||
2002 | break; | ||
2003 | case en_clyde: | ||
2004 | SpawnNewObj (tilex,tiley,&s_clydechase1); | ||
2005 | break; | ||
2006 | case en_pinky: | ||
2007 | SpawnNewObj (tilex,tiley,&s_pinkychase1); | ||
2008 | break; | ||
2009 | case en_inky: | ||
2010 | SpawnNewObj (tilex,tiley,&s_inkychase1); | ||
2011 | break; | ||
2012 | } | ||
2013 | |||
2014 | newobj->obclass = ghostobj; | ||
2015 | newobj->speed = SPDDOG; | ||
2016 | |||
2017 | newobj->dir = east; | ||
2018 | newobj->flags |= FL_AMBUSH; | ||
2019 | if (!loadedgame) | ||
2020 | { | ||
2021 | gamestate.killtotal++; | ||
2022 | gamestate.killcount++; | ||
2023 | } | ||
2024 | } | ||
2025 | |||
2026 | |||
2027 | |||
2028 | void T_Gift (objtype *ob); | ||
2029 | void T_GiftThrow (objtype *ob); | ||
2030 | |||
2031 | void T_Fat (objtype *ob); | ||
2032 | void T_FatThrow (objtype *ob); | ||
2033 | |||
2034 | // | ||
2035 | // schabb | ||
2036 | // | ||
2037 | extern statetype s_schabbstand; | ||
2038 | |||
2039 | extern statetype s_schabbchase1; | ||
2040 | extern statetype s_schabbchase1s; | ||
2041 | extern statetype s_schabbchase2; | ||
2042 | extern statetype s_schabbchase3; | ||
2043 | extern statetype s_schabbchase3s; | ||
2044 | extern statetype s_schabbchase4; | ||
2045 | |||
2046 | extern statetype s_schabbdie1; | ||
2047 | extern statetype s_schabbdie2; | ||
2048 | extern statetype s_schabbdie3; | ||
2049 | extern statetype s_schabbdie4; | ||
2050 | extern statetype s_schabbdie5; | ||
2051 | extern statetype s_schabbdie6; | ||
2052 | |||
2053 | extern statetype s_schabbshoot1; | ||
2054 | extern statetype s_schabbshoot2; | ||
2055 | |||
2056 | extern statetype s_needle1; | ||
2057 | extern statetype s_needle2; | ||
2058 | extern statetype s_needle3; | ||
2059 | extern statetype s_needle4; | ||
2060 | |||
2061 | extern statetype s_schabbdeathcam; | ||
2062 | |||
2063 | |||
2064 | statetype s_schabbstand = {false,SPR_SCHABB_W1,0,(statefunc)T_Stand,NULL,&s_schabbstand}; | ||
2065 | |||
2066 | statetype s_schabbchase1 = {false,SPR_SCHABB_W1,10,(statefunc)T_Schabb,NULL,&s_schabbchase1s}; | ||
2067 | statetype s_schabbchase1s = {false,SPR_SCHABB_W1,3,NULL,NULL,&s_schabbchase2}; | ||
2068 | statetype s_schabbchase2 = {false,SPR_SCHABB_W2,8,(statefunc)T_Schabb,NULL,&s_schabbchase3}; | ||
2069 | statetype s_schabbchase3 = {false,SPR_SCHABB_W3,10,(statefunc)T_Schabb,NULL,&s_schabbchase3s}; | ||
2070 | statetype s_schabbchase3s = {false,SPR_SCHABB_W3,3,NULL,NULL,&s_schabbchase4}; | ||
2071 | statetype s_schabbchase4 = {false,SPR_SCHABB_W4,8,(statefunc)T_Schabb,NULL,&s_schabbchase1}; | ||
2072 | |||
2073 | statetype s_schabbdeathcam = {false,SPR_SCHABB_W1,1,NULL,NULL,&s_schabbdie1}; | ||
2074 | |||
2075 | statetype s_schabbdie1 = {false,SPR_SCHABB_W1,10,NULL,(statefunc)A_DeathScream,&s_schabbdie2}; | ||
2076 | statetype s_schabbdie2 = {false,SPR_SCHABB_W1,10,NULL,NULL,&s_schabbdie3}; | ||
2077 | statetype s_schabbdie3 = {false,SPR_SCHABB_DIE1,10,NULL,NULL,&s_schabbdie4}; | ||
2078 | statetype s_schabbdie4 = {false,SPR_SCHABB_DIE2,10,NULL,NULL,&s_schabbdie5}; | ||
2079 | statetype s_schabbdie5 = {false,SPR_SCHABB_DIE3,10,NULL,NULL,&s_schabbdie6}; | ||
2080 | statetype s_schabbdie6 = {false,SPR_SCHABB_DEAD,20,NULL,(statefunc)A_StartDeathCam,&s_schabbdie6}; | ||
2081 | |||
2082 | statetype s_schabbshoot1 = {false,SPR_SCHABB_SHOOT1,30,NULL,NULL,&s_schabbshoot2}; | ||
2083 | statetype s_schabbshoot2 = {false,SPR_SCHABB_SHOOT2,10,NULL,(statefunc)T_SchabbThrow,&s_schabbchase1}; | ||
2084 | |||
2085 | statetype s_needle1 = {false,SPR_HYPO1,6,(statefunc)T_Projectile,NULL,&s_needle2}; | ||
2086 | statetype s_needle2 = {false,SPR_HYPO2,6,(statefunc)T_Projectile,NULL,&s_needle3}; | ||
2087 | statetype s_needle3 = {false,SPR_HYPO3,6,(statefunc)T_Projectile,NULL,&s_needle4}; | ||
2088 | statetype s_needle4 = {false,SPR_HYPO4,6,(statefunc)T_Projectile,NULL,&s_needle1}; | ||
2089 | |||
2090 | |||
2091 | // | ||
2092 | // gift | ||
2093 | // | ||
2094 | extern statetype s_giftstand; | ||
2095 | |||
2096 | extern statetype s_giftchase1; | ||
2097 | extern statetype s_giftchase1s; | ||
2098 | extern statetype s_giftchase2; | ||
2099 | extern statetype s_giftchase3; | ||
2100 | extern statetype s_giftchase3s; | ||
2101 | extern statetype s_giftchase4; | ||
2102 | |||
2103 | extern statetype s_giftdie1; | ||
2104 | extern statetype s_giftdie2; | ||
2105 | extern statetype s_giftdie3; | ||
2106 | extern statetype s_giftdie4; | ||
2107 | extern statetype s_giftdie5; | ||
2108 | extern statetype s_giftdie6; | ||
2109 | |||
2110 | extern statetype s_giftshoot1; | ||
2111 | extern statetype s_giftshoot2; | ||
2112 | |||
2113 | extern statetype s_needle1; | ||
2114 | extern statetype s_needle2; | ||
2115 | extern statetype s_needle3; | ||
2116 | extern statetype s_needle4; | ||
2117 | |||
2118 | extern statetype s_giftdeathcam; | ||
2119 | |||
2120 | extern statetype s_boom1; | ||
2121 | extern statetype s_boom2; | ||
2122 | extern statetype s_boom3; | ||
2123 | |||
2124 | |||
2125 | statetype s_giftstand = {false,SPR_GIFT_W1,0,(statefunc)T_Stand,NULL,&s_giftstand}; | ||
2126 | |||
2127 | statetype s_giftchase1 = {false,SPR_GIFT_W1,10,(statefunc)T_Gift,NULL,&s_giftchase1s}; | ||
2128 | statetype s_giftchase1s = {false,SPR_GIFT_W1,3,NULL,NULL,&s_giftchase2}; | ||
2129 | statetype s_giftchase2 = {false,SPR_GIFT_W2,8,(statefunc)T_Gift,NULL,&s_giftchase3}; | ||
2130 | statetype s_giftchase3 = {false,SPR_GIFT_W3,10,(statefunc)T_Gift,NULL,&s_giftchase3s}; | ||
2131 | statetype s_giftchase3s = {false,SPR_GIFT_W3,3,NULL,NULL,&s_giftchase4}; | ||
2132 | statetype s_giftchase4 = {false,SPR_GIFT_W4,8,(statefunc)T_Gift,NULL,&s_giftchase1}; | ||
2133 | |||
2134 | statetype s_giftdeathcam = {false,SPR_GIFT_W1,1,NULL,NULL,&s_giftdie1}; | ||
2135 | |||
2136 | statetype s_giftdie1 = {false,SPR_GIFT_W1,1,NULL,(statefunc)A_DeathScream,&s_giftdie2}; | ||
2137 | statetype s_giftdie2 = {false,SPR_GIFT_W1,10,NULL,NULL,&s_giftdie3}; | ||
2138 | statetype s_giftdie3 = {false,SPR_GIFT_DIE1,10,NULL,NULL,&s_giftdie4}; | ||
2139 | statetype s_giftdie4 = {false,SPR_GIFT_DIE2,10,NULL,NULL,&s_giftdie5}; | ||
2140 | statetype s_giftdie5 = {false,SPR_GIFT_DIE3,10,NULL,NULL,&s_giftdie6}; | ||
2141 | statetype s_giftdie6 = {false,SPR_GIFT_DEAD,20,NULL,(statefunc)A_StartDeathCam,&s_giftdie6}; | ||
2142 | |||
2143 | statetype s_giftshoot1 = {false,SPR_GIFT_SHOOT1,30,NULL,NULL,&s_giftshoot2}; | ||
2144 | statetype s_giftshoot2 = {false,SPR_GIFT_SHOOT2,10,NULL,(statefunc)T_GiftThrow,&s_giftchase1}; | ||
2145 | |||
2146 | |||
2147 | // | ||
2148 | // fat | ||
2149 | // | ||
2150 | extern statetype s_fatstand; | ||
2151 | |||
2152 | extern statetype s_fatchase1; | ||
2153 | extern statetype s_fatchase1s; | ||
2154 | extern statetype s_fatchase2; | ||
2155 | extern statetype s_fatchase3; | ||
2156 | extern statetype s_fatchase3s; | ||
2157 | extern statetype s_fatchase4; | ||
2158 | |||
2159 | extern statetype s_fatdie1; | ||
2160 | extern statetype s_fatdie2; | ||
2161 | extern statetype s_fatdie3; | ||
2162 | extern statetype s_fatdie4; | ||
2163 | extern statetype s_fatdie5; | ||
2164 | extern statetype s_fatdie6; | ||
2165 | |||
2166 | extern statetype s_fatshoot1; | ||
2167 | extern statetype s_fatshoot2; | ||
2168 | extern statetype s_fatshoot3; | ||
2169 | extern statetype s_fatshoot4; | ||
2170 | extern statetype s_fatshoot5; | ||
2171 | extern statetype s_fatshoot6; | ||
2172 | |||
2173 | extern statetype s_needle1; | ||
2174 | extern statetype s_needle2; | ||
2175 | extern statetype s_needle3; | ||
2176 | extern statetype s_needle4; | ||
2177 | |||
2178 | extern statetype s_fatdeathcam; | ||
2179 | |||
2180 | |||
2181 | statetype s_fatstand = {false,SPR_FAT_W1,0,(statefunc)T_Stand,NULL,&s_fatstand}; | ||
2182 | |||
2183 | statetype s_fatchase1 = {false,SPR_FAT_W1,10,(statefunc)T_Fat,NULL,&s_fatchase1s}; | ||
2184 | statetype s_fatchase1s = {false,SPR_FAT_W1,3,NULL,NULL,&s_fatchase2}; | ||
2185 | statetype s_fatchase2 = {false,SPR_FAT_W2,8,(statefunc)T_Fat,NULL,&s_fatchase3}; | ||
2186 | statetype s_fatchase3 = {false,SPR_FAT_W3,10,(statefunc)T_Fat,NULL,&s_fatchase3s}; | ||
2187 | statetype s_fatchase3s = {false,SPR_FAT_W3,3,NULL,NULL,&s_fatchase4}; | ||
2188 | statetype s_fatchase4 = {false,SPR_FAT_W4,8,(statefunc)T_Fat,NULL,&s_fatchase1}; | ||
2189 | |||
2190 | statetype s_fatdeathcam = {false,SPR_FAT_W1,1,NULL,NULL,&s_fatdie1}; | ||
2191 | |||
2192 | statetype s_fatdie1 = {false,SPR_FAT_W1,1,NULL,(statefunc)A_DeathScream,&s_fatdie2}; | ||
2193 | statetype s_fatdie2 = {false,SPR_FAT_W1,10,NULL,NULL,&s_fatdie3}; | ||
2194 | statetype s_fatdie3 = {false,SPR_FAT_DIE1,10,NULL,NULL,&s_fatdie4}; | ||
2195 | statetype s_fatdie4 = {false,SPR_FAT_DIE2,10,NULL,NULL,&s_fatdie5}; | ||
2196 | statetype s_fatdie5 = {false,SPR_FAT_DIE3,10,NULL,NULL,&s_fatdie6}; | ||
2197 | statetype s_fatdie6 = {false,SPR_FAT_DEAD,20,NULL,(statefunc)A_StartDeathCam,&s_fatdie6}; | ||
2198 | |||
2199 | statetype s_fatshoot1 = {false,SPR_FAT_SHOOT1,30,NULL,NULL,&s_fatshoot2}; | ||
2200 | statetype s_fatshoot2 = {false,SPR_FAT_SHOOT2,10,NULL,(statefunc)T_GiftThrow,&s_fatshoot3}; | ||
2201 | statetype s_fatshoot3 = {false,SPR_FAT_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_fatshoot4}; | ||
2202 | statetype s_fatshoot4 = {false,SPR_FAT_SHOOT4,10,NULL,(statefunc)T_Shoot,&s_fatshoot5}; | ||
2203 | statetype s_fatshoot5 = {false,SPR_FAT_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_fatshoot6}; | ||
2204 | statetype s_fatshoot6 = {false,SPR_FAT_SHOOT4,10,NULL,(statefunc)T_Shoot,&s_fatchase1}; | ||
2205 | |||
2206 | |||
2207 | /* | ||
2208 | =============== | ||
2209 | = | ||
2210 | = SpawnSchabbs | ||
2211 | = | ||
2212 | =============== | ||
2213 | */ | ||
2214 | |||
2215 | void SpawnSchabbs (int tilex, int tiley) | ||
2216 | { | ||
2217 | if (DigiMode != sds_Off) | ||
2218 | s_schabbdie2.tictime = 140; | ||
2219 | else | ||
2220 | s_schabbdie2.tictime = 5; | ||
2221 | |||
2222 | SpawnNewObj (tilex,tiley,&s_schabbstand); | ||
2223 | newobj->speed = SPDPATROL; | ||
2224 | |||
2225 | newobj->obclass = schabbobj; | ||
2226 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_schabbs]; | ||
2227 | newobj->dir = nodir; | ||
2228 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
2229 | if (!loadedgame) | ||
2230 | gamestate.killtotal++; | ||
2231 | } | ||
2232 | |||
2233 | |||
2234 | /* | ||
2235 | =============== | ||
2236 | = | ||
2237 | = SpawnGift | ||
2238 | = | ||
2239 | =============== | ||
2240 | */ | ||
2241 | |||
2242 | void SpawnGift (int tilex, int tiley) | ||
2243 | { | ||
2244 | if (DigiMode != sds_Off) | ||
2245 | s_giftdie2.tictime = 140; | ||
2246 | else | ||
2247 | s_giftdie2.tictime = 5; | ||
2248 | |||
2249 | SpawnNewObj (tilex,tiley,&s_giftstand); | ||
2250 | newobj->speed = SPDPATROL; | ||
2251 | |||
2252 | newobj->obclass = giftobj; | ||
2253 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_gift]; | ||
2254 | newobj->dir = nodir; | ||
2255 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
2256 | if (!loadedgame) | ||
2257 | gamestate.killtotal++; | ||
2258 | } | ||
2259 | |||
2260 | |||
2261 | /* | ||
2262 | =============== | ||
2263 | = | ||
2264 | = SpawnFat | ||
2265 | = | ||
2266 | =============== | ||
2267 | */ | ||
2268 | |||
2269 | void SpawnFat (int tilex, int tiley) | ||
2270 | { | ||
2271 | if (DigiMode != sds_Off) | ||
2272 | s_fatdie2.tictime = 140; | ||
2273 | else | ||
2274 | s_fatdie2.tictime = 5; | ||
2275 | |||
2276 | SpawnNewObj (tilex,tiley,&s_fatstand); | ||
2277 | newobj->speed = SPDPATROL; | ||
2278 | |||
2279 | newobj->obclass = fatobj; | ||
2280 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_fat]; | ||
2281 | newobj->dir = nodir; | ||
2282 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
2283 | if (!loadedgame) | ||
2284 | gamestate.killtotal++; | ||
2285 | } | ||
2286 | |||
2287 | |||
2288 | /* | ||
2289 | ================= | ||
2290 | = | ||
2291 | = T_SchabbThrow | ||
2292 | = | ||
2293 | ================= | ||
2294 | */ | ||
2295 | |||
2296 | void T_SchabbThrow (objtype *ob) | ||
2297 | { | ||
2298 | int32_t deltax,deltay; | ||
2299 | float angle; | ||
2300 | int iangle; | ||
2301 | |||
2302 | deltax = player->x - ob->x; | ||
2303 | deltay = ob->y - player->y; | ||
2304 | angle = (float) atan2((float) deltay, (float) deltax); | ||
2305 | if (angle<0) | ||
2306 | angle = (float) (M_PI*2+angle); | ||
2307 | iangle = (int) (angle/(M_PI*2)*ANGLES); | ||
2308 | |||
2309 | GetNewActor (); | ||
2310 | newobj->state = &s_needle1; | ||
2311 | newobj->ticcount = 1; | ||
2312 | |||
2313 | newobj->tilex = ob->tilex; | ||
2314 | newobj->tiley = ob->tiley; | ||
2315 | newobj->x = ob->x; | ||
2316 | newobj->y = ob->y; | ||
2317 | newobj->obclass = needleobj; | ||
2318 | newobj->dir = nodir; | ||
2319 | newobj->angle = iangle; | ||
2320 | newobj->speed = 0x2000l; | ||
2321 | |||
2322 | newobj->flags = FL_NEVERMARK; | ||
2323 | newobj->active = ac_yes; | ||
2324 | |||
2325 | PlaySoundLocActor (SCHABBSTHROWSND,newobj); | ||
2326 | } | ||
2327 | |||
2328 | /* | ||
2329 | ================= | ||
2330 | = | ||
2331 | = T_GiftThrow | ||
2332 | = | ||
2333 | ================= | ||
2334 | */ | ||
2335 | |||
2336 | void T_GiftThrow (objtype *ob) | ||
2337 | { | ||
2338 | int32_t deltax,deltay; | ||
2339 | float angle; | ||
2340 | int iangle; | ||
2341 | |||
2342 | deltax = player->x - ob->x; | ||
2343 | deltay = ob->y - player->y; | ||
2344 | angle = (float) atan2((float) deltay, (float) deltax); | ||
2345 | if (angle<0) | ||
2346 | angle = (float) (M_PI*2+angle); | ||
2347 | iangle = (int) (angle/(M_PI*2)*ANGLES); | ||
2348 | |||
2349 | GetNewActor (); | ||
2350 | newobj->state = &s_rocket; | ||
2351 | newobj->ticcount = 1; | ||
2352 | |||
2353 | newobj->tilex = ob->tilex; | ||
2354 | newobj->tiley = ob->tiley; | ||
2355 | newobj->x = ob->x; | ||
2356 | newobj->y = ob->y; | ||
2357 | newobj->obclass = rocketobj; | ||
2358 | newobj->dir = nodir; | ||
2359 | newobj->angle = iangle; | ||
2360 | newobj->speed = 0x2000l; | ||
2361 | newobj->flags = FL_NEVERMARK; | ||
2362 | newobj->active = ac_yes; | ||
2363 | |||
2364 | #ifndef APOGEE_1_0 // T_GiftThrow will never be called in shareware v1.0 | ||
2365 | PlaySoundLocActor (MISSILEFIRESND,newobj); | ||
2366 | #endif | ||
2367 | } | ||
2368 | |||
2369 | |||
2370 | /* | ||
2371 | ================= | ||
2372 | = | ||
2373 | = T_Schabb | ||
2374 | = | ||
2375 | ================= | ||
2376 | */ | ||
2377 | |||
2378 | void T_Schabb (objtype *ob) | ||
2379 | { | ||
2380 | int32_t move; | ||
2381 | int dx,dy,dist; | ||
2382 | boolean dodge; | ||
2383 | |||
2384 | dodge = false; | ||
2385 | dx = abs(ob->tilex - player->tilex); | ||
2386 | dy = abs(ob->tiley - player->tiley); | ||
2387 | dist = dx>dy ? dx : dy; | ||
2388 | |||
2389 | if (CheckLine(ob)) // got a shot at player? | ||
2390 | { | ||
2391 | ob->hidden = false; | ||
2392 | if ( (unsigned) US_RndT() < (tics<<3) && objfreelist) | ||
2393 | { | ||
2394 | // | ||
2395 | // go into attack frame | ||
2396 | // | ||
2397 | NewState (ob,&s_schabbshoot1); | ||
2398 | return; | ||
2399 | } | ||
2400 | dodge = true; | ||
2401 | } | ||
2402 | else | ||
2403 | ob->hidden = true; | ||
2404 | |||
2405 | if (ob->dir == nodir) | ||
2406 | { | ||
2407 | if (dodge) | ||
2408 | SelectDodgeDir (ob); | ||
2409 | else | ||
2410 | SelectChaseDir (ob); | ||
2411 | if (ob->dir == nodir) | ||
2412 | return; // object is blocked in | ||
2413 | } | ||
2414 | |||
2415 | move = ob->speed*tics; | ||
2416 | |||
2417 | while (move) | ||
2418 | { | ||
2419 | if (ob->distance < 0) | ||
2420 | { | ||
2421 | // | ||
2422 | // waiting for a door to open | ||
2423 | // | ||
2424 | OpenDoor (-ob->distance-1); | ||
2425 | if (doorobjlist[-ob->distance-1].action != dr_open) | ||
2426 | return; | ||
2427 | ob->distance = TILEGLOBAL; // go ahead, the door is now open | ||
2428 | TryWalk(ob); | ||
2429 | } | ||
2430 | |||
2431 | if (move < ob->distance) | ||
2432 | { | ||
2433 | MoveObj (ob,move); | ||
2434 | break; | ||
2435 | } | ||
2436 | |||
2437 | // | ||
2438 | // reached goal tile, so select another one | ||
2439 | // | ||
2440 | |||
2441 | // | ||
2442 | // fix position to account for round off during moving | ||
2443 | // | ||
2444 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
2445 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
2446 | |||
2447 | move -= ob->distance; | ||
2448 | |||
2449 | if (dist <4) | ||
2450 | SelectRunDir (ob); | ||
2451 | else if (dodge) | ||
2452 | SelectDodgeDir (ob); | ||
2453 | else | ||
2454 | SelectChaseDir (ob); | ||
2455 | |||
2456 | if (ob->dir == nodir) | ||
2457 | return; // object is blocked in | ||
2458 | } | ||
2459 | } | ||
2460 | |||
2461 | |||
2462 | /* | ||
2463 | ================= | ||
2464 | = | ||
2465 | = T_Gift | ||
2466 | = | ||
2467 | ================= | ||
2468 | */ | ||
2469 | |||
2470 | void T_Gift (objtype *ob) | ||
2471 | { | ||
2472 | int32_t move; | ||
2473 | int dx,dy,dist; | ||
2474 | boolean dodge; | ||
2475 | |||
2476 | dodge = false; | ||
2477 | dx = abs(ob->tilex - player->tilex); | ||
2478 | dy = abs(ob->tiley - player->tiley); | ||
2479 | dist = dx>dy ? dx : dy; | ||
2480 | |||
2481 | if (CheckLine(ob)) // got a shot at player? | ||
2482 | { | ||
2483 | ob->hidden = false; | ||
2484 | if ( (unsigned) US_RndT() < (tics<<3) && objfreelist) | ||
2485 | { | ||
2486 | // | ||
2487 | // go into attack frame | ||
2488 | // | ||
2489 | NewState (ob,&s_giftshoot1); | ||
2490 | return; | ||
2491 | } | ||
2492 | dodge = true; | ||
2493 | } | ||
2494 | else | ||
2495 | ob->hidden = true; | ||
2496 | |||
2497 | if (ob->dir == nodir) | ||
2498 | { | ||
2499 | if (dodge) | ||
2500 | SelectDodgeDir (ob); | ||
2501 | else | ||
2502 | SelectChaseDir (ob); | ||
2503 | if (ob->dir == nodir) | ||
2504 | return; // object is blocked in | ||
2505 | } | ||
2506 | |||
2507 | move = ob->speed*tics; | ||
2508 | |||
2509 | while (move) | ||
2510 | { | ||
2511 | if (ob->distance < 0) | ||
2512 | { | ||
2513 | // | ||
2514 | // waiting for a door to open | ||
2515 | // | ||
2516 | OpenDoor (-ob->distance-1); | ||
2517 | if (doorobjlist[-ob->distance-1].action != dr_open) | ||
2518 | return; | ||
2519 | ob->distance = TILEGLOBAL; // go ahead, the door is now open | ||
2520 | TryWalk(ob); | ||
2521 | } | ||
2522 | |||
2523 | if (move < ob->distance) | ||
2524 | { | ||
2525 | MoveObj (ob,move); | ||
2526 | break; | ||
2527 | } | ||
2528 | |||
2529 | // | ||
2530 | // reached goal tile, so select another one | ||
2531 | // | ||
2532 | |||
2533 | // | ||
2534 | // fix position to account for round off during moving | ||
2535 | // | ||
2536 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
2537 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
2538 | |||
2539 | move -= ob->distance; | ||
2540 | |||
2541 | if (dist <4) | ||
2542 | SelectRunDir (ob); | ||
2543 | else if (dodge) | ||
2544 | SelectDodgeDir (ob); | ||
2545 | else | ||
2546 | SelectChaseDir (ob); | ||
2547 | |||
2548 | if (ob->dir == nodir) | ||
2549 | return; // object is blocked in | ||
2550 | } | ||
2551 | } | ||
2552 | |||
2553 | |||
2554 | /* | ||
2555 | ================= | ||
2556 | = | ||
2557 | = T_Fat | ||
2558 | = | ||
2559 | ================= | ||
2560 | */ | ||
2561 | |||
2562 | void T_Fat (objtype *ob) | ||
2563 | { | ||
2564 | int32_t move; | ||
2565 | int dx,dy,dist; | ||
2566 | boolean dodge; | ||
2567 | |||
2568 | dodge = false; | ||
2569 | dx = abs(ob->tilex - player->tilex); | ||
2570 | dy = abs(ob->tiley - player->tiley); | ||
2571 | dist = dx>dy ? dx : dy; | ||
2572 | |||
2573 | if (CheckLine(ob)) // got a shot at player? | ||
2574 | { | ||
2575 | ob->hidden = false; | ||
2576 | if ( (unsigned) US_RndT() < (tics<<3) && objfreelist) | ||
2577 | { | ||
2578 | // | ||
2579 | // go into attack frame | ||
2580 | // | ||
2581 | NewState (ob,&s_fatshoot1); | ||
2582 | return; | ||
2583 | } | ||
2584 | dodge = true; | ||
2585 | } | ||
2586 | else | ||
2587 | ob->hidden = true; | ||
2588 | |||
2589 | if (ob->dir == nodir) | ||
2590 | { | ||
2591 | if (dodge) | ||
2592 | SelectDodgeDir (ob); | ||
2593 | else | ||
2594 | SelectChaseDir (ob); | ||
2595 | if (ob->dir == nodir) | ||
2596 | return; // object is blocked in | ||
2597 | } | ||
2598 | |||
2599 | move = ob->speed*tics; | ||
2600 | |||
2601 | while (move) | ||
2602 | { | ||
2603 | if (ob->distance < 0) | ||
2604 | { | ||
2605 | // | ||
2606 | // waiting for a door to open | ||
2607 | // | ||
2608 | OpenDoor (-ob->distance-1); | ||
2609 | if (doorobjlist[-ob->distance-1].action != dr_open) | ||
2610 | return; | ||
2611 | ob->distance = TILEGLOBAL; // go ahead, the door is now open | ||
2612 | TryWalk(ob); | ||
2613 | } | ||
2614 | |||
2615 | if (move < ob->distance) | ||
2616 | { | ||
2617 | MoveObj (ob,move); | ||
2618 | break; | ||
2619 | } | ||
2620 | |||
2621 | // | ||
2622 | // reached goal tile, so select another one | ||
2623 | // | ||
2624 | |||
2625 | // | ||
2626 | // fix position to account for round off during moving | ||
2627 | // | ||
2628 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
2629 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
2630 | |||
2631 | move -= ob->distance; | ||
2632 | |||
2633 | if (dist <4) | ||
2634 | SelectRunDir (ob); | ||
2635 | else if (dodge) | ||
2636 | SelectDodgeDir (ob); | ||
2637 | else | ||
2638 | SelectChaseDir (ob); | ||
2639 | |||
2640 | if (ob->dir == nodir) | ||
2641 | return; // object is blocked in | ||
2642 | } | ||
2643 | } | ||
2644 | |||
2645 | |||
2646 | /* | ||
2647 | ============================================================================= | ||
2648 | |||
2649 | HITLERS | ||
2650 | |||
2651 | ============================================================================= | ||
2652 | */ | ||
2653 | |||
2654 | |||
2655 | // | ||
2656 | // fake | ||
2657 | // | ||
2658 | extern statetype s_fakestand; | ||
2659 | |||
2660 | extern statetype s_fakechase1; | ||
2661 | extern statetype s_fakechase1s; | ||
2662 | extern statetype s_fakechase2; | ||
2663 | extern statetype s_fakechase3; | ||
2664 | extern statetype s_fakechase3s; | ||
2665 | extern statetype s_fakechase4; | ||
2666 | |||
2667 | extern statetype s_fakedie1; | ||
2668 | extern statetype s_fakedie2; | ||
2669 | extern statetype s_fakedie3; | ||
2670 | extern statetype s_fakedie4; | ||
2671 | extern statetype s_fakedie5; | ||
2672 | extern statetype s_fakedie6; | ||
2673 | |||
2674 | extern statetype s_fakeshoot1; | ||
2675 | extern statetype s_fakeshoot2; | ||
2676 | extern statetype s_fakeshoot3; | ||
2677 | extern statetype s_fakeshoot4; | ||
2678 | extern statetype s_fakeshoot5; | ||
2679 | extern statetype s_fakeshoot6; | ||
2680 | extern statetype s_fakeshoot7; | ||
2681 | extern statetype s_fakeshoot8; | ||
2682 | extern statetype s_fakeshoot9; | ||
2683 | |||
2684 | extern statetype s_fire1; | ||
2685 | extern statetype s_fire2; | ||
2686 | |||
2687 | statetype s_fakestand = {false,SPR_FAKE_W1,0,(statefunc)T_Stand,NULL,&s_fakestand}; | ||
2688 | |||
2689 | statetype s_fakechase1 = {false,SPR_FAKE_W1,10,(statefunc)T_Fake,NULL,&s_fakechase1s}; | ||
2690 | statetype s_fakechase1s = {false,SPR_FAKE_W1,3,NULL,NULL,&s_fakechase2}; | ||
2691 | statetype s_fakechase2 = {false,SPR_FAKE_W2,8,(statefunc)T_Fake,NULL,&s_fakechase3}; | ||
2692 | statetype s_fakechase3 = {false,SPR_FAKE_W3,10,(statefunc)T_Fake,NULL,&s_fakechase3s}; | ||
2693 | statetype s_fakechase3s = {false,SPR_FAKE_W3,3,NULL,NULL,&s_fakechase4}; | ||
2694 | statetype s_fakechase4 = {false,SPR_FAKE_W4,8,(statefunc)T_Fake,NULL,&s_fakechase1}; | ||
2695 | |||
2696 | statetype s_fakedie1 = {false,SPR_FAKE_DIE1,10,NULL,(statefunc)A_DeathScream,&s_fakedie2}; | ||
2697 | statetype s_fakedie2 = {false,SPR_FAKE_DIE2,10,NULL,NULL,&s_fakedie3}; | ||
2698 | statetype s_fakedie3 = {false,SPR_FAKE_DIE3,10,NULL,NULL,&s_fakedie4}; | ||
2699 | statetype s_fakedie4 = {false,SPR_FAKE_DIE4,10,NULL,NULL,&s_fakedie5}; | ||
2700 | statetype s_fakedie5 = {false,SPR_FAKE_DIE5,10,NULL,NULL,&s_fakedie6}; | ||
2701 | statetype s_fakedie6 = {false,SPR_FAKE_DEAD,0,NULL,NULL,&s_fakedie6}; | ||
2702 | |||
2703 | statetype s_fakeshoot1 = {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,&s_fakeshoot2}; | ||
2704 | statetype s_fakeshoot2 = {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,&s_fakeshoot3}; | ||
2705 | statetype s_fakeshoot3 = {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,&s_fakeshoot4}; | ||
2706 | statetype s_fakeshoot4 = {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,&s_fakeshoot5}; | ||
2707 | statetype s_fakeshoot5 = {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,&s_fakeshoot6}; | ||
2708 | statetype s_fakeshoot6 = {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,&s_fakeshoot7}; | ||
2709 | statetype s_fakeshoot7 = {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,&s_fakeshoot8}; | ||
2710 | statetype s_fakeshoot8 = {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,&s_fakeshoot9}; | ||
2711 | statetype s_fakeshoot9 = {false,SPR_FAKE_SHOOT,8,NULL,NULL,&s_fakechase1}; | ||
2712 | |||
2713 | statetype s_fire1 = {false,SPR_FIRE1,6,NULL,(statefunc)T_Projectile,&s_fire2}; | ||
2714 | statetype s_fire2 = {false,SPR_FIRE2,6,NULL,(statefunc)T_Projectile,&s_fire1}; | ||
2715 | |||
2716 | // | ||
2717 | // hitler | ||
2718 | // | ||
2719 | extern statetype s_mechachase1; | ||
2720 | extern statetype s_mechachase1s; | ||
2721 | extern statetype s_mechachase2; | ||
2722 | extern statetype s_mechachase3; | ||
2723 | extern statetype s_mechachase3s; | ||
2724 | extern statetype s_mechachase4; | ||
2725 | |||
2726 | extern statetype s_mechadie1; | ||
2727 | extern statetype s_mechadie2; | ||
2728 | extern statetype s_mechadie3; | ||
2729 | extern statetype s_mechadie4; | ||
2730 | |||
2731 | extern statetype s_mechashoot1; | ||
2732 | extern statetype s_mechashoot2; | ||
2733 | extern statetype s_mechashoot3; | ||
2734 | extern statetype s_mechashoot4; | ||
2735 | extern statetype s_mechashoot5; | ||
2736 | extern statetype s_mechashoot6; | ||
2737 | |||
2738 | |||
2739 | extern statetype s_hitlerchase1; | ||
2740 | extern statetype s_hitlerchase1s; | ||
2741 | extern statetype s_hitlerchase2; | ||
2742 | extern statetype s_hitlerchase3; | ||
2743 | extern statetype s_hitlerchase3s; | ||
2744 | extern statetype s_hitlerchase4; | ||
2745 | |||
2746 | extern statetype s_hitlerdie1; | ||
2747 | extern statetype s_hitlerdie2; | ||
2748 | extern statetype s_hitlerdie3; | ||
2749 | extern statetype s_hitlerdie4; | ||
2750 | extern statetype s_hitlerdie5; | ||
2751 | extern statetype s_hitlerdie6; | ||
2752 | extern statetype s_hitlerdie7; | ||
2753 | extern statetype s_hitlerdie8; | ||
2754 | extern statetype s_hitlerdie9; | ||
2755 | extern statetype s_hitlerdie10; | ||
2756 | |||
2757 | extern statetype s_hitlershoot1; | ||
2758 | extern statetype s_hitlershoot2; | ||
2759 | extern statetype s_hitlershoot3; | ||
2760 | extern statetype s_hitlershoot4; | ||
2761 | extern statetype s_hitlershoot5; | ||
2762 | extern statetype s_hitlershoot6; | ||
2763 | |||
2764 | extern statetype s_hitlerdeathcam; | ||
2765 | |||
2766 | statetype s_mechastand = {false,SPR_MECHA_W1,0,(statefunc)T_Stand,NULL,&s_mechastand}; | ||
2767 | |||
2768 | statetype s_mechachase1 = {false,SPR_MECHA_W1,10,(statefunc)T_Chase,(statefunc)A_MechaSound,&s_mechachase1s}; | ||
2769 | statetype s_mechachase1s = {false,SPR_MECHA_W1,6,NULL,NULL,&s_mechachase2}; | ||
2770 | statetype s_mechachase2 = {false,SPR_MECHA_W2,8,(statefunc)T_Chase,NULL,&s_mechachase3}; | ||
2771 | statetype s_mechachase3 = {false,SPR_MECHA_W3,10,(statefunc)T_Chase,(statefunc)A_MechaSound,&s_mechachase3s}; | ||
2772 | statetype s_mechachase3s = {false,SPR_MECHA_W3,6,NULL,NULL,&s_mechachase4}; | ||
2773 | statetype s_mechachase4 = {false,SPR_MECHA_W4,8,(statefunc)T_Chase,NULL,&s_mechachase1}; | ||
2774 | |||
2775 | statetype s_mechadie1 = {false,SPR_MECHA_DIE1,10,NULL,(statefunc)A_DeathScream,&s_mechadie2}; | ||
2776 | statetype s_mechadie2 = {false,SPR_MECHA_DIE2,10,NULL,NULL,&s_mechadie3}; | ||
2777 | statetype s_mechadie3 = {false,SPR_MECHA_DIE3,10,NULL,(statefunc)A_HitlerMorph,&s_mechadie4}; | ||
2778 | statetype s_mechadie4 = {false,SPR_MECHA_DEAD,0,NULL,NULL,&s_mechadie4}; | ||
2779 | |||
2780 | statetype s_mechashoot1 = {false,SPR_MECHA_SHOOT1,30,NULL,NULL,&s_mechashoot2}; | ||
2781 | statetype s_mechashoot2 = {false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_mechashoot3}; | ||
2782 | statetype s_mechashoot3 = {false,SPR_MECHA_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_mechashoot4}; | ||
2783 | statetype s_mechashoot4 = {false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_mechashoot5}; | ||
2784 | statetype s_mechashoot5 = {false,SPR_MECHA_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_mechashoot6}; | ||
2785 | statetype s_mechashoot6 = {false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_mechachase1}; | ||
2786 | |||
2787 | |||
2788 | statetype s_hitlerchase1 = {false,SPR_HITLER_W1,6,(statefunc)T_Chase,NULL,&s_hitlerchase1s}; | ||
2789 | statetype s_hitlerchase1s = {false,SPR_HITLER_W1,4,NULL,NULL,&s_hitlerchase2}; | ||
2790 | statetype s_hitlerchase2 = {false,SPR_HITLER_W2,2,(statefunc)T_Chase,NULL,&s_hitlerchase3}; | ||
2791 | statetype s_hitlerchase3 = {false,SPR_HITLER_W3,6,(statefunc)T_Chase,NULL,&s_hitlerchase3s}; | ||
2792 | statetype s_hitlerchase3s = {false,SPR_HITLER_W3,4,NULL,NULL,&s_hitlerchase4}; | ||
2793 | statetype s_hitlerchase4 = {false,SPR_HITLER_W4,2,(statefunc)T_Chase,NULL,&s_hitlerchase1}; | ||
2794 | |||
2795 | statetype s_hitlerdeathcam = {false,SPR_HITLER_W1,10,NULL,NULL,&s_hitlerdie1}; | ||
2796 | |||
2797 | statetype s_hitlerdie1 = {false,SPR_HITLER_W1,1,NULL,(statefunc)A_DeathScream,&s_hitlerdie2}; | ||
2798 | statetype s_hitlerdie2 = {false,SPR_HITLER_W1,10,NULL,NULL,&s_hitlerdie3}; | ||
2799 | statetype s_hitlerdie3 = {false,SPR_HITLER_DIE1,10,NULL,(statefunc)A_Slurpie,&s_hitlerdie4}; | ||
2800 | statetype s_hitlerdie4 = {false,SPR_HITLER_DIE2,10,NULL,NULL,&s_hitlerdie5}; | ||
2801 | statetype s_hitlerdie5 = {false,SPR_HITLER_DIE3,10,NULL,NULL,&s_hitlerdie6}; | ||
2802 | statetype s_hitlerdie6 = {false,SPR_HITLER_DIE4,10,NULL,NULL,&s_hitlerdie7}; | ||
2803 | statetype s_hitlerdie7 = {false,SPR_HITLER_DIE5,10,NULL,NULL,&s_hitlerdie8}; | ||
2804 | statetype s_hitlerdie8 = {false,SPR_HITLER_DIE6,10,NULL,NULL,&s_hitlerdie9}; | ||
2805 | statetype s_hitlerdie9 = {false,SPR_HITLER_DIE7,10,NULL,NULL,&s_hitlerdie10}; | ||
2806 | statetype s_hitlerdie10 = {false,SPR_HITLER_DEAD,20,NULL,(statefunc)A_StartDeathCam,&s_hitlerdie10}; | ||
2807 | |||
2808 | statetype s_hitlershoot1 = {false,SPR_HITLER_SHOOT1,30,NULL,NULL,&s_hitlershoot2}; | ||
2809 | statetype s_hitlershoot2 = {false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_hitlershoot3}; | ||
2810 | statetype s_hitlershoot3 = {false,SPR_HITLER_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_hitlershoot4}; | ||
2811 | statetype s_hitlershoot4 = {false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_hitlershoot5}; | ||
2812 | statetype s_hitlershoot5 = {false,SPR_HITLER_SHOOT3,10,NULL,(statefunc)T_Shoot,&s_hitlershoot6}; | ||
2813 | statetype s_hitlershoot6 = {false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,&s_hitlerchase1}; | ||
2814 | |||
2815 | |||
2816 | |||
2817 | /* | ||
2818 | =============== | ||
2819 | = | ||
2820 | = SpawnFakeHitler | ||
2821 | = | ||
2822 | =============== | ||
2823 | */ | ||
2824 | |||
2825 | void SpawnFakeHitler (int tilex, int tiley) | ||
2826 | { | ||
2827 | if (DigiMode != sds_Off) | ||
2828 | s_hitlerdie2.tictime = 140; | ||
2829 | else | ||
2830 | s_hitlerdie2.tictime = 5; | ||
2831 | |||
2832 | SpawnNewObj (tilex,tiley,&s_fakestand); | ||
2833 | newobj->speed = SPDPATROL; | ||
2834 | |||
2835 | newobj->obclass = fakeobj; | ||
2836 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_fake]; | ||
2837 | newobj->dir = nodir; | ||
2838 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
2839 | if (!loadedgame) | ||
2840 | gamestate.killtotal++; | ||
2841 | } | ||
2842 | |||
2843 | |||
2844 | /* | ||
2845 | =============== | ||
2846 | = | ||
2847 | = SpawnHitler | ||
2848 | = | ||
2849 | =============== | ||
2850 | */ | ||
2851 | |||
2852 | void SpawnHitler (int tilex, int tiley) | ||
2853 | { | ||
2854 | if (DigiMode != sds_Off) | ||
2855 | s_hitlerdie2.tictime = 140; | ||
2856 | else | ||
2857 | s_hitlerdie2.tictime = 5; | ||
2858 | |||
2859 | |||
2860 | SpawnNewObj (tilex,tiley,&s_mechastand); | ||
2861 | newobj->speed = SPDPATROL; | ||
2862 | |||
2863 | newobj->obclass = mechahitlerobj; | ||
2864 | newobj->hitpoints = starthitpoints[gamestate.difficulty][en_hitler]; | ||
2865 | newobj->dir = nodir; | ||
2866 | newobj->flags |= FL_SHOOTABLE|FL_AMBUSH; | ||
2867 | if (!loadedgame) | ||
2868 | gamestate.killtotal++; | ||
2869 | } | ||
2870 | |||
2871 | |||
2872 | /* | ||
2873 | =============== | ||
2874 | = | ||
2875 | = A_HitlerMorph | ||
2876 | = | ||
2877 | =============== | ||
2878 | */ | ||
2879 | |||
2880 | void A_HitlerMorph (objtype *ob) | ||
2881 | { | ||
2882 | short hitpoints[4]={500,700,800,900}; | ||
2883 | |||
2884 | SpawnNewObj (ob->tilex,ob->tiley,&s_hitlerchase1); | ||
2885 | newobj->speed = SPDPATROL*5; | ||
2886 | |||
2887 | newobj->x = ob->x; | ||
2888 | newobj->y = ob->y; | ||
2889 | |||
2890 | newobj->distance = ob->distance; | ||
2891 | newobj->dir = ob->dir; | ||
2892 | newobj->flags = ob->flags | FL_SHOOTABLE; | ||
2893 | newobj->flags &= ~FL_NONMARK; // hitler stuck with nodir fix | ||
2894 | |||
2895 | newobj->obclass = realhitlerobj; | ||
2896 | newobj->hitpoints = hitpoints[gamestate.difficulty]; | ||
2897 | } | ||
2898 | |||
2899 | |||
2900 | //////////////////////////////////////////////////////// | ||
2901 | // | ||
2902 | // A_MechaSound | ||
2903 | // A_Slurpie | ||
2904 | // | ||
2905 | //////////////////////////////////////////////////////// | ||
2906 | void A_MechaSound (objtype *ob) | ||
2907 | { | ||
2908 | if (areabyplayer[ob->areanumber]) | ||
2909 | PlaySoundLocActor (MECHSTEPSND,ob); | ||
2910 | } | ||
2911 | |||
2912 | void A_Slurpie (objtype * ob) | ||
2913 | { | ||
2914 | SD_PlaySound(SLURPIESND); | ||
2915 | } | ||
2916 | |||
2917 | /* | ||
2918 | ================= | ||
2919 | = | ||
2920 | = T_FakeFire | ||
2921 | = | ||
2922 | ================= | ||
2923 | */ | ||
2924 | |||
2925 | void T_FakeFire (objtype *ob) | ||
2926 | { | ||
2927 | int32_t deltax,deltay; | ||
2928 | float angle; | ||
2929 | int iangle; | ||
2930 | |||
2931 | if (!objfreelist) // stop shooting if over MAXACTORS | ||
2932 | { | ||
2933 | NewState (ob,&s_fakechase1); | ||
2934 | return; | ||
2935 | } | ||
2936 | |||
2937 | deltax = player->x - ob->x; | ||
2938 | deltay = ob->y - player->y; | ||
2939 | angle = (float) atan2((float) deltay, (float) deltax); | ||
2940 | if (angle<0) | ||
2941 | angle = (float)(M_PI*2+angle); | ||
2942 | iangle = (int) (angle/(M_PI*2)*ANGLES); | ||
2943 | |||
2944 | GetNewActor (); | ||
2945 | newobj->state = &s_fire1; | ||
2946 | newobj->ticcount = 1; | ||
2947 | |||
2948 | newobj->tilex = ob->tilex; | ||
2949 | newobj->tiley = ob->tiley; | ||
2950 | newobj->x = ob->x; | ||
2951 | newobj->y = ob->y; | ||
2952 | newobj->dir = nodir; | ||
2953 | newobj->angle = iangle; | ||
2954 | newobj->obclass = fireobj; | ||
2955 | newobj->speed = 0x1200l; | ||
2956 | newobj->flags = FL_NEVERMARK; | ||
2957 | newobj->active = ac_yes; | ||
2958 | |||
2959 | PlaySoundLocActor (FLAMETHROWERSND,newobj); | ||
2960 | } | ||
2961 | |||
2962 | |||
2963 | |||
2964 | /* | ||
2965 | ================= | ||
2966 | = | ||
2967 | = T_Fake | ||
2968 | = | ||
2969 | ================= | ||
2970 | */ | ||
2971 | |||
2972 | void T_Fake (objtype *ob) | ||
2973 | { | ||
2974 | int32_t move; | ||
2975 | |||
2976 | if (CheckLine(ob)) // got a shot at player? | ||
2977 | { | ||
2978 | ob->hidden = false; | ||
2979 | if ( (unsigned) US_RndT() < (tics<<1) && objfreelist) | ||
2980 | { | ||
2981 | // | ||
2982 | // go into attack frame | ||
2983 | // | ||
2984 | NewState (ob,&s_fakeshoot1); | ||
2985 | return; | ||
2986 | } | ||
2987 | } | ||
2988 | else | ||
2989 | ob->hidden = true; | ||
2990 | |||
2991 | if (ob->dir == nodir) | ||
2992 | { | ||
2993 | SelectDodgeDir (ob); | ||
2994 | if (ob->dir == nodir) | ||
2995 | return; // object is blocked in | ||
2996 | } | ||
2997 | |||
2998 | move = ob->speed*tics; | ||
2999 | |||
3000 | while (move) | ||
3001 | { | ||
3002 | if (move < ob->distance) | ||
3003 | { | ||
3004 | MoveObj (ob,move); | ||
3005 | break; | ||
3006 | } | ||
3007 | |||
3008 | // | ||
3009 | // reached goal tile, so select another one | ||
3010 | // | ||
3011 | |||
3012 | // | ||
3013 | // fix position to account for round off during moving | ||
3014 | // | ||
3015 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
3016 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
3017 | |||
3018 | move -= ob->distance; | ||
3019 | |||
3020 | SelectDodgeDir (ob); | ||
3021 | |||
3022 | if (ob->dir == nodir) | ||
3023 | return; // object is blocked in | ||
3024 | } | ||
3025 | } | ||
3026 | |||
3027 | #endif | ||
3028 | /* | ||
3029 | ============================================================================ | ||
3030 | |||
3031 | STAND | ||
3032 | |||
3033 | ============================================================================ | ||
3034 | */ | ||
3035 | |||
3036 | |||
3037 | /* | ||
3038 | =============== | ||
3039 | = | ||
3040 | = T_Stand | ||
3041 | = | ||
3042 | =============== | ||
3043 | */ | ||
3044 | |||
3045 | void T_Stand (objtype *ob) | ||
3046 | { | ||
3047 | SightPlayer (ob); | ||
3048 | } | ||
3049 | |||
3050 | |||
3051 | /* | ||
3052 | ============================================================================ | ||
3053 | |||
3054 | CHASE | ||
3055 | |||
3056 | ============================================================================ | ||
3057 | */ | ||
3058 | |||
3059 | /* | ||
3060 | ================= | ||
3061 | = | ||
3062 | = T_Chase | ||
3063 | = | ||
3064 | ================= | ||
3065 | */ | ||
3066 | |||
3067 | void T_Chase (objtype *ob) | ||
3068 | { | ||
3069 | int32_t move,target; | ||
3070 | int dx,dy,dist,chance; | ||
3071 | boolean dodge; | ||
3072 | |||
3073 | if (gamestate.victoryflag) | ||
3074 | return; | ||
3075 | |||
3076 | dodge = false; | ||
3077 | if (CheckLine(ob)) // got a shot at player? | ||
3078 | { | ||
3079 | ob->hidden = false; | ||
3080 | dx = abs(ob->tilex - player->tilex); | ||
3081 | dy = abs(ob->tiley - player->tiley); | ||
3082 | dist = dx>dy ? dx : dy; | ||
3083 | |||
3084 | #ifdef PLAYDEMOLIKEORIGINAL | ||
3085 | if(DEMOCOND_ORIG) | ||
3086 | { | ||
3087 | if(!dist || (dist == 1 && ob->distance < 0x4000)) | ||
3088 | chance = 300; | ||
3089 | else | ||
3090 | chance = (tics<<4)/dist; | ||
3091 | } | ||
3092 | else | ||
3093 | #endif | ||
3094 | { | ||
3095 | if (dist) | ||
3096 | chance = (tics<<4)/dist; | ||
3097 | else | ||
3098 | chance = 300; | ||
3099 | |||
3100 | if (dist == 1) | ||
3101 | { | ||
3102 | target = abs(ob->x - player->x); | ||
3103 | if (target < 0x14000l) | ||
3104 | { | ||
3105 | target = abs(ob->y - player->y); | ||
3106 | if (target < 0x14000l) | ||
3107 | chance = 300; | ||
3108 | } | ||
3109 | } | ||
3110 | } | ||
3111 | |||
3112 | if ( US_RndT()<chance) | ||
3113 | { | ||
3114 | // | ||
3115 | // go into attack frame | ||
3116 | // | ||
3117 | switch (ob->obclass) | ||
3118 | { | ||
3119 | case guardobj: | ||
3120 | NewState (ob,&s_grdshoot1); | ||
3121 | break; | ||
3122 | case officerobj: | ||
3123 | NewState (ob,&s_ofcshoot1); | ||
3124 | break; | ||
3125 | case mutantobj: | ||
3126 | NewState (ob,&s_mutshoot1); | ||
3127 | break; | ||
3128 | case ssobj: | ||
3129 | NewState (ob,&s_ssshoot1); | ||
3130 | break; | ||
3131 | #ifndef SPEAR | ||
3132 | case bossobj: | ||
3133 | NewState (ob,&s_bossshoot1); | ||
3134 | break; | ||
3135 | case gretelobj: | ||
3136 | NewState (ob,&s_gretelshoot1); | ||
3137 | break; | ||
3138 | case mechahitlerobj: | ||
3139 | NewState (ob,&s_mechashoot1); | ||
3140 | break; | ||
3141 | case realhitlerobj: | ||
3142 | NewState (ob,&s_hitlershoot1); | ||
3143 | break; | ||
3144 | #else | ||
3145 | case angelobj: | ||
3146 | NewState (ob,&s_angelshoot1); | ||
3147 | break; | ||
3148 | case transobj: | ||
3149 | NewState (ob,&s_transshoot1); | ||
3150 | break; | ||
3151 | case uberobj: | ||
3152 | NewState (ob,&s_ubershoot1); | ||
3153 | break; | ||
3154 | case willobj: | ||
3155 | NewState (ob,&s_willshoot1); | ||
3156 | break; | ||
3157 | case deathobj: | ||
3158 | NewState (ob,&s_deathshoot1); | ||
3159 | break; | ||
3160 | #endif | ||
3161 | } | ||
3162 | return; | ||
3163 | } | ||
3164 | dodge = true; | ||
3165 | } | ||
3166 | else | ||
3167 | ob->hidden = true; | ||
3168 | |||
3169 | if (ob->dir == nodir) | ||
3170 | { | ||
3171 | if (dodge) | ||
3172 | SelectDodgeDir (ob); | ||
3173 | else | ||
3174 | SelectChaseDir (ob); | ||
3175 | if (ob->dir == nodir) | ||
3176 | return; // object is blocked in | ||
3177 | } | ||
3178 | |||
3179 | move = ob->speed*tics; | ||
3180 | |||
3181 | while (move) | ||
3182 | { | ||
3183 | if (ob->distance < 0) | ||
3184 | { | ||
3185 | // | ||
3186 | // waiting for a door to open | ||
3187 | // | ||
3188 | OpenDoor (-ob->distance-1); | ||
3189 | if (doorobjlist[-ob->distance-1].action != dr_open) | ||
3190 | return; | ||
3191 | ob->distance = TILEGLOBAL; // go ahead, the door is now open | ||
3192 | DEMOIF_SDL | ||
3193 | { | ||
3194 | TryWalk(ob); | ||
3195 | } | ||
3196 | } | ||
3197 | |||
3198 | if (move < ob->distance) | ||
3199 | { | ||
3200 | MoveObj (ob,move); | ||
3201 | break; | ||
3202 | } | ||
3203 | |||
3204 | // | ||
3205 | // reached goal tile, so select another one | ||
3206 | // | ||
3207 | |||
3208 | // | ||
3209 | // fix position to account for round off during moving | ||
3210 | // | ||
3211 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
3212 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
3213 | |||
3214 | move -= ob->distance; | ||
3215 | |||
3216 | if (dodge) | ||
3217 | SelectDodgeDir (ob); | ||
3218 | else | ||
3219 | SelectChaseDir (ob); | ||
3220 | |||
3221 | if (ob->dir == nodir) | ||
3222 | return; // object is blocked in | ||
3223 | } | ||
3224 | } | ||
3225 | |||
3226 | |||
3227 | /* | ||
3228 | ================= | ||
3229 | = | ||
3230 | = T_Ghosts | ||
3231 | = | ||
3232 | ================= | ||
3233 | */ | ||
3234 | |||
3235 | void T_Ghosts (objtype *ob) | ||
3236 | { | ||
3237 | int32_t move; | ||
3238 | |||
3239 | if (ob->dir == nodir) | ||
3240 | { | ||
3241 | SelectChaseDir (ob); | ||
3242 | if (ob->dir == nodir) | ||
3243 | return; // object is blocked in | ||
3244 | } | ||
3245 | |||
3246 | move = ob->speed*tics; | ||
3247 | |||
3248 | while (move) | ||
3249 | { | ||
3250 | if (move < ob->distance) | ||
3251 | { | ||
3252 | MoveObj (ob,move); | ||
3253 | break; | ||
3254 | } | ||
3255 | |||
3256 | // | ||
3257 | // reached goal tile, so select another one | ||
3258 | // | ||
3259 | |||
3260 | // | ||
3261 | // fix position to account for round off during moving | ||
3262 | // | ||
3263 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
3264 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
3265 | |||
3266 | move -= ob->distance; | ||
3267 | |||
3268 | SelectChaseDir (ob); | ||
3269 | |||
3270 | if (ob->dir == nodir) | ||
3271 | return; // object is blocked in | ||
3272 | } | ||
3273 | } | ||
3274 | |||
3275 | /* | ||
3276 | ================= | ||
3277 | = | ||
3278 | = T_DogChase | ||
3279 | = | ||
3280 | ================= | ||
3281 | */ | ||
3282 | |||
3283 | void T_DogChase (objtype *ob) | ||
3284 | { | ||
3285 | int32_t move; | ||
3286 | int32_t dx,dy; | ||
3287 | |||
3288 | |||
3289 | if (ob->dir == nodir) | ||
3290 | { | ||
3291 | SelectDodgeDir (ob); | ||
3292 | if (ob->dir == nodir) | ||
3293 | return; // object is blocked in | ||
3294 | } | ||
3295 | |||
3296 | move = ob->speed*tics; | ||
3297 | |||
3298 | while (move) | ||
3299 | { | ||
3300 | // | ||
3301 | // check for byte range | ||
3302 | // | ||
3303 | dx = player->x - ob->x; | ||
3304 | if (dx<0) | ||
3305 | dx = -dx; | ||
3306 | dx -= move; | ||
3307 | if (dx <= MINACTORDIST) | ||
3308 | { | ||
3309 | dy = player->y - ob->y; | ||
3310 | if (dy<0) | ||
3311 | dy = -dy; | ||
3312 | dy -= move; | ||
3313 | if (dy <= MINACTORDIST) | ||
3314 | { | ||
3315 | NewState (ob,&s_dogjump1); | ||
3316 | return; | ||
3317 | } | ||
3318 | } | ||
3319 | |||
3320 | if (move < ob->distance) | ||
3321 | { | ||
3322 | MoveObj (ob,move); | ||
3323 | break; | ||
3324 | } | ||
3325 | |||
3326 | // | ||
3327 | // reached goal tile, so select another one | ||
3328 | // | ||
3329 | |||
3330 | // | ||
3331 | // fix position to account for round off during moving | ||
3332 | // | ||
3333 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
3334 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
3335 | |||
3336 | move -= ob->distance; | ||
3337 | |||
3338 | SelectDodgeDir (ob); | ||
3339 | |||
3340 | if (ob->dir == nodir) | ||
3341 | return; // object is blocked in | ||
3342 | } | ||
3343 | } | ||
3344 | |||
3345 | |||
3346 | |||
3347 | /* | ||
3348 | ============================================================================ | ||
3349 | |||
3350 | PATH | ||
3351 | |||
3352 | ============================================================================ | ||
3353 | */ | ||
3354 | |||
3355 | |||
3356 | /* | ||
3357 | =============== | ||
3358 | = | ||
3359 | = SelectPathDir | ||
3360 | = | ||
3361 | =============== | ||
3362 | */ | ||
3363 | |||
3364 | void SelectPathDir (objtype *ob) | ||
3365 | { | ||
3366 | unsigned spot; | ||
3367 | |||
3368 | spot = MAPSPOT(ob->tilex,ob->tiley,1)-ICONARROWS; | ||
3369 | |||
3370 | if (spot<8) | ||
3371 | { | ||
3372 | // new direction | ||
3373 | ob->dir = (dirtype)(spot); | ||
3374 | } | ||
3375 | |||
3376 | ob->distance = TILEGLOBAL; | ||
3377 | |||
3378 | if (!TryWalk (ob)) | ||
3379 | ob->dir = nodir; | ||
3380 | } | ||
3381 | |||
3382 | |||
3383 | /* | ||
3384 | =============== | ||
3385 | = | ||
3386 | = T_Path | ||
3387 | = | ||
3388 | =============== | ||
3389 | */ | ||
3390 | |||
3391 | void T_Path (objtype *ob) | ||
3392 | { | ||
3393 | int32_t move; | ||
3394 | |||
3395 | if (SightPlayer (ob)) | ||
3396 | return; | ||
3397 | |||
3398 | if (ob->dir == nodir) | ||
3399 | { | ||
3400 | SelectPathDir (ob); | ||
3401 | if (ob->dir == nodir) | ||
3402 | return; // all movement is blocked | ||
3403 | } | ||
3404 | |||
3405 | |||
3406 | move = ob->speed*tics; | ||
3407 | |||
3408 | while (move) | ||
3409 | { | ||
3410 | if (ob->distance < 0) | ||
3411 | { | ||
3412 | // | ||
3413 | // waiting for a door to open | ||
3414 | // | ||
3415 | OpenDoor (-ob->distance-1); | ||
3416 | if (doorobjlist[-ob->distance-1].action != dr_open) | ||
3417 | return; | ||
3418 | ob->distance = TILEGLOBAL; // go ahead, the door is now open | ||
3419 | DEMOIF_SDL | ||
3420 | { | ||
3421 | TryWalk(ob); | ||
3422 | } | ||
3423 | } | ||
3424 | |||
3425 | if (move < ob->distance) | ||
3426 | { | ||
3427 | MoveObj (ob,move); | ||
3428 | break; | ||
3429 | } | ||
3430 | |||
3431 | if (ob->tilex>MAPSIZE || ob->tiley>MAPSIZE) | ||
3432 | { | ||
3433 | sprintf (str, "T_Path hit a wall at %u,%u, dir %u", | ||
3434 | ob->tilex,ob->tiley,ob->dir); | ||
3435 | Quit (str); | ||
3436 | } | ||
3437 | |||
3438 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
3439 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
3440 | move -= ob->distance; | ||
3441 | |||
3442 | SelectPathDir (ob); | ||
3443 | |||
3444 | if (ob->dir == nodir) | ||
3445 | return; // all movement is blocked | ||
3446 | } | ||
3447 | } | ||
3448 | |||
3449 | |||
3450 | /* | ||
3451 | ============================================================================= | ||
3452 | |||
3453 | FIGHT | ||
3454 | |||
3455 | ============================================================================= | ||
3456 | */ | ||
3457 | |||
3458 | |||
3459 | /* | ||
3460 | =============== | ||
3461 | = | ||
3462 | = T_Shoot | ||
3463 | = | ||
3464 | = Try to damage the player, based on skill level and player's speed | ||
3465 | = | ||
3466 | =============== | ||
3467 | */ | ||
3468 | |||
3469 | void T_Shoot (objtype *ob) | ||
3470 | { | ||
3471 | int dx,dy,dist; | ||
3472 | int hitchance,damage; | ||
3473 | |||
3474 | hitchance = 128; | ||
3475 | |||
3476 | if (!areabyplayer[ob->areanumber]) | ||
3477 | return; | ||
3478 | |||
3479 | if (CheckLine (ob)) // player is not behind a wall | ||
3480 | { | ||
3481 | dx = abs(ob->tilex - player->tilex); | ||
3482 | dy = abs(ob->tiley - player->tiley); | ||
3483 | dist = dx>dy ? dx:dy; | ||
3484 | |||
3485 | if (ob->obclass == ssobj || ob->obclass == bossobj) | ||
3486 | dist = dist*2/3; // ss are better shots | ||
3487 | |||
3488 | if (thrustspeed >= RUNSPEED) | ||
3489 | { | ||
3490 | if (ob->flags&FL_VISABLE) | ||
3491 | hitchance = 160-dist*16; // player can see to dodge | ||
3492 | else | ||
3493 | hitchance = 160-dist*8; | ||
3494 | } | ||
3495 | else | ||
3496 | { | ||
3497 | if (ob->flags&FL_VISABLE) | ||
3498 | hitchance = 256-dist*16; // player can see to dodge | ||
3499 | else | ||
3500 | hitchance = 256-dist*8; | ||
3501 | } | ||
3502 | |||
3503 | // see if the shot was a hit | ||
3504 | |||
3505 | if (US_RndT()<hitchance) | ||
3506 | { | ||
3507 | if (dist<2) | ||
3508 | damage = US_RndT()>>2; | ||
3509 | else if (dist<4) | ||
3510 | damage = US_RndT()>>3; | ||
3511 | else | ||
3512 | damage = US_RndT()>>4; | ||
3513 | |||
3514 | TakeDamage (damage,ob); | ||
3515 | } | ||
3516 | } | ||
3517 | |||
3518 | switch(ob->obclass) | ||
3519 | { | ||
3520 | case ssobj: | ||
3521 | PlaySoundLocActor(SSFIRESND,ob); | ||
3522 | break; | ||
3523 | #ifndef SPEAR | ||
3524 | #ifndef APOGEE_1_0 | ||
3525 | case giftobj: | ||
3526 | case fatobj: | ||
3527 | PlaySoundLocActor(MISSILEFIRESND,ob); | ||
3528 | break; | ||
3529 | #endif | ||
3530 | case mechahitlerobj: | ||
3531 | case realhitlerobj: | ||
3532 | case bossobj: | ||
3533 | PlaySoundLocActor(BOSSFIRESND,ob); | ||
3534 | break; | ||
3535 | case schabbobj: | ||
3536 | PlaySoundLocActor(SCHABBSTHROWSND,ob); | ||
3537 | break; | ||
3538 | case fakeobj: | ||
3539 | PlaySoundLocActor(FLAMETHROWERSND,ob); | ||
3540 | break; | ||
3541 | #endif | ||
3542 | default: | ||
3543 | PlaySoundLocActor(NAZIFIRESND,ob); | ||
3544 | } | ||
3545 | } | ||
3546 | |||
3547 | |||
3548 | /* | ||
3549 | =============== | ||
3550 | = | ||
3551 | = T_Bite | ||
3552 | = | ||
3553 | =============== | ||
3554 | */ | ||
3555 | |||
3556 | void T_Bite (objtype *ob) | ||
3557 | { | ||
3558 | int32_t dx,dy; | ||
3559 | |||
3560 | PlaySoundLocActor(DOGATTACKSND,ob); // JAB | ||
3561 | |||
3562 | dx = player->x - ob->x; | ||
3563 | if (dx<0) | ||
3564 | dx = -dx; | ||
3565 | dx -= TILEGLOBAL; | ||
3566 | if (dx <= MINACTORDIST) | ||
3567 | { | ||
3568 | dy = player->y - ob->y; | ||
3569 | if (dy<0) | ||
3570 | dy = -dy; | ||
3571 | dy -= TILEGLOBAL; | ||
3572 | if (dy <= MINACTORDIST) | ||
3573 | { | ||
3574 | if (US_RndT()<180) | ||
3575 | { | ||
3576 | TakeDamage (US_RndT()>>4,ob); | ||
3577 | return; | ||
3578 | } | ||
3579 | } | ||
3580 | } | ||
3581 | } | ||
3582 | |||
3583 | |||
3584 | #ifndef SPEAR | ||
3585 | /* | ||
3586 | ============================================================================ | ||
3587 | |||
3588 | BJ VICTORY | ||
3589 | |||
3590 | ============================================================================ | ||
3591 | */ | ||
3592 | |||
3593 | |||
3594 | // | ||
3595 | // BJ victory | ||
3596 | // | ||
3597 | |||
3598 | void T_BJRun (objtype *ob); | ||
3599 | void T_BJJump (objtype *ob); | ||
3600 | void T_BJDone (objtype *ob); | ||
3601 | void T_BJYell (objtype *ob); | ||
3602 | |||
3603 | void T_DeathCam (objtype *ob); | ||
3604 | |||
3605 | extern statetype s_bjrun1; | ||
3606 | extern statetype s_bjrun1s; | ||
3607 | extern statetype s_bjrun2; | ||
3608 | extern statetype s_bjrun3; | ||
3609 | extern statetype s_bjrun3s; | ||
3610 | extern statetype s_bjrun4; | ||
3611 | |||
3612 | extern statetype s_bjjump1; | ||
3613 | extern statetype s_bjjump2; | ||
3614 | extern statetype s_bjjump3; | ||
3615 | extern statetype s_bjjump4; | ||
3616 | |||
3617 | |||
3618 | statetype s_bjrun1 = {false,SPR_BJ_W1,12,(statefunc)T_BJRun,NULL,&s_bjrun1s}; | ||
3619 | statetype s_bjrun1s = {false,SPR_BJ_W1,3, NULL,NULL,&s_bjrun2}; | ||
3620 | statetype s_bjrun2 = {false,SPR_BJ_W2,8,(statefunc)T_BJRun,NULL,&s_bjrun3}; | ||
3621 | statetype s_bjrun3 = {false,SPR_BJ_W3,12,(statefunc)T_BJRun,NULL,&s_bjrun3s}; | ||
3622 | statetype s_bjrun3s = {false,SPR_BJ_W3,3, NULL,NULL,&s_bjrun4}; | ||
3623 | statetype s_bjrun4 = {false,SPR_BJ_W4,8,(statefunc)T_BJRun,NULL,&s_bjrun1}; | ||
3624 | |||
3625 | |||
3626 | statetype s_bjjump1 = {false,SPR_BJ_JUMP1,14,(statefunc)T_BJJump,NULL,&s_bjjump2}; | ||
3627 | statetype s_bjjump2 = {false,SPR_BJ_JUMP2,14,(statefunc)T_BJJump,(statefunc)T_BJYell,&s_bjjump3}; | ||
3628 | statetype s_bjjump3 = {false,SPR_BJ_JUMP3,14,(statefunc)T_BJJump,NULL,&s_bjjump4}; | ||
3629 | statetype s_bjjump4 = {false,SPR_BJ_JUMP4,300,NULL,(statefunc)T_BJDone,&s_bjjump4}; | ||
3630 | |||
3631 | |||
3632 | statetype s_deathcam = {false,0,0,NULL,NULL,NULL}; | ||
3633 | |||
3634 | |||
3635 | /* | ||
3636 | =============== | ||
3637 | = | ||
3638 | = SpawnBJVictory | ||
3639 | = | ||
3640 | =============== | ||
3641 | */ | ||
3642 | |||
3643 | void SpawnBJVictory (void) | ||
3644 | { | ||
3645 | SpawnNewObj (player->tilex,player->tiley+1,&s_bjrun1); | ||
3646 | newobj->x = player->x; | ||
3647 | newobj->y = player->y; | ||
3648 | newobj->obclass = bjobj; | ||
3649 | newobj->dir = north; | ||
3650 | newobj->temp1 = 6; // tiles to run forward | ||
3651 | } | ||
3652 | |||
3653 | |||
3654 | |||
3655 | /* | ||
3656 | =============== | ||
3657 | = | ||
3658 | = T_BJRun | ||
3659 | = | ||
3660 | =============== | ||
3661 | */ | ||
3662 | |||
3663 | void T_BJRun (objtype *ob) | ||
3664 | { | ||
3665 | int32_t move; | ||
3666 | |||
3667 | move = BJRUNSPEED*tics; | ||
3668 | |||
3669 | while (move) | ||
3670 | { | ||
3671 | if (move < ob->distance) | ||
3672 | { | ||
3673 | MoveObj (ob,move); | ||
3674 | break; | ||
3675 | } | ||
3676 | |||
3677 | |||
3678 | ob->x = ((int32_t)ob->tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
3679 | ob->y = ((int32_t)ob->tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
3680 | move -= ob->distance; | ||
3681 | |||
3682 | SelectPathDir (ob); | ||
3683 | |||
3684 | if ( !(--ob->temp1) ) | ||
3685 | { | ||
3686 | NewState (ob,&s_bjjump1); | ||
3687 | return; | ||
3688 | } | ||
3689 | } | ||
3690 | } | ||
3691 | |||
3692 | |||
3693 | /* | ||
3694 | =============== | ||
3695 | = | ||
3696 | = T_BJJump | ||
3697 | = | ||
3698 | =============== | ||
3699 | */ | ||
3700 | |||
3701 | void T_BJJump (objtype *ob) | ||
3702 | { | ||
3703 | int32_t move; | ||
3704 | |||
3705 | move = BJJUMPSPEED*tics; | ||
3706 | MoveObj (ob,move); | ||
3707 | } | ||
3708 | |||
3709 | |||
3710 | /* | ||
3711 | =============== | ||
3712 | = | ||
3713 | = T_BJYell | ||
3714 | = | ||
3715 | =============== | ||
3716 | */ | ||
3717 | |||
3718 | void T_BJYell (objtype *ob) | ||
3719 | { | ||
3720 | PlaySoundLocActor(YEAHSND,ob); // JAB | ||
3721 | } | ||
3722 | |||
3723 | |||
3724 | /* | ||
3725 | =============== | ||
3726 | = | ||
3727 | = T_BJDone | ||
3728 | = | ||
3729 | =============== | ||
3730 | */ | ||
3731 | |||
3732 | void T_BJDone (objtype * ob) | ||
3733 | { | ||
3734 | playstate = ex_victorious; // exit castle tile | ||
3735 | } | ||
3736 | |||
3737 | |||
3738 | |||
3739 | //=========================================================================== | ||
3740 | |||
3741 | |||
3742 | /* | ||
3743 | =============== | ||
3744 | = | ||
3745 | = CheckPosition | ||
3746 | = | ||
3747 | =============== | ||
3748 | */ | ||
3749 | |||
3750 | boolean CheckPosition (objtype *ob) | ||
3751 | { | ||
3752 | int x,y,xl,yl,xh,yh; | ||
3753 | objtype *check; | ||
3754 | |||
3755 | xl = (ob->x-PLAYERSIZE) >> TILESHIFT; | ||
3756 | yl = (ob->y-PLAYERSIZE) >> TILESHIFT; | ||
3757 | |||
3758 | xh = (ob->x+PLAYERSIZE) >> TILESHIFT; | ||
3759 | yh = (ob->y+PLAYERSIZE) >> TILESHIFT; | ||
3760 | |||
3761 | // | ||
3762 | // check for solid walls | ||
3763 | // | ||
3764 | for (y=yl;y<=yh;y++) | ||
3765 | { | ||
3766 | for (x=xl;x<=xh;x++) | ||
3767 | { | ||
3768 | check = actorat[x][y]; | ||
3769 | if (check && !ISPOINTER(check)) | ||
3770 | return false; | ||
3771 | } | ||
3772 | } | ||
3773 | |||
3774 | return true; | ||
3775 | } | ||
3776 | |||
3777 | |||
3778 | /* | ||
3779 | =============== | ||
3780 | = | ||
3781 | = A_StartDeathCam | ||
3782 | = | ||
3783 | =============== | ||
3784 | */ | ||
3785 | |||
3786 | void A_StartDeathCam (objtype *ob) | ||
3787 | { | ||
3788 | int32_t dx,dy; | ||
3789 | float fangle; | ||
3790 | int32_t xmove,ymove; | ||
3791 | int32_t dist; | ||
3792 | |||
3793 | FinishPaletteShifts (); | ||
3794 | |||
3795 | VW_WaitVBL (100); | ||
3796 | |||
3797 | if (gamestate.victoryflag) | ||
3798 | { | ||
3799 | playstate = ex_victorious; // exit castle tile | ||
3800 | return; | ||
3801 | } | ||
3802 | |||
3803 | if(usedoublebuffering) VH_UpdateScreen(); | ||
3804 | |||
3805 | gamestate.victoryflag = true; | ||
3806 | unsigned fadeheight = viewsize != 21 ? screenHeight-scaleFactor*STATUSLINES : screenHeight; | ||
3807 | VL_BarScaledCoord (0, 0, screenWidth, fadeheight, bordercol); | ||
3808 | FizzleFade(screenBuffer, 0, 0, screenWidth, fadeheight, 70, false); | ||
3809 | |||
3810 | if (bordercol != VIEWCOLOR) | ||
3811 | { | ||
3812 | CA_CacheGrChunk (STARTFONT+1); | ||
3813 | fontnumber = 1; | ||
3814 | SETFONTCOLOR(15,bordercol); | ||
3815 | PrintX = 68; PrintY = 45; | ||
3816 | US_Print (STR_SEEAGAIN); | ||
3817 | UNCACHEGRCHUNK(STARTFONT+1); | ||
3818 | } | ||
3819 | else | ||
3820 | { | ||
3821 | CacheLump(LEVELEND_LUMP_START,LEVELEND_LUMP_END); | ||
3822 | #ifdef JAPAN | ||
3823 | #ifndef JAPDEMO | ||
3824 | CA_CacheScreen(C_LETSSEEPIC); | ||
3825 | #endif | ||
3826 | #else | ||
3827 | Write(0,7,STR_SEEAGAIN); | ||
3828 | #endif | ||
3829 | } | ||
3830 | |||
3831 | VW_UpdateScreen (); | ||
3832 | if(usedoublebuffering) VH_UpdateScreen(); | ||
3833 | |||
3834 | IN_UserInput(300); | ||
3835 | |||
3836 | // | ||
3837 | // line angle up exactly | ||
3838 | // | ||
3839 | NewState (player,&s_deathcam); | ||
3840 | |||
3841 | player->x = gamestate.killx; | ||
3842 | player->y = gamestate.killy; | ||
3843 | |||
3844 | dx = ob->x - player->x; | ||
3845 | dy = player->y - ob->y; | ||
3846 | |||
3847 | fangle = (float) atan2((float) dy, (float) dx); // returns -pi to pi | ||
3848 | if (fangle<0) | ||
3849 | fangle = (float) (M_PI*2+fangle); | ||
3850 | |||
3851 | player->angle = (short) (fangle/(M_PI*2)*ANGLES); | ||
3852 | |||
3853 | // | ||
3854 | // try to position as close as possible without being in a wall | ||
3855 | // | ||
3856 | dist = 0x14000l; | ||
3857 | do | ||
3858 | { | ||
3859 | xmove = FixedMul(dist,costable[player->angle]); | ||
3860 | ymove = -FixedMul(dist,sintable[player->angle]); | ||
3861 | |||
3862 | player->x = ob->x - xmove; | ||
3863 | player->y = ob->y - ymove; | ||
3864 | dist += 0x1000; | ||
3865 | |||
3866 | } while (!CheckPosition (player)); | ||
3867 | plux = (word)(player->x >> UNSIGNEDSHIFT); // scale to fit in unsigned | ||
3868 | pluy = (word)(player->y >> UNSIGNEDSHIFT); | ||
3869 | player->tilex = (word)(player->x >> TILESHIFT); // scale to tile values | ||
3870 | player->tiley = (word)(player->y >> TILESHIFT); | ||
3871 | |||
3872 | // | ||
3873 | // go back to the game | ||
3874 | // | ||
3875 | |||
3876 | DrawPlayBorder (); | ||
3877 | |||
3878 | fizzlein = true; | ||
3879 | |||
3880 | switch (ob->obclass) | ||
3881 | { | ||
3882 | #ifndef SPEAR | ||
3883 | case schabbobj: | ||
3884 | NewState (ob,&s_schabbdeathcam); | ||
3885 | break; | ||
3886 | case realhitlerobj: | ||
3887 | NewState (ob,&s_hitlerdeathcam); | ||
3888 | break; | ||
3889 | case giftobj: | ||
3890 | NewState (ob,&s_giftdeathcam); | ||
3891 | break; | ||
3892 | case fatobj: | ||
3893 | NewState (ob,&s_fatdeathcam); | ||
3894 | break; | ||
3895 | #endif | ||
3896 | } | ||
3897 | } | ||
3898 | |||
3899 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_agent.c b/apps/plugins/sdl/progs/wolf3d/wl_agent.c new file mode 100644 index 0000000000..6b9b124a64 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_agent.c | |||
@@ -0,0 +1,1499 @@ | |||
1 | // WL_AGENT.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | /* | ||
7 | ============================================================================= | ||
8 | |||
9 | LOCAL CONSTANTS | ||
10 | |||
11 | ============================================================================= | ||
12 | */ | ||
13 | |||
14 | #define MAXMOUSETURN 10 | ||
15 | |||
16 | |||
17 | #define MOVESCALE 150l | ||
18 | #define BACKMOVESCALE 100l | ||
19 | #define ANGLESCALE 20 | ||
20 | |||
21 | /* | ||
22 | ============================================================================= | ||
23 | |||
24 | GLOBAL VARIABLES | ||
25 | |||
26 | ============================================================================= | ||
27 | */ | ||
28 | |||
29 | |||
30 | |||
31 | // | ||
32 | // player state info | ||
33 | // | ||
34 | int32_t thrustspeed; | ||
35 | |||
36 | word plux,pluy; // player coordinates scaled to unsigned | ||
37 | |||
38 | short anglefrac; | ||
39 | |||
40 | objtype *LastAttacker; | ||
41 | |||
42 | /* | ||
43 | ============================================================================= | ||
44 | |||
45 | LOCAL VARIABLES | ||
46 | |||
47 | ============================================================================= | ||
48 | */ | ||
49 | |||
50 | |||
51 | void T_Player (objtype *ob); | ||
52 | void T_Attack (objtype *ob); | ||
53 | |||
54 | statetype s_player = {false,0,0,(statefunc) T_Player,NULL,NULL}; | ||
55 | statetype s_attack = {false,0,0,(statefunc) T_Attack,NULL,NULL}; | ||
56 | |||
57 | struct atkinf | ||
58 | { | ||
59 | int8_t tics,attack,frame; // attack is 1 for gun, 2 for knife | ||
60 | } attackinfo[4][14] = | ||
61 | { | ||
62 | { {6,0,1},{6,2,2},{6,0,3},{6,-1,4} }, | ||
63 | { {6,0,1},{6,1,2},{6,0,3},{6,-1,4} }, | ||
64 | { {6,0,1},{6,1,2},{6,3,3},{6,-1,4} }, | ||
65 | { {6,0,1},{6,1,2},{6,4,3},{6,-1,4} }, | ||
66 | }; | ||
67 | |||
68 | //=========================================================================== | ||
69 | |||
70 | //---------- | ||
71 | |||
72 | void Attack (void); | ||
73 | void Use (void); | ||
74 | void Search (objtype *ob); | ||
75 | void SelectWeapon (void); | ||
76 | void SelectItem (void); | ||
77 | |||
78 | //---------- | ||
79 | |||
80 | boolean TryMove (objtype *ob); | ||
81 | void T_Player (objtype *ob); | ||
82 | |||
83 | void ClipMove (objtype *ob, int32_t xmove, int32_t ymove); | ||
84 | |||
85 | /* | ||
86 | ============================================================================= | ||
87 | |||
88 | CONTROL STUFF | ||
89 | |||
90 | ============================================================================= | ||
91 | */ | ||
92 | |||
93 | /* | ||
94 | ====================== | ||
95 | = | ||
96 | = CheckWeaponChange | ||
97 | = | ||
98 | = Keys 1-4 change weapons | ||
99 | = | ||
100 | ====================== | ||
101 | */ | ||
102 | |||
103 | void CheckWeaponChange (void) | ||
104 | { | ||
105 | int newWeapon = -1; | ||
106 | |||
107 | if (!gamestate.ammo) // must use knife with no ammo | ||
108 | return; | ||
109 | |||
110 | if(buttonstate[bt_nextweapon] && !buttonheld[bt_nextweapon]) | ||
111 | { | ||
112 | newWeapon = gamestate.weapon + 1; | ||
113 | if(newWeapon > gamestate.bestweapon) newWeapon = 0; | ||
114 | } | ||
115 | else if(buttonstate[bt_prevweapon] && !buttonheld[bt_prevweapon]) | ||
116 | { | ||
117 | newWeapon = gamestate.weapon - 1; | ||
118 | if(newWeapon < 0) newWeapon = gamestate.bestweapon; | ||
119 | } | ||
120 | else | ||
121 | { | ||
122 | for(int i = wp_knife; i <= gamestate.bestweapon; i++) | ||
123 | { | ||
124 | if (buttonstate[bt_readyknife + i - wp_knife]) | ||
125 | { | ||
126 | newWeapon = i; | ||
127 | break; | ||
128 | } | ||
129 | } | ||
130 | } | ||
131 | |||
132 | if(newWeapon != -1) | ||
133 | { | ||
134 | gamestate.weapon = gamestate.chosenweapon = (weapontype) newWeapon; | ||
135 | DrawWeapon(); | ||
136 | } | ||
137 | } | ||
138 | |||
139 | |||
140 | /* | ||
141 | ======================= | ||
142 | = | ||
143 | = ControlMovement | ||
144 | = | ||
145 | = Takes controlx,controly, and buttonstate[bt_strafe] | ||
146 | = | ||
147 | = Changes the player's angle and position | ||
148 | = | ||
149 | = There is an angle hack because when going 70 fps, the roundoff becomes | ||
150 | = significant | ||
151 | = | ||
152 | ======================= | ||
153 | */ | ||
154 | |||
155 | void ControlMovement (objtype *ob) | ||
156 | { | ||
157 | int32_t oldx,oldy; | ||
158 | int angle; | ||
159 | int angleunits; | ||
160 | |||
161 | thrustspeed = 0; | ||
162 | |||
163 | oldx = player->x; | ||
164 | oldy = player->y; | ||
165 | |||
166 | if(buttonstate[bt_strafeleft]) | ||
167 | { | ||
168 | angle = ob->angle + ANGLES/4; | ||
169 | if(angle >= ANGLES) | ||
170 | angle -= ANGLES; | ||
171 | if(buttonstate[bt_run]) | ||
172 | Thrust(angle, RUNMOVE * MOVESCALE * tics); | ||
173 | else | ||
174 | Thrust(angle, BASEMOVE * MOVESCALE * tics); | ||
175 | } | ||
176 | |||
177 | if(buttonstate[bt_straferight]) | ||
178 | { | ||
179 | angle = ob->angle - ANGLES/4; | ||
180 | if(angle < 0) | ||
181 | angle += ANGLES; | ||
182 | if(buttonstate[bt_run]) | ||
183 | Thrust(angle, RUNMOVE * MOVESCALE * tics ); | ||
184 | else | ||
185 | Thrust(angle, BASEMOVE * MOVESCALE * tics); | ||
186 | } | ||
187 | |||
188 | // | ||
189 | // side to side move | ||
190 | // | ||
191 | if (buttonstate[bt_strafe]) | ||
192 | { | ||
193 | // | ||
194 | // strafing | ||
195 | // | ||
196 | // | ||
197 | if (controlx > 0) | ||
198 | { | ||
199 | angle = ob->angle - ANGLES/4; | ||
200 | if (angle < 0) | ||
201 | angle += ANGLES; | ||
202 | Thrust (angle,controlx*MOVESCALE); // move to left | ||
203 | } | ||
204 | else if (controlx < 0) | ||
205 | { | ||
206 | angle = ob->angle + ANGLES/4; | ||
207 | if (angle >= ANGLES) | ||
208 | angle -= ANGLES; | ||
209 | Thrust (angle,-controlx*MOVESCALE); // move to right | ||
210 | } | ||
211 | } | ||
212 | else | ||
213 | { | ||
214 | // | ||
215 | // not strafing | ||
216 | // | ||
217 | anglefrac += controlx; | ||
218 | angleunits = anglefrac/ANGLESCALE; | ||
219 | anglefrac -= angleunits*ANGLESCALE; | ||
220 | ob->angle -= angleunits; | ||
221 | |||
222 | if (ob->angle >= ANGLES) | ||
223 | ob->angle -= ANGLES; | ||
224 | if (ob->angle < 0) | ||
225 | ob->angle += ANGLES; | ||
226 | |||
227 | } | ||
228 | |||
229 | // | ||
230 | // forward/backwards move | ||
231 | // | ||
232 | if (controly < 0) | ||
233 | { | ||
234 | Thrust (ob->angle,-controly*MOVESCALE); // move forwards | ||
235 | } | ||
236 | else if (controly > 0) | ||
237 | { | ||
238 | angle = ob->angle + ANGLES/2; | ||
239 | if (angle >= ANGLES) | ||
240 | angle -= ANGLES; | ||
241 | Thrust (angle,controly*BACKMOVESCALE); // move backwards | ||
242 | } | ||
243 | |||
244 | if (gamestate.victoryflag) // watching the BJ actor | ||
245 | return; | ||
246 | } | ||
247 | |||
248 | /* | ||
249 | ============================================================================= | ||
250 | |||
251 | STATUS WINDOW STUFF | ||
252 | |||
253 | ============================================================================= | ||
254 | */ | ||
255 | |||
256 | |||
257 | /* | ||
258 | ================== | ||
259 | = | ||
260 | = StatusDrawPic | ||
261 | = | ||
262 | ================== | ||
263 | */ | ||
264 | |||
265 | void StatusDrawPic (unsigned x, unsigned y, unsigned picnum) | ||
266 | { | ||
267 | LatchDrawPicScaledCoord ((screenWidth-scaleFactor*320)/16 + scaleFactor*x, | ||
268 | screenHeight-scaleFactor*(STATUSLINES-y),picnum); | ||
269 | } | ||
270 | |||
271 | void StatusDrawFace(unsigned picnum) | ||
272 | { | ||
273 | StatusDrawPic(17, 4, picnum); | ||
274 | |||
275 | #ifdef _arch_dreamcast | ||
276 | DC_StatusDrawLCD(picnum); | ||
277 | #endif | ||
278 | } | ||
279 | |||
280 | |||
281 | /* | ||
282 | ================== | ||
283 | = | ||
284 | = DrawFace | ||
285 | = | ||
286 | ================== | ||
287 | */ | ||
288 | |||
289 | void DrawFace (void) | ||
290 | { | ||
291 | if(viewsize == 21 && ingame) return; | ||
292 | if (SD_SoundPlaying() == GETGATLINGSND) | ||
293 | StatusDrawFace(GOTGATLINGPIC); | ||
294 | else if (gamestate.health) | ||
295 | { | ||
296 | #ifdef SPEAR | ||
297 | if (godmode) | ||
298 | StatusDrawFace(GODMODEFACE1PIC+gamestate.faceframe); | ||
299 | else | ||
300 | #endif | ||
301 | StatusDrawFace(FACE1APIC+3*((100-gamestate.health)/16)+gamestate.faceframe); | ||
302 | } | ||
303 | else | ||
304 | { | ||
305 | #ifndef SPEAR | ||
306 | if (LastAttacker && LastAttacker->obclass == needleobj) | ||
307 | StatusDrawFace(MUTANTBJPIC); | ||
308 | else | ||
309 | #endif | ||
310 | StatusDrawFace(FACE8APIC); | ||
311 | } | ||
312 | } | ||
313 | |||
314 | /* | ||
315 | =============== | ||
316 | = | ||
317 | = UpdateFace | ||
318 | = | ||
319 | = Calls draw face if time to change | ||
320 | = | ||
321 | =============== | ||
322 | */ | ||
323 | |||
324 | int facecount = 0; | ||
325 | int facetimes = 0; | ||
326 | |||
327 | void UpdateFace (void) | ||
328 | { | ||
329 | // don't make demo depend on sound playback | ||
330 | if(demoplayback || demorecord) | ||
331 | { | ||
332 | if(facetimes > 0) | ||
333 | { | ||
334 | facetimes--; | ||
335 | return; | ||
336 | } | ||
337 | } | ||
338 | else if(SD_SoundPlaying() == GETGATLINGSND) | ||
339 | return; | ||
340 | |||
341 | facecount += tics; | ||
342 | if (facecount > US_RndT()) | ||
343 | { | ||
344 | gamestate.faceframe = (US_RndT()>>6); | ||
345 | if (gamestate.faceframe==3) | ||
346 | gamestate.faceframe = 1; | ||
347 | |||
348 | facecount = 0; | ||
349 | DrawFace (); | ||
350 | } | ||
351 | } | ||
352 | |||
353 | |||
354 | |||
355 | /* | ||
356 | =============== | ||
357 | = | ||
358 | = LatchNumber | ||
359 | = | ||
360 | = right justifies and pads with blanks | ||
361 | = | ||
362 | =============== | ||
363 | */ | ||
364 | |||
365 | static void LatchNumber (int x, int y, unsigned width, int32_t number) | ||
366 | { | ||
367 | unsigned length,c; | ||
368 | char str[20]; | ||
369 | |||
370 | ltoa (number,str,10); | ||
371 | |||
372 | length = (unsigned) strlen (str); | ||
373 | |||
374 | while (length<width) | ||
375 | { | ||
376 | StatusDrawPic (x,y,N_BLANKPIC); | ||
377 | x++; | ||
378 | width--; | ||
379 | } | ||
380 | |||
381 | c = length <= width ? 0 : length-width; | ||
382 | |||
383 | while (c<length) | ||
384 | { | ||
385 | StatusDrawPic (x,y,str[c]-'0'+ N_0PIC); | ||
386 | x++; | ||
387 | c++; | ||
388 | } | ||
389 | } | ||
390 | |||
391 | |||
392 | /* | ||
393 | =============== | ||
394 | = | ||
395 | = DrawHealth | ||
396 | = | ||
397 | =============== | ||
398 | */ | ||
399 | |||
400 | void DrawHealth (void) | ||
401 | { | ||
402 | if(viewsize == 21 && ingame) return; | ||
403 | LatchNumber (21,16,3,gamestate.health); | ||
404 | } | ||
405 | |||
406 | |||
407 | /* | ||
408 | =============== | ||
409 | = | ||
410 | = TakeDamage | ||
411 | = | ||
412 | =============== | ||
413 | */ | ||
414 | |||
415 | void TakeDamage (int points,objtype *attacker) | ||
416 | { | ||
417 | LastAttacker = attacker; | ||
418 | |||
419 | if (gamestate.victoryflag) | ||
420 | return; | ||
421 | if (gamestate.difficulty==gd_baby) | ||
422 | points>>=2; | ||
423 | |||
424 | if (!godmode) | ||
425 | gamestate.health -= points; | ||
426 | |||
427 | if (gamestate.health<=0) | ||
428 | { | ||
429 | gamestate.health = 0; | ||
430 | playstate = ex_died; | ||
431 | killerobj = attacker; | ||
432 | } | ||
433 | |||
434 | if (godmode != 2) | ||
435 | StartDamageFlash (points); | ||
436 | |||
437 | DrawHealth (); | ||
438 | DrawFace (); | ||
439 | |||
440 | // | ||
441 | // MAKE BJ'S EYES BUG IF MAJOR DAMAGE! | ||
442 | // | ||
443 | #ifdef SPEAR | ||
444 | if (points > 30 && gamestate.health!=0 && !godmode && viewsize != 21) | ||
445 | { | ||
446 | StatusDrawFace(BJOUCHPIC); | ||
447 | facecount = 0; | ||
448 | } | ||
449 | #endif | ||
450 | } | ||
451 | |||
452 | /* | ||
453 | =============== | ||
454 | = | ||
455 | = HealSelf | ||
456 | = | ||
457 | =============== | ||
458 | */ | ||
459 | |||
460 | void HealSelf (int points) | ||
461 | { | ||
462 | gamestate.health += points; | ||
463 | if (gamestate.health>100) | ||
464 | gamestate.health = 100; | ||
465 | |||
466 | DrawHealth (); | ||
467 | DrawFace (); | ||
468 | } | ||
469 | |||
470 | |||
471 | //=========================================================================== | ||
472 | |||
473 | |||
474 | /* | ||
475 | =============== | ||
476 | = | ||
477 | = DrawLevel | ||
478 | = | ||
479 | =============== | ||
480 | */ | ||
481 | |||
482 | void DrawLevel (void) | ||
483 | { | ||
484 | if(viewsize == 21 && ingame) return; | ||
485 | #ifdef SPEAR | ||
486 | if (gamestate.mapon == 20) | ||
487 | LatchNumber (2,16,2,18); | ||
488 | else | ||
489 | #endif | ||
490 | LatchNumber (2,16,2,gamestate.mapon+1); | ||
491 | } | ||
492 | |||
493 | //=========================================================================== | ||
494 | |||
495 | |||
496 | /* | ||
497 | =============== | ||
498 | = | ||
499 | = DrawLives | ||
500 | = | ||
501 | =============== | ||
502 | */ | ||
503 | |||
504 | void DrawLives (void) | ||
505 | { | ||
506 | if(viewsize == 21 && ingame) return; | ||
507 | LatchNumber (14,16,1,gamestate.lives); | ||
508 | } | ||
509 | |||
510 | |||
511 | /* | ||
512 | =============== | ||
513 | = | ||
514 | = GiveExtraMan | ||
515 | = | ||
516 | =============== | ||
517 | */ | ||
518 | |||
519 | void GiveExtraMan (void) | ||
520 | { | ||
521 | if (gamestate.lives<9) | ||
522 | gamestate.lives++; | ||
523 | DrawLives (); | ||
524 | SD_PlaySound (BONUS1UPSND); | ||
525 | } | ||
526 | |||
527 | //=========================================================================== | ||
528 | |||
529 | /* | ||
530 | =============== | ||
531 | = | ||
532 | = DrawScore | ||
533 | = | ||
534 | =============== | ||
535 | */ | ||
536 | |||
537 | void DrawScore (void) | ||
538 | { | ||
539 | if(viewsize == 21 && ingame) return; | ||
540 | LatchNumber (6,16,6,gamestate.score); | ||
541 | } | ||
542 | |||
543 | /* | ||
544 | =============== | ||
545 | = | ||
546 | = GivePoints | ||
547 | = | ||
548 | =============== | ||
549 | */ | ||
550 | |||
551 | void GivePoints (int32_t points) | ||
552 | { | ||
553 | gamestate.score += points; | ||
554 | while (gamestate.score >= gamestate.nextextra) | ||
555 | { | ||
556 | gamestate.nextextra += EXTRAPOINTS; | ||
557 | GiveExtraMan (); | ||
558 | } | ||
559 | DrawScore (); | ||
560 | } | ||
561 | |||
562 | //=========================================================================== | ||
563 | |||
564 | /* | ||
565 | ================== | ||
566 | = | ||
567 | = DrawWeapon | ||
568 | = | ||
569 | ================== | ||
570 | */ | ||
571 | |||
572 | void DrawWeapon (void) | ||
573 | { | ||
574 | if(viewsize == 21 && ingame) return; | ||
575 | StatusDrawPic (32,8,KNIFEPIC+gamestate.weapon); | ||
576 | } | ||
577 | |||
578 | |||
579 | /* | ||
580 | ================== | ||
581 | = | ||
582 | = DrawKeys | ||
583 | = | ||
584 | ================== | ||
585 | */ | ||
586 | |||
587 | void DrawKeys (void) | ||
588 | { | ||
589 | if(viewsize == 21 && ingame) return; | ||
590 | if (gamestate.keys & 1) | ||
591 | StatusDrawPic (30,4,GOLDKEYPIC); | ||
592 | else | ||
593 | StatusDrawPic (30,4,NOKEYPIC); | ||
594 | |||
595 | if (gamestate.keys & 2) | ||
596 | StatusDrawPic (30,20,SILVERKEYPIC); | ||
597 | else | ||
598 | StatusDrawPic (30,20,NOKEYPIC); | ||
599 | } | ||
600 | |||
601 | /* | ||
602 | ================== | ||
603 | = | ||
604 | = GiveWeapon | ||
605 | = | ||
606 | ================== | ||
607 | */ | ||
608 | |||
609 | void GiveWeapon (int weapon) | ||
610 | { | ||
611 | GiveAmmo (6); | ||
612 | |||
613 | if (gamestate.bestweapon<weapon) | ||
614 | gamestate.bestweapon = gamestate.weapon | ||
615 | = gamestate.chosenweapon = (weapontype) weapon; | ||
616 | |||
617 | DrawWeapon (); | ||
618 | } | ||
619 | |||
620 | //=========================================================================== | ||
621 | |||
622 | /* | ||
623 | =============== | ||
624 | = | ||
625 | = DrawAmmo | ||
626 | = | ||
627 | =============== | ||
628 | */ | ||
629 | |||
630 | void DrawAmmo (void) | ||
631 | { | ||
632 | if(viewsize == 21 && ingame) return; | ||
633 | LatchNumber (27,16,2,gamestate.ammo); | ||
634 | } | ||
635 | |||
636 | /* | ||
637 | =============== | ||
638 | = | ||
639 | = GiveAmmo | ||
640 | = | ||
641 | =============== | ||
642 | */ | ||
643 | |||
644 | void GiveAmmo (int ammo) | ||
645 | { | ||
646 | if (!gamestate.ammo) // knife was out | ||
647 | { | ||
648 | if (!gamestate.attackframe) | ||
649 | { | ||
650 | gamestate.weapon = gamestate.chosenweapon; | ||
651 | DrawWeapon (); | ||
652 | } | ||
653 | } | ||
654 | gamestate.ammo += ammo; | ||
655 | if (gamestate.ammo > 99) | ||
656 | gamestate.ammo = 99; | ||
657 | DrawAmmo (); | ||
658 | } | ||
659 | |||
660 | //=========================================================================== | ||
661 | |||
662 | /* | ||
663 | ================== | ||
664 | = | ||
665 | = GiveKey | ||
666 | = | ||
667 | ================== | ||
668 | */ | ||
669 | |||
670 | void GiveKey (int key) | ||
671 | { | ||
672 | gamestate.keys |= (1<<key); | ||
673 | DrawKeys (); | ||
674 | } | ||
675 | |||
676 | |||
677 | |||
678 | /* | ||
679 | ============================================================================= | ||
680 | |||
681 | MOVEMENT | ||
682 | |||
683 | ============================================================================= | ||
684 | */ | ||
685 | |||
686 | |||
687 | /* | ||
688 | =================== | ||
689 | = | ||
690 | = GetBonus | ||
691 | = | ||
692 | =================== | ||
693 | */ | ||
694 | void GetBonus (statobj_t *check) | ||
695 | { | ||
696 | switch (check->itemnumber) | ||
697 | { | ||
698 | case bo_firstaid: | ||
699 | if (gamestate.health == 100) | ||
700 | return; | ||
701 | |||
702 | SD_PlaySound (HEALTH2SND); | ||
703 | HealSelf (25); | ||
704 | break; | ||
705 | |||
706 | case bo_key1: | ||
707 | case bo_key2: | ||
708 | case bo_key3: | ||
709 | case bo_key4: | ||
710 | GiveKey (check->itemnumber - bo_key1); | ||
711 | SD_PlaySound (GETKEYSND); | ||
712 | break; | ||
713 | |||
714 | case bo_cross: | ||
715 | SD_PlaySound (BONUS1SND); | ||
716 | GivePoints (100); | ||
717 | gamestate.treasurecount++; | ||
718 | break; | ||
719 | case bo_chalice: | ||
720 | SD_PlaySound (BONUS2SND); | ||
721 | GivePoints (500); | ||
722 | gamestate.treasurecount++; | ||
723 | break; | ||
724 | case bo_bible: | ||
725 | SD_PlaySound (BONUS3SND); | ||
726 | GivePoints (1000); | ||
727 | gamestate.treasurecount++; | ||
728 | break; | ||
729 | case bo_crown: | ||
730 | SD_PlaySound (BONUS4SND); | ||
731 | GivePoints (5000); | ||
732 | gamestate.treasurecount++; | ||
733 | break; | ||
734 | |||
735 | case bo_clip: | ||
736 | if (gamestate.ammo == 99) | ||
737 | return; | ||
738 | |||
739 | SD_PlaySound (GETAMMOSND); | ||
740 | GiveAmmo (8); | ||
741 | break; | ||
742 | case bo_clip2: | ||
743 | if (gamestate.ammo == 99) | ||
744 | return; | ||
745 | |||
746 | SD_PlaySound (GETAMMOSND); | ||
747 | GiveAmmo (4); | ||
748 | break; | ||
749 | |||
750 | #ifdef SPEAR | ||
751 | case bo_25clip: | ||
752 | if (gamestate.ammo == 99) | ||
753 | return; | ||
754 | |||
755 | SD_PlaySound (GETAMMOBOXSND); | ||
756 | GiveAmmo (25); | ||
757 | break; | ||
758 | #endif | ||
759 | |||
760 | case bo_machinegun: | ||
761 | SD_PlaySound (GETMACHINESND); | ||
762 | GiveWeapon (wp_machinegun); | ||
763 | break; | ||
764 | case bo_chaingun: | ||
765 | SD_PlaySound (GETGATLINGSND); | ||
766 | facetimes = 38; | ||
767 | GiveWeapon (wp_chaingun); | ||
768 | |||
769 | if(viewsize != 21) | ||
770 | StatusDrawFace (GOTGATLINGPIC); | ||
771 | facecount = 0; | ||
772 | break; | ||
773 | |||
774 | case bo_fullheal: | ||
775 | SD_PlaySound (BONUS1UPSND); | ||
776 | HealSelf (99); | ||
777 | GiveAmmo (25); | ||
778 | GiveExtraMan (); | ||
779 | gamestate.treasurecount++; | ||
780 | break; | ||
781 | |||
782 | case bo_food: | ||
783 | if (gamestate.health == 100) | ||
784 | return; | ||
785 | |||
786 | SD_PlaySound (HEALTH1SND); | ||
787 | HealSelf (10); | ||
788 | break; | ||
789 | |||
790 | case bo_alpo: | ||
791 | if (gamestate.health == 100) | ||
792 | return; | ||
793 | |||
794 | SD_PlaySound (HEALTH1SND); | ||
795 | HealSelf (4); | ||
796 | break; | ||
797 | |||
798 | case bo_gibs: | ||
799 | if (gamestate.health >10) | ||
800 | return; | ||
801 | |||
802 | SD_PlaySound (SLURPIESND); | ||
803 | HealSelf (1); | ||
804 | break; | ||
805 | |||
806 | #ifdef SPEAR | ||
807 | case bo_spear: | ||
808 | spearflag = true; | ||
809 | spearx = player->x; | ||
810 | speary = player->y; | ||
811 | spearangle = player->angle; | ||
812 | playstate = ex_completed; | ||
813 | #endif | ||
814 | } | ||
815 | |||
816 | StartBonusFlash (); | ||
817 | check->shapenum = -1; // remove from list | ||
818 | } | ||
819 | |||
820 | /* | ||
821 | =================== | ||
822 | = | ||
823 | = TryMove | ||
824 | = | ||
825 | = returns true if move ok | ||
826 | = debug: use pointers to optimize | ||
827 | =================== | ||
828 | */ | ||
829 | |||
830 | boolean TryMove (objtype *ob) | ||
831 | { | ||
832 | int xl,yl,xh,yh,x,y; | ||
833 | objtype *check; | ||
834 | int32_t deltax,deltay; | ||
835 | |||
836 | xl = (ob->x-PLAYERSIZE) >>TILESHIFT; | ||
837 | yl = (ob->y-PLAYERSIZE) >>TILESHIFT; | ||
838 | |||
839 | xh = (ob->x+PLAYERSIZE) >>TILESHIFT; | ||
840 | yh = (ob->y+PLAYERSIZE) >>TILESHIFT; | ||
841 | |||
842 | #define PUSHWALLMINDIST PLAYERSIZE | ||
843 | |||
844 | // | ||
845 | // check for solid walls | ||
846 | // | ||
847 | for (y=yl;y<=yh;y++) | ||
848 | { | ||
849 | for (x=xl;x<=xh;x++) | ||
850 | { | ||
851 | check = actorat[x][y]; | ||
852 | if (check && !ISPOINTER(check)) | ||
853 | { | ||
854 | if(tilemap[x][y]==64 && x==pwallx && y==pwally) // back of moving pushwall? | ||
855 | { | ||
856 | switch(pwalldir) | ||
857 | { | ||
858 | case di_north: | ||
859 | if(ob->y-PUSHWALLMINDIST<=(pwally<<TILESHIFT)+((63-pwallpos)<<10)) | ||
860 | return false; | ||
861 | break; | ||
862 | case di_west: | ||
863 | if(ob->x-PUSHWALLMINDIST<=(pwallx<<TILESHIFT)+((63-pwallpos)<<10)) | ||
864 | return false; | ||
865 | break; | ||
866 | case di_east: | ||
867 | if(ob->x+PUSHWALLMINDIST>=(pwallx<<TILESHIFT)+(pwallpos<<10)) | ||
868 | return false; | ||
869 | break; | ||
870 | case di_south: | ||
871 | if(ob->y+PUSHWALLMINDIST>=(pwally<<TILESHIFT)+(pwallpos<<10)) | ||
872 | return false; | ||
873 | break; | ||
874 | } | ||
875 | } | ||
876 | else return false; | ||
877 | } | ||
878 | } | ||
879 | } | ||
880 | |||
881 | // | ||
882 | // check for actors | ||
883 | // | ||
884 | if (yl>0) | ||
885 | yl--; | ||
886 | if (yh<MAPSIZE-1) | ||
887 | yh++; | ||
888 | if (xl>0) | ||
889 | xl--; | ||
890 | if (xh<MAPSIZE-1) | ||
891 | xh++; | ||
892 | |||
893 | for (y=yl;y<=yh;y++) | ||
894 | { | ||
895 | for (x=xl;x<=xh;x++) | ||
896 | { | ||
897 | check = actorat[x][y]; | ||
898 | if (ISPOINTER(check) && check != player && (check->flags & FL_SHOOTABLE) ) | ||
899 | { | ||
900 | deltax = ob->x - check->x; | ||
901 | if (deltax < -MINACTORDIST || deltax > MINACTORDIST) | ||
902 | continue; | ||
903 | deltay = ob->y - check->y; | ||
904 | if (deltay < -MINACTORDIST || deltay > MINACTORDIST) | ||
905 | continue; | ||
906 | |||
907 | return false; | ||
908 | } | ||
909 | } | ||
910 | } | ||
911 | |||
912 | return true; | ||
913 | } | ||
914 | |||
915 | |||
916 | /* | ||
917 | =================== | ||
918 | = | ||
919 | = ClipMove | ||
920 | = | ||
921 | =================== | ||
922 | */ | ||
923 | |||
924 | void ClipMove (objtype *ob, int32_t xmove, int32_t ymove) | ||
925 | { | ||
926 | int32_t basex,basey; | ||
927 | |||
928 | basex = ob->x; | ||
929 | basey = ob->y; | ||
930 | |||
931 | ob->x = basex+xmove; | ||
932 | ob->y = basey+ymove; | ||
933 | if (TryMove (ob)) | ||
934 | return; | ||
935 | |||
936 | #ifndef REMDEBUG | ||
937 | if (noclip && ob->x > 2*TILEGLOBAL && ob->y > 2*TILEGLOBAL | ||
938 | && ob->x < (((int32_t)(mapwidth-1))<<TILESHIFT) | ||
939 | && ob->y < (((int32_t)(mapheight-1))<<TILESHIFT) ) | ||
940 | return; // walk through walls | ||
941 | #endif | ||
942 | |||
943 | if (!SD_SoundPlaying()) | ||
944 | SD_PlaySound (HITWALLSND); | ||
945 | |||
946 | ob->x = basex+xmove; | ||
947 | ob->y = basey; | ||
948 | if (TryMove (ob)) | ||
949 | return; | ||
950 | |||
951 | ob->x = basex; | ||
952 | ob->y = basey+ymove; | ||
953 | if (TryMove (ob)) | ||
954 | return; | ||
955 | |||
956 | ob->x = basex; | ||
957 | ob->y = basey; | ||
958 | } | ||
959 | |||
960 | //========================================================================== | ||
961 | |||
962 | /* | ||
963 | =================== | ||
964 | = | ||
965 | = VictoryTile | ||
966 | = | ||
967 | =================== | ||
968 | */ | ||
969 | |||
970 | void VictoryTile (void) | ||
971 | { | ||
972 | #ifndef SPEAR | ||
973 | SpawnBJVictory (); | ||
974 | #endif | ||
975 | |||
976 | gamestate.victoryflag = true; | ||
977 | } | ||
978 | |||
979 | /* | ||
980 | =================== | ||
981 | = | ||
982 | = Thrust | ||
983 | = | ||
984 | =================== | ||
985 | */ | ||
986 | |||
987 | // For player movement in demos exactly as in the original Wolf3D v1.4 source code | ||
988 | static fixed FixedByFracOrig(fixed a, fixed b) | ||
989 | { | ||
990 | int sign = 0; | ||
991 | if(b == 65536) b = 65535; | ||
992 | else if(b == -65536) b = 65535, sign = 1; | ||
993 | else if(b < 0) b = (-b), sign = 1; | ||
994 | |||
995 | if(a < 0) | ||
996 | { | ||
997 | a = -a; | ||
998 | sign = !sign; | ||
999 | } | ||
1000 | fixed res = (fixed)(((int64_t) a * b) >> 16); | ||
1001 | if(sign) | ||
1002 | res = -res; | ||
1003 | return res; | ||
1004 | } | ||
1005 | |||
1006 | void Thrust (int angle, int32_t speed) | ||
1007 | { | ||
1008 | int32_t xmove,ymove; | ||
1009 | unsigned offset; | ||
1010 | |||
1011 | |||
1012 | // | ||
1013 | // ZERO FUNNY COUNTER IF MOVED! | ||
1014 | // | ||
1015 | #ifdef SPEAR | ||
1016 | if (speed) | ||
1017 | funnyticount = 0; | ||
1018 | #endif | ||
1019 | |||
1020 | thrustspeed += speed; | ||
1021 | // | ||
1022 | // moving bounds speed | ||
1023 | // | ||
1024 | if (speed >= MINDIST*2) | ||
1025 | speed = MINDIST*2-1; | ||
1026 | |||
1027 | xmove = DEMOCHOOSE_ORIG_SDL( | ||
1028 | FixedByFracOrig(speed, costable[angle]), | ||
1029 | FixedMul(speed,costable[angle])); | ||
1030 | ymove = DEMOCHOOSE_ORIG_SDL( | ||
1031 | -FixedByFracOrig(speed, sintable[angle]), | ||
1032 | -FixedMul(speed,sintable[angle])); | ||
1033 | |||
1034 | ClipMove(player,xmove,ymove); | ||
1035 | |||
1036 | player->tilex = (short)(player->x >> TILESHIFT); // scale to tile values | ||
1037 | player->tiley = (short)(player->y >> TILESHIFT); | ||
1038 | |||
1039 | offset = (player->tiley<<mapshift)+player->tilex; | ||
1040 | player->areanumber = *(mapsegs[0] + offset) -AREATILE; | ||
1041 | |||
1042 | if (*(mapsegs[1] + offset) == EXITTILE) | ||
1043 | VictoryTile (); | ||
1044 | } | ||
1045 | |||
1046 | |||
1047 | /* | ||
1048 | ============================================================================= | ||
1049 | |||
1050 | ACTIONS | ||
1051 | |||
1052 | ============================================================================= | ||
1053 | */ | ||
1054 | |||
1055 | |||
1056 | /* | ||
1057 | =============== | ||
1058 | = | ||
1059 | = Cmd_Fire | ||
1060 | = | ||
1061 | =============== | ||
1062 | */ | ||
1063 | |||
1064 | void Cmd_Fire (void) | ||
1065 | { | ||
1066 | buttonheld[bt_attack] = true; | ||
1067 | |||
1068 | gamestate.weaponframe = 0; | ||
1069 | |||
1070 | player->state = &s_attack; | ||
1071 | |||
1072 | gamestate.attackframe = 0; | ||
1073 | gamestate.attackcount = | ||
1074 | attackinfo[gamestate.weapon][gamestate.attackframe].tics; | ||
1075 | gamestate.weaponframe = | ||
1076 | attackinfo[gamestate.weapon][gamestate.attackframe].frame; | ||
1077 | } | ||
1078 | |||
1079 | //=========================================================================== | ||
1080 | |||
1081 | /* | ||
1082 | =============== | ||
1083 | = | ||
1084 | = Cmd_Use | ||
1085 | = | ||
1086 | =============== | ||
1087 | */ | ||
1088 | |||
1089 | void Cmd_Use (void) | ||
1090 | { | ||
1091 | int checkx,checky,doornum,dir; | ||
1092 | boolean elevatorok; | ||
1093 | |||
1094 | // | ||
1095 | // find which cardinal direction the player is facing | ||
1096 | // | ||
1097 | if (player->angle < ANGLES/8 || player->angle > 7*ANGLES/8) | ||
1098 | { | ||
1099 | checkx = player->tilex + 1; | ||
1100 | checky = player->tiley; | ||
1101 | dir = di_east; | ||
1102 | elevatorok = true; | ||
1103 | } | ||
1104 | else if (player->angle < 3*ANGLES/8) | ||
1105 | { | ||
1106 | checkx = player->tilex; | ||
1107 | checky = player->tiley-1; | ||
1108 | dir = di_north; | ||
1109 | elevatorok = false; | ||
1110 | } | ||
1111 | else if (player->angle < 5*ANGLES/8) | ||
1112 | { | ||
1113 | checkx = player->tilex - 1; | ||
1114 | checky = player->tiley; | ||
1115 | dir = di_west; | ||
1116 | elevatorok = true; | ||
1117 | } | ||
1118 | else | ||
1119 | { | ||
1120 | checkx = player->tilex; | ||
1121 | checky = player->tiley + 1; | ||
1122 | dir = di_south; | ||
1123 | elevatorok = false; | ||
1124 | } | ||
1125 | |||
1126 | doornum = tilemap[checkx][checky]; | ||
1127 | if (*(mapsegs[1]+(checky<<mapshift)+checkx) == PUSHABLETILE) | ||
1128 | { | ||
1129 | // | ||
1130 | // pushable wall | ||
1131 | // | ||
1132 | |||
1133 | buttonheld[bt_use] = true; | ||
1134 | buttonstate[bt_attack] = false; | ||
1135 | |||
1136 | PushWall (checkx,checky,dir); | ||
1137 | return; | ||
1138 | } | ||
1139 | if (!buttonheld[bt_use] && doornum == ELEVATORTILE && elevatorok) | ||
1140 | { | ||
1141 | // | ||
1142 | // use elevator | ||
1143 | // | ||
1144 | buttonheld[bt_use] = true; | ||
1145 | buttonstate[bt_attack] = false; | ||
1146 | |||
1147 | tilemap[checkx][checky]++; // flip switch | ||
1148 | if (*(mapsegs[0]+(player->tiley<<mapshift)+player->tilex) == ALTELEVATORTILE) | ||
1149 | playstate = ex_secretlevel; | ||
1150 | else | ||
1151 | playstate = ex_completed; | ||
1152 | SD_PlaySound (LEVELDONESND); | ||
1153 | SD_WaitSoundDone(); | ||
1154 | } | ||
1155 | else if (!buttonheld[bt_use] && doornum & 0x80) | ||
1156 | { | ||
1157 | buttonheld[bt_use] = true; | ||
1158 | buttonstate[bt_attack] = false; | ||
1159 | OperateDoor (doornum & ~0x80); | ||
1160 | } | ||
1161 | else | ||
1162 | SD_PlaySound (DONOTHINGSND); | ||
1163 | } | ||
1164 | |||
1165 | /* | ||
1166 | ============================================================================= | ||
1167 | |||
1168 | PLAYER CONTROL | ||
1169 | |||
1170 | ============================================================================= | ||
1171 | */ | ||
1172 | |||
1173 | |||
1174 | |||
1175 | /* | ||
1176 | =============== | ||
1177 | = | ||
1178 | = SpawnPlayer | ||
1179 | = | ||
1180 | =============== | ||
1181 | */ | ||
1182 | |||
1183 | void SpawnPlayer (int tilex, int tiley, int dir) | ||
1184 | { | ||
1185 | player->obclass = playerobj; | ||
1186 | player->active = ac_yes; | ||
1187 | player->tilex = tilex; | ||
1188 | player->tiley = tiley; | ||
1189 | player->areanumber = (byte) *(mapsegs[0]+(player->tiley<<mapshift)+player->tilex); | ||
1190 | player->x = ((int32_t)tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
1191 | player->y = ((int32_t)tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
1192 | player->state = &s_player; | ||
1193 | player->angle = (1-dir)*90; | ||
1194 | if (player->angle<0) | ||
1195 | player->angle += ANGLES; | ||
1196 | player->flags = FL_NEVERMARK; | ||
1197 | Thrust (0,0); // set some variables | ||
1198 | |||
1199 | InitAreas (); | ||
1200 | } | ||
1201 | |||
1202 | |||
1203 | //=========================================================================== | ||
1204 | |||
1205 | /* | ||
1206 | =============== | ||
1207 | = | ||
1208 | = T_KnifeAttack | ||
1209 | = | ||
1210 | = Update player hands, and try to do damage when the proper frame is reached | ||
1211 | = | ||
1212 | =============== | ||
1213 | */ | ||
1214 | |||
1215 | void KnifeAttack (objtype *ob) | ||
1216 | { | ||
1217 | objtype *check,*closest; | ||
1218 | int32_t dist; | ||
1219 | |||
1220 | SD_PlaySound (ATKKNIFESND); | ||
1221 | // actually fire | ||
1222 | dist = 0x7fffffff; | ||
1223 | closest = NULL; | ||
1224 | for (check=ob->next; check; check=check->next) | ||
1225 | { | ||
1226 | if ( (check->flags & FL_SHOOTABLE) && (check->flags & FL_VISABLE) | ||
1227 | && abs(check->viewx-centerx) < shootdelta) | ||
1228 | { | ||
1229 | if (check->transx < dist) | ||
1230 | { | ||
1231 | dist = check->transx; | ||
1232 | closest = check; | ||
1233 | } | ||
1234 | } | ||
1235 | } | ||
1236 | |||
1237 | if (!closest || dist > 0x18000l) | ||
1238 | { | ||
1239 | // missed | ||
1240 | return; | ||
1241 | } | ||
1242 | |||
1243 | // hit something | ||
1244 | DamageActor (closest,US_RndT() >> 4); | ||
1245 | } | ||
1246 | |||
1247 | |||
1248 | |||
1249 | void GunAttack (objtype *ob) | ||
1250 | { | ||
1251 | objtype *check,*closest,*oldclosest; | ||
1252 | int damage; | ||
1253 | int dx,dy,dist; | ||
1254 | int32_t viewdist; | ||
1255 | |||
1256 | switch (gamestate.weapon) | ||
1257 | { | ||
1258 | case wp_pistol: | ||
1259 | SD_PlaySound (ATKPISTOLSND); | ||
1260 | break; | ||
1261 | case wp_machinegun: | ||
1262 | SD_PlaySound (ATKMACHINEGUNSND); | ||
1263 | break; | ||
1264 | case wp_chaingun: | ||
1265 | SD_PlaySound (ATKGATLINGSND); | ||
1266 | break; | ||
1267 | } | ||
1268 | |||
1269 | madenoise = true; | ||
1270 | |||
1271 | // | ||
1272 | // find potential targets | ||
1273 | // | ||
1274 | viewdist = 0x7fffffffl; | ||
1275 | closest = NULL; | ||
1276 | |||
1277 | while (1) | ||
1278 | { | ||
1279 | oldclosest = closest; | ||
1280 | |||
1281 | for (check=ob->next ; check ; check=check->next) | ||
1282 | { | ||
1283 | if ((check->flags & FL_SHOOTABLE) && (check->flags & FL_VISABLE) | ||
1284 | && abs(check->viewx-centerx) < shootdelta) | ||
1285 | { | ||
1286 | if (check->transx < viewdist) | ||
1287 | { | ||
1288 | viewdist = check->transx; | ||
1289 | closest = check; | ||
1290 | } | ||
1291 | } | ||
1292 | } | ||
1293 | |||
1294 | if (closest == oldclosest) | ||
1295 | return; // no more targets, all missed | ||
1296 | |||
1297 | // | ||
1298 | // trace a line from player to enemey | ||
1299 | // | ||
1300 | if (CheckLine(closest)) | ||
1301 | break; | ||
1302 | } | ||
1303 | |||
1304 | // | ||
1305 | // hit something | ||
1306 | // | ||
1307 | dx = ABS(closest->tilex - player->tilex); | ||
1308 | dy = ABS(closest->tiley - player->tiley); | ||
1309 | dist = dx>dy ? dx:dy; | ||
1310 | if (dist<2) | ||
1311 | damage = US_RndT() / 4; | ||
1312 | else if (dist<4) | ||
1313 | damage = US_RndT() / 6; | ||
1314 | else | ||
1315 | { | ||
1316 | if ( (US_RndT() / 12) < dist) // missed | ||
1317 | return; | ||
1318 | damage = US_RndT() / 6; | ||
1319 | } | ||
1320 | DamageActor (closest,damage); | ||
1321 | } | ||
1322 | |||
1323 | //=========================================================================== | ||
1324 | |||
1325 | /* | ||
1326 | =============== | ||
1327 | = | ||
1328 | = VictorySpin | ||
1329 | = | ||
1330 | =============== | ||
1331 | */ | ||
1332 | |||
1333 | void VictorySpin (void) | ||
1334 | { | ||
1335 | int32_t desty; | ||
1336 | |||
1337 | if (player->angle > 270) | ||
1338 | { | ||
1339 | player->angle -= (short)(tics * 3); | ||
1340 | if (player->angle < 270) | ||
1341 | player->angle = 270; | ||
1342 | } | ||
1343 | else if (player->angle < 270) | ||
1344 | { | ||
1345 | player->angle += (short)(tics * 3); | ||
1346 | if (player->angle > 270) | ||
1347 | player->angle = 270; | ||
1348 | } | ||
1349 | |||
1350 | desty = (((int32_t)player->tiley-5)<<TILESHIFT)-0x3000; | ||
1351 | |||
1352 | if (player->y > desty) | ||
1353 | { | ||
1354 | player->y -= tics*4096; | ||
1355 | if (player->y < desty) | ||
1356 | player->y = desty; | ||
1357 | } | ||
1358 | } | ||
1359 | |||
1360 | |||
1361 | //=========================================================================== | ||
1362 | |||
1363 | /* | ||
1364 | =============== | ||
1365 | = | ||
1366 | = T_Attack | ||
1367 | = | ||
1368 | =============== | ||
1369 | */ | ||
1370 | |||
1371 | void T_Attack (objtype *ob) | ||
1372 | { | ||
1373 | struct atkinf *cur; | ||
1374 | |||
1375 | UpdateFace (); | ||
1376 | |||
1377 | if (gamestate.victoryflag) // watching the BJ actor | ||
1378 | { | ||
1379 | VictorySpin (); | ||
1380 | return; | ||
1381 | } | ||
1382 | |||
1383 | if ( buttonstate[bt_use] && !buttonheld[bt_use] ) | ||
1384 | buttonstate[bt_use] = false; | ||
1385 | |||
1386 | if ( buttonstate[bt_attack] && !buttonheld[bt_attack]) | ||
1387 | buttonstate[bt_attack] = false; | ||
1388 | |||
1389 | ControlMovement (ob); | ||
1390 | if (gamestate.victoryflag) // watching the BJ actor | ||
1391 | return; | ||
1392 | |||
1393 | plux = (word) (player->x >> UNSIGNEDSHIFT); // scale to fit in unsigned | ||
1394 | pluy = (word) (player->y >> UNSIGNEDSHIFT); | ||
1395 | player->tilex = (short)(player->x >> TILESHIFT); // scale to tile values | ||
1396 | player->tiley = (short)(player->y >> TILESHIFT); | ||
1397 | |||
1398 | // | ||
1399 | // change frame and fire | ||
1400 | // | ||
1401 | gamestate.attackcount -= (short) tics; | ||
1402 | while (gamestate.attackcount <= 0) | ||
1403 | { | ||
1404 | cur = &attackinfo[gamestate.weapon][gamestate.attackframe]; | ||
1405 | switch (cur->attack) | ||
1406 | { | ||
1407 | case -1: | ||
1408 | ob->state = &s_player; | ||
1409 | if (!gamestate.ammo) | ||
1410 | { | ||
1411 | gamestate.weapon = wp_knife; | ||
1412 | DrawWeapon (); | ||
1413 | } | ||
1414 | else | ||
1415 | { | ||
1416 | if (gamestate.weapon != gamestate.chosenweapon) | ||
1417 | { | ||
1418 | gamestate.weapon = gamestate.chosenweapon; | ||
1419 | DrawWeapon (); | ||
1420 | } | ||
1421 | } | ||
1422 | gamestate.attackframe = gamestate.weaponframe = 0; | ||
1423 | return; | ||
1424 | |||
1425 | case 4: | ||
1426 | if (!gamestate.ammo) | ||
1427 | break; | ||
1428 | if (buttonstate[bt_attack]) | ||
1429 | gamestate.attackframe -= 2; | ||
1430 | case 1: | ||
1431 | if (!gamestate.ammo) | ||
1432 | { // can only happen with chain gun | ||
1433 | gamestate.attackframe++; | ||
1434 | break; | ||
1435 | } | ||
1436 | GunAttack (ob); | ||
1437 | if (!ammocheat) | ||
1438 | gamestate.ammo--; | ||
1439 | DrawAmmo (); | ||
1440 | break; | ||
1441 | |||
1442 | case 2: | ||
1443 | KnifeAttack (ob); | ||
1444 | break; | ||
1445 | |||
1446 | case 3: | ||
1447 | if (gamestate.ammo && buttonstate[bt_attack]) | ||
1448 | gamestate.attackframe -= 2; | ||
1449 | break; | ||
1450 | } | ||
1451 | |||
1452 | gamestate.attackcount += cur->tics; | ||
1453 | gamestate.attackframe++; | ||
1454 | gamestate.weaponframe = | ||
1455 | attackinfo[gamestate.weapon][gamestate.attackframe].frame; | ||
1456 | } | ||
1457 | } | ||
1458 | |||
1459 | |||
1460 | |||
1461 | //=========================================================================== | ||
1462 | |||
1463 | /* | ||
1464 | =============== | ||
1465 | = | ||
1466 | = T_Player | ||
1467 | = | ||
1468 | =============== | ||
1469 | */ | ||
1470 | |||
1471 | static int last_use = 0; | ||
1472 | |||
1473 | void T_Player (objtype *ob) | ||
1474 | { | ||
1475 | if (gamestate.victoryflag) // watching the BJ actor | ||
1476 | { | ||
1477 | VictorySpin (); | ||
1478 | return; | ||
1479 | } | ||
1480 | |||
1481 | UpdateFace (); | ||
1482 | CheckWeaponChange (); | ||
1483 | |||
1484 | // weird | ||
1485 | if( buttonstate[bt_attack] ) | ||
1486 | Cmd_Use (); | ||
1487 | |||
1488 | if ( buttonstate[bt_attack] && !buttonheld[bt_attack]) | ||
1489 | Cmd_Fire (); | ||
1490 | |||
1491 | ControlMovement (ob); | ||
1492 | if (gamestate.victoryflag) // watching the BJ actor | ||
1493 | return; | ||
1494 | |||
1495 | plux = (word) (player->x >> UNSIGNEDSHIFT); // scale to fit in unsigned | ||
1496 | pluy = (word) (player->y >> UNSIGNEDSHIFT); | ||
1497 | player->tilex = (short)(player->x >> TILESHIFT); // scale to tile values | ||
1498 | player->tiley = (short)(player->y >> TILESHIFT); | ||
1499 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_atmos.c b/apps/plugins/sdl/progs/wolf3d/wl_atmos.c new file mode 100644 index 0000000000..f11336e77f --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_atmos.c | |||
@@ -0,0 +1,229 @@ | |||
1 | #include "version.h" | ||
2 | |||
3 | #if defined(USE_STARSKY) || defined(USE_RAIN) || defined(USE_SNOW) | ||
4 | |||
5 | #include "wl_def.h" | ||
6 | |||
7 | #if defined(USE_RAIN) || defined(USE_SNOW) | ||
8 | uint32_t rainpos = 0; | ||
9 | #endif | ||
10 | |||
11 | typedef struct { | ||
12 | int32_t x, y, z; | ||
13 | } point3d_t; | ||
14 | |||
15 | #define MAXPOINTS 400 | ||
16 | point3d_t points[MAXPOINTS]; | ||
17 | |||
18 | byte moon[100]={ | ||
19 | 0, 0, 27, 18, 15, 16, 19, 29, 0, 0, | ||
20 | 0, 22, 16, 15, 15, 16, 16, 18, 24, 0, | ||
21 | 27, 17, 15, 17, 16, 16, 17, 17, 18, 29, | ||
22 | 18, 15, 15, 15, 16, 16, 17, 17, 18, 20, | ||
23 | 16, 15, 15, 16, 16, 17, 17, 18, 19, 21, | ||
24 | 16, 15, 17, 20, 18, 17, 18, 18, 20, 22, | ||
25 | 19, 16, 18, 19, 17, 17, 18, 19, 22, 24, | ||
26 | 28, 19, 17, 17, 17, 18, 19, 21, 25, 31, | ||
27 | 0, 23, 18, 19, 18, 20, 22, 24, 28, 0, | ||
28 | 0, 0, 28, 21, 20, 22, 28, 30, 0, 0 }; | ||
29 | |||
30 | void Init3DPoints() | ||
31 | { | ||
32 | int hvheight = viewheight >> 1; | ||
33 | for(int i = 0; i < MAXPOINTS; i++) | ||
34 | { | ||
35 | point3d_t *pt = &points[i]; | ||
36 | pt->x = 16384 - (rand() & 32767); | ||
37 | pt->z = 16384 - (rand() & 32767); | ||
38 | float len = sqrt((float)pt->x * pt->x + (float)pt->z * pt->z); | ||
39 | int j=50; | ||
40 | do | ||
41 | { | ||
42 | pt->y = 1024 + (rand() & 8191); | ||
43 | j--; | ||
44 | } | ||
45 | while(j > 0 && (float)pt->y * 256.F / len >= hvheight); | ||
46 | } | ||
47 | } | ||
48 | |||
49 | #endif | ||
50 | |||
51 | #ifdef USE_STARSKY | ||
52 | |||
53 | void DrawStarSky(byte *vbuf, uint32_t vbufPitch) | ||
54 | { | ||
55 | int hvheight = viewheight >> 1; | ||
56 | int hvwidth = viewwidth >> 1; | ||
57 | |||
58 | byte *ptr = vbuf; | ||
59 | int i; | ||
60 | for(i = 0; i < hvheight; i++, ptr += vbufPitch) | ||
61 | memset(ptr, 0, viewwidth); | ||
62 | |||
63 | for(i = 0; i < MAXPOINTS; i++) | ||
64 | { | ||
65 | point3d_t *pt = &points[i]; | ||
66 | int32_t x = pt->x * viewcos + pt->z * viewsin; | ||
67 | int32_t y = pt->y << 16; | ||
68 | int32_t z = (pt->z * viewcos - pt->x * viewsin) >> 8; | ||
69 | if(z <= 0) continue; | ||
70 | int shade = z >> 18; | ||
71 | if(shade > 15) continue; | ||
72 | int32_t xx = x / z + hvwidth; | ||
73 | int32_t yy = hvheight - y / z; | ||
74 | if(xx >= 0 && xx < viewwidth && yy >= 0 && yy < hvheight) | ||
75 | vbuf[yy * vbufPitch + xx] = shade + 15; | ||
76 | } | ||
77 | |||
78 | int32_t x = 16384 * viewcos + 16384 * viewsin; | ||
79 | int32_t z = (16384 * viewcos - 16384 * viewsin) >> 8; | ||
80 | if(z <= 0) return; | ||
81 | int32_t xx = x / z + hvwidth; | ||
82 | int32_t yy = hvheight - ((hvheight - (hvheight >> 3)) << 22) / z; | ||
83 | if(xx > -10 && xx < viewwidth) | ||
84 | { | ||
85 | int stopx = 10, starty = 0, stopy = 10; | ||
86 | i = 0; | ||
87 | if(xx < 0) i = -xx; | ||
88 | if(xx > viewwidth - 11) stopx = viewwidth - xx; | ||
89 | if(yy < 0) startj = -yy; | ||
90 | if(yy > viewheight - 11) stopy = viewheight - yy; | ||
91 | for(; i < stopx; i++) | ||
92 | for(int j = starty; j < stopy; j++) | ||
93 | vbuf[(yy + j) * vbufPitch + xx + i] = moon[j * 10 + i]; | ||
94 | } | ||
95 | } | ||
96 | |||
97 | #endif | ||
98 | |||
99 | #ifdef USE_RAIN | ||
100 | |||
101 | void DrawRain(byte *vbuf, uint32_t vbufPitch) | ||
102 | { | ||
103 | #if defined(USE_FLOORCEILINGTEX) && defined(FIXRAINSNOWLEAKS) | ||
104 | fixed dist; // distance to row projection | ||
105 | fixed tex_step; // global step per one screen pixel | ||
106 | fixed gu, gv, floorx, floory; // global texture coordinates | ||
107 | #endif | ||
108 | |||
109 | fixed px = (player->y + FixedMul(0x7900, viewsin)) >> 6; | ||
110 | fixed pz = (player->x - FixedMul(0x7900, viewcos)) >> 6; | ||
111 | int32_t ax, az, x, y, z, xx, yy, height, actheight; | ||
112 | int shade; | ||
113 | int hvheight = viewheight >> 1; | ||
114 | int hvwidth = viewwidth >> 1; | ||
115 | |||
116 | rainpos -= tics * 900; | ||
117 | for(int i = 0; i < MAXPOINTS; i++) | ||
118 | { | ||
119 | point3d_t *pt = &points[i]; | ||
120 | ax = pt->x + px; | ||
121 | ax = 0x1fff - (ax & 0x3fff); | ||
122 | az = pt->z + pz; | ||
123 | az = 0x1fff - (az & 0x3fff); | ||
124 | x = ax * viewcos + az * viewsin; | ||
125 | y = -(heightnumerator << 7) + ((((pt->y << 6) + rainpos) & 0x0ffff) << 11); | ||
126 | z = (az * viewcos - ax * viewsin) >> 8; | ||
127 | if(z <= 0) continue; | ||
128 | shade = z >> 17; | ||
129 | if(shade > 13) continue; | ||
130 | xx = x / z + hvwidth; | ||
131 | if(xx < 0 || xx >= viewwidth) continue; | ||
132 | actheight = y / z; | ||
133 | yy = hvheight - actheight; | ||
134 | height = (heightnumerator << 10) / z; | ||
135 | if(actheight < 0) actheight = -actheight; | ||
136 | if(actheight < (wallheight[xx] >> 3) && height < wallheight[xx]) continue; | ||
137 | |||
138 | if(xx >= 0 && xx < viewwidth && yy > 0 && yy < viewheight) | ||
139 | { | ||
140 | #if defined(USE_FLOORCEILINGTEX) && defined(FIXRAINSNOWLEAKS) | ||
141 | // Find the rain's tile coordinate | ||
142 | // NOTE: This sometimes goes over the map edges. | ||
143 | dist = ((heightnumerator / ((height >> 3) + 1)) << 5); | ||
144 | gu = viewx + FixedMul(dist, viewcos); | ||
145 | gv = -viewy + FixedMul(dist, viewsin); | ||
146 | floorx = ( gu >> TILESHIFT ) & 63; | ||
147 | floory = (-(gv >> TILESHIFT) - 1) & 63; | ||
148 | |||
149 | // Is there a ceiling tile? | ||
150 | if(MAPSPOT(floorx, floory, 2) >> 8) continue; | ||
151 | #endif | ||
152 | |||
153 | vbuf[yy * vbufPitch + xx] = shade+15; | ||
154 | vbuf[(yy - 1) * vbufPitch + xx] = shade+16; | ||
155 | if(yy > 2) | ||
156 | vbuf[(yy - 2) * vbufPitch + xx] = shade+17; | ||
157 | } | ||
158 | } | ||
159 | } | ||
160 | |||
161 | #endif | ||
162 | |||
163 | #ifdef USE_SNOW | ||
164 | |||
165 | void DrawSnow(byte *vbuf, uint32_t vbufPitch) | ||
166 | { | ||
167 | #if defined(USE_FLOORCEILINGTEX) && defined(FIXRAINSNOWLEAKS) | ||
168 | fixed dist; // distance to row projection | ||
169 | fixed tex_step; // global step per one screen pixel | ||
170 | fixed gu, gv, floorx, floory; // global texture coordinates | ||
171 | #endif | ||
172 | |||
173 | fixed px = (player->y + FixedMul(0x7900, viewsin)) >> 6; | ||
174 | fixed pz = (player->x - FixedMul(0x7900, viewcos)) >> 6; | ||
175 | int32_t ax, az, x, y, z, xx, yy, height, actheight; | ||
176 | int shade; | ||
177 | int hvheight = viewheight >> 1; | ||
178 | int hvwidth = viewwidth >> 1; | ||
179 | |||
180 | rainpos -= tics * 256; | ||
181 | for(int i = 0; i < MAXPOINTS; i++) | ||
182 | { | ||
183 | point3d_t *pt = &points[i]; | ||
184 | ax = pt->x + px; | ||
185 | ax = 0x1fff - (ax & 0x3fff); | ||
186 | az = pt->z + pz; | ||
187 | az = 0x1fff - (az & 0x3fff); | ||
188 | x = ax * viewcos + az * viewsin; | ||
189 | y = -(heightnumerator << 7) + ((((pt->y << 6) + rainpos) & 0x0ffff) << 11); | ||
190 | z = (az * viewcos - ax * viewsin) >> 8; | ||
191 | if(z <= 0) continue; | ||
192 | shade = z >> 17; | ||
193 | if(shade > 13) continue; | ||
194 | xx = x / z + hvwidth; | ||
195 | if(xx < 0 || xx >= viewwidth) continue; | ||
196 | actheight = y / z; | ||
197 | yy = hvheight - actheight; | ||
198 | height = (heightnumerator << 10) / z; | ||
199 | if(actheight < 0) actheight = -actheight; | ||
200 | if(actheight < (wallheight[xx] >> 3) && height < wallheight[xx]) continue; | ||
201 | if(xx > 0 && xx < viewwidth && yy > 0 && yy < viewheight) | ||
202 | { | ||
203 | #if defined(USE_FLOORCEILINGTEX) && defined(FIXRAINSNOWLEAKS) | ||
204 | // Find the snow's tile coordinate | ||
205 | // NOTE: This sometimes goes over the map edges. | ||
206 | dist = ((heightnumerator / ((height >> 3) + 1)) << 5); | ||
207 | gu = viewx + FixedMul(dist, viewcos); | ||
208 | gv = -viewy + FixedMul(dist, viewsin); | ||
209 | floorx = ( gu >> TILESHIFT ) & 63; | ||
210 | floory = (-(gv >> TILESHIFT) - 1) & 63; | ||
211 | |||
212 | // Is there a ceiling tile? | ||
213 | if(MAPSPOT(floorx, floory, 2) >> 8) continue; | ||
214 | #endif | ||
215 | |||
216 | if(shade < 10) | ||
217 | { | ||
218 | vbuf[yy * vbufPitch + xx] = shade+17; | ||
219 | vbuf[yy * vbufPitch + xx - 1] = shade+16; | ||
220 | vbuf[(yy - 1) * vbufPitch + xx] = shade+16; | ||
221 | vbuf[(yy - 1) * vbufPitch + xx - 1] = shade+15; | ||
222 | } | ||
223 | else | ||
224 | vbuf[yy * vbufPitch + xx] = shade+15; | ||
225 | } | ||
226 | } | ||
227 | } | ||
228 | |||
229 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_atmos.h b/apps/plugins/sdl/progs/wolf3d/wl_atmos.h new file mode 100644 index 0000000000..59ef74d3a2 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_atmos.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef _WL_ATMOS_H_ | ||
2 | #define _WL_ATMOS_H_ | ||
3 | |||
4 | #if defined(USE_STARSKY) || defined(USE_RAIN) || defined(USE_SNOW) | ||
5 | void Init3DPoints(); | ||
6 | #endif | ||
7 | |||
8 | #ifdef USE_STARSKY | ||
9 | void DrawStarSky(byte *vbuf, uint32_t vbufPitch); | ||
10 | #endif | ||
11 | |||
12 | #ifdef USE_RAIN | ||
13 | void DrawRain(byte *vbuf, uint32_t vbufPitch); | ||
14 | #endif | ||
15 | |||
16 | #ifdef USE_SNOW | ||
17 | void DrawSnow(byte *vbuf, uint32_t vbufPitch); | ||
18 | #endif | ||
19 | |||
20 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_cloudsky.c b/apps/plugins/sdl/progs/wolf3d/wl_cloudsky.c new file mode 100644 index 0000000000..a2f58cd8a6 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_cloudsky.c | |||
@@ -0,0 +1,259 @@ | |||
1 | #include "version.h" | ||
2 | |||
3 | #ifdef USE_CLOUDSKY | ||
4 | |||
5 | #include "wl_def.h" | ||
6 | #include "wl_cloudsky.h" | ||
7 | |||
8 | // Each colormap defines a number of colors which should be mapped from | ||
9 | // the skytable. The according colormapentry_t array defines how these colors should | ||
10 | // be mapped to the wolfenstein palette. The first int of each entry defines | ||
11 | // how many colors are grouped to this entry and the absolute value of the | ||
12 | // second int sets the starting palette index for this pair. If this value is | ||
13 | // negative the index will be decremented for every color, if it's positive | ||
14 | // it will be incremented. | ||
15 | // | ||
16 | // Example colormap: | ||
17 | // colormapentry_t colmapents_1[] = { { 6, -10 }, { 2, 40 } }; | ||
18 | // colormap_t colorMaps[] = { | ||
19 | // { 8, colmapents_1 } | ||
20 | // }; | ||
21 | // | ||
22 | // The colormap 0 consists of 8 colors. The first color group consists of 6 | ||
23 | // colors and starts descending at palette index 10: 10, 9, 8, 7, 6, 5 | ||
24 | // The second color group consists of 2 colors and starts ascending at | ||
25 | // index 40: 40, 41 | ||
26 | // There's no other color group because all colors of this colormap are | ||
27 | // already used (6+2=8) | ||
28 | // | ||
29 | // Warning: Always make sure that the sum of the amount of the colors in all | ||
30 | // color groups is the number of colors used for your colormap! | ||
31 | |||
32 | colormapentry_t colmapents_1[] = { { 16, -31 }, { 16, 136 } }; | ||
33 | colormapentry_t colmapents_2[] = { { 16, -31 } }; | ||
34 | |||
35 | colormap_t colorMaps[] = { | ||
36 | { 32, colmapents_1 }, | ||
37 | { 16, colmapents_2 } | ||
38 | }; | ||
39 | |||
40 | const int numColorMaps = lengthof(colorMaps); | ||
41 | |||
42 | // The sky definitions which can be selected as defined by GetCloudSkyDefID() in wl_def.h | ||
43 | // You can use <TAB>+Z in debug mode to find out suitable values for seed and colorMapIndex | ||
44 | // Each entry consists of seed, speed, angle and colorMapIndex | ||
45 | cloudsky_t cloudSkys[] = { | ||
46 | { 626, 800, 20, 0 }, | ||
47 | { 1234, 650, 60, 1 }, | ||
48 | { 0, 700, 120, 0 }, | ||
49 | { 0, 0, 0, 0 }, | ||
50 | { 11243, 750, 310, 0 }, | ||
51 | { 32141, 750, 87, 0 }, | ||
52 | { 12124, 750, 64, 0 }, | ||
53 | { 55543, 500, 240, 0 }, | ||
54 | { 65535, 200, 54, 1 }, | ||
55 | { 4, 1200, 290, 0 }, | ||
56 | }; | ||
57 | |||
58 | byte skyc[65536L]; | ||
59 | |||
60 | long cloudx = 0, cloudy = 0; | ||
61 | cloudsky_t *curSky = NULL; | ||
62 | |||
63 | #ifdef USE_FEATUREFLAGS | ||
64 | |||
65 | // The lower left tile of every map determines the used cloud sky definition from cloudSkys. | ||
66 | static int GetCloudSkyDefID() | ||
67 | { | ||
68 | int skyID = ffDataBottomLeft; | ||
69 | assert(skyID >= 0 && skyID < lengthof(cloudSkys)); | ||
70 | return skyID; | ||
71 | } | ||
72 | |||
73 | #else | ||
74 | |||
75 | static int GetCloudSkyDefID() | ||
76 | { | ||
77 | int skyID; | ||
78 | switch(gamestate.episode * 10 + mapon) | ||
79 | { | ||
80 | case 0: skyID = 0; break; | ||
81 | case 1: skyID = 1; break; | ||
82 | case 2: skyID = 2; break; | ||
83 | case 3: skyID = 3; break; | ||
84 | case 4: skyID = 4; break; | ||
85 | case 5: skyID = 5; break; | ||
86 | case 6: skyID = 6; break; | ||
87 | case 7: skyID = 7; break; | ||
88 | case 8: skyID = 8; break; | ||
89 | case 9: skyID = 9; break; | ||
90 | default: skyID = 9; break; | ||
91 | } | ||
92 | assert(skyID >= 0 && skyID < lengthof(cloudSkys)); | ||
93 | return skyID; | ||
94 | } | ||
95 | |||
96 | #endif | ||
97 | |||
98 | void SplitS(unsigned size,unsigned x1,unsigned y1,unsigned x2,unsigned y2) | ||
99 | { | ||
100 | if(size==1) return; | ||
101 | if(!skyc[((x1+size/2)*256+y1)]) | ||
102 | { | ||
103 | skyc[((x1+size/2)*256+y1)]=(byte)(((int)skyc[(x1*256+y1)] | ||
104 | +(int)skyc[((x2&0xff)*256+y1)])/2)+rand()%(size*2)-size; | ||
105 | if(!skyc[((x1+size/2)*256+y1)]) skyc[((x1+size/2)*256+y1)]=1; | ||
106 | } | ||
107 | if(!skyc[((x1+size/2)*256+(y2&0xff))]) | ||
108 | { | ||
109 | skyc[((x1+size/2)*256+(y2&0xff))]=(byte)(((int)skyc[(x1*256+(y2&0xff))] | ||
110 | +(int)skyc[((x2&0xff)*256+(y2&0xff))])/2)+rand()%(size*2)-size; | ||
111 | if(!skyc[((x1+size/2)*256+(y2&0xff))]) | ||
112 | skyc[((x1+size/2)*256+(y2&0xff))]=1; | ||
113 | } | ||
114 | if(!skyc[(x1*256+y1+size/2)]) | ||
115 | { | ||
116 | skyc[(x1*256+y1+size/2)]=(byte)(((int)skyc[(x1*256+y1)] | ||
117 | +(int)skyc[(x1*256+(y2&0xff))])/2)+rand()%(size*2)-size; | ||
118 | if(!skyc[(x1*256+y1+size/2)]) skyc[(x1*256+y1+size/2)]=1; | ||
119 | } | ||
120 | if(!skyc[((x2&0xff)*256+y1+size/2)]) | ||
121 | { | ||
122 | skyc[((x2&0xff)*256+y1+size/2)]=(byte)(((int)skyc[((x2&0xff)*256+y1)] | ||
123 | +(int)skyc[((x2&0xff)*256+(y2&0xff))])/2)+rand()%(size*2)-size; | ||
124 | if(!skyc[((x2&0xff)*256+y1+size/2)]) skyc[((x2&0xff)*256+y1+size/2)]=1; | ||
125 | } | ||
126 | |||
127 | skyc[((x1+size/2)*256+y1+size/2)]=(byte)(((int)skyc[(x1*256+y1)] | ||
128 | +(int)skyc[((x2&0xff)*256+y1)]+(int)skyc[(x1*256+(y2&0xff))] | ||
129 | +(int)skyc[((x2&0xff)*256+(y2&0xff))])/4)+rand()%(size*2)-size; | ||
130 | |||
131 | SplitS(size/2,x1,y1+size/2,x1+size/2,y2); | ||
132 | SplitS(size/2,x1+size/2,y1,x2,y1+size/2); | ||
133 | SplitS(size/2,x1+size/2,y1+size/2,x2,y2); | ||
134 | SplitS(size/2,x1,y1,x1+size/2,y1+size/2); | ||
135 | } | ||
136 | |||
137 | void InitSky() | ||
138 | { | ||
139 | unsigned cloudskyid = GetCloudSkyDefID(); | ||
140 | if(cloudskyid >= lengthof(cloudSkys)) | ||
141 | Quit("Illegal cloud sky id: %u", cloudskyid); | ||
142 | curSky = &cloudSkys[cloudskyid]; | ||
143 | |||
144 | memset(skyc, 0, sizeof(skyc)); | ||
145 | // funny water texture if used instead of memset ;D | ||
146 | // for(int i = 0; i < 65536; i++) | ||
147 | // skyc[i] = rand() % 32 * 8; | ||
148 | |||
149 | srand(curSky->seed); | ||
150 | skyc[0] = rand() % 256; | ||
151 | SplitS(256, 0, 0, 256, 256); | ||
152 | |||
153 | // Smooth the clouds a bit | ||
154 | for(int k = 0; k < 2; k++) | ||
155 | { | ||
156 | for(int i = 0; i < 256; i++) | ||
157 | { | ||
158 | for(int j = 0; j < 256; j++) | ||
159 | { | ||
160 | int32_t val = -skyc[j * 256 + i]; | ||
161 | for(int m = 0; m < 3; m++) | ||
162 | { | ||
163 | for(int n = 0; n < 3; n++) | ||
164 | { | ||
165 | val += skyc[((j + n - 1) & 0xff) * 256 + ((i + m - 1) & 0xff)]; | ||
166 | } | ||
167 | } | ||
168 | skyc[j * 256 + i] = (byte)(val >> 3); | ||
169 | } | ||
170 | } | ||
171 | } | ||
172 | |||
173 | // the following commented line could be useful, if you're trying to | ||
174 | // create a new color map. This will display your current color map | ||
175 | // in one (of course repeating) stripe of the sky | ||
176 | |||
177 | // for(int i = 0; i < 256; i++) | ||
178 | // skyc[i] = skyc[i + 256] = skyc[i + 512] = i; | ||
179 | |||
180 | if(curSky->colorMapIndex >= lengthof(colorMaps)) | ||
181 | Quit("Illegal colorMapIndex for cloud sky def %u: %u", cloudskyid, curSky->colorMapIndex); | ||
182 | |||
183 | colormap_t *curMap = &colorMaps[curSky->colorMapIndex]; | ||
184 | int numColors = curMap->numColors; | ||
185 | byte colormap[256]; | ||
186 | colormapentry_t *curEntry = curMap->entries; | ||
187 | for(int calcedCols = 0; calcedCols < numColors; curEntry++) | ||
188 | { | ||
189 | if(curEntry->startAndDir < 0) | ||
190 | { | ||
191 | for(int i = 0, ind = -curEntry->startAndDir; i < curEntry->length; i++, ind--) | ||
192 | colormap[calcedCols++] = ind; | ||
193 | } | ||
194 | else | ||
195 | { | ||
196 | for(int i = 0, ind = curEntry->startAndDir; i < curEntry->length; i++, ind++) | ||
197 | colormap[calcedCols++] = ind; | ||
198 | } | ||
199 | } | ||
200 | |||
201 | for(int i = 0; i < 256; i++) | ||
202 | { | ||
203 | for(int j = 0; j < 256; j++) | ||
204 | { | ||
205 | skyc[i * 256 + j] = colormap[skyc[i * 256 + j] * numColors / 256]; | ||
206 | } | ||
207 | } | ||
208 | } | ||
209 | |||
210 | // Based on Textured Floor and Ceiling by DarkOne | ||
211 | void DrawClouds(byte *vbuf, unsigned vbufPitch, int min_wallheight) | ||
212 | { | ||
213 | // Move clouds | ||
214 | fixed moveDist = tics * curSky->speed; | ||
215 | cloudx += FixedMul(moveDist,sintable[curSky->angle]); | ||
216 | cloudy -= FixedMul(moveDist,costable[curSky->angle]); | ||
217 | |||
218 | // Draw them | ||
219 | int y0, halfheight; | ||
220 | unsigned top_offset0; | ||
221 | fixed dist; // distance to row projection | ||
222 | fixed tex_step; // global step per one screen pixel | ||
223 | fixed gu, gv, du, dv; // global texture coordinates | ||
224 | int u, v; // local texture coordinates | ||
225 | |||
226 | // ------ * prepare * -------- | ||
227 | halfheight = viewheight >> 1; | ||
228 | y0 = min_wallheight >> 3; // starting y value | ||
229 | if(y0 > halfheight) | ||
230 | return; // view obscured by walls | ||
231 | if(!y0) y0 = 1; // don't let division by zero | ||
232 | top_offset0 = vbufPitch * (halfheight - y0 - 1); | ||
233 | |||
234 | // draw horizontal lines | ||
235 | for(int y = y0, top_offset = top_offset0; y < halfheight; y++, top_offset -= vbufPitch) | ||
236 | { | ||
237 | dist = (heightnumerator / y) << 8; | ||
238 | gu = viewx + FixedMul(dist, viewcos) + cloudx; | ||
239 | gv = -viewy + FixedMul(dist, viewsin) + cloudy; | ||
240 | tex_step = (dist << 8) / viewwidth / 175; | ||
241 | du = FixedMul(tex_step, viewsin); | ||
242 | dv = -FixedMul(tex_step, viewcos); | ||
243 | gu -= (viewwidth >> 1)*du; | ||
244 | gv -= (viewwidth >> 1)*dv; // starting point (leftmost) | ||
245 | for(int x = 0, top_add = top_offset; x < viewwidth; x++, top_add++) | ||
246 | { | ||
247 | if(wallheight[x] >> 3 <= y) | ||
248 | { | ||
249 | u = (gu >> 13) & 255; | ||
250 | v = (gv >> 13) & 255; | ||
251 | vbuf[top_add] = skyc[((255 - u) << 8) + 255 - v]; | ||
252 | } | ||
253 | gu += du; | ||
254 | gv += dv; | ||
255 | } | ||
256 | } | ||
257 | } | ||
258 | |||
259 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_cloudsky.h b/apps/plugins/sdl/progs/wolf3d/wl_cloudsky.h new file mode 100644 index 0000000000..ad0316d643 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_cloudsky.h | |||
@@ -0,0 +1,46 @@ | |||
1 | #if defined(USE_CLOUDSKY) && !defined(_WL_CLOUDSKY_H_) | ||
2 | #define _WL_CLOUDSKY_H_ | ||
3 | |||
4 | typedef struct | ||
5 | { | ||
6 | int length; | ||
7 | int startAndDir; | ||
8 | } colormapentry_t; | ||
9 | |||
10 | typedef struct | ||
11 | { | ||
12 | int numColors; | ||
13 | colormapentry_t *entries; | ||
14 | } colormap_t; | ||
15 | |||
16 | typedef struct | ||
17 | { | ||
18 | // The seed defines the look of the sky and every value (0-4294967295) | ||
19 | // describes an unique sky. You can play around with these inside the game | ||
20 | // when pressing <TAB>+Z in debug mode. There you'll be able to change the | ||
21 | // active seed to find out a value, which is suitable for your needs. | ||
22 | uint32_t seed; | ||
23 | |||
24 | // The speed defines how fast the clouds will move (0-65535) | ||
25 | uint32_t speed; | ||
26 | |||
27 | // The angle defines the move direction (0-359) | ||
28 | uint32_t angle; | ||
29 | |||
30 | // An index selecting the color map to be used for this sky definition. | ||
31 | // This value can also be chosen with <TAB>+Z | ||
32 | uint32_t colorMapIndex; | ||
33 | } cloudsky_t; | ||
34 | |||
35 | extern cloudsky_t *curSky; | ||
36 | extern colormap_t colorMaps[]; | ||
37 | extern const int numColorMaps; | ||
38 | |||
39 | void InitSky(); | ||
40 | void DrawClouds(byte *vbuf, unsigned vbufPitch, int min_wallheight); | ||
41 | |||
42 | #ifndef USE_FEATUREFLAGS | ||
43 | int GetCloudSkyDefID(); | ||
44 | #endif | ||
45 | |||
46 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_debug.c b/apps/plugins/sdl/progs/wolf3d/wl_debug.c new file mode 100644 index 0000000000..bfa651e87c --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_debug.c | |||
@@ -0,0 +1,863 @@ | |||
1 | // WL_DEBUG.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | #ifdef USE_CLOUDSKY | ||
7 | #include "wl_cloudsky.h" | ||
8 | #endif | ||
9 | |||
10 | /* | ||
11 | ============================================================================= | ||
12 | |||
13 | LOCAL CONSTANTS | ||
14 | |||
15 | ============================================================================= | ||
16 | */ | ||
17 | |||
18 | #define VIEWTILEX (viewwidth/16) | ||
19 | #define VIEWTILEY (viewheight/16) | ||
20 | |||
21 | /* | ||
22 | ============================================================================= | ||
23 | |||
24 | GLOBAL VARIABLES | ||
25 | |||
26 | ============================================================================= | ||
27 | */ | ||
28 | |||
29 | #ifdef DEBUGKEYS | ||
30 | |||
31 | int DebugKeys (void); | ||
32 | |||
33 | |||
34 | // from WL_DRAW.C | ||
35 | |||
36 | void ScalePost(); | ||
37 | void SimpleScaleShape (int xcenter, int shapenum, unsigned height); | ||
38 | |||
39 | /* | ||
40 | ============================================================================= | ||
41 | |||
42 | LOCAL VARIABLES | ||
43 | |||
44 | ============================================================================= | ||
45 | */ | ||
46 | |||
47 | int maporgx; | ||
48 | int maporgy; | ||
49 | enum {mapview,tilemapview,actoratview,visview} viewtype; | ||
50 | |||
51 | void ViewMap (void); | ||
52 | |||
53 | //=========================================================================== | ||
54 | |||
55 | /* | ||
56 | ================== | ||
57 | = | ||
58 | = CountObjects | ||
59 | = | ||
60 | ================== | ||
61 | */ | ||
62 | |||
63 | void CountObjects (void) | ||
64 | { | ||
65 | int i,total,count,active,inactive,doors; | ||
66 | objtype *obj; | ||
67 | |||
68 | CenterWindow (17,7); | ||
69 | active = inactive = count = doors = 0; | ||
70 | |||
71 | US_Print ("Total statics :"); | ||
72 | total = (int)(laststatobj-&statobjlist[0]); | ||
73 | US_PrintUnsigned (total); | ||
74 | |||
75 | char str[60]; | ||
76 | sprintf(str,"\nlaststatobj=%.8X",(int32_t)(uintptr_t)laststatobj); | ||
77 | US_Print(str); | ||
78 | |||
79 | US_Print ("\nIn use statics:"); | ||
80 | for (i=0;i<total;i++) | ||
81 | { | ||
82 | if (statobjlist[i].shapenum != -1) | ||
83 | count++; | ||
84 | else | ||
85 | doors++; //debug | ||
86 | } | ||
87 | US_PrintUnsigned (count); | ||
88 | |||
89 | US_Print ("\nDoors :"); | ||
90 | US_PrintUnsigned (doornum); | ||
91 | |||
92 | for (obj=player->next;obj;obj=obj->next) | ||
93 | { | ||
94 | if (obj->active) | ||
95 | active++; | ||
96 | else | ||
97 | inactive++; | ||
98 | } | ||
99 | |||
100 | US_Print ("\nTotal actors :"); | ||
101 | US_PrintUnsigned (active+inactive); | ||
102 | |||
103 | US_Print ("\nActive actors :"); | ||
104 | US_PrintUnsigned (active); | ||
105 | |||
106 | VW_UpdateScreen(); | ||
107 | IN_Ack (); | ||
108 | } | ||
109 | |||
110 | |||
111 | //=========================================================================== | ||
112 | |||
113 | /* | ||
114 | =================== | ||
115 | = | ||
116 | = PictureGrabber | ||
117 | = | ||
118 | =================== | ||
119 | */ | ||
120 | void PictureGrabber (void) | ||
121 | { | ||
122 | static char fname[] = "WSHOT000.BMP"; | ||
123 | |||
124 | for(int i = 0; i < 1000; i++) | ||
125 | { | ||
126 | fname[7] = i % 10 + '0'; | ||
127 | fname[6] = (i / 10) % 10 + '0'; | ||
128 | fname[5] = i / 100 + '0'; | ||
129 | int file = open(fname, O_RDONLY | O_BINARY); | ||
130 | if(file == -1) break; // file does not exist, so use that filename | ||
131 | close(file); | ||
132 | } | ||
133 | |||
134 | // overwrites WSHOT999.BMP if all wshot files exist | ||
135 | |||
136 | SDL_SaveBMP(curSurface, fname); | ||
137 | |||
138 | CenterWindow (18,2); | ||
139 | US_PrintCentered ("Screenshot taken"); | ||
140 | VW_UpdateScreen(); | ||
141 | IN_Ack(); | ||
142 | } | ||
143 | |||
144 | |||
145 | //=========================================================================== | ||
146 | |||
147 | /* | ||
148 | =================== | ||
149 | = | ||
150 | = BasicOverhead | ||
151 | = | ||
152 | =================== | ||
153 | */ | ||
154 | |||
155 | void BasicOverhead (void) | ||
156 | { | ||
157 | int x, y, z, offx, offy; | ||
158 | |||
159 | z = 128/MAPSIZE; // zoom scale | ||
160 | offx = 320/2; | ||
161 | offy = (160-MAPSIZE*z)/2; | ||
162 | |||
163 | #ifdef MAPBORDER | ||
164 | int temp = viewsize; | ||
165 | NewViewSize(16); | ||
166 | DrawPlayBorder(); | ||
167 | #endif | ||
168 | |||
169 | // right side (raw) | ||
170 | |||
171 | for(x=0;x<MAPSIZE;x++) | ||
172 | for(y=0;y<MAPSIZE;y++) | ||
173 | VWB_Bar(x*z+offx, y*z+offy,z,z,(unsigned)(uintptr_t)actorat[x][y]); | ||
174 | |||
175 | // left side (filtered) | ||
176 | |||
177 | uintptr_t tile; | ||
178 | int color; | ||
179 | offx -= 128; | ||
180 | |||
181 | for(x=0;x<MAPSIZE;x++) | ||
182 | { | ||
183 | for(y=0;y<MAPSIZE;y++) | ||
184 | { | ||
185 | tile = (uintptr_t)actorat[x][y]; | ||
186 | if (ISPOINTER(tile) && ((objtype *)tile)->flags&FL_SHOOTABLE) color = 72; // enemy | ||
187 | else if (!tile || ISPOINTER(tile)) | ||
188 | { | ||
189 | if (spotvis[x][y]) color = 111; // visable | ||
190 | else color = 0; // nothing | ||
191 | } | ||
192 | else if (MAPSPOT(x,y,1) == PUSHABLETILE) color = 171; // pushwall | ||
193 | else if (tile == 64) color = 158; // solid obj | ||
194 | else if (tile < 128) color = 154; // walls | ||
195 | else if (tile < 256) color = 146; // doors | ||
196 | |||
197 | VWB_Bar(x*z+offx, y*z+offy,z,z,color); | ||
198 | } | ||
199 | } | ||
200 | |||
201 | VWB_Bar(player->tilex*z+offx,player->tiley*z+offy,z,z,15); // player | ||
202 | |||
203 | // resize the border to match | ||
204 | |||
205 | VW_UpdateScreen(); | ||
206 | IN_Ack(); | ||
207 | |||
208 | #ifdef MAPBORDER | ||
209 | NewViewSize(temp); | ||
210 | DrawPlayBorder(); | ||
211 | #endif | ||
212 | } | ||
213 | |||
214 | |||
215 | //=========================================================================== | ||
216 | |||
217 | /* | ||
218 | ================ | ||
219 | = | ||
220 | = ShapeTest | ||
221 | = | ||
222 | ================ | ||
223 | */ | ||
224 | |||
225 | void ShapeTest (void) | ||
226 | { | ||
227 | //TODO | ||
228 | #if NOTYET | ||
229 | extern word NumDigi; | ||
230 | extern word *DigiList; | ||
231 | extern int postx; | ||
232 | extern int postwidth; | ||
233 | extern byte *postsource; | ||
234 | static char buf[10]; | ||
235 | |||
236 | boolean done; | ||
237 | ScanCode scan; | ||
238 | int i,j,k,x; | ||
239 | longword l; | ||
240 | byte *addr; | ||
241 | soundnames sound; | ||
242 | // PageListStruct far *page; | ||
243 | |||
244 | CenterWindow(20,16); | ||
245 | VW_UpdateScreen(); | ||
246 | for (i = 0,done = false; !done;) | ||
247 | { | ||
248 | US_ClearWindow(); | ||
249 | sound = (soundnames) -1; | ||
250 | |||
251 | // page = &PMPages[i]; | ||
252 | US_Print(" Page #"); | ||
253 | US_PrintUnsigned(i); | ||
254 | if (i < PMSpriteStart) | ||
255 | US_Print(" (Wall)"); | ||
256 | else if (i < PMSoundStart) | ||
257 | US_Print(" (Sprite)"); | ||
258 | else if (i == ChunksInFile - 1) | ||
259 | US_Print(" (Sound Info)"); | ||
260 | else | ||
261 | US_Print(" (Sound)"); | ||
262 | |||
263 | /* US_Print("\n XMS: "); | ||
264 | if (page->xmsPage != -1) | ||
265 | US_PrintUnsigned(page->xmsPage); | ||
266 | else | ||
267 | US_Print("No"); | ||
268 | |||
269 | US_Print("\n Main: "); | ||
270 | if (page->mainPage != -1) | ||
271 | US_PrintUnsigned(page->mainPage); | ||
272 | else if (page->emsPage != -1) | ||
273 | { | ||
274 | US_Print("EMS "); | ||
275 | US_PrintUnsigned(page->emsPage); | ||
276 | } | ||
277 | else | ||
278 | US_Print("No"); | ||
279 | |||
280 | US_Print("\n Last hit: "); | ||
281 | US_PrintUnsigned(page->lastHit);*/ | ||
282 | |||
283 | US_Print("\n Address: "); | ||
284 | addr = (byte *) PM_GetPage(i); | ||
285 | sprintf(buf,"0x%08X",(int32_t) addr); | ||
286 | US_Print(buf); | ||
287 | |||
288 | if (addr) | ||
289 | { | ||
290 | if (i < PMSpriteStart) | ||
291 | { | ||
292 | // | ||
293 | // draw the wall | ||
294 | // | ||
295 | vbuf += 32*SCREENWIDTH; | ||
296 | postx = 128; | ||
297 | postwidth = 1; | ||
298 | postsource = addr; | ||
299 | for (x=0;x<64;x++,postx++,postsource+=64) | ||
300 | { | ||
301 | wallheight[postx] = 256; | ||
302 | ScalePost (); | ||
303 | } | ||
304 | vbuf -= 32*SCREENWIDTH; | ||
305 | } | ||
306 | else if (i < PMSoundStart) | ||
307 | { | ||
308 | // | ||
309 | // draw the sprite | ||
310 | // | ||
311 | vbuf += 32*SCREENWIDTH; | ||
312 | SimpleScaleShape (160, i-PMSpriteStart, 64); | ||
313 | vbuf -= 32*SCREENWIDTH; | ||
314 | } | ||
315 | else if (i == ChunksInFile - 1) | ||
316 | { | ||
317 | US_Print("\n\n Number of sounds: "); | ||
318 | US_PrintUnsigned(NumDigi); | ||
319 | for (l = j = k = 0;j < NumDigi;j++) | ||
320 | { | ||
321 | l += DigiList[(j * 2) + 1]; | ||
322 | k += (DigiList[(j * 2) + 1] + (PMPageSize - 1)) / PMPageSize; | ||
323 | } | ||
324 | US_Print("\n Total bytes: "); | ||
325 | US_PrintUnsigned(l); | ||
326 | US_Print("\n Total pages: "); | ||
327 | US_PrintUnsigned(k); | ||
328 | } | ||
329 | else | ||
330 | { | ||
331 | byte *dp = addr; | ||
332 | for (j = 0;j < NumDigi;j++) | ||
333 | { | ||
334 | k = (DigiList[(j * 2) + 1] + (PMPageSize - 1)) / PMPageSize; | ||
335 | if ((i >= PMSoundStart + DigiList[j * 2]) | ||
336 | && (i < PMSoundStart + DigiList[j * 2] + k)) | ||
337 | break; | ||
338 | } | ||
339 | if (j < NumDigi) | ||
340 | { | ||
341 | sound = (soundnames) j; | ||
342 | US_Print("\n Sound #"); | ||
343 | US_PrintUnsigned(j); | ||
344 | US_Print("\n Segment #"); | ||
345 | US_PrintUnsigned(i - PMSoundStart - DigiList[j * 2]); | ||
346 | } | ||
347 | for (j = 0;j < PageLengths[i];j += 32) | ||
348 | { | ||
349 | byte v = dp[j]; | ||
350 | int v2 = (unsigned)v; | ||
351 | v2 -= 128; | ||
352 | v2 /= 4; | ||
353 | if (v2 < 0) | ||
354 | VWB_Vlin(WindowY + WindowH - 32 + v2, | ||
355 | WindowY + WindowH - 32, | ||
356 | WindowX + 8 + (j / 32),BLACK); | ||
357 | else | ||
358 | VWB_Vlin(WindowY + WindowH - 32, | ||
359 | WindowY + WindowH - 32 + v2, | ||
360 | WindowX + 8 + (j / 32),BLACK); | ||
361 | } | ||
362 | } | ||
363 | } | ||
364 | |||
365 | VW_UpdateScreen(); | ||
366 | |||
367 | IN_Ack(); | ||
368 | scan = LastScan; | ||
369 | |||
370 | IN_ClearKey(scan); | ||
371 | switch (scan) | ||
372 | { | ||
373 | case sc_LeftArrow: | ||
374 | if (i) | ||
375 | i--; | ||
376 | break; | ||
377 | case sc_RightArrow: | ||
378 | if (++i >= ChunksInFile) | ||
379 | i--; | ||
380 | break; | ||
381 | case sc_W: // Walls | ||
382 | i = 0; | ||
383 | break; | ||
384 | case sc_S: // Sprites | ||
385 | i = PMSpriteStart; | ||
386 | break; | ||
387 | case sc_D: // Digitized | ||
388 | i = PMSoundStart; | ||
389 | break; | ||
390 | case sc_I: // Digitized info | ||
391 | i = ChunksInFile - 1; | ||
392 | break; | ||
393 | /* case sc_L: // Load all pages | ||
394 | for (j = 0;j < ChunksInFile;j++) | ||
395 | PM_GetPage(j); | ||
396 | break;*/ | ||
397 | case sc_P: | ||
398 | if (sound != -1) | ||
399 | SD_PlayDigitized(sound,8,8); | ||
400 | break; | ||
401 | case sc_Escape: | ||
402 | done = true; | ||
403 | break; | ||
404 | /* case sc_Enter: | ||
405 | PM_GetPage(i); | ||
406 | break;*/ | ||
407 | } | ||
408 | } | ||
409 | SD_StopDigitized(); | ||
410 | #endif | ||
411 | } | ||
412 | |||
413 | |||
414 | //=========================================================================== | ||
415 | |||
416 | |||
417 | /* | ||
418 | ================ | ||
419 | = | ||
420 | = DebugKeys | ||
421 | = | ||
422 | ================ | ||
423 | */ | ||
424 | |||
425 | int DebugKeys (void) | ||
426 | { | ||
427 | boolean esc; | ||
428 | int level; | ||
429 | |||
430 | if (Keyboard[sc_B]) // B = border color | ||
431 | { | ||
432 | CenterWindow(20,3); | ||
433 | PrintY+=6; | ||
434 | US_Print(" Border color (0-56): "); | ||
435 | VW_UpdateScreen(); | ||
436 | esc = !US_LineInput (px,py,str,NULL,true,2,0); | ||
437 | if (!esc) | ||
438 | { | ||
439 | level = atoi (str); | ||
440 | if (level>=0 && level<=99) | ||
441 | { | ||
442 | if (level<30) level += 31; | ||
443 | else | ||
444 | { | ||
445 | if (level > 56) level=31; | ||
446 | else level -= 26; | ||
447 | } | ||
448 | |||
449 | bordercol=level*4+3; | ||
450 | |||
451 | if (bordercol == VIEWCOLOR) | ||
452 | DrawStatusBorder(bordercol); | ||
453 | |||
454 | DrawPlayBorder(); | ||
455 | |||
456 | return 0; | ||
457 | } | ||
458 | } | ||
459 | return 1; | ||
460 | } | ||
461 | if (Keyboard[sc_C]) // C = count objects | ||
462 | { | ||
463 | CountObjects(); | ||
464 | return 1; | ||
465 | } | ||
466 | if (Keyboard[sc_D]) // D = Darkone's FPS counter | ||
467 | { | ||
468 | CenterWindow (22,2); | ||
469 | if (fpscounter) | ||
470 | US_PrintCentered ("Darkone's FPS Counter OFF"); | ||
471 | else | ||
472 | US_PrintCentered ("Darkone's FPS Counter ON"); | ||
473 | VW_UpdateScreen(); | ||
474 | IN_Ack(); | ||
475 | fpscounter ^= 1; | ||
476 | return 1; | ||
477 | } | ||
478 | if (Keyboard[sc_E]) // E = quit level | ||
479 | playstate = ex_completed; | ||
480 | |||
481 | if (Keyboard[sc_F]) // F = facing spot | ||
482 | { | ||
483 | char str[60]; | ||
484 | CenterWindow (14,6); | ||
485 | US_Print ("x:"); US_PrintUnsigned (player->x); | ||
486 | US_Print (" ("); US_PrintUnsigned (player->x%65536); | ||
487 | US_Print (")\ny:"); US_PrintUnsigned (player->y); | ||
488 | US_Print (" ("); US_PrintUnsigned (player->y%65536); | ||
489 | US_Print (")\nA:"); US_PrintUnsigned (player->angle); | ||
490 | US_Print (" X:"); US_PrintUnsigned (player->tilex); | ||
491 | US_Print (" Y:"); US_PrintUnsigned (player->tiley); | ||
492 | US_Print ("\n1:"); US_PrintUnsigned (tilemap[player->tilex][player->tiley]); | ||
493 | sprintf(str," 2:%.8X",(unsigned)(uintptr_t)actorat[player->tilex][player->tiley]); US_Print(str); | ||
494 | US_Print ("\nf 1:"); US_PrintUnsigned (player->areanumber); | ||
495 | US_Print (" 2:"); US_PrintUnsigned (MAPSPOT(player->tilex,player->tiley,1)); | ||
496 | US_Print (" 3:"); | ||
497 | if ((unsigned)(uintptr_t)actorat[player->tilex][player->tiley] < 256) | ||
498 | US_PrintUnsigned (spotvis[player->tilex][player->tiley]); | ||
499 | else | ||
500 | US_PrintUnsigned (actorat[player->tilex][player->tiley]->flags); | ||
501 | VW_UpdateScreen(); | ||
502 | IN_Ack(); | ||
503 | return 1; | ||
504 | } | ||
505 | |||
506 | if (Keyboard[sc_G]) // G = god mode | ||
507 | { | ||
508 | CenterWindow (12,2); | ||
509 | if (godmode == 0) | ||
510 | US_PrintCentered ("God mode ON"); | ||
511 | else if (godmode == 1) | ||
512 | US_PrintCentered ("God (no flash)"); | ||
513 | else if (godmode == 2) | ||
514 | US_PrintCentered ("God mode OFF"); | ||
515 | |||
516 | VW_UpdateScreen(); | ||
517 | IN_Ack(); | ||
518 | if (godmode != 2) | ||
519 | godmode++; | ||
520 | else | ||
521 | godmode = 0; | ||
522 | return 1; | ||
523 | } | ||
524 | if (Keyboard[sc_H]) // H = hurt self | ||
525 | { | ||
526 | IN_ClearKeysDown (); | ||
527 | TakeDamage (16,NULL); | ||
528 | } | ||
529 | else if (Keyboard[sc_I]) // I = item cheat | ||
530 | { | ||
531 | CenterWindow (12,3); | ||
532 | US_PrintCentered ("Free items!"); | ||
533 | VW_UpdateScreen(); | ||
534 | GivePoints (100000); | ||
535 | HealSelf (99); | ||
536 | if (gamestate.bestweapon<wp_chaingun) | ||
537 | GiveWeapon (gamestate.bestweapon+1); | ||
538 | gamestate.ammo += 50; | ||
539 | if (gamestate.ammo > 99) | ||
540 | gamestate.ammo = 99; | ||
541 | DrawAmmo (); | ||
542 | IN_Ack (); | ||
543 | return 1; | ||
544 | } | ||
545 | else if (Keyboard[sc_K]) // K = give keys | ||
546 | { | ||
547 | CenterWindow(16,3); | ||
548 | PrintY+=6; | ||
549 | US_Print(" Give Key (1-4): "); | ||
550 | VW_UpdateScreen(); | ||
551 | esc = !US_LineInput (px,py,str,NULL,true,1,0); | ||
552 | if (!esc) | ||
553 | { | ||
554 | level = atoi (str); | ||
555 | if (level>0 && level<5) | ||
556 | GiveKey(level-1); | ||
557 | } | ||
558 | return 1; | ||
559 | } | ||
560 | else if (Keyboard[sc_L]) // L = level ratios | ||
561 | { | ||
562 | byte x,start,end=LRpack; | ||
563 | |||
564 | if (end == 8) // wolf3d | ||
565 | { | ||
566 | CenterWindow(17,10); | ||
567 | start = 0; | ||
568 | } | ||
569 | else // sod | ||
570 | { | ||
571 | CenterWindow(17,12); | ||
572 | start = 0; end = 10; | ||
573 | } | ||
574 | again: | ||
575 | for(x=start;x<end;x++) | ||
576 | { | ||
577 | US_PrintUnsigned(x+1); | ||
578 | US_Print(" "); | ||
579 | US_PrintUnsigned(LevelRatios[x].time/60); | ||
580 | US_Print(":"); | ||
581 | if (LevelRatios[x].time%60 < 10) | ||
582 | US_Print("0"); | ||
583 | US_PrintUnsigned(LevelRatios[x].time%60); | ||
584 | US_Print(" "); | ||
585 | US_PrintUnsigned(LevelRatios[x].kill); | ||
586 | US_Print("% "); | ||
587 | US_PrintUnsigned(LevelRatios[x].secret); | ||
588 | US_Print("% "); | ||
589 | US_PrintUnsigned(LevelRatios[x].treasure); | ||
590 | US_Print("%\n"); | ||
591 | } | ||
592 | VW_UpdateScreen(); | ||
593 | IN_Ack(); | ||
594 | if (end == 10 && gamestate.mapon > 9) | ||
595 | { | ||
596 | start = 10; end = 20; | ||
597 | CenterWindow(17,12); | ||
598 | goto again; | ||
599 | } | ||
600 | |||
601 | return 1; | ||
602 | } | ||
603 | else if (Keyboard[sc_N]) // N = no clip | ||
604 | { | ||
605 | noclip^=1; | ||
606 | CenterWindow (18,3); | ||
607 | if (noclip) | ||
608 | US_PrintCentered ("No clipping ON"); | ||
609 | else | ||
610 | US_PrintCentered ("No clipping OFF"); | ||
611 | VW_UpdateScreen(); | ||
612 | IN_Ack (); | ||
613 | return 1; | ||
614 | } | ||
615 | else if (Keyboard[sc_O]) // O = basic overhead | ||
616 | { | ||
617 | BasicOverhead(); | ||
618 | return 1; | ||
619 | } | ||
620 | else if(Keyboard[sc_P]) // P = Ripper's picture grabber | ||
621 | { | ||
622 | PictureGrabber(); | ||
623 | return 1; | ||
624 | } | ||
625 | else if (Keyboard[sc_Q]) // Q = fast quit | ||
626 | Quit (NULL); | ||
627 | else if (Keyboard[sc_S]) // S = slow motion | ||
628 | { | ||
629 | CenterWindow(30,3); | ||
630 | PrintY+=6; | ||
631 | US_Print(" Slow Motion steps (default 14): "); | ||
632 | VW_UpdateScreen(); | ||
633 | esc = !US_LineInput (px,py,str,NULL,true,2,0); | ||
634 | if (!esc) | ||
635 | { | ||
636 | level = atoi (str); | ||
637 | if (level>=0 && level<=50) | ||
638 | singlestep = level; | ||
639 | } | ||
640 | return 1; | ||
641 | } | ||
642 | else if (Keyboard[sc_T]) // T = shape test | ||
643 | { | ||
644 | ShapeTest (); | ||
645 | return 1; | ||
646 | } | ||
647 | else if (Keyboard[sc_V]) // V = extra VBLs | ||
648 | { | ||
649 | CenterWindow(30,3); | ||
650 | PrintY+=6; | ||
651 | US_Print(" Add how many extra VBLs(0-8): "); | ||
652 | VW_UpdateScreen(); | ||
653 | esc = !US_LineInput (px,py,str,NULL,true,1,0); | ||
654 | if (!esc) | ||
655 | { | ||
656 | level = atoi (str); | ||
657 | if (level>=0 && level<=8) | ||
658 | extravbls = level; | ||
659 | } | ||
660 | return 1; | ||
661 | } | ||
662 | else if (Keyboard[sc_W]) // W = warp to level | ||
663 | { | ||
664 | CenterWindow(26,3); | ||
665 | PrintY+=6; | ||
666 | #ifndef SPEAR | ||
667 | US_Print(" Warp to which level(1-10): "); | ||
668 | #else | ||
669 | US_Print(" Warp to which level(1-21): "); | ||
670 | #endif | ||
671 | VW_UpdateScreen(); | ||
672 | esc = !US_LineInput (px,py,str,NULL,true,2,0); | ||
673 | if (!esc) | ||
674 | { | ||
675 | level = atoi (str); | ||
676 | #ifndef SPEAR | ||
677 | if (level>0 && level<11) | ||
678 | #else | ||
679 | if (level>0 && level<22) | ||
680 | #endif | ||
681 | { | ||
682 | gamestate.mapon = level-1; | ||
683 | playstate = ex_warped; | ||
684 | } | ||
685 | } | ||
686 | return 1; | ||
687 | } | ||
688 | else if (Keyboard[sc_X]) // X = item cheat | ||
689 | { | ||
690 | CenterWindow (12,3); | ||
691 | US_PrintCentered ("Extra stuff!"); | ||
692 | VW_UpdateScreen(); | ||
693 | // DEBUG: put stuff here | ||
694 | IN_Ack (); | ||
695 | return 1; | ||
696 | } | ||
697 | #ifdef USE_CLOUDSKY | ||
698 | else if(Keyboard[sc_Z]) | ||
699 | { | ||
700 | char defstr[15]; | ||
701 | |||
702 | CenterWindow(34,4); | ||
703 | PrintY+=6; | ||
704 | US_Print(" Recalculate sky with seek: "); | ||
705 | int seekpx = px, seekpy = py; | ||
706 | US_PrintUnsigned(curSky->seed); | ||
707 | US_Print("\n Use color map (0-"); | ||
708 | US_PrintUnsigned(numColorMaps - 1); | ||
709 | US_Print("): "); | ||
710 | int mappx = px, mappy = py; | ||
711 | US_PrintUnsigned(curSky->colorMapIndex); | ||
712 | VW_UpdateScreen(); | ||
713 | |||
714 | sprintf(defstr, "%u", curSky->seed); | ||
715 | esc = !US_LineInput(seekpx, seekpy, str, defstr, true, 10, 0); | ||
716 | if(esc) return 0; | ||
717 | curSky->seed = (uint32_t) atoi(str); | ||
718 | |||
719 | sprintf(defstr, "%u", curSky->colorMapIndex); | ||
720 | esc = !US_LineInput(mappx, mappy, str, defstr, true, 10, 0); | ||
721 | if(esc) return 0; | ||
722 | uint32_t newInd = (uint32_t) atoi(str); | ||
723 | if(newInd < (uint32_t) numColorMaps) | ||
724 | { | ||
725 | curSky->colorMapIndex = newInd; | ||
726 | InitSky(); | ||
727 | } | ||
728 | else | ||
729 | { | ||
730 | CenterWindow (18,3); | ||
731 | US_PrintCentered ("Illegal color map!"); | ||
732 | VW_UpdateScreen(); | ||
733 | IN_Ack (); | ||
734 | } | ||
735 | } | ||
736 | #endif | ||
737 | |||
738 | return 0; | ||
739 | } | ||
740 | |||
741 | |||
742 | #if 0 | ||
743 | /* | ||
744 | =================== | ||
745 | = | ||
746 | = OverheadRefresh | ||
747 | = | ||
748 | =================== | ||
749 | */ | ||
750 | |||
751 | void OverheadRefresh (void) | ||
752 | { | ||
753 | unsigned x,y,endx,endy,sx,sy; | ||
754 | unsigned tile; | ||
755 | |||
756 | |||
757 | endx = maporgx+VIEWTILEX; | ||
758 | endy = maporgy+VIEWTILEY; | ||
759 | |||
760 | for (y=maporgy;y<endy;y++) | ||
761 | { | ||
762 | for (x=maporgx;x<endx;x++) | ||
763 | { | ||
764 | sx = (x-maporgx)*16; | ||
765 | sy = (y-maporgy)*16; | ||
766 | |||
767 | switch (viewtype) | ||
768 | { | ||
769 | #if 0 | ||
770 | case mapview: | ||
771 | tile = *(mapsegs[0]+farmapylookup[y]+x); | ||
772 | break; | ||
773 | |||
774 | case tilemapview: | ||
775 | tile = tilemap[x][y]; | ||
776 | break; | ||
777 | |||
778 | case visview: | ||
779 | tile = spotvis[x][y]; | ||
780 | break; | ||
781 | #endif | ||
782 | case actoratview: | ||
783 | tile = (unsigned)actorat[x][y]; | ||
784 | break; | ||
785 | } | ||
786 | |||
787 | if (tile<MAXWALLTILES) | ||
788 | LatchDrawTile(sx,sy,tile); | ||
789 | else | ||
790 | { | ||
791 | LatchDrawChar(sx,sy,NUMBERCHARS+((tile&0xf000)>>12)); | ||
792 | LatchDrawChar(sx+8,sy,NUMBERCHARS+((tile&0x0f00)>>8)); | ||
793 | LatchDrawChar(sx,sy+8,NUMBERCHARS+((tile&0x00f0)>>4)); | ||
794 | LatchDrawChar(sx+8,sy+8,NUMBERCHARS+(tile&0x000f)); | ||
795 | } | ||
796 | } | ||
797 | } | ||
798 | } | ||
799 | #endif | ||
800 | |||
801 | #if 0 | ||
802 | /* | ||
803 | =================== | ||
804 | = | ||
805 | = ViewMap | ||
806 | = | ||
807 | =================== | ||
808 | */ | ||
809 | |||
810 | void ViewMap (void) | ||
811 | { | ||
812 | boolean button0held; | ||
813 | |||
814 | viewtype = actoratview; | ||
815 | // button0held = false; | ||
816 | |||
817 | |||
818 | maporgx = player->tilex - VIEWTILEX/2; | ||
819 | if (maporgx<0) | ||
820 | maporgx = 0; | ||
821 | if (maporgx>MAPSIZE-VIEWTILEX) | ||
822 | maporgx=MAPSIZE-VIEWTILEX; | ||
823 | maporgy = player->tiley - VIEWTILEY/2; | ||
824 | if (maporgy<0) | ||
825 | maporgy = 0; | ||
826 | if (maporgy>MAPSIZE-VIEWTILEY) | ||
827 | maporgy=MAPSIZE-VIEWTILEY; | ||
828 | |||
829 | do | ||
830 | { | ||
831 | // | ||
832 | // let user pan around | ||
833 | // | ||
834 | PollControls (); | ||
835 | if (controlx < 0 && maporgx>0) | ||
836 | maporgx--; | ||
837 | if (controlx > 0 && maporgx<mapwidth-VIEWTILEX) | ||
838 | maporgx++; | ||
839 | if (controly < 0 && maporgy>0) | ||
840 | maporgy--; | ||
841 | if (controly > 0 && maporgy<mapheight-VIEWTILEY) | ||
842 | maporgy++; | ||
843 | |||
844 | #if 0 | ||
845 | if (c.button0 && !button0held) | ||
846 | { | ||
847 | button0held = true; | ||
848 | viewtype++; | ||
849 | if (viewtype>visview) | ||
850 | viewtype = mapview; | ||
851 | } | ||
852 | if (!c.button0) | ||
853 | button0held = false; | ||
854 | #endif | ||
855 | |||
856 | OverheadRefresh (); | ||
857 | |||
858 | } while (!Keyboard[sc_Escape]); | ||
859 | |||
860 | IN_ClearKeysDown (); | ||
861 | } | ||
862 | #endif | ||
863 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_def.h b/apps/plugins/sdl/progs/wolf3d/wl_def.h new file mode 100644 index 0000000000..04bbb41bfb --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_def.h | |||
@@ -0,0 +1,1479 @@ | |||
1 | #ifndef WL_DEF_H | ||
2 | #define WL_DEF_H | ||
3 | |||
4 | // Defines which version shall be built and configures supported extra features | ||
5 | #include "version.h" | ||
6 | |||
7 | #define SOUND_ENABLE | ||
8 | |||
9 | #include "fixedpoint.h" | ||
10 | #include <ctype.h> | ||
11 | #include <stdint.h> | ||
12 | #include <stdarg.h> | ||
13 | #include <SDL.h> | ||
14 | #include <SDL_mixer.h> | ||
15 | |||
16 | #define open rb->open | ||
17 | #define read(a, b, c) rb->read((a), (b), (c)) | ||
18 | #define write(a, b, c) rb->write((a), (b), (c)) | ||
19 | #define close(a) rb->close(a) | ||
20 | |||
21 | #if !defined O_BINARY | ||
22 | # define O_BINARY 0 | ||
23 | #endif | ||
24 | |||
25 | #pragma pack(1) | ||
26 | |||
27 | #if defined(_arch_dreamcast) | ||
28 | #define YESBUTTONNAME "A" | ||
29 | #define NOBUTTONNAME "B" | ||
30 | #elif defined(GP2X) | ||
31 | #define YESBUTTONNAME "Y" | ||
32 | #define NOBUTTONNAME "B" | ||
33 | #else | ||
34 | #define YESBUTTONNAME "Y" | ||
35 | #define NOBUTTONNAME "N" | ||
36 | #endif | ||
37 | |||
38 | #include "foreign.h" | ||
39 | |||
40 | #ifndef SPEAR | ||
41 | #include "audiowl6.h" | ||
42 | #ifdef UPLOAD | ||
43 | #include "gfxv_apo.h" | ||
44 | #else | ||
45 | #ifdef GOODTIMES | ||
46 | #include "gfxv_wl6.h" | ||
47 | #else | ||
48 | #include "gfxv_apo.h" | ||
49 | #endif | ||
50 | #endif | ||
51 | #else | ||
52 | #include "audiosod.h" | ||
53 | #include "gfxv_sod.h" | ||
54 | #include "f_spear.h" | ||
55 | #endif | ||
56 | |||
57 | typedef uint8_t byte; | ||
58 | typedef uint16_t word; | ||
59 | typedef int32_t fixed; | ||
60 | typedef uint32_t longword; | ||
61 | typedef int8_t boolean; | ||
62 | typedef void * memptr; | ||
63 | |||
64 | typedef struct | ||
65 | { | ||
66 | int x,y; | ||
67 | } Point; | ||
68 | typedef struct | ||
69 | { | ||
70 | Point ul,lr; | ||
71 | } Rect; | ||
72 | |||
73 | void Quit(const char *errorStr, ...); | ||
74 | |||
75 | #include "id_pm.h" | ||
76 | #include "id_sd.h" | ||
77 | #include "id_in.h" | ||
78 | #include "id_vl.h" | ||
79 | #include "id_vh.h" | ||
80 | #include "id_us.h" | ||
81 | #include "id_ca.h" | ||
82 | |||
83 | #include "wl_menu.h" | ||
84 | |||
85 | #define MAPSPOT(x,y,plane) (mapsegs[plane][((y)<<mapshift)+(x)]) | ||
86 | |||
87 | #define SIGN(x) ((x)>0?1:-1) | ||
88 | #define ABS(x) ((int)(x)>0?(x):-(x)) | ||
89 | #define LABS(x) ((int32_t)(x)>0?(x):-(x)) | ||
90 | |||
91 | #define abs(x) ABS(x) | ||
92 | |||
93 | /* | ||
94 | ============================================================================= | ||
95 | |||
96 | GLOBAL CONSTANTS | ||
97 | |||
98 | ============================================================================= | ||
99 | */ | ||
100 | |||
101 | #define MAXTICS 10 | ||
102 | #define DEMOTICS 4 | ||
103 | |||
104 | #define MAXACTORS 150 // max number of nazis, etc / map | ||
105 | #define MAXSTATS 400 // max number of lamps, bonus, etc | ||
106 | #define MAXDOORS 64 // max number of sliding doors | ||
107 | #define MAXWALLTILES 64 // max number of wall tiles | ||
108 | |||
109 | // | ||
110 | // tile constants | ||
111 | // | ||
112 | |||
113 | #define ICONARROWS 90 | ||
114 | #define PUSHABLETILE 98 | ||
115 | #define EXITTILE 99 // at end of castle | ||
116 | #define AREATILE 107 // first of NUMAREAS floor tiles | ||
117 | #define NUMAREAS 37 | ||
118 | #define ELEVATORTILE 21 | ||
119 | #define AMBUSHTILE 106 | ||
120 | #define ALTELEVATORTILE 107 | ||
121 | |||
122 | #define NUMBERCHARS 9 | ||
123 | |||
124 | |||
125 | //---------------- | ||
126 | |||
127 | #define EXTRAPOINTS 40000 | ||
128 | |||
129 | #define PLAYERSPEED 3000 | ||
130 | #define RUNSPEED 6000 | ||
131 | |||
132 | #define SCREENSEG 0xa000 | ||
133 | |||
134 | #define SCREENBWIDE 80 | ||
135 | |||
136 | #define HEIGHTRATIO 0.50 // also defined in id_mm.c | ||
137 | |||
138 | #define BORDERCOLOR 3 | ||
139 | #define FLASHCOLOR 5 | ||
140 | #define FLASHTICS 4 | ||
141 | |||
142 | #ifndef SPEAR | ||
143 | #define LRpack 8 // # of levels to store in endgame | ||
144 | #else | ||
145 | #define LRpack 20 | ||
146 | #endif | ||
147 | |||
148 | #define PLAYERSIZE MINDIST // player radius | ||
149 | #define MINACTORDIST 0x10000l // minimum dist from player center | ||
150 | // to any actor center | ||
151 | |||
152 | #define NUMLATCHPICS 100 | ||
153 | |||
154 | #undef M_PI | ||
155 | #define PI 3.141592657 | ||
156 | #define M_PI PI | ||
157 | |||
158 | #define GLOBAL1 (1l<<16) | ||
159 | #define TILEGLOBAL GLOBAL1 | ||
160 | #define PIXGLOBAL (GLOBAL1/64) | ||
161 | #define TILESHIFT 16l | ||
162 | #define UNSIGNEDSHIFT 8 | ||
163 | |||
164 | #define ANGLES 360 // must be divisable by 4 | ||
165 | #define ANGLEQUAD (ANGLES/4) | ||
166 | #define FINEANGLES 3600 | ||
167 | #define ANG90 (FINEANGLES/4) | ||
168 | #define ANG180 (ANG90*2) | ||
169 | #define ANG270 (ANG90*3) | ||
170 | #define ANG360 (ANG90*4) | ||
171 | #define VANG90 (ANGLES/4) | ||
172 | #define VANG180 (VANG90*2) | ||
173 | #define VANG270 (VANG90*3) | ||
174 | #define VANG360 (VANG90*4) | ||
175 | |||
176 | #define MINDIST (0x5800l) | ||
177 | |||
178 | #define mapshift 6 | ||
179 | #define MAPSIZE (1<<mapshift) | ||
180 | #define maparea MAPSIZE*MAPSIZE | ||
181 | |||
182 | #define mapheight MAPSIZE | ||
183 | #define mapwidth MAPSIZE | ||
184 | |||
185 | #ifdef USE_HIRES | ||
186 | |||
187 | #define TEXTURESHIFT 7 | ||
188 | #define TEXTURESIZE (1<<TEXTURESHIFT) | ||
189 | #define TEXTUREFROMFIXEDSHIFT 2 | ||
190 | #define TEXTUREMASK (TEXTURESIZE*(TEXTURESIZE-1)) | ||
191 | |||
192 | #define SPRITESCALEFACTOR 1 | ||
193 | |||
194 | #else | ||
195 | |||
196 | #define TEXTURESHIFT 6 | ||
197 | #define TEXTURESIZE (1<<TEXTURESHIFT) | ||
198 | #define TEXTUREFROMFIXEDSHIFT 4 | ||
199 | #define TEXTUREMASK (TEXTURESIZE*(TEXTURESIZE-1)) | ||
200 | |||
201 | #define SPRITESCALEFACTOR 2 | ||
202 | |||
203 | #endif | ||
204 | |||
205 | #define NORTH 0 | ||
206 | #define EAST 1 | ||
207 | #define SOUTH 2 | ||
208 | #define WEST 3 | ||
209 | |||
210 | |||
211 | #define STATUSLINES 40 | ||
212 | |||
213 | #define SCREENSIZE (SCREENBWIDE*208) | ||
214 | #define PAGE1START 0 | ||
215 | #define PAGE2START (SCREENSIZE) | ||
216 | #define PAGE3START (SCREENSIZE*2u) | ||
217 | #define FREESTART (SCREENSIZE*3u) | ||
218 | |||
219 | |||
220 | #define PIXRADIUS 512 | ||
221 | |||
222 | #define STARTAMMO 8 | ||
223 | |||
224 | |||
225 | // object flag values | ||
226 | |||
227 | typedef enum | ||
228 | { | ||
229 | FL_SHOOTABLE = 0x00000001, | ||
230 | FL_BONUS = 0x00000002, | ||
231 | FL_NEVERMARK = 0x00000004, | ||
232 | FL_VISABLE = 0x00000008, | ||
233 | FL_ATTACKMODE = 0x00000010, | ||
234 | FL_FIRSTATTACK = 0x00000020, | ||
235 | FL_AMBUSH = 0x00000040, | ||
236 | FL_NONMARK = 0x00000080, | ||
237 | FL_FULLBRIGHT = 0x00000100, | ||
238 | #ifdef USE_DIR3DSPR | ||
239 | // you can choose one of the following values in wl_act1.cpp | ||
240 | // to make a static sprite a directional 3d sprite | ||
241 | // (see example at the end of the statinfo array) | ||
242 | FL_DIR_HORIZ_MID = 0x00000200, | ||
243 | FL_DIR_HORIZ_FW = 0x00000400, | ||
244 | FL_DIR_HORIZ_BW = 0x00000600, | ||
245 | FL_DIR_VERT_MID = 0x00000a00, | ||
246 | FL_DIR_VERT_FW = 0x00000c00, | ||
247 | FL_DIR_VERT_BW = 0x00000e00, | ||
248 | |||
249 | // these values are just used to improve readability of code | ||
250 | FL_DIR_NONE = 0x00000000, | ||
251 | FL_DIR_POS_MID = 0x00000200, | ||
252 | FL_DIR_POS_FW = 0x00000400, | ||
253 | FL_DIR_POS_BW = 0x00000600, | ||
254 | FL_DIR_POS_MASK = 0x00000600, | ||
255 | FL_DIR_VERT_FLAG = 0x00000800, | ||
256 | FL_DIR_MASK = 0x00000e00, | ||
257 | #endif | ||
258 | // next free bit is 0x00001000 | ||
259 | } objflag_t; | ||
260 | |||
261 | |||
262 | // | ||
263 | // sprite constants | ||
264 | // | ||
265 | |||
266 | enum | ||
267 | { | ||
268 | SPR_DEMO, | ||
269 | #ifndef APOGEE_1_0 | ||
270 | SPR_DEATHCAM, | ||
271 | #endif | ||
272 | // | ||
273 | // static sprites | ||
274 | // | ||
275 | SPR_STAT_0,SPR_STAT_1,SPR_STAT_2,SPR_STAT_3, | ||
276 | SPR_STAT_4,SPR_STAT_5,SPR_STAT_6,SPR_STAT_7, | ||
277 | |||
278 | SPR_STAT_8,SPR_STAT_9,SPR_STAT_10,SPR_STAT_11, | ||
279 | SPR_STAT_12,SPR_STAT_13,SPR_STAT_14,SPR_STAT_15, | ||
280 | |||
281 | SPR_STAT_16,SPR_STAT_17,SPR_STAT_18,SPR_STAT_19, | ||
282 | SPR_STAT_20,SPR_STAT_21,SPR_STAT_22,SPR_STAT_23, | ||
283 | |||
284 | SPR_STAT_24,SPR_STAT_25,SPR_STAT_26,SPR_STAT_27, | ||
285 | SPR_STAT_28,SPR_STAT_29,SPR_STAT_30,SPR_STAT_31, | ||
286 | |||
287 | SPR_STAT_32,SPR_STAT_33,SPR_STAT_34,SPR_STAT_35, | ||
288 | SPR_STAT_36,SPR_STAT_37,SPR_STAT_38,SPR_STAT_39, | ||
289 | |||
290 | SPR_STAT_40,SPR_STAT_41,SPR_STAT_42,SPR_STAT_43, | ||
291 | SPR_STAT_44,SPR_STAT_45,SPR_STAT_46,SPR_STAT_47, | ||
292 | |||
293 | #ifdef SPEAR | ||
294 | SPR_STAT_48,SPR_STAT_49,SPR_STAT_50,SPR_STAT_51, | ||
295 | #endif | ||
296 | |||
297 | // | ||
298 | // guard | ||
299 | // | ||
300 | SPR_GRD_S_1,SPR_GRD_S_2,SPR_GRD_S_3,SPR_GRD_S_4, | ||
301 | SPR_GRD_S_5,SPR_GRD_S_6,SPR_GRD_S_7,SPR_GRD_S_8, | ||
302 | |||
303 | SPR_GRD_W1_1,SPR_GRD_W1_2,SPR_GRD_W1_3,SPR_GRD_W1_4, | ||
304 | SPR_GRD_W1_5,SPR_GRD_W1_6,SPR_GRD_W1_7,SPR_GRD_W1_8, | ||
305 | |||
306 | SPR_GRD_W2_1,SPR_GRD_W2_2,SPR_GRD_W2_3,SPR_GRD_W2_4, | ||
307 | SPR_GRD_W2_5,SPR_GRD_W2_6,SPR_GRD_W2_7,SPR_GRD_W2_8, | ||
308 | |||
309 | SPR_GRD_W3_1,SPR_GRD_W3_2,SPR_GRD_W3_3,SPR_GRD_W3_4, | ||
310 | SPR_GRD_W3_5,SPR_GRD_W3_6,SPR_GRD_W3_7,SPR_GRD_W3_8, | ||
311 | |||
312 | SPR_GRD_W4_1,SPR_GRD_W4_2,SPR_GRD_W4_3,SPR_GRD_W4_4, | ||
313 | SPR_GRD_W4_5,SPR_GRD_W4_6,SPR_GRD_W4_7,SPR_GRD_W4_8, | ||
314 | |||
315 | SPR_GRD_PAIN_1,SPR_GRD_DIE_1,SPR_GRD_DIE_2,SPR_GRD_DIE_3, | ||
316 | SPR_GRD_PAIN_2,SPR_GRD_DEAD, | ||
317 | |||
318 | SPR_GRD_SHOOT1,SPR_GRD_SHOOT2,SPR_GRD_SHOOT3, | ||
319 | |||
320 | // | ||
321 | // dogs | ||
322 | // | ||
323 | SPR_DOG_W1_1,SPR_DOG_W1_2,SPR_DOG_W1_3,SPR_DOG_W1_4, | ||
324 | SPR_DOG_W1_5,SPR_DOG_W1_6,SPR_DOG_W1_7,SPR_DOG_W1_8, | ||
325 | |||
326 | SPR_DOG_W2_1,SPR_DOG_W2_2,SPR_DOG_W2_3,SPR_DOG_W2_4, | ||
327 | SPR_DOG_W2_5,SPR_DOG_W2_6,SPR_DOG_W2_7,SPR_DOG_W2_8, | ||
328 | |||
329 | SPR_DOG_W3_1,SPR_DOG_W3_2,SPR_DOG_W3_3,SPR_DOG_W3_4, | ||
330 | SPR_DOG_W3_5,SPR_DOG_W3_6,SPR_DOG_W3_7,SPR_DOG_W3_8, | ||
331 | |||
332 | SPR_DOG_W4_1,SPR_DOG_W4_2,SPR_DOG_W4_3,SPR_DOG_W4_4, | ||
333 | SPR_DOG_W4_5,SPR_DOG_W4_6,SPR_DOG_W4_7,SPR_DOG_W4_8, | ||
334 | |||
335 | SPR_DOG_DIE_1,SPR_DOG_DIE_2,SPR_DOG_DIE_3,SPR_DOG_DEAD, | ||
336 | SPR_DOG_JUMP1,SPR_DOG_JUMP2,SPR_DOG_JUMP3, | ||
337 | |||
338 | |||
339 | |||
340 | // | ||
341 | // ss | ||
342 | // | ||
343 | SPR_SS_S_1,SPR_SS_S_2,SPR_SS_S_3,SPR_SS_S_4, | ||
344 | SPR_SS_S_5,SPR_SS_S_6,SPR_SS_S_7,SPR_SS_S_8, | ||
345 | |||
346 | SPR_SS_W1_1,SPR_SS_W1_2,SPR_SS_W1_3,SPR_SS_W1_4, | ||
347 | SPR_SS_W1_5,SPR_SS_W1_6,SPR_SS_W1_7,SPR_SS_W1_8, | ||
348 | |||
349 | SPR_SS_W2_1,SPR_SS_W2_2,SPR_SS_W2_3,SPR_SS_W2_4, | ||
350 | SPR_SS_W2_5,SPR_SS_W2_6,SPR_SS_W2_7,SPR_SS_W2_8, | ||
351 | |||
352 | SPR_SS_W3_1,SPR_SS_W3_2,SPR_SS_W3_3,SPR_SS_W3_4, | ||
353 | SPR_SS_W3_5,SPR_SS_W3_6,SPR_SS_W3_7,SPR_SS_W3_8, | ||
354 | |||
355 | SPR_SS_W4_1,SPR_SS_W4_2,SPR_SS_W4_3,SPR_SS_W4_4, | ||
356 | SPR_SS_W4_5,SPR_SS_W4_6,SPR_SS_W4_7,SPR_SS_W4_8, | ||
357 | |||
358 | SPR_SS_PAIN_1,SPR_SS_DIE_1,SPR_SS_DIE_2,SPR_SS_DIE_3, | ||
359 | SPR_SS_PAIN_2,SPR_SS_DEAD, | ||
360 | |||
361 | SPR_SS_SHOOT1,SPR_SS_SHOOT2,SPR_SS_SHOOT3, | ||
362 | |||
363 | // | ||
364 | // mutant | ||
365 | // | ||
366 | SPR_MUT_S_1,SPR_MUT_S_2,SPR_MUT_S_3,SPR_MUT_S_4, | ||
367 | SPR_MUT_S_5,SPR_MUT_S_6,SPR_MUT_S_7,SPR_MUT_S_8, | ||
368 | |||
369 | SPR_MUT_W1_1,SPR_MUT_W1_2,SPR_MUT_W1_3,SPR_MUT_W1_4, | ||
370 | SPR_MUT_W1_5,SPR_MUT_W1_6,SPR_MUT_W1_7,SPR_MUT_W1_8, | ||
371 | |||
372 | SPR_MUT_W2_1,SPR_MUT_W2_2,SPR_MUT_W2_3,SPR_MUT_W2_4, | ||
373 | SPR_MUT_W2_5,SPR_MUT_W2_6,SPR_MUT_W2_7,SPR_MUT_W2_8, | ||
374 | |||
375 | SPR_MUT_W3_1,SPR_MUT_W3_2,SPR_MUT_W3_3,SPR_MUT_W3_4, | ||
376 | SPR_MUT_W3_5,SPR_MUT_W3_6,SPR_MUT_W3_7,SPR_MUT_W3_8, | ||
377 | |||
378 | SPR_MUT_W4_1,SPR_MUT_W4_2,SPR_MUT_W4_3,SPR_MUT_W4_4, | ||
379 | SPR_MUT_W4_5,SPR_MUT_W4_6,SPR_MUT_W4_7,SPR_MUT_W4_8, | ||
380 | |||
381 | SPR_MUT_PAIN_1,SPR_MUT_DIE_1,SPR_MUT_DIE_2,SPR_MUT_DIE_3, | ||
382 | SPR_MUT_PAIN_2,SPR_MUT_DIE_4,SPR_MUT_DEAD, | ||
383 | |||
384 | SPR_MUT_SHOOT1,SPR_MUT_SHOOT2,SPR_MUT_SHOOT3,SPR_MUT_SHOOT4, | ||
385 | |||
386 | // | ||
387 | // officer | ||
388 | // | ||
389 | SPR_OFC_S_1,SPR_OFC_S_2,SPR_OFC_S_3,SPR_OFC_S_4, | ||
390 | SPR_OFC_S_5,SPR_OFC_S_6,SPR_OFC_S_7,SPR_OFC_S_8, | ||
391 | |||
392 | SPR_OFC_W1_1,SPR_OFC_W1_2,SPR_OFC_W1_3,SPR_OFC_W1_4, | ||
393 | SPR_OFC_W1_5,SPR_OFC_W1_6,SPR_OFC_W1_7,SPR_OFC_W1_8, | ||
394 | |||
395 | SPR_OFC_W2_1,SPR_OFC_W2_2,SPR_OFC_W2_3,SPR_OFC_W2_4, | ||
396 | SPR_OFC_W2_5,SPR_OFC_W2_6,SPR_OFC_W2_7,SPR_OFC_W2_8, | ||
397 | |||
398 | SPR_OFC_W3_1,SPR_OFC_W3_2,SPR_OFC_W3_3,SPR_OFC_W3_4, | ||
399 | SPR_OFC_W3_5,SPR_OFC_W3_6,SPR_OFC_W3_7,SPR_OFC_W3_8, | ||
400 | |||
401 | SPR_OFC_W4_1,SPR_OFC_W4_2,SPR_OFC_W4_3,SPR_OFC_W4_4, | ||
402 | SPR_OFC_W4_5,SPR_OFC_W4_6,SPR_OFC_W4_7,SPR_OFC_W4_8, | ||
403 | |||
404 | SPR_OFC_PAIN_1,SPR_OFC_DIE_1,SPR_OFC_DIE_2,SPR_OFC_DIE_3, | ||
405 | SPR_OFC_PAIN_2,SPR_OFC_DIE_4,SPR_OFC_DEAD, | ||
406 | |||
407 | SPR_OFC_SHOOT1,SPR_OFC_SHOOT2,SPR_OFC_SHOOT3, | ||
408 | |||
409 | #ifndef SPEAR | ||
410 | // | ||
411 | // ghosts | ||
412 | // | ||
413 | SPR_BLINKY_W1,SPR_BLINKY_W2,SPR_PINKY_W1,SPR_PINKY_W2, | ||
414 | SPR_CLYDE_W1,SPR_CLYDE_W2,SPR_INKY_W1,SPR_INKY_W2, | ||
415 | |||
416 | // | ||
417 | // hans | ||
418 | // | ||
419 | SPR_BOSS_W1,SPR_BOSS_W2,SPR_BOSS_W3,SPR_BOSS_W4, | ||
420 | SPR_BOSS_SHOOT1,SPR_BOSS_SHOOT2,SPR_BOSS_SHOOT3,SPR_BOSS_DEAD, | ||
421 | |||
422 | SPR_BOSS_DIE1,SPR_BOSS_DIE2,SPR_BOSS_DIE3, | ||
423 | |||
424 | // | ||
425 | // schabbs | ||
426 | // | ||
427 | SPR_SCHABB_W1,SPR_SCHABB_W2,SPR_SCHABB_W3,SPR_SCHABB_W4, | ||
428 | SPR_SCHABB_SHOOT1,SPR_SCHABB_SHOOT2, | ||
429 | |||
430 | SPR_SCHABB_DIE1,SPR_SCHABB_DIE2,SPR_SCHABB_DIE3,SPR_SCHABB_DEAD, | ||
431 | SPR_HYPO1,SPR_HYPO2,SPR_HYPO3,SPR_HYPO4, | ||
432 | |||
433 | // | ||
434 | // fake | ||
435 | // | ||
436 | SPR_FAKE_W1,SPR_FAKE_W2,SPR_FAKE_W3,SPR_FAKE_W4, | ||
437 | SPR_FAKE_SHOOT,SPR_FIRE1,SPR_FIRE2, | ||
438 | |||
439 | SPR_FAKE_DIE1,SPR_FAKE_DIE2,SPR_FAKE_DIE3,SPR_FAKE_DIE4, | ||
440 | SPR_FAKE_DIE5,SPR_FAKE_DEAD, | ||
441 | |||
442 | // | ||
443 | // hitler | ||
444 | // | ||
445 | SPR_MECHA_W1,SPR_MECHA_W2,SPR_MECHA_W3,SPR_MECHA_W4, | ||
446 | SPR_MECHA_SHOOT1,SPR_MECHA_SHOOT2,SPR_MECHA_SHOOT3,SPR_MECHA_DEAD, | ||
447 | |||
448 | SPR_MECHA_DIE1,SPR_MECHA_DIE2,SPR_MECHA_DIE3, | ||
449 | |||
450 | SPR_HITLER_W1,SPR_HITLER_W2,SPR_HITLER_W3,SPR_HITLER_W4, | ||
451 | SPR_HITLER_SHOOT1,SPR_HITLER_SHOOT2,SPR_HITLER_SHOOT3,SPR_HITLER_DEAD, | ||
452 | |||
453 | SPR_HITLER_DIE1,SPR_HITLER_DIE2,SPR_HITLER_DIE3,SPR_HITLER_DIE4, | ||
454 | SPR_HITLER_DIE5,SPR_HITLER_DIE6,SPR_HITLER_DIE7, | ||
455 | |||
456 | // | ||
457 | // giftmacher | ||
458 | // | ||
459 | SPR_GIFT_W1,SPR_GIFT_W2,SPR_GIFT_W3,SPR_GIFT_W4, | ||
460 | SPR_GIFT_SHOOT1,SPR_GIFT_SHOOT2, | ||
461 | |||
462 | SPR_GIFT_DIE1,SPR_GIFT_DIE2,SPR_GIFT_DIE3,SPR_GIFT_DEAD, | ||
463 | #endif | ||
464 | // | ||
465 | // Rocket, smoke and small explosion | ||
466 | // | ||
467 | SPR_ROCKET_1,SPR_ROCKET_2,SPR_ROCKET_3,SPR_ROCKET_4, | ||
468 | SPR_ROCKET_5,SPR_ROCKET_6,SPR_ROCKET_7,SPR_ROCKET_8, | ||
469 | |||
470 | SPR_SMOKE_1,SPR_SMOKE_2,SPR_SMOKE_3,SPR_SMOKE_4, | ||
471 | SPR_BOOM_1,SPR_BOOM_2,SPR_BOOM_3, | ||
472 | |||
473 | // | ||
474 | // Angel of Death's DeathSparks(tm) | ||
475 | // | ||
476 | #ifdef SPEAR | ||
477 | SPR_HROCKET_1,SPR_HROCKET_2,SPR_HROCKET_3,SPR_HROCKET_4, | ||
478 | SPR_HROCKET_5,SPR_HROCKET_6,SPR_HROCKET_7,SPR_HROCKET_8, | ||
479 | |||
480 | SPR_HSMOKE_1,SPR_HSMOKE_2,SPR_HSMOKE_3,SPR_HSMOKE_4, | ||
481 | SPR_HBOOM_1,SPR_HBOOM_2,SPR_HBOOM_3, | ||
482 | |||
483 | SPR_SPARK1,SPR_SPARK2,SPR_SPARK3,SPR_SPARK4, | ||
484 | #endif | ||
485 | |||
486 | #ifndef SPEAR | ||
487 | // | ||
488 | // gretel | ||
489 | // | ||
490 | SPR_GRETEL_W1,SPR_GRETEL_W2,SPR_GRETEL_W3,SPR_GRETEL_W4, | ||
491 | SPR_GRETEL_SHOOT1,SPR_GRETEL_SHOOT2,SPR_GRETEL_SHOOT3,SPR_GRETEL_DEAD, | ||
492 | |||
493 | SPR_GRETEL_DIE1,SPR_GRETEL_DIE2,SPR_GRETEL_DIE3, | ||
494 | |||
495 | // | ||
496 | // fat face | ||
497 | // | ||
498 | SPR_FAT_W1,SPR_FAT_W2,SPR_FAT_W3,SPR_FAT_W4, | ||
499 | SPR_FAT_SHOOT1,SPR_FAT_SHOOT2,SPR_FAT_SHOOT3,SPR_FAT_SHOOT4, | ||
500 | |||
501 | SPR_FAT_DIE1,SPR_FAT_DIE2,SPR_FAT_DIE3,SPR_FAT_DEAD, | ||
502 | |||
503 | // | ||
504 | // bj | ||
505 | // | ||
506 | #ifdef APOGEE_1_0 | ||
507 | SPR_BJ_W1=360, | ||
508 | #elif defined(APOGEE_1_1) && defined(UPLOAD) | ||
509 | SPR_BJ_W1=406, | ||
510 | #else | ||
511 | SPR_BJ_W1, | ||
512 | #endif | ||
513 | SPR_BJ_W2,SPR_BJ_W3,SPR_BJ_W4, | ||
514 | SPR_BJ_JUMP1,SPR_BJ_JUMP2,SPR_BJ_JUMP3,SPR_BJ_JUMP4, | ||
515 | #else | ||
516 | // | ||
517 | // THESE ARE FOR 'SPEAR OF DESTINY' | ||
518 | // | ||
519 | |||
520 | // | ||
521 | // Trans Grosse | ||
522 | // | ||
523 | SPR_TRANS_W1,SPR_TRANS_W2,SPR_TRANS_W3,SPR_TRANS_W4, | ||
524 | SPR_TRANS_SHOOT1,SPR_TRANS_SHOOT2,SPR_TRANS_SHOOT3,SPR_TRANS_DEAD, | ||
525 | |||
526 | SPR_TRANS_DIE1,SPR_TRANS_DIE2,SPR_TRANS_DIE3, | ||
527 | |||
528 | // | ||
529 | // Wilhelm | ||
530 | // | ||
531 | SPR_WILL_W1,SPR_WILL_W2,SPR_WILL_W3,SPR_WILL_W4, | ||
532 | SPR_WILL_SHOOT1,SPR_WILL_SHOOT2,SPR_WILL_SHOOT3,SPR_WILL_SHOOT4, | ||
533 | |||
534 | SPR_WILL_DIE1,SPR_WILL_DIE2,SPR_WILL_DIE3,SPR_WILL_DEAD, | ||
535 | |||
536 | // | ||
537 | // UberMutant | ||
538 | // | ||
539 | SPR_UBER_W1,SPR_UBER_W2,SPR_UBER_W3,SPR_UBER_W4, | ||
540 | SPR_UBER_SHOOT1,SPR_UBER_SHOOT2,SPR_UBER_SHOOT3,SPR_UBER_SHOOT4, | ||
541 | |||
542 | SPR_UBER_DIE1,SPR_UBER_DIE2,SPR_UBER_DIE3,SPR_UBER_DIE4, | ||
543 | SPR_UBER_DEAD, | ||
544 | |||
545 | // | ||
546 | // Death Knight | ||
547 | // | ||
548 | SPR_DEATH_W1,SPR_DEATH_W2,SPR_DEATH_W3,SPR_DEATH_W4, | ||
549 | SPR_DEATH_SHOOT1,SPR_DEATH_SHOOT2,SPR_DEATH_SHOOT3,SPR_DEATH_SHOOT4, | ||
550 | |||
551 | SPR_DEATH_DIE1,SPR_DEATH_DIE2,SPR_DEATH_DIE3,SPR_DEATH_DIE4, | ||
552 | SPR_DEATH_DIE5,SPR_DEATH_DIE6,SPR_DEATH_DEAD, | ||
553 | |||
554 | // | ||
555 | // Ghost | ||
556 | // | ||
557 | SPR_SPECTRE_W1,SPR_SPECTRE_W2,SPR_SPECTRE_W3,SPR_SPECTRE_W4, | ||
558 | SPR_SPECTRE_F1,SPR_SPECTRE_F2,SPR_SPECTRE_F3,SPR_SPECTRE_F4, | ||
559 | |||
560 | // | ||
561 | // Angel of Death | ||
562 | // | ||
563 | SPR_ANGEL_W1,SPR_ANGEL_W2,SPR_ANGEL_W3,SPR_ANGEL_W4, | ||
564 | SPR_ANGEL_SHOOT1,SPR_ANGEL_SHOOT2,SPR_ANGEL_TIRED1,SPR_ANGEL_TIRED2, | ||
565 | |||
566 | SPR_ANGEL_DIE1,SPR_ANGEL_DIE2,SPR_ANGEL_DIE3,SPR_ANGEL_DIE4, | ||
567 | SPR_ANGEL_DIE5,SPR_ANGEL_DIE6,SPR_ANGEL_DIE7,SPR_ANGEL_DEAD, | ||
568 | |||
569 | #endif | ||
570 | |||
571 | // | ||
572 | // player attack frames | ||
573 | // | ||
574 | SPR_KNIFEREADY,SPR_KNIFEATK1,SPR_KNIFEATK2,SPR_KNIFEATK3, | ||
575 | SPR_KNIFEATK4, | ||
576 | |||
577 | SPR_PISTOLREADY,SPR_PISTOLATK1,SPR_PISTOLATK2,SPR_PISTOLATK3, | ||
578 | SPR_PISTOLATK4, | ||
579 | |||
580 | SPR_MACHINEGUNREADY,SPR_MACHINEGUNATK1,SPR_MACHINEGUNATK2,MACHINEGUNATK3, | ||
581 | SPR_MACHINEGUNATK4, | ||
582 | |||
583 | SPR_CHAINREADY,SPR_CHAINATK1,SPR_CHAINATK2,SPR_CHAINATK3, | ||
584 | SPR_CHAINATK4, | ||
585 | |||
586 | }; | ||
587 | |||
588 | |||
589 | /* | ||
590 | ============================================================================= | ||
591 | |||
592 | GLOBAL TYPES | ||
593 | |||
594 | ============================================================================= | ||
595 | */ | ||
596 | |||
597 | typedef enum { | ||
598 | di_north, | ||
599 | di_east, | ||
600 | di_south, | ||
601 | di_west | ||
602 | } controldir_t; | ||
603 | |||
604 | typedef enum { | ||
605 | dr_normal, | ||
606 | dr_lock1, | ||
607 | dr_lock2, | ||
608 | dr_lock3, | ||
609 | dr_lock4, | ||
610 | dr_elevator | ||
611 | } door_t; | ||
612 | |||
613 | typedef enum { | ||
614 | ac_badobject = -1, | ||
615 | ac_no, | ||
616 | ac_yes, | ||
617 | ac_allways | ||
618 | } activetype; | ||
619 | |||
620 | typedef enum { | ||
621 | nothing, | ||
622 | playerobj, | ||
623 | inertobj, | ||
624 | guardobj, | ||
625 | officerobj, | ||
626 | ssobj, | ||
627 | dogobj, | ||
628 | bossobj, | ||
629 | schabbobj, | ||
630 | fakeobj, | ||
631 | mechahitlerobj, | ||
632 | mutantobj, | ||
633 | needleobj, | ||
634 | fireobj, | ||
635 | bjobj, | ||
636 | ghostobj, | ||
637 | realhitlerobj, | ||
638 | gretelobj, | ||
639 | giftobj, | ||
640 | fatobj, | ||
641 | rocketobj, | ||
642 | |||
643 | spectreobj, | ||
644 | angelobj, | ||
645 | transobj, | ||
646 | uberobj, | ||
647 | willobj, | ||
648 | deathobj, | ||
649 | hrocketobj, | ||
650 | sparkobj | ||
651 | } classtype; | ||
652 | |||
653 | typedef enum { | ||
654 | none, | ||
655 | block, | ||
656 | bo_gibs, | ||
657 | bo_alpo, | ||
658 | bo_firstaid, | ||
659 | bo_key1, | ||
660 | bo_key2, | ||
661 | bo_key3, | ||
662 | bo_key4, | ||
663 | bo_cross, | ||
664 | bo_chalice, | ||
665 | bo_bible, | ||
666 | bo_crown, | ||
667 | bo_clip, | ||
668 | bo_clip2, | ||
669 | bo_machinegun, | ||
670 | bo_chaingun, | ||
671 | bo_food, | ||
672 | bo_fullheal, | ||
673 | bo_25clip, | ||
674 | bo_spear | ||
675 | } wl_stat_t; | ||
676 | |||
677 | typedef enum { | ||
678 | east, | ||
679 | northeast, | ||
680 | north, | ||
681 | northwest, | ||
682 | west, | ||
683 | southwest, | ||
684 | south, | ||
685 | southeast, | ||
686 | nodir | ||
687 | } dirtype; | ||
688 | |||
689 | |||
690 | #define NUMENEMIES 22 | ||
691 | typedef enum { | ||
692 | en_guard, | ||
693 | en_officer, | ||
694 | en_ss, | ||
695 | en_dog, | ||
696 | en_boss, | ||
697 | en_schabbs, | ||
698 | en_fake, | ||
699 | en_hitler, | ||
700 | en_mutant, | ||
701 | en_blinky, | ||
702 | en_clyde, | ||
703 | en_pinky, | ||
704 | en_inky, | ||
705 | en_gretel, | ||
706 | en_gift, | ||
707 | en_fat, | ||
708 | en_spectre, | ||
709 | en_angel, | ||
710 | en_trans, | ||
711 | en_uber, | ||
712 | en_will, | ||
713 | en_death | ||
714 | } enemy_t; | ||
715 | |||
716 | typedef void (* statefunc) (void *); | ||
717 | |||
718 | typedef struct statestruct | ||
719 | { | ||
720 | boolean rotate; | ||
721 | short shapenum; // a shapenum of -1 means get from ob->temp1 | ||
722 | short tictime; | ||
723 | void (*think) (void *),(*action) (void *); | ||
724 | struct statestruct *next; | ||
725 | } statetype; | ||
726 | |||
727 | |||
728 | //--------------------- | ||
729 | // | ||
730 | // trivial actor structure | ||
731 | // | ||
732 | //--------------------- | ||
733 | |||
734 | typedef struct statstruct | ||
735 | { | ||
736 | byte tilex,tiley; | ||
737 | short shapenum; // if shapenum == -1 the obj has been removed | ||
738 | byte *visspot; | ||
739 | uint32_t flags; | ||
740 | byte itemnumber; | ||
741 | } statobj_t; | ||
742 | |||
743 | |||
744 | //--------------------- | ||
745 | // | ||
746 | // door actor structure | ||
747 | // | ||
748 | //--------------------- | ||
749 | |||
750 | typedef enum | ||
751 | { | ||
752 | dr_open,dr_closed,dr_opening,dr_closing | ||
753 | } doortype; | ||
754 | |||
755 | typedef struct doorstruct | ||
756 | { | ||
757 | byte tilex,tiley; | ||
758 | boolean vertical; | ||
759 | byte lock; | ||
760 | doortype action; | ||
761 | short ticcount; | ||
762 | } doorobj_t; | ||
763 | |||
764 | |||
765 | //-------------------- | ||
766 | // | ||
767 | // thinking actor structure | ||
768 | // | ||
769 | //-------------------- | ||
770 | |||
771 | typedef struct objstruct | ||
772 | { | ||
773 | activetype active; | ||
774 | short ticcount; | ||
775 | classtype obclass; | ||
776 | statetype *state; | ||
777 | |||
778 | uint32_t flags; // FL_SHOOTABLE, etc | ||
779 | |||
780 | int32_t distance; // if negative, wait for that door to open | ||
781 | dirtype dir; | ||
782 | |||
783 | fixed x,y; | ||
784 | word tilex,tiley; | ||
785 | byte areanumber; | ||
786 | |||
787 | short viewx; | ||
788 | word viewheight; | ||
789 | fixed transx,transy; // in global coord | ||
790 | |||
791 | short angle; | ||
792 | short hitpoints; | ||
793 | int32_t speed; | ||
794 | |||
795 | short temp1,temp2,hidden; | ||
796 | struct objstruct *next,*prev; | ||
797 | } objtype; | ||
798 | |||
799 | enum | ||
800 | { | ||
801 | bt_nobutton=-1, | ||
802 | bt_attack=0, | ||
803 | bt_strafe, | ||
804 | bt_run, | ||
805 | bt_use, | ||
806 | bt_readyknife, | ||
807 | bt_readypistol, | ||
808 | bt_readymachinegun, | ||
809 | bt_readychaingun, | ||
810 | bt_nextweapon, | ||
811 | bt_prevweapon, | ||
812 | bt_esc, | ||
813 | bt_pause, | ||
814 | bt_strafeleft, | ||
815 | bt_straferight, | ||
816 | bt_moveforward, | ||
817 | bt_movebackward, | ||
818 | bt_turnleft, | ||
819 | bt_turnright, | ||
820 | NUMBUTTONS | ||
821 | }; | ||
822 | |||
823 | |||
824 | #define NUMWEAPONS 4 | ||
825 | typedef enum | ||
826 | { | ||
827 | wp_knife, | ||
828 | wp_pistol, | ||
829 | wp_machinegun, | ||
830 | wp_chaingun | ||
831 | } weapontype; | ||
832 | |||
833 | |||
834 | enum | ||
835 | { | ||
836 | gd_baby, | ||
837 | gd_easy, | ||
838 | gd_medium, | ||
839 | gd_hard | ||
840 | }; | ||
841 | |||
842 | //--------------- | ||
843 | // | ||
844 | // gamestate structure | ||
845 | // | ||
846 | //--------------- | ||
847 | |||
848 | typedef struct | ||
849 | { | ||
850 | short difficulty; | ||
851 | short mapon; | ||
852 | int32_t oldscore,score,nextextra; | ||
853 | short lives; | ||
854 | short health; | ||
855 | short ammo; | ||
856 | short keys; | ||
857 | weapontype bestweapon,weapon,chosenweapon; | ||
858 | |||
859 | short faceframe; | ||
860 | short attackframe,attackcount,weaponframe; | ||
861 | |||
862 | short episode,secretcount,treasurecount,killcount, | ||
863 | secrettotal,treasuretotal,killtotal; | ||
864 | int32_t TimeCount; | ||
865 | int32_t killx,killy; | ||
866 | boolean victoryflag; // set during victory animations | ||
867 | } gametype; | ||
868 | |||
869 | |||
870 | typedef enum | ||
871 | { | ||
872 | ex_stillplaying, | ||
873 | ex_completed, | ||
874 | ex_died, | ||
875 | ex_warped, | ||
876 | ex_resetgame, | ||
877 | ex_loadedgame, | ||
878 | ex_victorious, | ||
879 | ex_abort, | ||
880 | ex_demodone, | ||
881 | ex_secretlevel | ||
882 | } exit_t; | ||
883 | |||
884 | |||
885 | extern word *mapsegs[MAPPLANES]; | ||
886 | extern int mapon; | ||
887 | |||
888 | /* | ||
889 | ============================================================================= | ||
890 | |||
891 | WL_MAIN DEFINITIONS | ||
892 | |||
893 | ============================================================================= | ||
894 | */ | ||
895 | |||
896 | extern boolean loadedgame; | ||
897 | extern fixed focallength; | ||
898 | extern int viewscreenx, viewscreeny; | ||
899 | extern int viewwidth; | ||
900 | extern int viewheight; | ||
901 | extern short centerx; | ||
902 | extern int32_t heightnumerator; | ||
903 | extern fixed scale; | ||
904 | |||
905 | extern int dirangle[9]; | ||
906 | |||
907 | extern int mouseadjustment; | ||
908 | extern int shootdelta; | ||
909 | extern unsigned screenofs; | ||
910 | |||
911 | extern boolean startgame; | ||
912 | extern char str[80]; | ||
913 | extern char configdir[256]; | ||
914 | extern char configname[13]; | ||
915 | |||
916 | // | ||
917 | // Command line parameter variables | ||
918 | // | ||
919 | extern boolean param_debugmode; | ||
920 | extern boolean param_nowait; | ||
921 | extern int param_difficulty; | ||
922 | extern int param_tedlevel; | ||
923 | extern int param_joystickindex; | ||
924 | extern int param_joystickhat; | ||
925 | extern int param_samplerate; | ||
926 | extern int param_audiobuffer; | ||
927 | extern int param_mission; | ||
928 | extern boolean param_goodtimes; | ||
929 | extern boolean param_ignorenumchunks; | ||
930 | |||
931 | |||
932 | void NewGame (int difficulty,int episode); | ||
933 | void CalcProjection (int32_t focal); | ||
934 | void NewViewSize (int width); | ||
935 | boolean SetViewSize (unsigned width, unsigned height); | ||
936 | boolean LoadTheGame(FILE *file,int x,int y); | ||
937 | boolean SaveTheGame(FILE *file,int x,int y); | ||
938 | void ShowViewSize (int width); | ||
939 | void ShutdownId (void); | ||
940 | |||
941 | |||
942 | /* | ||
943 | ============================================================================= | ||
944 | |||
945 | WL_GAME DEFINITIONS | ||
946 | |||
947 | ============================================================================= | ||
948 | */ | ||
949 | |||
950 | extern gametype gamestate; | ||
951 | extern byte bordercol; | ||
952 | extern SDL_Surface *latchpics[NUMLATCHPICS]; | ||
953 | extern char demoname[13]; | ||
954 | |||
955 | void SetupGameLevel (void); | ||
956 | void GameLoop (void); | ||
957 | void DrawPlayBorder (void); | ||
958 | void DrawStatusBorder (byte color); | ||
959 | void DrawPlayScreen (void); | ||
960 | void DrawPlayBorderSides (void); | ||
961 | void ShowActStatus(); | ||
962 | |||
963 | void PlayDemo (int demonumber); | ||
964 | void RecordDemo (void); | ||
965 | |||
966 | |||
967 | #ifdef SPEAR | ||
968 | extern int32_t spearx,speary; | ||
969 | extern unsigned spearangle; | ||
970 | extern boolean spearflag; | ||
971 | #endif | ||
972 | |||
973 | |||
974 | #define ClearMemory SD_StopDigitized | ||
975 | |||
976 | |||
977 | // JAB | ||
978 | #define PlaySoundLocTile(s,tx,ty) PlaySoundLocGlobal(s,(((int32_t)(tx) << TILESHIFT) + (1L << (TILESHIFT - 1))),(((int32_t)ty << TILESHIFT) + (1L << (TILESHIFT - 1)))) | ||
979 | #define PlaySoundLocActor(s,ob) PlaySoundLocGlobal(s,(ob)->x,(ob)->y) | ||
980 | void PlaySoundLocGlobal(word s,fixed gx,fixed gy); | ||
981 | void UpdateSoundLoc(void); | ||
982 | |||
983 | |||
984 | /* | ||
985 | ============================================================================= | ||
986 | |||
987 | WL_PLAY DEFINITIONS | ||
988 | |||
989 | ============================================================================= | ||
990 | */ | ||
991 | |||
992 | #define BASEMOVE 35 | ||
993 | #define RUNMOVE 70 | ||
994 | #define BASETURN 35 | ||
995 | #define RUNTURN 70 | ||
996 | |||
997 | #define JOYSCALE 2 | ||
998 | |||
999 | extern byte tilemap[MAPSIZE][MAPSIZE]; // wall values only | ||
1000 | extern byte spotvis[MAPSIZE][MAPSIZE]; | ||
1001 | extern objtype *actorat[MAPSIZE][MAPSIZE]; | ||
1002 | |||
1003 | extern objtype *player; | ||
1004 | |||
1005 | extern unsigned tics; | ||
1006 | extern int viewsize; | ||
1007 | |||
1008 | extern int lastgamemusicoffset; | ||
1009 | |||
1010 | // | ||
1011 | // current user input | ||
1012 | // | ||
1013 | extern int controlx,controly; // range from -100 to 100 | ||
1014 | extern boolean buttonstate[NUMBUTTONS]; | ||
1015 | extern objtype objlist[MAXACTORS]; | ||
1016 | extern boolean buttonheld[NUMBUTTONS]; | ||
1017 | extern exit_t playstate; | ||
1018 | extern boolean madenoise; | ||
1019 | extern statobj_t statobjlist[MAXSTATS]; | ||
1020 | extern statobj_t *laststatobj; | ||
1021 | extern objtype *newobj,*killerobj; | ||
1022 | extern doorobj_t doorobjlist[MAXDOORS]; | ||
1023 | extern doorobj_t *lastdoorobj; | ||
1024 | extern int godmode; | ||
1025 | |||
1026 | extern boolean demorecord,demoplayback; | ||
1027 | extern int8_t *demoptr, *lastdemoptr; | ||
1028 | extern memptr demobuffer; | ||
1029 | |||
1030 | // | ||
1031 | // control info | ||
1032 | // | ||
1033 | extern boolean mouseenabled,joystickenabled; | ||
1034 | extern int dirscan[4]; | ||
1035 | extern int buttonscan[NUMBUTTONS]; | ||
1036 | extern int buttonmouse[4]; | ||
1037 | extern int buttonjoy[32]; | ||
1038 | |||
1039 | void InitActorList (void); | ||
1040 | void GetNewActor (void); | ||
1041 | void PlayLoop (void); | ||
1042 | |||
1043 | void CenterWindow(word w,word h); | ||
1044 | |||
1045 | void InitRedShifts (void); | ||
1046 | void FinishPaletteShifts (void); | ||
1047 | |||
1048 | void RemoveObj (objtype *gone); | ||
1049 | void PollControls (void); | ||
1050 | int StopMusic(void); | ||
1051 | void StartMusic(void); | ||
1052 | void ContinueMusic(int offs); | ||
1053 | void StartDamageFlash (int damage); | ||
1054 | void StartBonusFlash (void); | ||
1055 | |||
1056 | #ifdef SPEAR | ||
1057 | extern int32_t funnyticount; // FOR FUNNY BJ FACE | ||
1058 | #endif | ||
1059 | |||
1060 | extern objtype *objfreelist; // *obj,*player,*lastobj, | ||
1061 | |||
1062 | extern boolean noclip,ammocheat; | ||
1063 | extern int singlestep, extravbls; | ||
1064 | |||
1065 | /* | ||
1066 | ============================================================================= | ||
1067 | |||
1068 | WL_INTER | ||
1069 | |||
1070 | ============================================================================= | ||
1071 | */ | ||
1072 | |||
1073 | void IntroScreen (void); | ||
1074 | void PG13(void); | ||
1075 | void DrawHighScores(void); | ||
1076 | void CheckHighScore (int32_t score,word other); | ||
1077 | void Victory (void); | ||
1078 | void LevelCompleted (void); | ||
1079 | void ClearSplitVWB (void); | ||
1080 | |||
1081 | void PreloadGraphics(void); | ||
1082 | |||
1083 | |||
1084 | /* | ||
1085 | ============================================================================= | ||
1086 | |||
1087 | WL_DEBUG | ||
1088 | |||
1089 | ============================================================================= | ||
1090 | */ | ||
1091 | |||
1092 | int DebugKeys (void); | ||
1093 | |||
1094 | /* | ||
1095 | ============================================================================= | ||
1096 | |||
1097 | WL_DRAW DEFINITIONS | ||
1098 | |||
1099 | ============================================================================= | ||
1100 | */ | ||
1101 | |||
1102 | // | ||
1103 | // math tables | ||
1104 | // | ||
1105 | extern short *pixelangle; | ||
1106 | extern int32_t finetangent[FINEANGLES/4]; | ||
1107 | extern fixed sintable[]; | ||
1108 | extern fixed *costable; | ||
1109 | extern int *wallheight; | ||
1110 | extern word horizwall[],vertwall[]; | ||
1111 | extern int32_t lasttimecount; | ||
1112 | extern int32_t frameon; | ||
1113 | |||
1114 | extern unsigned screenloc[3]; | ||
1115 | |||
1116 | extern boolean fizzlein, fpscounter; | ||
1117 | |||
1118 | extern fixed viewx,viewy; // the focal point | ||
1119 | extern fixed viewsin,viewcos; | ||
1120 | |||
1121 | void ThreeDRefresh (void); | ||
1122 | void CalcTics (void); | ||
1123 | |||
1124 | typedef struct | ||
1125 | { | ||
1126 | word leftpix,rightpix; | ||
1127 | word dataofs[64]; | ||
1128 | // table data after dataofs[rightpix-leftpix+1] | ||
1129 | } t_compshape; | ||
1130 | |||
1131 | /* | ||
1132 | ============================================================================= | ||
1133 | |||
1134 | WL_STATE DEFINITIONS | ||
1135 | |||
1136 | ============================================================================= | ||
1137 | */ | ||
1138 | #define TURNTICS 10 | ||
1139 | #define SPDPATROL 512 | ||
1140 | #define SPDDOG 1500 | ||
1141 | |||
1142 | |||
1143 | void InitHitRect (objtype *ob, unsigned radius); | ||
1144 | void SpawnNewObj (unsigned tilex, unsigned tiley, statetype *state); | ||
1145 | void NewState (objtype *ob, statetype *state); | ||
1146 | |||
1147 | boolean TryWalk (objtype *ob); | ||
1148 | void SelectChaseDir (objtype *ob); | ||
1149 | void SelectDodgeDir (objtype *ob); | ||
1150 | void SelectRunDir (objtype *ob); | ||
1151 | void MoveObj (objtype *ob, int32_t move); | ||
1152 | boolean SightPlayer (objtype *ob); | ||
1153 | |||
1154 | void KillActor (objtype *ob); | ||
1155 | void DamageActor (objtype *ob, unsigned damage); | ||
1156 | |||
1157 | boolean CheckLine (objtype *ob); | ||
1158 | boolean CheckSight (objtype *ob); | ||
1159 | |||
1160 | /* | ||
1161 | ============================================================================= | ||
1162 | |||
1163 | WL_AGENT DEFINITIONS | ||
1164 | |||
1165 | ============================================================================= | ||
1166 | */ | ||
1167 | |||
1168 | extern short anglefrac; | ||
1169 | extern int facecount, facetimes; | ||
1170 | extern word plux,pluy; // player coordinates scaled to unsigned | ||
1171 | extern int32_t thrustspeed; | ||
1172 | extern objtype *LastAttacker; | ||
1173 | |||
1174 | void Thrust (int angle, int32_t speed); | ||
1175 | void SpawnPlayer (int tilex, int tiley, int dir); | ||
1176 | void TakeDamage (int points,objtype *attacker); | ||
1177 | void GivePoints (int32_t points); | ||
1178 | void GetBonus (statobj_t *check); | ||
1179 | void GiveWeapon (int weapon); | ||
1180 | void GiveAmmo (int ammo); | ||
1181 | void GiveKey (int key); | ||
1182 | |||
1183 | // | ||
1184 | // player state info | ||
1185 | // | ||
1186 | |||
1187 | void StatusDrawFace(unsigned picnum); | ||
1188 | void DrawFace (void); | ||
1189 | void DrawHealth (void); | ||
1190 | void HealSelf (int points); | ||
1191 | void DrawLevel (void); | ||
1192 | void DrawLives (void); | ||
1193 | void GiveExtraMan (void); | ||
1194 | void DrawScore (void); | ||
1195 | void DrawWeapon (void); | ||
1196 | void DrawKeys (void); | ||
1197 | void DrawAmmo (void); | ||
1198 | |||
1199 | |||
1200 | /* | ||
1201 | ============================================================================= | ||
1202 | |||
1203 | WL_ACT1 DEFINITIONS | ||
1204 | |||
1205 | ============================================================================= | ||
1206 | */ | ||
1207 | |||
1208 | extern doorobj_t doorobjlist[MAXDOORS]; | ||
1209 | extern doorobj_t *lastdoorobj; | ||
1210 | extern short doornum; | ||
1211 | |||
1212 | extern word doorposition[MAXDOORS]; | ||
1213 | |||
1214 | extern byte areaconnect[NUMAREAS][NUMAREAS]; | ||
1215 | |||
1216 | extern boolean areabyplayer[NUMAREAS]; | ||
1217 | |||
1218 | extern word pwallstate; | ||
1219 | extern word pwallpos; // amount a pushable wall has been moved (0-63) | ||
1220 | extern word pwallx,pwally; | ||
1221 | extern byte pwalldir,pwalltile; | ||
1222 | |||
1223 | |||
1224 | void InitDoorList (void); | ||
1225 | void InitStaticList (void); | ||
1226 | void SpawnStatic (int tilex, int tiley, int type); | ||
1227 | void SpawnDoor (int tilex, int tiley, boolean vertical, int lock); | ||
1228 | void MoveDoors (void); | ||
1229 | void MovePWalls (void); | ||
1230 | void OpenDoor (int door); | ||
1231 | void PlaceItemType (int itemtype, int tilex, int tiley); | ||
1232 | void PushWall (int checkx, int checky, int dir); | ||
1233 | void OperateDoor (int door); | ||
1234 | void InitAreas (void); | ||
1235 | |||
1236 | /* | ||
1237 | ============================================================================= | ||
1238 | |||
1239 | WL_ACT2 DEFINITIONS | ||
1240 | |||
1241 | ============================================================================= | ||
1242 | */ | ||
1243 | |||
1244 | #define s_nakedbody s_static10 | ||
1245 | |||
1246 | extern statetype s_grddie1; | ||
1247 | extern statetype s_dogdie1; | ||
1248 | extern statetype s_ofcdie1; | ||
1249 | extern statetype s_mutdie1; | ||
1250 | extern statetype s_ssdie1; | ||
1251 | extern statetype s_bossdie1; | ||
1252 | extern statetype s_schabbdie1; | ||
1253 | extern statetype s_fakedie1; | ||
1254 | extern statetype s_mechadie1; | ||
1255 | extern statetype s_hitlerdie1; | ||
1256 | extern statetype s_greteldie1; | ||
1257 | extern statetype s_giftdie1; | ||
1258 | extern statetype s_fatdie1; | ||
1259 | |||
1260 | extern statetype s_spectredie1; | ||
1261 | extern statetype s_angeldie1; | ||
1262 | extern statetype s_transdie0; | ||
1263 | extern statetype s_uberdie0; | ||
1264 | extern statetype s_willdie1; | ||
1265 | extern statetype s_deathdie1; | ||
1266 | |||
1267 | |||
1268 | extern statetype s_grdchase1; | ||
1269 | extern statetype s_dogchase1; | ||
1270 | extern statetype s_ofcchase1; | ||
1271 | extern statetype s_sschase1; | ||
1272 | extern statetype s_mutchase1; | ||
1273 | extern statetype s_bosschase1; | ||
1274 | extern statetype s_schabbchase1; | ||
1275 | extern statetype s_fakechase1; | ||
1276 | extern statetype s_mechachase1; | ||
1277 | extern statetype s_gretelchase1; | ||
1278 | extern statetype s_giftchase1; | ||
1279 | extern statetype s_fatchase1; | ||
1280 | |||
1281 | extern statetype s_spectrechase1; | ||
1282 | extern statetype s_angelchase1; | ||
1283 | extern statetype s_transchase1; | ||
1284 | extern statetype s_uberchase1; | ||
1285 | extern statetype s_willchase1; | ||
1286 | extern statetype s_deathchase1; | ||
1287 | |||
1288 | extern statetype s_blinkychase1; | ||
1289 | extern statetype s_hitlerchase1; | ||
1290 | |||
1291 | extern statetype s_grdpain; | ||
1292 | extern statetype s_grdpain1; | ||
1293 | extern statetype s_ofcpain; | ||
1294 | extern statetype s_ofcpain1; | ||
1295 | extern statetype s_sspain; | ||
1296 | extern statetype s_sspain1; | ||
1297 | extern statetype s_mutpain; | ||
1298 | extern statetype s_mutpain1; | ||
1299 | |||
1300 | extern statetype s_deathcam; | ||
1301 | |||
1302 | extern statetype s_schabbdeathcam2; | ||
1303 | extern statetype s_hitlerdeathcam2; | ||
1304 | extern statetype s_giftdeathcam2; | ||
1305 | extern statetype s_fatdeathcam2; | ||
1306 | |||
1307 | void SpawnStand (enemy_t which, int tilex, int tiley, int dir); | ||
1308 | void SpawnPatrol (enemy_t which, int tilex, int tiley, int dir); | ||
1309 | void KillActor (objtype *ob); | ||
1310 | |||
1311 | void SpawnDeadGuard (int tilex, int tiley); | ||
1312 | void SpawnBoss (int tilex, int tiley); | ||
1313 | void SpawnGretel (int tilex, int tiley); | ||
1314 | void SpawnTrans (int tilex, int tiley); | ||
1315 | void SpawnUber (int tilex, int tiley); | ||
1316 | void SpawnWill (int tilex, int tiley); | ||
1317 | void SpawnDeath (int tilex, int tiley); | ||
1318 | void SpawnAngel (int tilex, int tiley); | ||
1319 | void SpawnSpectre (int tilex, int tiley); | ||
1320 | void SpawnGhosts (int which, int tilex, int tiley); | ||
1321 | void SpawnSchabbs (int tilex, int tiley); | ||
1322 | void SpawnGift (int tilex, int tiley); | ||
1323 | void SpawnFat (int tilex, int tiley); | ||
1324 | void SpawnFakeHitler (int tilex, int tiley); | ||
1325 | void SpawnHitler (int tilex, int tiley); | ||
1326 | |||
1327 | void A_DeathScream (objtype *ob); | ||
1328 | void SpawnBJVictory (void); | ||
1329 | |||
1330 | /* | ||
1331 | ============================================================================= | ||
1332 | |||
1333 | WL_TEXT DEFINITIONS | ||
1334 | |||
1335 | ============================================================================= | ||
1336 | */ | ||
1337 | |||
1338 | extern char helpfilename[],endfilename[]; | ||
1339 | |||
1340 | extern void HelpScreens(void); | ||
1341 | extern void EndText(void); | ||
1342 | |||
1343 | |||
1344 | /* | ||
1345 | ============================================================================= | ||
1346 | |||
1347 | GP2X DEFINITIONS | ||
1348 | |||
1349 | ============================================================================= | ||
1350 | */ | ||
1351 | |||
1352 | #if defined(GP2X) | ||
1353 | |||
1354 | #if defined(GP2X_940) | ||
1355 | void GP2X_MemoryInit(void); | ||
1356 | void GP2X_Shutdown(void); | ||
1357 | #endif | ||
1358 | void GP2X_ButtonDown(int button); | ||
1359 | void GP2X_ButtonUp(int button); | ||
1360 | |||
1361 | #endif | ||
1362 | |||
1363 | |||
1364 | /* | ||
1365 | ============================================================================= | ||
1366 | |||
1367 | MISC DEFINITIONS | ||
1368 | |||
1369 | ============================================================================= | ||
1370 | */ | ||
1371 | |||
1372 | static fixed FixedMul(fixed a, fixed b) | ||
1373 | { | ||
1374 | return (fixed)(((int64_t)a * b + 0x8000) >> 16); | ||
1375 | } | ||
1376 | |||
1377 | #ifdef PLAYDEMOLIKEORIGINAL | ||
1378 | #define DEMOCHOOSE_ORIG_SDL(orig, sdl) ((demorecord || demoplayback) ? (orig) : (sdl)) | ||
1379 | #define DEMOCOND_ORIG (demorecord || demoplayback) | ||
1380 | #define DEMOIF_SDL if(DEMOCOND_SDL) | ||
1381 | #else | ||
1382 | #define DEMOCHOOSE_ORIG_SDL(orig, sdl) (sdl) | ||
1383 | #define DEMOCOND_ORIG false | ||
1384 | #define DEMOIF_SDL | ||
1385 | #endif | ||
1386 | #define DEMOCOND_SDL (!DEMOCOND_ORIG) | ||
1387 | |||
1388 | #define GetTicks() ((SDL_GetTicks()*7)/100) | ||
1389 | |||
1390 | #define ISPOINTER(x) ((((uintptr_t)(x)) & ~0xffff) != 0) | ||
1391 | |||
1392 | #define CHECKMALLOCRESULT(x) if(!(x)) Quit("Out of memory at %s:%i", __FILE__, __LINE__) | ||
1393 | |||
1394 | #ifdef _WIN32 | ||
1395 | #define strcasecmp stricmp | ||
1396 | #define strncasecmp strnicmp | ||
1397 | #define snprintf _snprintf | ||
1398 | #else | ||
1399 | static char* itoa(int value, char* string, int radix) | ||
1400 | { | ||
1401 | sprintf(string, "%d", value); | ||
1402 | return string; | ||
1403 | } | ||
1404 | |||
1405 | static char* ltoa(long value, char* string, int radix) | ||
1406 | { | ||
1407 | sprintf(string, "%ld", value); | ||
1408 | return string; | ||
1409 | } | ||
1410 | #endif | ||
1411 | |||
1412 | #define lengthof(x) (sizeof(x) / sizeof(*(x))) | ||
1413 | #define endof(x) ((x) + lengthof(x)) | ||
1414 | |||
1415 | static word READWORD(byte **ptr) | ||
1416 | { | ||
1417 | word val = (*ptr)[0] | (*ptr)[1] << 8; | ||
1418 | *ptr += 2; | ||
1419 | return val; | ||
1420 | } | ||
1421 | |||
1422 | static longword READLONGWORD(byte **ptr) | ||
1423 | { | ||
1424 | longword val = (*ptr)[0] | (*ptr)[1] << 8 | (*ptr)[2] << 16 | (*ptr)[3] << 24; | ||
1425 | *ptr += 4; | ||
1426 | return val; | ||
1427 | } | ||
1428 | |||
1429 | |||
1430 | /* | ||
1431 | ============================================================================= | ||
1432 | |||
1433 | FEATURE DEFINITIONS | ||
1434 | |||
1435 | ============================================================================= | ||
1436 | */ | ||
1437 | |||
1438 | #ifdef USE_FEATUREFLAGS | ||
1439 | // The currently available feature flags | ||
1440 | #define FF_STARSKY 0x0001 | ||
1441 | #define FF_PARALLAXSKY 0x0002 | ||
1442 | #define FF_CLOUDSKY 0x0004 | ||
1443 | #define FF_RAIN 0x0010 | ||
1444 | #define FF_SNOW 0x0020 | ||
1445 | |||
1446 | // The ffData... variables contain the 16-bit values of the according corners of the current level. | ||
1447 | // The corners are overwritten with adjacent tiles after initialization in SetupGameLevel | ||
1448 | // to avoid interpretation as e.g. doors. | ||
1449 | extern int ffDataTopLeft, ffDataTopRight, ffDataBottomLeft, ffDataBottomRight; | ||
1450 | |||
1451 | /************************************************************* | ||
1452 | * Current usage of ffData... variables: | ||
1453 | * ffDataTopLeft: lower 8-bit: ShadeDefID | ||
1454 | * ffDataTopRight: FeatureFlags | ||
1455 | * ffDataBottomLeft: CloudSkyDefID or ParallaxStartTexture | ||
1456 | * ffDataBottomRight: unused | ||
1457 | *************************************************************/ | ||
1458 | |||
1459 | // The feature flags are stored as a wall in the upper right corner of each level | ||
1460 | static word GetFeatureFlags() | ||
1461 | { | ||
1462 | return ffDataTopRight; | ||
1463 | } | ||
1464 | |||
1465 | #endif | ||
1466 | |||
1467 | #ifdef USE_FLOORCEILINGTEX | ||
1468 | void DrawFloorAndCeiling(byte *vbuf, unsigned vbufPitch, int min_wallheight); | ||
1469 | #endif | ||
1470 | |||
1471 | #ifdef USE_PARALLAX | ||
1472 | void DrawParallax(byte *vbuf, unsigned vbufPitch); | ||
1473 | #endif | ||
1474 | |||
1475 | #ifdef USE_DIR3DSPR | ||
1476 | void Scale3DShape(byte *vbuf, unsigned vbufPitch, statobj_t *ob); | ||
1477 | #endif | ||
1478 | |||
1479 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_dir3dspr.c b/apps/plugins/sdl/progs/wolf3d/wl_dir3dspr.c new file mode 100644 index 0000000000..4bae691621 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_dir3dspr.c | |||
@@ -0,0 +1,230 @@ | |||
1 | #include "version.h" | ||
2 | |||
3 | #ifdef USE_DIR3DSPR | ||
4 | #include "wl_def.h" | ||
5 | #include "wl_shade.h" | ||
6 | |||
7 | // Define directional 3d sprites in wl_act1.cpp (there are two examples) | ||
8 | // Make sure you have according entries in ScanInfoPlane in wl_game.cpp. | ||
9 | |||
10 | |||
11 | void Scale3DShaper(int x1, int x2, int shapenum, uint32_t flags, fixed ny1, fixed ny2, | ||
12 | fixed nx1, fixed nx2, byte *vbuf, unsigned vbufPitch) | ||
13 | { | ||
14 | t_compshape *shape; | ||
15 | unsigned scale1,starty,endy; | ||
16 | word *cmdptr; | ||
17 | byte *line; | ||
18 | byte *vmem; | ||
19 | int dx,len,i,newstart,ycnt,pixheight,screndy,upperedge,scrstarty; | ||
20 | unsigned j; | ||
21 | fixed height,dheight,height1,height2; | ||
22 | int xpos[TEXTURESIZE+1]; | ||
23 | int slinex; | ||
24 | fixed dxx=(ny2-ny1)<<8,dzz=(nx2-nx1)<<8; | ||
25 | fixed dxa=0,dza=0; | ||
26 | byte col; | ||
27 | |||
28 | shape = (t_compshape *) PM_GetSprite(shapenum); | ||
29 | |||
30 | len=shape->rightpix-shape->leftpix+1; | ||
31 | if(!len) return; | ||
32 | |||
33 | ny1+=dxx>>9; | ||
34 | nx1+=dzz>>9; | ||
35 | |||
36 | dxa=-(dxx>>1),dza=-(dzz>>1); | ||
37 | dxx>>=TEXTURESHIFT,dzz>>=TEXTURESHIFT; | ||
38 | dxa+=shape->leftpix*dxx,dza+=shape->leftpix*dzz; | ||
39 | |||
40 | xpos[0]=(int)((ny1+(dxa>>8))*scale/(nx1+(dza>>8))+centerx); | ||
41 | height1 = heightnumerator/((nx1+(dza>>8))>>8); | ||
42 | height=(((fixed)height1)<<12)+2048; | ||
43 | |||
44 | for(i=1;i<=len;i++) | ||
45 | { | ||
46 | dxa+=dxx,dza+=dzz; | ||
47 | xpos[i]=(int)((ny1+(dxa>>8))*scale/(nx1+(dza>>8))+centerx); | ||
48 | if(xpos[i-1]>viewwidth) break; | ||
49 | } | ||
50 | len=i-1; | ||
51 | dx = xpos[len] - xpos[0]; | ||
52 | if(!dx) return; | ||
53 | |||
54 | height2 = heightnumerator/((nx1+(dza>>8))>>8); | ||
55 | dheight=(((fixed)height2-(fixed)height1)<<12)/(fixed)dx; | ||
56 | |||
57 | cmdptr = (word *) shape->dataofs; | ||
58 | |||
59 | i=0; | ||
60 | if(x2>viewwidth) x2=viewwidth; | ||
61 | |||
62 | for(i=0;i<len;i++) | ||
63 | { | ||
64 | for(slinex=xpos[i];slinex<xpos[i+1] && slinex<x2;slinex++) | ||
65 | { | ||
66 | height+=dheight; | ||
67 | if(slinex<0) continue; | ||
68 | |||
69 | scale1=(unsigned)(height>>15); | ||
70 | |||
71 | if(wallheight[slinex]<(height>>12) && scale1 /*&& scale1<=maxscale*/) | ||
72 | { | ||
73 | #ifdef USE_SHADING | ||
74 | byte *curshades; | ||
75 | if(flags & FL_FULLBRIGHT) | ||
76 | curshades = shadetable[0]; | ||
77 | else | ||
78 | curshades = shadetable[GetShade(scale1<<3)]; | ||
79 | #endif | ||
80 | |||
81 | pixheight=scale1*SPRITESCALEFACTOR; | ||
82 | upperedge=viewheight/2-scale1; | ||
83 | |||
84 | line=(byte *)shape + cmdptr[i]; | ||
85 | |||
86 | while((endy = READWORD(&line)) != 0) | ||
87 | { | ||
88 | endy >>= 1; | ||
89 | newstart = READWORD(&line); | ||
90 | starty = READWORD(&line) >> 1; | ||
91 | j=starty; | ||
92 | ycnt=j*pixheight; | ||
93 | screndy=(ycnt>>6)+upperedge; | ||
94 | if(screndy<0) vmem=vbuf+slinex; | ||
95 | else vmem=vbuf+screndy*vbufPitch+slinex; | ||
96 | for(;j<endy;j++) | ||
97 | { | ||
98 | scrstarty=screndy; | ||
99 | ycnt+=pixheight; | ||
100 | screndy=(ycnt>>6)+upperedge; | ||
101 | if(scrstarty!=screndy && screndy>0) | ||
102 | { | ||
103 | #ifdef USE_SHADING | ||
104 | col=curshades[((byte *)shape)[newstart+j]]; | ||
105 | #else | ||
106 | col=((byte *)shape)[newstart+j]; | ||
107 | #endif | ||
108 | if(scrstarty<0) scrstarty=0; | ||
109 | if(screndy>viewheight) screndy=viewheight,j=endy; | ||
110 | |||
111 | while(scrstarty<screndy) | ||
112 | { | ||
113 | *vmem=col; | ||
114 | vmem+=vbufPitch; | ||
115 | scrstarty++; | ||
116 | } | ||
117 | } | ||
118 | } | ||
119 | } | ||
120 | } | ||
121 | } | ||
122 | } | ||
123 | } | ||
124 | |||
125 | void Scale3DShape(byte *vbuf, unsigned vbufPitch, statobj_t *ob) | ||
126 | { | ||
127 | fixed nx1,nx2,ny1,ny2; | ||
128 | int viewx1,viewx2; | ||
129 | fixed diradd; | ||
130 | fixed playx = viewx; | ||
131 | fixed playy = viewy; | ||
132 | |||
133 | // | ||
134 | // the following values for "diradd" aren't optimized yet | ||
135 | // if you have problems with sprites being visible through wall edges | ||
136 | // where they shouldn't, you can try to adjust these values and SIZEADD | ||
137 | // | ||
138 | |||
139 | #define SIZEADD 1024 | ||
140 | |||
141 | switch(ob->flags & FL_DIR_POS_MASK) | ||
142 | { | ||
143 | case FL_DIR_POS_FW: diradd=0x7ff0+0x8000; break; | ||
144 | case FL_DIR_POS_BW: diradd=-0x7ff0+0x8000; break; | ||
145 | case FL_DIR_POS_MID: diradd=0x8000; break; | ||
146 | default: | ||
147 | Quit("Unknown directional 3d sprite position (shapenum = %i)", ob->shapenum); | ||
148 | } | ||
149 | |||
150 | if(ob->flags & FL_DIR_VERT_FLAG) // vertical dir 3d sprite | ||
151 | { | ||
152 | fixed gy1,gy2,gx,gyt1,gyt2,gxt; | ||
153 | // | ||
154 | // translate point to view centered coordinates | ||
155 | // | ||
156 | gy1 = (((long)ob->tiley) << TILESHIFT)+0x8000-playy-0x8000L-SIZEADD; | ||
157 | gy2 = gy1+0x10000L+2*SIZEADD; | ||
158 | gx = (((long)ob->tilex) << TILESHIFT)+diradd-playx; | ||
159 | |||
160 | // | ||
161 | // calculate newx | ||
162 | // | ||
163 | gxt = FixedMul(gx,viewcos); | ||
164 | gyt1 = FixedMul(gy1,viewsin); | ||
165 | gyt2 = FixedMul(gy2,viewsin); | ||
166 | nx1 = gxt-gyt1; | ||
167 | nx2 = gxt-gyt2; | ||
168 | |||
169 | // | ||
170 | // calculate newy | ||
171 | // | ||
172 | gxt = FixedMul(gx,viewsin); | ||
173 | gyt1 = FixedMul(gy1,viewcos); | ||
174 | gyt2 = FixedMul(gy2,viewcos); | ||
175 | ny1 = gyt1+gxt; | ||
176 | ny2 = gyt2+gxt; | ||
177 | } | ||
178 | else // horizontal dir 3d sprite | ||
179 | { | ||
180 | fixed gx1,gx2,gy,gxt1,gxt2,gyt; | ||
181 | // | ||
182 | // translate point to view centered coordinates | ||
183 | // | ||
184 | gx1 = (((long)ob->tilex) << TILESHIFT)+0x8000-playx-0x8000L-SIZEADD; | ||
185 | gx2 = gx1+0x10000L+2*SIZEADD; | ||
186 | gy = (((long)ob->tiley) << TILESHIFT)+diradd-playy; | ||
187 | |||
188 | // | ||
189 | // calculate newx | ||
190 | // | ||
191 | gxt1 = FixedMul(gx1,viewcos); | ||
192 | gxt2 = FixedMul(gx2,viewcos); | ||
193 | gyt = FixedMul(gy,viewsin); | ||
194 | nx1 = gxt1-gyt; | ||
195 | nx2 = gxt2-gyt; | ||
196 | |||
197 | // | ||
198 | // calculate newy | ||
199 | // | ||
200 | gxt1 = FixedMul(gx1,viewsin); | ||
201 | gxt2 = FixedMul(gx2,viewsin); | ||
202 | gyt = FixedMul(gy,viewcos); | ||
203 | ny1 = gyt+gxt1; | ||
204 | ny2 = gyt+gxt2; | ||
205 | } | ||
206 | |||
207 | if(nx1 < 0 || nx2 < 0) return; // TODO: Clip on viewplane | ||
208 | |||
209 | // | ||
210 | // calculate perspective ratio | ||
211 | // | ||
212 | if(nx1>=0 && nx1<=1792) nx1=1792; | ||
213 | if(nx1<0 && nx1>=-1792) nx1=-1792; | ||
214 | if(nx2>=0 && nx2<=1792) nx2=1792; | ||
215 | if(nx2<0 && nx2>=-1792) nx2=-1792; | ||
216 | |||
217 | viewx1=(int)(centerx+ny1*scale/nx1); | ||
218 | viewx2=(int)(centerx+ny2*scale/nx2); | ||
219 | |||
220 | if(viewx2 < viewx1) | ||
221 | { | ||
222 | Scale3DShaper(viewx2,viewx1,ob->shapenum,ob->flags,ny2,ny1,nx2,nx1,vbuf,vbufPitch); | ||
223 | } | ||
224 | else | ||
225 | { | ||
226 | Scale3DShaper(viewx1,viewx2,ob->shapenum,ob->flags,ny1,ny2,nx1,nx2,vbuf,vbufPitch); | ||
227 | } | ||
228 | } | ||
229 | |||
230 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_draw.c b/apps/plugins/sdl/progs/wolf3d/wl_draw.c new file mode 100644 index 0000000000..625e93dc0a --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_draw.c | |||
@@ -0,0 +1,1647 @@ | |||
1 | // WL_DRAW.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | #include "wl_cloudsky.h" | ||
7 | #include "wl_atmos.h" | ||
8 | #include "wl_shade.h" | ||
9 | |||
10 | /* | ||
11 | ============================================================================= | ||
12 | |||
13 | LOCAL CONSTANTS | ||
14 | |||
15 | ============================================================================= | ||
16 | */ | ||
17 | |||
18 | // the door is the last picture before the sprites | ||
19 | #define DOORWALL (PMSpriteStart-8) | ||
20 | |||
21 | #define ACTORSIZE 0x4000 | ||
22 | |||
23 | /* | ||
24 | ============================================================================= | ||
25 | |||
26 | GLOBAL VARIABLES | ||
27 | |||
28 | ============================================================================= | ||
29 | */ | ||
30 | |||
31 | static byte *vbuf = NULL; | ||
32 | unsigned vbufPitch = 0; | ||
33 | |||
34 | int32_t lasttimecount; | ||
35 | int32_t frameon; | ||
36 | boolean fpscounter; | ||
37 | |||
38 | int fps_frames=0, fps_time=0, fps=0; | ||
39 | |||
40 | int *wallheight; | ||
41 | int min_wallheight; | ||
42 | |||
43 | // | ||
44 | // math tables | ||
45 | // | ||
46 | short *pixelangle; | ||
47 | int32_t finetangent[FINEANGLES/4]; | ||
48 | fixed sintable[ANGLES+ANGLES/4]; | ||
49 | fixed *costable = sintable+(ANGLES/4); | ||
50 | |||
51 | // | ||
52 | // refresh variables | ||
53 | // | ||
54 | fixed viewx,viewy; // the focal point | ||
55 | short viewangle; | ||
56 | fixed viewsin,viewcos; | ||
57 | |||
58 | void TransformActor (objtype *ob); | ||
59 | void BuildTables (void); | ||
60 | void ClearScreen (void); | ||
61 | int CalcRotate (objtype *ob); | ||
62 | void DrawScaleds (void); | ||
63 | void CalcTics (void); | ||
64 | void ThreeDRefresh (void); | ||
65 | |||
66 | |||
67 | |||
68 | // | ||
69 | // wall optimization variables | ||
70 | // | ||
71 | int lastside; // true for vertical | ||
72 | int32_t lastintercept; | ||
73 | int lasttilehit; | ||
74 | int lasttexture; | ||
75 | |||
76 | // | ||
77 | // ray tracing variables | ||
78 | // | ||
79 | short focaltx,focalty,viewtx,viewty; | ||
80 | longword xpartialup,xpartialdown,ypartialup,ypartialdown; | ||
81 | |||
82 | short midangle,angle; | ||
83 | |||
84 | word tilehit; | ||
85 | int pixx; | ||
86 | |||
87 | short xtile,ytile; | ||
88 | short xtilestep,ytilestep; | ||
89 | int32_t xintercept,yintercept; | ||
90 | word xstep,ystep; | ||
91 | word xspot,yspot; | ||
92 | int texdelta; | ||
93 | |||
94 | word horizwall[MAXWALLTILES],vertwall[MAXWALLTILES]; | ||
95 | |||
96 | |||
97 | /* | ||
98 | ============================================================================ | ||
99 | |||
100 | 3 - D DEFINITIONS | ||
101 | |||
102 | ============================================================================ | ||
103 | */ | ||
104 | |||
105 | /* | ||
106 | ======================== | ||
107 | = | ||
108 | = TransformActor | ||
109 | = | ||
110 | = Takes paramaters: | ||
111 | = gx,gy : globalx/globaly of point | ||
112 | = | ||
113 | = globals: | ||
114 | = viewx,viewy : point of view | ||
115 | = viewcos,viewsin : sin/cos of viewangle | ||
116 | = scale : conversion from global value to screen value | ||
117 | = | ||
118 | = sets: | ||
119 | = screenx,transx,transy,screenheight: projected edge location and size | ||
120 | = | ||
121 | ======================== | ||
122 | */ | ||
123 | |||
124 | |||
125 | // | ||
126 | // transform actor | ||
127 | // | ||
128 | void TransformActor (objtype *ob) | ||
129 | { | ||
130 | fixed gx,gy,gxt,gyt,nx,ny; | ||
131 | |||
132 | // | ||
133 | // translate point to view centered coordinates | ||
134 | // | ||
135 | gx = ob->x-viewx; | ||
136 | gy = ob->y-viewy; | ||
137 | |||
138 | // | ||
139 | // calculate newx | ||
140 | // | ||
141 | gxt = FixedMul(gx,viewcos); | ||
142 | gyt = FixedMul(gy,viewsin); | ||
143 | nx = gxt-gyt-ACTORSIZE; // fudge the shape forward a bit, because | ||
144 | // the midpoint could put parts of the shape | ||
145 | // into an adjacent wall | ||
146 | |||
147 | // | ||
148 | // calculate newy | ||
149 | // | ||
150 | gxt = FixedMul(gx,viewsin); | ||
151 | gyt = FixedMul(gy,viewcos); | ||
152 | ny = gyt+gxt; | ||
153 | |||
154 | // | ||
155 | // calculate perspective ratio | ||
156 | // | ||
157 | ob->transx = nx; | ||
158 | ob->transy = ny; | ||
159 | |||
160 | if (nx<MINDIST) // too close, don't overflow the divide | ||
161 | { | ||
162 | ob->viewheight = 0; | ||
163 | return; | ||
164 | } | ||
165 | |||
166 | ob->viewx = (word)(centerx + ny*scale/nx); | ||
167 | |||
168 | // | ||
169 | // calculate height (heightnumerator/(nx>>8)) | ||
170 | // | ||
171 | ob->viewheight = (word)(heightnumerator/(nx>>8)); | ||
172 | } | ||
173 | |||
174 | //========================================================================== | ||
175 | |||
176 | /* | ||
177 | ======================== | ||
178 | = | ||
179 | = TransformTile | ||
180 | = | ||
181 | = Takes paramaters: | ||
182 | = tx,ty : tile the object is centered in | ||
183 | = | ||
184 | = globals: | ||
185 | = viewx,viewy : point of view | ||
186 | = viewcos,viewsin : sin/cos of viewangle | ||
187 | = scale : conversion from global value to screen value | ||
188 | = | ||
189 | = sets: | ||
190 | = screenx,transx,transy,screenheight: projected edge location and size | ||
191 | = | ||
192 | = Returns true if the tile is withing getting distance | ||
193 | = | ||
194 | ======================== | ||
195 | */ | ||
196 | |||
197 | boolean TransformTile (int tx, int ty, short *dispx, short *dispheight) | ||
198 | { | ||
199 | fixed gx,gy,gxt,gyt,nx,ny; | ||
200 | |||
201 | // | ||
202 | // translate point to view centered coordinates | ||
203 | // | ||
204 | gx = ((int32_t)tx<<TILESHIFT)+0x8000-viewx; | ||
205 | gy = ((int32_t)ty<<TILESHIFT)+0x8000-viewy; | ||
206 | |||
207 | // | ||
208 | // calculate newx | ||
209 | // | ||
210 | gxt = FixedMul(gx,viewcos); | ||
211 | gyt = FixedMul(gy,viewsin); | ||
212 | nx = gxt-gyt-0x2000; // 0x2000 is size of object | ||
213 | |||
214 | // | ||
215 | // calculate newy | ||
216 | // | ||
217 | gxt = FixedMul(gx,viewsin); | ||
218 | gyt = FixedMul(gy,viewcos); | ||
219 | ny = gyt+gxt; | ||
220 | |||
221 | |||
222 | // | ||
223 | // calculate height / perspective ratio | ||
224 | // | ||
225 | if (nx<MINDIST) // too close, don't overflow the divide | ||
226 | *dispheight = 0; | ||
227 | else | ||
228 | { | ||
229 | *dispx = (short)(centerx + ny*scale/nx); | ||
230 | *dispheight = (short)(heightnumerator/(nx>>8)); | ||
231 | } | ||
232 | |||
233 | // | ||
234 | // see if it should be grabbed | ||
235 | // | ||
236 | if (nx<TILEGLOBAL && ny>-TILEGLOBAL/2 && ny<TILEGLOBAL/2) | ||
237 | return true; | ||
238 | else | ||
239 | return false; | ||
240 | } | ||
241 | |||
242 | //========================================================================== | ||
243 | |||
244 | /* | ||
245 | ==================== | ||
246 | = | ||
247 | = CalcHeight | ||
248 | = | ||
249 | = Calculates the height of xintercept,yintercept from viewx,viewy | ||
250 | = | ||
251 | ==================== | ||
252 | */ | ||
253 | |||
254 | int CalcHeight() | ||
255 | { | ||
256 | fixed z = FixedMul(xintercept - viewx, viewcos) | ||
257 | - FixedMul(yintercept - viewy, viewsin); | ||
258 | if(z < MINDIST) z = MINDIST; | ||
259 | int height = heightnumerator / (z >> 8); | ||
260 | if(height < min_wallheight) min_wallheight = height; | ||
261 | return height; | ||
262 | } | ||
263 | |||
264 | //========================================================================== | ||
265 | |||
266 | /* | ||
267 | =================== | ||
268 | = | ||
269 | = ScalePost | ||
270 | = | ||
271 | =================== | ||
272 | */ | ||
273 | |||
274 | byte *postsource; | ||
275 | int postx; | ||
276 | int postwidth; | ||
277 | |||
278 | void ScalePost() | ||
279 | { | ||
280 | int ywcount, yoffs, yw, yd, yendoffs; | ||
281 | byte col; | ||
282 | |||
283 | #ifdef USE_SHADING | ||
284 | byte *curshades = shadetable[GetShade(wallheight[postx])]; | ||
285 | #endif | ||
286 | |||
287 | ywcount = yd = wallheight[postx] >> 3; | ||
288 | if(yd <= 0) yd = 100; | ||
289 | |||
290 | yoffs = (viewheight / 2 - ywcount) * vbufPitch; | ||
291 | if(yoffs < 0) yoffs = 0; | ||
292 | yoffs += postx; | ||
293 | |||
294 | yendoffs = viewheight / 2 + ywcount - 1; | ||
295 | yw=TEXTURESIZE-1; | ||
296 | |||
297 | while(yendoffs >= viewheight) | ||
298 | { | ||
299 | ywcount -= TEXTURESIZE/2; | ||
300 | while(ywcount <= 0) | ||
301 | { | ||
302 | ywcount += yd; | ||
303 | yw--; | ||
304 | } | ||
305 | yendoffs--; | ||
306 | } | ||
307 | if(yw < 0) return; | ||
308 | |||
309 | #ifdef USE_SHADING | ||
310 | col = curshades[postsource[yw]]; | ||
311 | #else | ||
312 | col = postsource[yw]; | ||
313 | #endif | ||
314 | yendoffs = yendoffs * vbufPitch + postx; | ||
315 | while(yoffs <= yendoffs) | ||
316 | { | ||
317 | vbuf[yendoffs] = col; | ||
318 | ywcount -= TEXTURESIZE/2; | ||
319 | if(ywcount <= 0) | ||
320 | { | ||
321 | do | ||
322 | { | ||
323 | ywcount += yd; | ||
324 | yw--; | ||
325 | } | ||
326 | while(ywcount <= 0); | ||
327 | if(yw < 0) break; | ||
328 | #ifdef USE_SHADING | ||
329 | col = curshades[postsource[yw]]; | ||
330 | #else | ||
331 | col = postsource[yw]; | ||
332 | #endif | ||
333 | } | ||
334 | yendoffs -= vbufPitch; | ||
335 | } | ||
336 | } | ||
337 | |||
338 | void GlobalScalePost(byte *vidbuf, unsigned pitch) | ||
339 | { | ||
340 | vbuf = vidbuf; | ||
341 | vbufPitch = pitch; | ||
342 | ScalePost(); | ||
343 | } | ||
344 | |||
345 | /* | ||
346 | ==================== | ||
347 | = | ||
348 | = HitVertWall | ||
349 | = | ||
350 | = tilehit bit 7 is 0, because it's not a door tile | ||
351 | = if bit 6 is 1 and the adjacent tile is a door tile, use door side pic | ||
352 | = | ||
353 | ==================== | ||
354 | */ | ||
355 | |||
356 | void HitVertWall (void) | ||
357 | { | ||
358 | int wallpic; | ||
359 | int texture; | ||
360 | |||
361 | texture = ((yintercept+texdelta)>>TEXTUREFROMFIXEDSHIFT)&TEXTUREMASK; | ||
362 | if (xtilestep == -1) | ||
363 | { | ||
364 | texture = TEXTUREMASK-texture; | ||
365 | xintercept += TILEGLOBAL; | ||
366 | } | ||
367 | |||
368 | if(lastside==1 && lastintercept==xtile && lasttilehit==tilehit && !(lasttilehit & 0x40)) | ||
369 | { | ||
370 | if((pixx&3) && texture == lasttexture) | ||
371 | { | ||
372 | ScalePost(); | ||
373 | postx = pixx; | ||
374 | wallheight[pixx] = wallheight[pixx-1]; | ||
375 | return; | ||
376 | } | ||
377 | ScalePost(); | ||
378 | wallheight[pixx] = CalcHeight(); | ||
379 | postsource+=texture-lasttexture; | ||
380 | postwidth=1; | ||
381 | postx=pixx; | ||
382 | lasttexture=texture; | ||
383 | return; | ||
384 | } | ||
385 | |||
386 | if(lastside!=-1) ScalePost(); | ||
387 | |||
388 | lastside=1; | ||
389 | lastintercept=xtile; | ||
390 | lasttilehit=tilehit; | ||
391 | lasttexture=texture; | ||
392 | wallheight[pixx] = CalcHeight(); | ||
393 | postx = pixx; | ||
394 | postwidth = 1; | ||
395 | |||
396 | if (tilehit & 0x40) | ||
397 | { // check for adjacent doors | ||
398 | ytile = (short)(yintercept>>TILESHIFT); | ||
399 | if ( tilemap[xtile-xtilestep][ytile]&0x80 ) | ||
400 | wallpic = DOORWALL+3; | ||
401 | else | ||
402 | wallpic = vertwall[tilehit & ~0x40]; | ||
403 | } | ||
404 | else | ||
405 | wallpic = vertwall[tilehit]; | ||
406 | |||
407 | postsource = PM_GetTexture(wallpic) + texture; | ||
408 | } | ||
409 | |||
410 | |||
411 | /* | ||
412 | ==================== | ||
413 | = | ||
414 | = HitHorizWall | ||
415 | = | ||
416 | = tilehit bit 7 is 0, because it's not a door tile | ||
417 | = if bit 6 is 1 and the adjacent tile is a door tile, use door side pic | ||
418 | = | ||
419 | ==================== | ||
420 | */ | ||
421 | |||
422 | void HitHorizWall (void) | ||
423 | { | ||
424 | int wallpic; | ||
425 | int texture; | ||
426 | |||
427 | texture = ((xintercept+texdelta)>>TEXTUREFROMFIXEDSHIFT)&TEXTUREMASK; | ||
428 | if (ytilestep == -1) | ||
429 | yintercept += TILEGLOBAL; | ||
430 | else | ||
431 | texture = TEXTUREMASK-texture; | ||
432 | |||
433 | if(lastside==0 && lastintercept==ytile && lasttilehit==tilehit && !(lasttilehit & 0x40)) | ||
434 | { | ||
435 | if((pixx&3) && texture == lasttexture) | ||
436 | { | ||
437 | ScalePost(); | ||
438 | postx=pixx; | ||
439 | wallheight[pixx] = wallheight[pixx-1]; | ||
440 | return; | ||
441 | } | ||
442 | ScalePost(); | ||
443 | wallheight[pixx] = CalcHeight(); | ||
444 | postsource+=texture-lasttexture; | ||
445 | postwidth=1; | ||
446 | postx=pixx; | ||
447 | lasttexture=texture; | ||
448 | return; | ||
449 | } | ||
450 | |||
451 | if(lastside!=-1) ScalePost(); | ||
452 | |||
453 | lastside=0; | ||
454 | lastintercept=ytile; | ||
455 | lasttilehit=tilehit; | ||
456 | lasttexture=texture; | ||
457 | wallheight[pixx] = CalcHeight(); | ||
458 | postx = pixx; | ||
459 | postwidth = 1; | ||
460 | |||
461 | if (tilehit & 0x40) | ||
462 | { // check for adjacent doors | ||
463 | xtile = (short)(xintercept>>TILESHIFT); | ||
464 | if ( tilemap[xtile][ytile-ytilestep]&0x80) | ||
465 | wallpic = DOORWALL+2; | ||
466 | else | ||
467 | wallpic = horizwall[tilehit & ~0x40]; | ||
468 | } | ||
469 | else | ||
470 | wallpic = horizwall[tilehit]; | ||
471 | |||
472 | postsource = PM_GetTexture(wallpic) + texture; | ||
473 | } | ||
474 | |||
475 | //========================================================================== | ||
476 | |||
477 | /* | ||
478 | ==================== | ||
479 | = | ||
480 | = HitHorizDoor | ||
481 | = | ||
482 | ==================== | ||
483 | */ | ||
484 | |||
485 | void HitHorizDoor (void) | ||
486 | { | ||
487 | int doorpage; | ||
488 | int doornum; | ||
489 | int texture; | ||
490 | |||
491 | doornum = tilehit&0x7f; | ||
492 | texture = ((xintercept-doorposition[doornum])>>TEXTUREFROMFIXEDSHIFT)&TEXTUREMASK; | ||
493 | |||
494 | if(lasttilehit==tilehit) | ||
495 | { | ||
496 | if((pixx&3) && texture == lasttexture) | ||
497 | { | ||
498 | ScalePost(); | ||
499 | postx=pixx; | ||
500 | wallheight[pixx] = wallheight[pixx-1]; | ||
501 | return; | ||
502 | } | ||
503 | ScalePost(); | ||
504 | wallheight[pixx] = CalcHeight(); | ||
505 | postsource+=texture-lasttexture; | ||
506 | postwidth=1; | ||
507 | postx=pixx; | ||
508 | lasttexture=texture; | ||
509 | return; | ||
510 | } | ||
511 | |||
512 | if(lastside!=-1) ScalePost(); | ||
513 | |||
514 | lastside=2; | ||
515 | lasttilehit=tilehit; | ||
516 | lasttexture=texture; | ||
517 | wallheight[pixx] = CalcHeight(); | ||
518 | postx = pixx; | ||
519 | postwidth = 1; | ||
520 | |||
521 | switch(doorobjlist[doornum].lock) | ||
522 | { | ||
523 | case dr_normal: | ||
524 | doorpage = DOORWALL; | ||
525 | break; | ||
526 | case dr_lock1: | ||
527 | case dr_lock2: | ||
528 | case dr_lock3: | ||
529 | case dr_lock4: | ||
530 | doorpage = DOORWALL+6; | ||
531 | break; | ||
532 | case dr_elevator: | ||
533 | doorpage = DOORWALL+4; | ||
534 | break; | ||
535 | } | ||
536 | |||
537 | postsource = PM_GetTexture(doorpage) + texture; | ||
538 | } | ||
539 | |||
540 | //========================================================================== | ||
541 | |||
542 | /* | ||
543 | ==================== | ||
544 | = | ||
545 | = HitVertDoor | ||
546 | = | ||
547 | ==================== | ||
548 | */ | ||
549 | |||
550 | void HitVertDoor (void) | ||
551 | { | ||
552 | int doorpage; | ||
553 | int doornum; | ||
554 | int texture; | ||
555 | |||
556 | doornum = tilehit&0x7f; | ||
557 | texture = ((yintercept-doorposition[doornum])>>TEXTUREFROMFIXEDSHIFT)&TEXTUREMASK; | ||
558 | |||
559 | if(lasttilehit==tilehit) | ||
560 | { | ||
561 | if((pixx&3) && texture == lasttexture) | ||
562 | { | ||
563 | ScalePost(); | ||
564 | postx=pixx; | ||
565 | wallheight[pixx] = wallheight[pixx-1]; | ||
566 | return; | ||
567 | } | ||
568 | ScalePost(); | ||
569 | wallheight[pixx] = CalcHeight(); | ||
570 | postsource+=texture-lasttexture; | ||
571 | postwidth=1; | ||
572 | postx=pixx; | ||
573 | lasttexture=texture; | ||
574 | return; | ||
575 | } | ||
576 | |||
577 | if(lastside!=-1) ScalePost(); | ||
578 | |||
579 | lastside=2; | ||
580 | lasttilehit=tilehit; | ||
581 | lasttexture=texture; | ||
582 | wallheight[pixx] = CalcHeight(); | ||
583 | postx = pixx; | ||
584 | postwidth = 1; | ||
585 | |||
586 | switch(doorobjlist[doornum].lock) | ||
587 | { | ||
588 | case dr_normal: | ||
589 | doorpage = DOORWALL+1; | ||
590 | break; | ||
591 | case dr_lock1: | ||
592 | case dr_lock2: | ||
593 | case dr_lock3: | ||
594 | case dr_lock4: | ||
595 | doorpage = DOORWALL+7; | ||
596 | break; | ||
597 | case dr_elevator: | ||
598 | doorpage = DOORWALL+5; | ||
599 | break; | ||
600 | } | ||
601 | |||
602 | postsource = PM_GetTexture(doorpage) + texture; | ||
603 | } | ||
604 | |||
605 | //========================================================================== | ||
606 | |||
607 | #define HitHorizBorder HitHorizWall | ||
608 | #define HitVertBorder HitVertWall | ||
609 | |||
610 | //========================================================================== | ||
611 | |||
612 | byte vgaCeiling[]= | ||
613 | { | ||
614 | #ifndef SPEAR | ||
615 | 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0xbf, | ||
616 | 0x4e,0x4e,0x4e,0x1d,0x8d,0x4e,0x1d,0x2d,0x1d,0x8d, | ||
617 | 0x1d,0x1d,0x1d,0x1d,0x1d,0x2d,0xdd,0x1d,0x1d,0x98, | ||
618 | |||
619 | 0x1d,0x9d,0x2d,0xdd,0xdd,0x9d,0x2d,0x4d,0x1d,0xdd, | ||
620 | 0x7d,0x1d,0x2d,0x2d,0xdd,0xd7,0x1d,0x1d,0x1d,0x2d, | ||
621 | 0x1d,0x1d,0x1d,0x1d,0xdd,0xdd,0x7d,0xdd,0xdd,0xdd | ||
622 | #else | ||
623 | 0x6f,0x4f,0x1d,0xde,0xdf,0x2e,0x7f,0x9e,0xae,0x7f, | ||
624 | 0x1d,0xde,0xdf,0xde,0xdf,0xde,0xe1,0xdc,0x2e,0x1d,0xdc | ||
625 | #endif | ||
626 | }; | ||
627 | |||
628 | /* | ||
629 | ===================== | ||
630 | = | ||
631 | = VGAClearScreen | ||
632 | = | ||
633 | ===================== | ||
634 | */ | ||
635 | |||
636 | void VGAClearScreen (void) | ||
637 | { | ||
638 | byte ceiling=vgaCeiling[gamestate.episode*10+mapon]; | ||
639 | |||
640 | int y; | ||
641 | byte *ptr = vbuf; | ||
642 | #ifdef USE_SHADING | ||
643 | for(y = 0; y < viewheight / 2; y++, ptr += vbufPitch) | ||
644 | memset(ptr, shadetable[GetShade((viewheight / 2 - y) << 3)][ceiling], viewwidth); | ||
645 | for(; y < viewheight; y++, ptr += vbufPitch) | ||
646 | memset(ptr, shadetable[GetShade((y - viewheight / 2) << 3)][0x19], viewwidth); | ||
647 | #else | ||
648 | for(y = 0; y < viewheight / 2; y++, ptr += vbufPitch) | ||
649 | memset(ptr, ceiling, viewwidth); | ||
650 | for(; y < viewheight; y++, ptr += vbufPitch) | ||
651 | memset(ptr, 0x19, viewwidth); | ||
652 | #endif | ||
653 | } | ||
654 | |||
655 | //========================================================================== | ||
656 | |||
657 | /* | ||
658 | ===================== | ||
659 | = | ||
660 | = CalcRotate | ||
661 | = | ||
662 | ===================== | ||
663 | */ | ||
664 | |||
665 | int CalcRotate (objtype *ob) | ||
666 | { | ||
667 | int angle, viewangle; | ||
668 | |||
669 | // this isn't exactly correct, as it should vary by a trig value, | ||
670 | // but it is close enough with only eight rotations | ||
671 | |||
672 | viewangle = player->angle + (centerx - ob->viewx)/8; | ||
673 | |||
674 | if (ob->obclass == rocketobj || ob->obclass == hrocketobj) | ||
675 | angle = (viewangle-180) - ob->angle; | ||
676 | else | ||
677 | angle = (viewangle-180) - dirangle[ob->dir]; | ||
678 | |||
679 | angle+=ANGLES/16; | ||
680 | while (angle>=ANGLES) | ||
681 | angle-=ANGLES; | ||
682 | while (angle<0) | ||
683 | angle+=ANGLES; | ||
684 | |||
685 | if (ob->state->rotate == 2) // 2 rotation pain frame | ||
686 | return 0; // pain with shooting frame bugfix | ||
687 | |||
688 | return angle/(ANGLES/8); | ||
689 | } | ||
690 | |||
691 | void ScaleShape (int xcenter, int shapenum, unsigned height, uint32_t flags) | ||
692 | { | ||
693 | t_compshape *shape; | ||
694 | unsigned scale,pixheight; | ||
695 | unsigned starty,endy; | ||
696 | word *cmdptr; | ||
697 | byte *cline; | ||
698 | byte *line; | ||
699 | byte *vmem; | ||
700 | int actx,i,upperedge; | ||
701 | short newstart; | ||
702 | int scrstarty,screndy,lpix,rpix,pixcnt,ycnt; | ||
703 | unsigned j; | ||
704 | byte col; | ||
705 | |||
706 | #ifdef USE_SHADING | ||
707 | byte *curshades; | ||
708 | if(flags & FL_FULLBRIGHT) | ||
709 | curshades = shadetable[0]; | ||
710 | else | ||
711 | curshades = shadetable[GetShade(height)]; | ||
712 | #endif | ||
713 | |||
714 | shape = (t_compshape *) PM_GetSprite(shapenum); | ||
715 | |||
716 | scale=height>>3; // low three bits are fractional | ||
717 | if(!scale) return; // too close or far away | ||
718 | |||
719 | pixheight=scale*SPRITESCALEFACTOR; | ||
720 | actx=xcenter-scale; | ||
721 | upperedge=viewheight/2-scale; | ||
722 | |||
723 | cmdptr=(word *) shape->dataofs; | ||
724 | |||
725 | for(i=shape->leftpix,pixcnt=i*pixheight,rpix=(pixcnt>>6)+actx;i<=shape->rightpix;i++,cmdptr++) | ||
726 | { | ||
727 | lpix=rpix; | ||
728 | if(lpix>=viewwidth) break; | ||
729 | pixcnt+=pixheight; | ||
730 | rpix=(pixcnt>>6)+actx; | ||
731 | if(lpix!=rpix && rpix>0) | ||
732 | { | ||
733 | if(lpix<0) lpix=0; | ||
734 | if(rpix>viewwidth) rpix=viewwidth,i=shape->rightpix+1; | ||
735 | cline=(byte *)shape + *cmdptr; | ||
736 | while(lpix<rpix) | ||
737 | { | ||
738 | if(wallheight[lpix]<=(int)height) | ||
739 | { | ||
740 | line=cline; | ||
741 | while((endy = READWORD(&line)) != 0) | ||
742 | { | ||
743 | endy >>= 1; | ||
744 | newstart = READWORD(&line); | ||
745 | starty = READWORD(&line) >> 1; | ||
746 | j=starty; | ||
747 | ycnt=j*pixheight; | ||
748 | screndy=(ycnt>>6)+upperedge; | ||
749 | if(screndy<0) vmem=vbuf+lpix; | ||
750 | else vmem=vbuf+screndy*vbufPitch+lpix; | ||
751 | for(;j<endy;j++) | ||
752 | { | ||
753 | scrstarty=screndy; | ||
754 | ycnt+=pixheight; | ||
755 | screndy=(ycnt>>6)+upperedge; | ||
756 | if(scrstarty!=screndy && screndy>0) | ||
757 | { | ||
758 | #ifdef USE_SHADING | ||
759 | col=curshades[((byte *)shape)[newstart+j]]; | ||
760 | #else | ||
761 | col=((byte *)shape)[newstart+j]; | ||
762 | #endif | ||
763 | if(scrstarty<0) scrstarty=0; | ||
764 | if(screndy>viewheight) screndy=viewheight,j=endy; | ||
765 | |||
766 | while(scrstarty<screndy) | ||
767 | { | ||
768 | *vmem=col; | ||
769 | vmem+=vbufPitch; | ||
770 | scrstarty++; | ||
771 | } | ||
772 | } | ||
773 | } | ||
774 | } | ||
775 | } | ||
776 | lpix++; | ||
777 | } | ||
778 | } | ||
779 | } | ||
780 | } | ||
781 | |||
782 | void SimpleScaleShape (int xcenter, int shapenum, unsigned height) | ||
783 | { | ||
784 | t_compshape *shape; | ||
785 | unsigned scale,pixheight; | ||
786 | unsigned starty,endy; | ||
787 | word *cmdptr; | ||
788 | byte *cline; | ||
789 | byte *line; | ||
790 | int actx,i,upperedge; | ||
791 | short newstart; | ||
792 | int scrstarty,screndy,lpix,rpix,pixcnt,ycnt; | ||
793 | unsigned j; | ||
794 | byte col; | ||
795 | byte *vmem; | ||
796 | |||
797 | shape = (t_compshape *) PM_GetSprite(shapenum); | ||
798 | |||
799 | scale=height>>1; | ||
800 | pixheight=scale*SPRITESCALEFACTOR; | ||
801 | actx=xcenter-scale; | ||
802 | upperedge=viewheight/2-scale; | ||
803 | |||
804 | cmdptr=shape->dataofs; | ||
805 | |||
806 | for(i=shape->leftpix,pixcnt=i*pixheight,rpix=(pixcnt>>6)+actx;i<=shape->rightpix;i++,cmdptr++) | ||
807 | { | ||
808 | lpix=rpix; | ||
809 | if(lpix>=viewwidth) break; | ||
810 | pixcnt+=pixheight; | ||
811 | rpix=(pixcnt>>6)+actx; | ||
812 | if(lpix!=rpix && rpix>0) | ||
813 | { | ||
814 | if(lpix<0) lpix=0; | ||
815 | if(rpix>viewwidth) rpix=viewwidth,i=shape->rightpix+1; | ||
816 | cline = (byte *)shape + *cmdptr; | ||
817 | while(lpix<rpix) | ||
818 | { | ||
819 | line=cline; | ||
820 | while((endy = READWORD(&line)) != 0) | ||
821 | { | ||
822 | endy >>= 1; | ||
823 | newstart = READWORD(&line); | ||
824 | starty = READWORD(&line) >> 1; | ||
825 | j=starty; | ||
826 | ycnt=j*pixheight; | ||
827 | screndy=(ycnt>>6)+upperedge; | ||
828 | if(screndy<0) vmem=vbuf+lpix; | ||
829 | else vmem=vbuf+screndy*vbufPitch+lpix; | ||
830 | for(;j<endy;j++) | ||
831 | { | ||
832 | scrstarty=screndy; | ||
833 | ycnt+=pixheight; | ||
834 | screndy=(ycnt>>6)+upperedge; | ||
835 | if(scrstarty!=screndy && screndy>0) | ||
836 | { | ||
837 | col=((byte *)shape)[newstart+j]; | ||
838 | if(scrstarty<0) scrstarty=0; | ||
839 | if(screndy>viewheight) screndy=viewheight,j=endy; | ||
840 | |||
841 | while(scrstarty<screndy) | ||
842 | { | ||
843 | *vmem=col; | ||
844 | vmem+=vbufPitch; | ||
845 | scrstarty++; | ||
846 | } | ||
847 | } | ||
848 | } | ||
849 | } | ||
850 | lpix++; | ||
851 | } | ||
852 | } | ||
853 | } | ||
854 | } | ||
855 | |||
856 | /* | ||
857 | ===================== | ||
858 | = | ||
859 | = DrawScaleds | ||
860 | = | ||
861 | = Draws all objects that are visable | ||
862 | = | ||
863 | ===================== | ||
864 | */ | ||
865 | |||
866 | #define MAXVISABLE 250 | ||
867 | |||
868 | typedef struct | ||
869 | { | ||
870 | short viewx, | ||
871 | viewheight, | ||
872 | shapenum; | ||
873 | short flags; // this must be changed to uint32_t, when you | ||
874 | // you need more than 16-flags for drawing | ||
875 | #ifdef USE_DIR3DSPR | ||
876 | statobj_t *transsprite; | ||
877 | #endif | ||
878 | } visobj_t; | ||
879 | |||
880 | visobj_t vislist[MAXVISABLE]; | ||
881 | visobj_t *visptr,*visstep,*farthest; | ||
882 | |||
883 | void DrawScaleds (void) | ||
884 | { | ||
885 | int i,least,numvisable,height; | ||
886 | byte *tilespot,*visspot; | ||
887 | unsigned spotloc; | ||
888 | |||
889 | statobj_t *statptr; | ||
890 | objtype *obj; | ||
891 | |||
892 | visptr = &vislist[0]; | ||
893 | |||
894 | // | ||
895 | // place static objects | ||
896 | // | ||
897 | for (statptr = &statobjlist[0] ; statptr !=laststatobj ; statptr++) | ||
898 | { | ||
899 | if ((visptr->shapenum = statptr->shapenum) == -1) | ||
900 | continue; // object has been deleted | ||
901 | |||
902 | if (!*statptr->visspot) | ||
903 | continue; // not visable | ||
904 | |||
905 | if (TransformTile (statptr->tilex,statptr->tiley, | ||
906 | &visptr->viewx,&visptr->viewheight) && statptr->flags & FL_BONUS) | ||
907 | { | ||
908 | GetBonus (statptr); | ||
909 | if(statptr->shapenum == -1) | ||
910 | continue; // object has been taken | ||
911 | } | ||
912 | |||
913 | if (!visptr->viewheight) | ||
914 | continue; // to close to the object | ||
915 | |||
916 | #ifdef USE_DIR3DSPR | ||
917 | if(statptr->flags & FL_DIR_MASK) | ||
918 | visptr->transsprite=statptr; | ||
919 | else | ||
920 | visptr->transsprite=NULL; | ||
921 | #endif | ||
922 | |||
923 | if (visptr < &vislist[MAXVISABLE-1]) // don't let it overflow | ||
924 | { | ||
925 | visptr->flags = (short) statptr->flags; | ||
926 | visptr++; | ||
927 | } | ||
928 | } | ||
929 | |||
930 | // | ||
931 | // place active objects | ||
932 | // | ||
933 | for (obj = player->next;obj;obj=obj->next) | ||
934 | { | ||
935 | if ((visptr->shapenum = obj->state->shapenum)==0) | ||
936 | continue; // no shape | ||
937 | |||
938 | spotloc = (obj->tilex<<mapshift)+obj->tiley; // optimize: keep in struct? | ||
939 | visspot = &spotvis[0][0]+spotloc; | ||
940 | tilespot = &tilemap[0][0]+spotloc; | ||
941 | |||
942 | // | ||
943 | // could be in any of the nine surrounding tiles | ||
944 | // | ||
945 | if (*visspot | ||
946 | || ( *(visspot-1) && !*(tilespot-1) ) | ||
947 | || ( *(visspot+1) && !*(tilespot+1) ) | ||
948 | || ( *(visspot-65) && !*(tilespot-65) ) | ||
949 | || ( *(visspot-64) && !*(tilespot-64) ) | ||
950 | || ( *(visspot-63) && !*(tilespot-63) ) | ||
951 | || ( *(visspot+65) && !*(tilespot+65) ) | ||
952 | || ( *(visspot+64) && !*(tilespot+64) ) | ||
953 | || ( *(visspot+63) && !*(tilespot+63) ) ) | ||
954 | { | ||
955 | obj->active = ac_yes; | ||
956 | TransformActor (obj); | ||
957 | if (!obj->viewheight) | ||
958 | continue; // too close or far away | ||
959 | |||
960 | visptr->viewx = obj->viewx; | ||
961 | visptr->viewheight = obj->viewheight; | ||
962 | if (visptr->shapenum == -1) | ||
963 | visptr->shapenum = obj->temp1; // special shape | ||
964 | |||
965 | if (obj->state->rotate) | ||
966 | visptr->shapenum += CalcRotate (obj); | ||
967 | |||
968 | if (visptr < &vislist[MAXVISABLE-1]) // don't let it overflow | ||
969 | { | ||
970 | visptr->flags = (short) obj->flags; | ||
971 | #ifdef USE_DIR3DSPR | ||
972 | visptr->transsprite = NULL; | ||
973 | #endif | ||
974 | visptr++; | ||
975 | } | ||
976 | obj->flags |= FL_VISABLE; | ||
977 | } | ||
978 | else | ||
979 | obj->flags &= ~FL_VISABLE; | ||
980 | } | ||
981 | |||
982 | // | ||
983 | // draw from back to front | ||
984 | // | ||
985 | numvisable = (int) (visptr-&vislist[0]); | ||
986 | |||
987 | if (!numvisable) | ||
988 | return; // no visable objects | ||
989 | |||
990 | for (i = 0; i<numvisable; i++) | ||
991 | { | ||
992 | least = 32000; | ||
993 | for (visstep=&vislist[0] ; visstep<visptr ; visstep++) | ||
994 | { | ||
995 | height = visstep->viewheight; | ||
996 | if (height < least) | ||
997 | { | ||
998 | least = height; | ||
999 | farthest = visstep; | ||
1000 | } | ||
1001 | } | ||
1002 | // | ||
1003 | // draw farthest | ||
1004 | // | ||
1005 | #ifdef USE_DIR3DSPR | ||
1006 | if(farthest->transsprite) | ||
1007 | Scale3DShape(vbuf, vbufPitch, farthest->transsprite); | ||
1008 | else | ||
1009 | #endif | ||
1010 | ScaleShape(farthest->viewx, farthest->shapenum, farthest->viewheight, farthest->flags); | ||
1011 | |||
1012 | farthest->viewheight = 32000; | ||
1013 | } | ||
1014 | } | ||
1015 | |||
1016 | //========================================================================== | ||
1017 | |||
1018 | /* | ||
1019 | ============== | ||
1020 | = | ||
1021 | = DrawPlayerWeapon | ||
1022 | = | ||
1023 | = Draw the player's hands | ||
1024 | = | ||
1025 | ============== | ||
1026 | */ | ||
1027 | |||
1028 | int weaponscale[NUMWEAPONS] = {SPR_KNIFEREADY, SPR_PISTOLREADY, | ||
1029 | SPR_MACHINEGUNREADY, SPR_CHAINREADY}; | ||
1030 | |||
1031 | void DrawPlayerWeapon (void) | ||
1032 | { | ||
1033 | int shapenum; | ||
1034 | |||
1035 | #ifndef SPEAR | ||
1036 | if (gamestate.victoryflag) | ||
1037 | { | ||
1038 | #ifndef APOGEE_1_0 | ||
1039 | if (player->state == &s_deathcam && (GetTimeCount()&32) ) | ||
1040 | SimpleScaleShape(viewwidth/2,SPR_DEATHCAM,viewheight+1); | ||
1041 | #endif | ||
1042 | return; | ||
1043 | } | ||
1044 | #endif | ||
1045 | |||
1046 | if (gamestate.weapon != -1) | ||
1047 | { | ||
1048 | shapenum = weaponscale[gamestate.weapon]+gamestate.weaponframe; | ||
1049 | SimpleScaleShape(viewwidth/2,shapenum,viewheight+1); | ||
1050 | } | ||
1051 | |||
1052 | if (demorecord || demoplayback) | ||
1053 | SimpleScaleShape(viewwidth/2,SPR_DEMO,viewheight+1); | ||
1054 | } | ||
1055 | |||
1056 | |||
1057 | //========================================================================== | ||
1058 | |||
1059 | |||
1060 | /* | ||
1061 | ===================== | ||
1062 | = | ||
1063 | = CalcTics | ||
1064 | = | ||
1065 | ===================== | ||
1066 | */ | ||
1067 | |||
1068 | void CalcTics (void) | ||
1069 | { | ||
1070 | // | ||
1071 | // calculate tics since last refresh for adaptive timing | ||
1072 | // | ||
1073 | if (lasttimecount > (int32_t) GetTimeCount()) | ||
1074 | lasttimecount = GetTimeCount(); // if the game was paused a LONG time | ||
1075 | |||
1076 | uint32_t curtime = SDL_GetTicks(); | ||
1077 | tics = (curtime * 7) / 100 - lasttimecount; | ||
1078 | if(!tics) | ||
1079 | { | ||
1080 | // wait until end of current tic | ||
1081 | SDL_Delay(((lasttimecount + 1) * 100) / 7 - curtime); | ||
1082 | tics = 1; | ||
1083 | } | ||
1084 | |||
1085 | lasttimecount += tics; | ||
1086 | |||
1087 | if (tics>MAXTICS) | ||
1088 | tics = MAXTICS; | ||
1089 | } | ||
1090 | |||
1091 | |||
1092 | //========================================================================== | ||
1093 | |||
1094 | void AsmRefresh() | ||
1095 | { | ||
1096 | int32_t xstep,ystep; | ||
1097 | longword xpartial,ypartial; | ||
1098 | boolean playerInPushwallBackTile = tilemap[focaltx][focalty] == 64; | ||
1099 | |||
1100 | for(pixx=0;pixx<viewwidth;pixx++) | ||
1101 | { | ||
1102 | short angl=midangle+pixelangle[pixx]; | ||
1103 | if(angl<0) angl+=FINEANGLES; | ||
1104 | if(angl>=3600) angl-=FINEANGLES; | ||
1105 | if(angl<900) | ||
1106 | { | ||
1107 | xtilestep=1; | ||
1108 | ytilestep=-1; | ||
1109 | xstep=finetangent[900-1-angl]; | ||
1110 | ystep=-finetangent[angl]; | ||
1111 | xpartial=xpartialup; | ||
1112 | ypartial=ypartialdown; | ||
1113 | } | ||
1114 | else if(angl<1800) | ||
1115 | { | ||
1116 | xtilestep=-1; | ||
1117 | ytilestep=-1; | ||
1118 | xstep=-finetangent[angl-900]; | ||
1119 | ystep=-finetangent[1800-1-angl]; | ||
1120 | xpartial=xpartialdown; | ||
1121 | ypartial=ypartialdown; | ||
1122 | } | ||
1123 | else if(angl<2700) | ||
1124 | { | ||
1125 | xtilestep=-1; | ||
1126 | ytilestep=1; | ||
1127 | xstep=-finetangent[2700-1-angl]; | ||
1128 | ystep=finetangent[angl-1800]; | ||
1129 | xpartial=xpartialdown; | ||
1130 | ypartial=ypartialup; | ||
1131 | } | ||
1132 | else if(angl<3600) | ||
1133 | { | ||
1134 | xtilestep=1; | ||
1135 | ytilestep=1; | ||
1136 | xstep=finetangent[angl-2700]; | ||
1137 | ystep=finetangent[3600-1-angl]; | ||
1138 | xpartial=xpartialup; | ||
1139 | ypartial=ypartialup; | ||
1140 | } | ||
1141 | yintercept=FixedMul(ystep,xpartial)+viewy; | ||
1142 | xtile=focaltx+xtilestep; | ||
1143 | xspot=(word)((xtile<<mapshift)+((uint32_t)yintercept>>16)); | ||
1144 | xintercept=FixedMul(xstep,ypartial)+viewx; | ||
1145 | ytile=focalty+ytilestep; | ||
1146 | yspot=(word)((((uint32_t)xintercept>>16)<<mapshift)+ytile); | ||
1147 | texdelta=0; | ||
1148 | |||
1149 | // Special treatment when player is in back tile of pushwall | ||
1150 | if(playerInPushwallBackTile) | ||
1151 | { | ||
1152 | if( pwalldir == di_east && xtilestep == 1 | ||
1153 | || pwalldir == di_west && xtilestep == -1) | ||
1154 | { | ||
1155 | int32_t yintbuf = yintercept - ((ystep * (64 - pwallpos)) >> 6); | ||
1156 | if((yintbuf >> 16) == focalty) // ray hits pushwall back? | ||
1157 | { | ||
1158 | if(pwalldir == di_east) | ||
1159 | xintercept = (focaltx << TILESHIFT) + (pwallpos << 10); | ||
1160 | else | ||
1161 | xintercept = (focaltx << TILESHIFT) - TILEGLOBAL + ((64 - pwallpos) << 10); | ||
1162 | yintercept = yintbuf; | ||
1163 | ytile = (short) (yintercept >> TILESHIFT); | ||
1164 | tilehit = pwalltile; | ||
1165 | HitVertWall(); | ||
1166 | continue; | ||
1167 | } | ||
1168 | } | ||
1169 | else if(pwalldir == di_south && ytilestep == 1 | ||
1170 | || pwalldir == di_north && ytilestep == -1) | ||
1171 | { | ||
1172 | int32_t xintbuf = xintercept - ((xstep * (64 - pwallpos)) >> 6); | ||
1173 | if((xintbuf >> 16) == focaltx) // ray hits pushwall back? | ||
1174 | { | ||
1175 | xintercept = xintbuf; | ||
1176 | if(pwalldir == di_south) | ||
1177 | yintercept = (focalty << TILESHIFT) + (pwallpos << 10); | ||
1178 | else | ||
1179 | yintercept = (focalty << TILESHIFT) - TILEGLOBAL + ((64 - pwallpos) << 10); | ||
1180 | xtile = (short) (xintercept >> TILESHIFT); | ||
1181 | tilehit = pwalltile; | ||
1182 | HitHorizWall(); | ||
1183 | continue; | ||
1184 | } | ||
1185 | } | ||
1186 | } | ||
1187 | |||
1188 | do | ||
1189 | { | ||
1190 | if(ytilestep==-1 && (yintercept>>16)<=ytile) goto horizentry; | ||
1191 | if(ytilestep==1 && (yintercept>>16)>=ytile) goto horizentry; | ||
1192 | vertentry: | ||
1193 | if((uint32_t)yintercept>mapheight*65536-1 || (word)xtile>=mapwidth) | ||
1194 | { | ||
1195 | if(xtile<0) xintercept=0, xtile=0; | ||
1196 | else if(xtile>=mapwidth) xintercept=mapwidth<<TILESHIFT, xtile=mapwidth-1; | ||
1197 | else xtile=(short) (xintercept >> TILESHIFT); | ||
1198 | if(yintercept<0) yintercept=0, ytile=0; | ||
1199 | else if(yintercept>=(mapheight<<TILESHIFT)) yintercept=mapheight<<TILESHIFT, ytile=mapheight-1; | ||
1200 | yspot=0xffff; | ||
1201 | tilehit=0; | ||
1202 | HitHorizBorder(); | ||
1203 | break; | ||
1204 | } | ||
1205 | if(xspot>=maparea) break; | ||
1206 | tilehit=((byte *)tilemap)[xspot]; | ||
1207 | if(tilehit) | ||
1208 | { | ||
1209 | if(tilehit&0x80) | ||
1210 | { | ||
1211 | int32_t yintbuf=yintercept+(ystep>>1); | ||
1212 | if((yintbuf>>16)!=(yintercept>>16)) | ||
1213 | goto passvert; | ||
1214 | if((word)yintbuf<doorposition[tilehit&0x7f]) | ||
1215 | goto passvert; | ||
1216 | yintercept=yintbuf; | ||
1217 | xintercept=(xtile<<TILESHIFT)|0x8000; | ||
1218 | ytile = (short) (yintercept >> TILESHIFT); | ||
1219 | HitVertDoor(); | ||
1220 | } | ||
1221 | else | ||
1222 | { | ||
1223 | if(tilehit==64) | ||
1224 | { | ||
1225 | if(pwalldir==di_west || pwalldir==di_east) | ||
1226 | { | ||
1227 | int32_t yintbuf; | ||
1228 | int pwallposnorm; | ||
1229 | int pwallposinv; | ||
1230 | if(pwalldir==di_west) | ||
1231 | { | ||
1232 | pwallposnorm = 64-pwallpos; | ||
1233 | pwallposinv = pwallpos; | ||
1234 | } | ||
1235 | else | ||
1236 | { | ||
1237 | pwallposnorm = pwallpos; | ||
1238 | pwallposinv = 64-pwallpos; | ||
1239 | } | ||
1240 | if(pwalldir == di_east && xtile==pwallx && ((uint32_t)yintercept>>16)==pwally | ||
1241 | || pwalldir == di_west && !(xtile==pwallx && ((uint32_t)yintercept>>16)==pwally)) | ||
1242 | { | ||
1243 | yintbuf=yintercept+((ystep*pwallposnorm)>>6); | ||
1244 | if((yintbuf>>16)!=(yintercept>>16)) | ||
1245 | goto passvert; | ||
1246 | |||
1247 | xintercept=(xtile<<TILESHIFT)+TILEGLOBAL-(pwallposinv<<10); | ||
1248 | yintercept=yintbuf; | ||
1249 | ytile = (short) (yintercept >> TILESHIFT); | ||
1250 | tilehit=pwalltile; | ||
1251 | HitVertWall(); | ||
1252 | } | ||
1253 | else | ||
1254 | { | ||
1255 | yintbuf=yintercept+((ystep*pwallposinv)>>6); | ||
1256 | if((yintbuf>>16)!=(yintercept>>16)) | ||
1257 | goto passvert; | ||
1258 | |||
1259 | xintercept=(xtile<<TILESHIFT)-(pwallposinv<<10); | ||
1260 | yintercept=yintbuf; | ||
1261 | ytile = (short) (yintercept >> TILESHIFT); | ||
1262 | tilehit=pwalltile; | ||
1263 | HitVertWall(); | ||
1264 | } | ||
1265 | } | ||
1266 | else | ||
1267 | { | ||
1268 | int pwallposi = pwallpos; | ||
1269 | if(pwalldir==di_north) pwallposi = 64-pwallpos; | ||
1270 | if(pwalldir==di_south && (word)yintercept<(pwallposi<<10) | ||
1271 | || pwalldir==di_north && (word)yintercept>(pwallposi<<10)) | ||
1272 | { | ||
1273 | if(((uint32_t)yintercept>>16)==pwally && xtile==pwallx) | ||
1274 | { | ||
1275 | if(pwalldir==di_south && (int32_t)((word)yintercept)+ystep<(pwallposi<<10) | ||
1276 | || pwalldir==di_north && (int32_t)((word)yintercept)+ystep>(pwallposi<<10)) | ||
1277 | goto passvert; | ||
1278 | |||
1279 | if(pwalldir==di_south) | ||
1280 | yintercept=(yintercept&0xffff0000)+(pwallposi<<10); | ||
1281 | else | ||
1282 | yintercept=(yintercept&0xffff0000)-TILEGLOBAL+(pwallposi<<10); | ||
1283 | xintercept=xintercept-((xstep*(64-pwallpos))>>6); | ||
1284 | xtile = (short) (xintercept >> TILESHIFT); | ||
1285 | tilehit=pwalltile; | ||
1286 | HitHorizWall(); | ||
1287 | } | ||
1288 | else | ||
1289 | { | ||
1290 | texdelta = -(pwallposi<<10); | ||
1291 | xintercept=xtile<<TILESHIFT; | ||
1292 | ytile = (short) (yintercept >> TILESHIFT); | ||
1293 | tilehit=pwalltile; | ||
1294 | HitVertWall(); | ||
1295 | } | ||
1296 | } | ||
1297 | else | ||
1298 | { | ||
1299 | if(((uint32_t)yintercept>>16)==pwally && xtile==pwallx) | ||
1300 | { | ||
1301 | texdelta = -(pwallposi<<10); | ||
1302 | xintercept=xtile<<TILESHIFT; | ||
1303 | ytile = (short) (yintercept >> TILESHIFT); | ||
1304 | tilehit=pwalltile; | ||
1305 | HitVertWall(); | ||
1306 | } | ||
1307 | else | ||
1308 | { | ||
1309 | if(pwalldir==di_south && (int32_t)((word)yintercept)+ystep>(pwallposi<<10) | ||
1310 | || pwalldir==di_north && (int32_t)((word)yintercept)+ystep<(pwallposi<<10)) | ||
1311 | goto passvert; | ||
1312 | |||
1313 | if(pwalldir==di_south) | ||
1314 | yintercept=(yintercept&0xffff0000)-((64-pwallpos)<<10); | ||
1315 | else | ||
1316 | yintercept=(yintercept&0xffff0000)+((64-pwallpos)<<10); | ||
1317 | xintercept=xintercept-((xstep*pwallpos)>>6); | ||
1318 | xtile = (short) (xintercept >> TILESHIFT); | ||
1319 | tilehit=pwalltile; | ||
1320 | HitHorizWall(); | ||
1321 | } | ||
1322 | } | ||
1323 | } | ||
1324 | } | ||
1325 | else | ||
1326 | { | ||
1327 | xintercept=xtile<<TILESHIFT; | ||
1328 | ytile = (short) (yintercept >> TILESHIFT); | ||
1329 | HitVertWall(); | ||
1330 | } | ||
1331 | } | ||
1332 | break; | ||
1333 | } | ||
1334 | passvert: | ||
1335 | *((byte *)spotvis+xspot)=1; | ||
1336 | xtile+=xtilestep; | ||
1337 | yintercept+=ystep; | ||
1338 | xspot=(word)((xtile<<mapshift)+((uint32_t)yintercept>>16)); | ||
1339 | } | ||
1340 | while(1); | ||
1341 | continue; | ||
1342 | |||
1343 | do | ||
1344 | { | ||
1345 | if(xtilestep==-1 && (xintercept>>16)<=xtile) goto vertentry; | ||
1346 | if(xtilestep==1 && (xintercept>>16)>=xtile) goto vertentry; | ||
1347 | horizentry: | ||
1348 | if((uint32_t)xintercept>mapwidth*65536-1 || (word)ytile>=mapheight) | ||
1349 | { | ||
1350 | if(ytile<0) yintercept=0, ytile=0; | ||
1351 | else if(ytile>=mapheight) yintercept=mapheight<<TILESHIFT, ytile=mapheight-1; | ||
1352 | else ytile=(short) (yintercept >> TILESHIFT); | ||
1353 | if(xintercept<0) xintercept=0, xtile=0; | ||
1354 | else if(xintercept>=(mapwidth<<TILESHIFT)) xintercept=mapwidth<<TILESHIFT, xtile=mapwidth-1; | ||
1355 | xspot=0xffff; | ||
1356 | tilehit=0; | ||
1357 | HitVertBorder(); | ||
1358 | break; | ||
1359 | } | ||
1360 | if(yspot>=maparea) break; | ||
1361 | tilehit=((byte *)tilemap)[yspot]; | ||
1362 | if(tilehit) | ||
1363 | { | ||
1364 | if(tilehit&0x80) | ||
1365 | { | ||
1366 | int32_t xintbuf=xintercept+(xstep>>1); | ||
1367 | if((xintbuf>>16)!=(xintercept>>16)) | ||
1368 | goto passhoriz; | ||
1369 | if((word)xintbuf<doorposition[tilehit&0x7f]) | ||
1370 | goto passhoriz; | ||
1371 | xintercept=xintbuf; | ||
1372 | yintercept=(ytile<<TILESHIFT)+0x8000; | ||
1373 | xtile = (short) (xintercept >> TILESHIFT); | ||
1374 | HitHorizDoor(); | ||
1375 | } | ||
1376 | else | ||
1377 | { | ||
1378 | if(tilehit==64) | ||
1379 | { | ||
1380 | if(pwalldir==di_north || pwalldir==di_south) | ||
1381 | { | ||
1382 | int32_t xintbuf; | ||
1383 | int pwallposnorm; | ||
1384 | int pwallposinv; | ||
1385 | if(pwalldir==di_north) | ||
1386 | { | ||
1387 | pwallposnorm = 64-pwallpos; | ||
1388 | pwallposinv = pwallpos; | ||
1389 | } | ||
1390 | else | ||
1391 | { | ||
1392 | pwallposnorm = pwallpos; | ||
1393 | pwallposinv = 64-pwallpos; | ||
1394 | } | ||
1395 | if(pwalldir == di_south && ytile==pwally && ((uint32_t)xintercept>>16)==pwallx | ||
1396 | || pwalldir == di_north && !(ytile==pwally && ((uint32_t)xintercept>>16)==pwallx)) | ||
1397 | { | ||
1398 | xintbuf=xintercept+((xstep*pwallposnorm)>>6); | ||
1399 | if((xintbuf>>16)!=(xintercept>>16)) | ||
1400 | goto passhoriz; | ||
1401 | |||
1402 | yintercept=(ytile<<TILESHIFT)+TILEGLOBAL-(pwallposinv<<10); | ||
1403 | xintercept=xintbuf; | ||
1404 | xtile = (short) (xintercept >> TILESHIFT); | ||
1405 | tilehit=pwalltile; | ||
1406 | HitHorizWall(); | ||
1407 | } | ||
1408 | else | ||
1409 | { | ||
1410 | xintbuf=xintercept+((xstep*pwallposinv)>>6); | ||
1411 | if((xintbuf>>16)!=(xintercept>>16)) | ||
1412 | goto passhoriz; | ||
1413 | |||
1414 | yintercept=(ytile<<TILESHIFT)-(pwallposinv<<10); | ||
1415 | xintercept=xintbuf; | ||
1416 | xtile = (short) (xintercept >> TILESHIFT); | ||
1417 | tilehit=pwalltile; | ||
1418 | HitHorizWall(); | ||
1419 | } | ||
1420 | } | ||
1421 | else | ||
1422 | { | ||
1423 | int pwallposi = pwallpos; | ||
1424 | if(pwalldir==di_west) pwallposi = 64-pwallpos; | ||
1425 | if(pwalldir==di_east && (word)xintercept<(pwallposi<<10) | ||
1426 | || pwalldir==di_west && (word)xintercept>(pwallposi<<10)) | ||
1427 | { | ||
1428 | if(((uint32_t)xintercept>>16)==pwallx && ytile==pwally) | ||
1429 | { | ||
1430 | if(pwalldir==di_east && (int32_t)((word)xintercept)+xstep<(pwallposi<<10) | ||
1431 | || pwalldir==di_west && (int32_t)((word)xintercept)+xstep>(pwallposi<<10)) | ||
1432 | goto passhoriz; | ||
1433 | |||
1434 | if(pwalldir==di_east) | ||
1435 | xintercept=(xintercept&0xffff0000)+(pwallposi<<10); | ||
1436 | else | ||
1437 | xintercept=(xintercept&0xffff0000)-TILEGLOBAL+(pwallposi<<10); | ||
1438 | yintercept=yintercept-((ystep*(64-pwallpos))>>6); | ||
1439 | ytile = (short) (yintercept >> TILESHIFT); | ||
1440 | tilehit=pwalltile; | ||
1441 | HitVertWall(); | ||
1442 | } | ||
1443 | else | ||
1444 | { | ||
1445 | texdelta = -(pwallposi<<10); | ||
1446 | yintercept=ytile<<TILESHIFT; | ||
1447 | xtile = (short) (xintercept >> TILESHIFT); | ||
1448 | tilehit=pwalltile; | ||
1449 | HitHorizWall(); | ||
1450 | } | ||
1451 | } | ||
1452 | else | ||
1453 | { | ||
1454 | if(((uint32_t)xintercept>>16)==pwallx && ytile==pwally) | ||
1455 | { | ||
1456 | texdelta = -(pwallposi<<10); | ||
1457 | yintercept=ytile<<TILESHIFT; | ||
1458 | xtile = (short) (xintercept >> TILESHIFT); | ||
1459 | tilehit=pwalltile; | ||
1460 | HitHorizWall(); | ||
1461 | } | ||
1462 | else | ||
1463 | { | ||
1464 | if(pwalldir==di_east && (int32_t)((word)xintercept)+xstep>(pwallposi<<10) | ||
1465 | || pwalldir==di_west && (int32_t)((word)xintercept)+xstep<(pwallposi<<10)) | ||
1466 | goto passhoriz; | ||
1467 | |||
1468 | if(pwalldir==di_east) | ||
1469 | xintercept=(xintercept&0xffff0000)-((64-pwallpos)<<10); | ||
1470 | else | ||
1471 | xintercept=(xintercept&0xffff0000)+((64-pwallpos)<<10); | ||
1472 | yintercept=yintercept-((ystep*pwallpos)>>6); | ||
1473 | ytile = (short) (yintercept >> TILESHIFT); | ||
1474 | tilehit=pwalltile; | ||
1475 | HitVertWall(); | ||
1476 | } | ||
1477 | } | ||
1478 | } | ||
1479 | } | ||
1480 | else | ||
1481 | { | ||
1482 | yintercept=ytile<<TILESHIFT; | ||
1483 | xtile = (short) (xintercept >> TILESHIFT); | ||
1484 | HitHorizWall(); | ||
1485 | } | ||
1486 | } | ||
1487 | break; | ||
1488 | } | ||
1489 | passhoriz: | ||
1490 | *((byte *)spotvis+yspot)=1; | ||
1491 | ytile+=ytilestep; | ||
1492 | xintercept+=xstep; | ||
1493 | yspot=(word)((((uint32_t)xintercept>>16)<<mapshift)+ytile); | ||
1494 | } | ||
1495 | while(1); | ||
1496 | } | ||
1497 | } | ||
1498 | |||
1499 | /* | ||
1500 | ==================== | ||
1501 | = | ||
1502 | = WallRefresh | ||
1503 | = | ||
1504 | ==================== | ||
1505 | */ | ||
1506 | |||
1507 | void WallRefresh (void) | ||
1508 | { | ||
1509 | xpartialdown = viewx&(TILEGLOBAL-1); | ||
1510 | xpartialup = TILEGLOBAL-xpartialdown; | ||
1511 | ypartialdown = viewy&(TILEGLOBAL-1); | ||
1512 | ypartialup = TILEGLOBAL-ypartialdown; | ||
1513 | |||
1514 | min_wallheight = viewheight; | ||
1515 | lastside = -1; // the first pixel is on a new wall | ||
1516 | AsmRefresh (); | ||
1517 | ScalePost (); // no more optimization on last post | ||
1518 | } | ||
1519 | |||
1520 | void CalcViewVariables() | ||
1521 | { | ||
1522 | viewangle = player->angle; | ||
1523 | midangle = viewangle*(FINEANGLES/ANGLES); | ||
1524 | viewsin = sintable[viewangle]; | ||
1525 | viewcos = costable[viewangle]; | ||
1526 | viewx = player->x - FixedMul(focallength,viewcos); | ||
1527 | viewy = player->y + FixedMul(focallength,viewsin); | ||
1528 | |||
1529 | focaltx = (short)(viewx>>TILESHIFT); | ||
1530 | focalty = (short)(viewy>>TILESHIFT); | ||
1531 | |||
1532 | viewtx = (short)(player->x >> TILESHIFT); | ||
1533 | viewty = (short)(player->y >> TILESHIFT); | ||
1534 | } | ||
1535 | |||
1536 | //========================================================================== | ||
1537 | |||
1538 | /* | ||
1539 | ======================== | ||
1540 | = | ||
1541 | = ThreeDRefresh | ||
1542 | = | ||
1543 | ======================== | ||
1544 | */ | ||
1545 | |||
1546 | void ThreeDRefresh (void) | ||
1547 | { | ||
1548 | // | ||
1549 | // clear out the traced array | ||
1550 | // | ||
1551 | memset(spotvis,0,maparea); | ||
1552 | spotvis[player->tilex][player->tiley] = 1; // Detect all sprites over player fix | ||
1553 | |||
1554 | vbuf = VL_LockSurface(screenBuffer); | ||
1555 | vbuf+=screenofs; | ||
1556 | vbufPitch = bufferPitch; | ||
1557 | |||
1558 | CalcViewVariables(); | ||
1559 | |||
1560 | // | ||
1561 | // follow the walls from there to the right, drawing as we go | ||
1562 | // | ||
1563 | VGAClearScreen (); | ||
1564 | #if defined(USE_FEATUREFLAGS) && defined(USE_STARSKY) | ||
1565 | if(GetFeatureFlags() & FF_STARSKY) | ||
1566 | DrawStarSky(vbuf, vbufPitch); | ||
1567 | #endif | ||
1568 | |||
1569 | WallRefresh (); | ||
1570 | |||
1571 | #if defined(USE_FEATUREFLAGS) && defined(USE_PARALLAX) | ||
1572 | if(GetFeatureFlags() & FF_PARALLAXSKY) | ||
1573 | DrawParallax(vbuf, vbufPitch); | ||
1574 | #endif | ||
1575 | #if defined(USE_FEATUREFLAGS) && defined(USE_CLOUDSKY) | ||
1576 | if(GetFeatureFlags() & FF_CLOUDSKY) | ||
1577 | DrawClouds(vbuf, vbufPitch, min_wallheight); | ||
1578 | #endif | ||
1579 | #ifdef USE_FLOORCEILINGTEX | ||
1580 | DrawFloorAndCeiling(vbuf, vbufPitch, min_wallheight); | ||
1581 | #endif | ||
1582 | |||
1583 | // | ||
1584 | // draw all the scaled images | ||
1585 | // | ||
1586 | DrawScaleds(); // draw scaled stuff | ||
1587 | |||
1588 | #if defined(USE_FEATUREFLAGS) && defined(USE_RAIN) | ||
1589 | if(GetFeatureFlags() & FF_RAIN) | ||
1590 | DrawRain(vbuf, vbufPitch); | ||
1591 | #endif | ||
1592 | #if defined(USE_FEATUREFLAGS) && defined(USE_SNOW) | ||
1593 | if(GetFeatureFlags() & FF_SNOW) | ||
1594 | DrawSnow(vbuf, vbufPitch); | ||
1595 | #endif | ||
1596 | |||
1597 | DrawPlayerWeapon (); // draw player's hands | ||
1598 | |||
1599 | if(Keyboard[sc_Tab] && viewsize == 21 && gamestate.weapon != -1) | ||
1600 | ShowActStatus(); | ||
1601 | |||
1602 | VL_UnlockSurface(screenBuffer); | ||
1603 | vbuf = NULL; | ||
1604 | |||
1605 | // | ||
1606 | // show screen and time last cycle | ||
1607 | // | ||
1608 | |||
1609 | if (fizzlein) | ||
1610 | { | ||
1611 | FizzleFade(screenBuffer, 0, 0, screenWidth, screenHeight, 20, false); | ||
1612 | fizzlein = false; | ||
1613 | |||
1614 | lasttimecount = GetTimeCount(); // don't make a big tic count | ||
1615 | } | ||
1616 | else | ||
1617 | { | ||
1618 | #ifndef REMDEBUG | ||
1619 | if (fpscounter) | ||
1620 | { | ||
1621 | fontnumber = 0; | ||
1622 | SETFONTCOLOR(7,127); | ||
1623 | PrintX=4; PrintY=1; | ||
1624 | VWB_Bar(0,0,50,10,bordercol); | ||
1625 | US_PrintSigned(fps); | ||
1626 | US_Print(" fps"); | ||
1627 | } | ||
1628 | #endif | ||
1629 | SDL_BlitSurface(screenBuffer, NULL, screen, NULL); | ||
1630 | SDL_Flip(screen); | ||
1631 | } | ||
1632 | |||
1633 | #ifndef REMDEBUG | ||
1634 | if (fpscounter) | ||
1635 | { | ||
1636 | fps_frames++; | ||
1637 | fps_time+=tics; | ||
1638 | |||
1639 | if(fps_time>35) | ||
1640 | { | ||
1641 | fps_time-=35; | ||
1642 | fps=fps_frames<<1; | ||
1643 | fps_frames=0; | ||
1644 | } | ||
1645 | } | ||
1646 | #endif | ||
1647 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_floorceiling.c b/apps/plugins/sdl/progs/wolf3d/wl_floorceiling.c new file mode 100644 index 0000000000..39a1167020 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_floorceiling.c | |||
@@ -0,0 +1,87 @@ | |||
1 | #include "version.h" | ||
2 | |||
3 | #ifdef USE_FLOORCEILINGTEX | ||
4 | |||
5 | #include "wl_def.h" | ||
6 | #include "wl_shade.h" | ||
7 | |||
8 | // Textured Floor and Ceiling by DarkOne | ||
9 | // With multi-textured floors and ceilings stored in lower and upper bytes of | ||
10 | // according tile in third mapplane, respectively. | ||
11 | void DrawFloorAndCeiling(byte *vbuf, unsigned vbufPitch, int min_wallheight) | ||
12 | { | ||
13 | fixed dist; // distance to row projection | ||
14 | fixed tex_step; // global step per one screen pixel | ||
15 | fixed gu, gv, du, dv; // global texture coordinates | ||
16 | int u, v; // local texture coordinates | ||
17 | byte *toptex, *bottex; | ||
18 | unsigned lasttoptex = 0xffffffff, lastbottex = 0xffffffff; | ||
19 | |||
20 | int halfheight = viewheight >> 1; | ||
21 | int y0 = min_wallheight >> 3; // starting y value | ||
22 | if(y0 > halfheight) | ||
23 | return; // view obscured by walls | ||
24 | if(!y0) y0 = 1; // don't let division by zero | ||
25 | unsigned bot_offset0 = vbufPitch * (halfheight + y0); | ||
26 | unsigned top_offset0 = vbufPitch * (halfheight - y0 - 1); | ||
27 | |||
28 | // draw horizontal lines | ||
29 | for(int y = y0, bot_offset = bot_offset0, top_offset = top_offset0; | ||
30 | y < halfheight; y++, bot_offset += vbufPitch, top_offset -= vbufPitch) | ||
31 | { | ||
32 | dist = (heightnumerator / (y + 1)) << 5; | ||
33 | gu = viewx + FixedMul(dist, viewcos); | ||
34 | gv = -viewy + FixedMul(dist, viewsin); | ||
35 | tex_step = (dist << 8) / viewwidth / 175; | ||
36 | du = FixedMul(tex_step, viewsin); | ||
37 | dv = -FixedMul(tex_step, viewcos); | ||
38 | gu -= (viewwidth >> 1) * du; | ||
39 | gv -= (viewwidth >> 1) * dv; // starting point (leftmost) | ||
40 | #ifdef USE_SHADING | ||
41 | byte *curshades = shadetable[GetShade(y << 3)]; | ||
42 | #endif | ||
43 | for(int x = 0, bot_add = bot_offset, top_add = top_offset; | ||
44 | x < viewwidth; x++, bot_add++, top_add++) | ||
45 | { | ||
46 | if(wallheight[x] >> 3 <= y) | ||
47 | { | ||
48 | int curx = (gu >> TILESHIFT) & (MAPSIZE - 1); | ||
49 | int cury = (-(gv >> TILESHIFT) - 1) & (MAPSIZE - 1); | ||
50 | unsigned curtex = MAPSPOT(curx, cury, 2); | ||
51 | if(curtex) | ||
52 | { | ||
53 | unsigned curtoptex = curtex >> 8; | ||
54 | if (curtoptex != lasttoptex) | ||
55 | { | ||
56 | lasttoptex = curtoptex; | ||
57 | toptex = PM_GetTexture(curtoptex); | ||
58 | } | ||
59 | unsigned curbottex = curtex & 0xff; | ||
60 | if (curbottex != lastbottex) | ||
61 | { | ||
62 | lastbottex = curbottex; | ||
63 | bottex = PM_GetTexture(curbottex); | ||
64 | } | ||
65 | u = (gu >> (TILESHIFT - TEXTURESHIFT)) & (TEXTURESIZE - 1); | ||
66 | v = (gv >> (TILESHIFT - TEXTURESHIFT)) & (TEXTURESIZE - 1); | ||
67 | unsigned texoffs = (u << TEXTURESHIFT) + (TEXTURESIZE - 1) - v; | ||
68 | #ifdef USE_SHADING | ||
69 | if(curtoptex) | ||
70 | vbuf[top_add] = curshades[toptex[texoffs]]; | ||
71 | if(curbottex) | ||
72 | vbuf[bot_add] = curshades[bottex[texoffs]]; | ||
73 | #else | ||
74 | if(curtoptex) | ||
75 | vbuf[top_add] = toptex[texoffs]; | ||
76 | if(curbottex) | ||
77 | vbuf[bot_add] = bottex[texoffs]; | ||
78 | #endif | ||
79 | } | ||
80 | } | ||
81 | gu += du; | ||
82 | gv += dv; | ||
83 | } | ||
84 | } | ||
85 | } | ||
86 | |||
87 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_game.c b/apps/plugins/sdl/progs/wolf3d/wl_game.c new file mode 100644 index 0000000000..445cf00153 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_game.c | |||
@@ -0,0 +1,1601 @@ | |||
1 | // WL_GAME.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | |||
7 | /* | ||
8 | ============================================================================= | ||
9 | |||
10 | LOCAL CONSTANTS | ||
11 | |||
12 | ============================================================================= | ||
13 | */ | ||
14 | |||
15 | |||
16 | /* | ||
17 | ============================================================================= | ||
18 | |||
19 | GLOBAL VARIABLES | ||
20 | |||
21 | ============================================================================= | ||
22 | */ | ||
23 | |||
24 | boolean ingame,fizzlein; | ||
25 | gametype gamestate; | ||
26 | byte bordercol=VIEWCOLOR; // color of the Change View/Ingame border | ||
27 | |||
28 | #ifdef SPEAR | ||
29 | int32_t spearx,speary; | ||
30 | unsigned spearangle; | ||
31 | boolean spearflag; | ||
32 | #endif | ||
33 | |||
34 | #ifdef USE_FEATUREFLAGS | ||
35 | int ffDataTopLeft, ffDataTopRight, ffDataBottomLeft, ffDataBottomRight; | ||
36 | #endif | ||
37 | |||
38 | // | ||
39 | // ELEVATOR BACK MAPS - REMEMBER (-1)!! | ||
40 | // | ||
41 | int ElevatorBackTo[]={1,1,7,3,5,3}; | ||
42 | |||
43 | void SetupGameLevel (void); | ||
44 | void DrawPlayScreen (void); | ||
45 | void LoadLatchMem (void); | ||
46 | void GameLoop (void); | ||
47 | |||
48 | /* | ||
49 | ============================================================================= | ||
50 | |||
51 | LOCAL VARIABLES | ||
52 | |||
53 | ============================================================================= | ||
54 | */ | ||
55 | |||
56 | |||
57 | |||
58 | //=========================================================================== | ||
59 | //=========================================================================== | ||
60 | |||
61 | |||
62 | /* | ||
63 | ========================== | ||
64 | = | ||
65 | = SetSoundLoc - Given the location of an object (in terms of global | ||
66 | = coordinates, held in globalsoundx and globalsoundy), munges the values | ||
67 | = for an approximate distance from the left and right ear, and puts | ||
68 | = those values into leftchannel and rightchannel. | ||
69 | = | ||
70 | = JAB | ||
71 | = | ||
72 | ========================== | ||
73 | */ | ||
74 | |||
75 | int leftchannel, rightchannel; | ||
76 | #define ATABLEMAX 15 | ||
77 | byte righttable[ATABLEMAX][ATABLEMAX * 2] = { | ||
78 | { 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 6, 0, 0, 0, 0, 0, 1, 3, 5, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
79 | { 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 4, 0, 0, 0, 0, 0, 2, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
80 | { 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 4, 1, 0, 0, 0, 1, 2, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
81 | { 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 5, 4, 2, 1, 0, 1, 2, 3, 5, 7, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
82 | { 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 5, 4, 3, 2, 2, 3, 3, 5, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
83 | { 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 5, 4, 4, 4, 4, 5, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
84 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 5, 5, 5, 6, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
85 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
86 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
87 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
88 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
89 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
90 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
91 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
92 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8} | ||
93 | }; | ||
94 | byte lefttable[ATABLEMAX][ATABLEMAX * 2] = { | ||
95 | { 8, 8, 8, 8, 8, 8, 8, 8, 5, 3, 1, 0, 0, 0, 0, 0, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, | ||
96 | { 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 2, 0, 0, 0, 0, 0, 4, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, | ||
97 | { 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 2, 1, 0, 0, 0, 1, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, | ||
98 | { 8, 8, 8, 8, 8, 8, 8, 8, 7, 5, 3, 2, 1, 0, 1, 2, 4, 5, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, | ||
99 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 5, 3, 3, 2, 2, 3, 4, 5, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
100 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 5, 4, 4, 4, 4, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
101 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 6, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
102 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
103 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
104 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
105 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
106 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
107 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
108 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, | ||
109 | { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8} | ||
110 | }; | ||
111 | |||
112 | void | ||
113 | SetSoundLoc(fixed gx,fixed gy) | ||
114 | { | ||
115 | fixed xt,yt; | ||
116 | int x,y; | ||
117 | |||
118 | // | ||
119 | // translate point to view centered coordinates | ||
120 | // | ||
121 | gx -= viewx; | ||
122 | gy -= viewy; | ||
123 | |||
124 | // | ||
125 | // calculate newx | ||
126 | // | ||
127 | xt = FixedMul(gx,viewcos); | ||
128 | yt = FixedMul(gy,viewsin); | ||
129 | x = (xt - yt) >> TILESHIFT; | ||
130 | |||
131 | // | ||
132 | // calculate newy | ||
133 | // | ||
134 | xt = FixedMul(gx,viewsin); | ||
135 | yt = FixedMul(gy,viewcos); | ||
136 | y = (yt + xt) >> TILESHIFT; | ||
137 | |||
138 | if (y >= ATABLEMAX) | ||
139 | y = ATABLEMAX - 1; | ||
140 | else if (y <= -ATABLEMAX) | ||
141 | y = -ATABLEMAX; | ||
142 | if (x < 0) | ||
143 | x = -x; | ||
144 | if (x >= ATABLEMAX) | ||
145 | x = ATABLEMAX - 1; | ||
146 | leftchannel = lefttable[x][y + ATABLEMAX]; | ||
147 | rightchannel = righttable[x][y + ATABLEMAX]; | ||
148 | |||
149 | #if 0 | ||
150 | CenterWindow(8,1); | ||
151 | US_PrintSigned(leftchannel); | ||
152 | US_Print(","); | ||
153 | US_PrintSigned(rightchannel); | ||
154 | VW_UpdateScreen(); | ||
155 | #endif | ||
156 | } | ||
157 | |||
158 | /* | ||
159 | ========================== | ||
160 | = | ||
161 | = SetSoundLocGlobal - Sets up globalsoundx & globalsoundy and then calls | ||
162 | = UpdateSoundLoc() to transform that into relative channel volumes. Those | ||
163 | = values are then passed to the Sound Manager so that they'll be used for | ||
164 | = the next sound played (if possible). | ||
165 | = | ||
166 | = JAB | ||
167 | = | ||
168 | ========================== | ||
169 | */ | ||
170 | void PlaySoundLocGlobal(word s,fixed gx,fixed gy) | ||
171 | { | ||
172 | SetSoundLoc(gx, gy); | ||
173 | SD_PositionSound(leftchannel, rightchannel); | ||
174 | |||
175 | int channel = SD_PlaySound((soundnames) s); | ||
176 | if(channel) | ||
177 | { | ||
178 | channelSoundPos[channel - 1].globalsoundx = gx; | ||
179 | channelSoundPos[channel - 1].globalsoundy = gy; | ||
180 | channelSoundPos[channel - 1].valid = 1; | ||
181 | } | ||
182 | } | ||
183 | |||
184 | void UpdateSoundLoc(void) | ||
185 | { | ||
186 | /* if (SoundPositioned) | ||
187 | { | ||
188 | SetSoundLoc(globalsoundx,globalsoundy); | ||
189 | SD_SetPosition(leftchannel,rightchannel); | ||
190 | }*/ | ||
191 | |||
192 | for(int i = 0; i < MIX_CHANNELS; i++) | ||
193 | { | ||
194 | if(channelSoundPos[i].valid) | ||
195 | { | ||
196 | SetSoundLoc(channelSoundPos[i].globalsoundx, | ||
197 | channelSoundPos[i].globalsoundy); | ||
198 | SD_SetPosition(i, leftchannel, rightchannel); | ||
199 | } | ||
200 | } | ||
201 | } | ||
202 | |||
203 | /* | ||
204 | ** JAB End | ||
205 | */ | ||
206 | |||
207 | /* | ||
208 | ========================== | ||
209 | = | ||
210 | = ScanInfoPlane | ||
211 | = | ||
212 | = Spawn all actors and mark down special places | ||
213 | = | ||
214 | ========================== | ||
215 | */ | ||
216 | |||
217 | static void ScanInfoPlane(void) | ||
218 | { | ||
219 | unsigned x,y; | ||
220 | int tile; | ||
221 | word *start; | ||
222 | |||
223 | start = mapsegs[1]; | ||
224 | for (y=0;y<mapheight;y++) | ||
225 | { | ||
226 | for (x=0;x<mapwidth;x++) | ||
227 | { | ||
228 | tile = *start++; | ||
229 | if (!tile) | ||
230 | continue; | ||
231 | |||
232 | switch (tile) | ||
233 | { | ||
234 | case 19: | ||
235 | case 20: | ||
236 | case 21: | ||
237 | case 22: | ||
238 | SpawnPlayer(x,y,NORTH+tile-19); | ||
239 | break; | ||
240 | |||
241 | case 23: | ||
242 | case 24: | ||
243 | case 25: | ||
244 | case 26: | ||
245 | case 27: | ||
246 | case 28: | ||
247 | case 29: | ||
248 | case 30: | ||
249 | |||
250 | case 31: | ||
251 | case 32: | ||
252 | case 33: | ||
253 | case 34: | ||
254 | case 35: | ||
255 | case 36: | ||
256 | case 37: | ||
257 | case 38: | ||
258 | |||
259 | case 39: | ||
260 | case 40: | ||
261 | case 41: | ||
262 | case 42: | ||
263 | case 43: | ||
264 | case 44: | ||
265 | case 45: | ||
266 | case 46: | ||
267 | |||
268 | case 47: | ||
269 | case 48: | ||
270 | case 49: | ||
271 | case 50: | ||
272 | case 51: | ||
273 | case 52: | ||
274 | case 53: | ||
275 | case 54: | ||
276 | |||
277 | case 55: | ||
278 | case 56: | ||
279 | case 57: | ||
280 | case 58: | ||
281 | case 59: | ||
282 | case 60: | ||
283 | case 61: | ||
284 | case 62: | ||
285 | |||
286 | case 63: | ||
287 | case 64: | ||
288 | case 65: | ||
289 | case 66: | ||
290 | case 67: | ||
291 | case 68: | ||
292 | case 69: | ||
293 | case 70: | ||
294 | case 71: | ||
295 | case 72: | ||
296 | #ifdef SPEAR | ||
297 | case 73: // TRUCK AND SPEAR! | ||
298 | case 74: | ||
299 | #elif defined(USE_DIR3DSPR) // just for the example | ||
300 | case 73: | ||
301 | #endif | ||
302 | SpawnStatic(x,y,tile-23); | ||
303 | break; | ||
304 | |||
305 | // | ||
306 | // P wall | ||
307 | // | ||
308 | case 98: | ||
309 | if (!loadedgame) | ||
310 | gamestate.secrettotal++; | ||
311 | break; | ||
312 | |||
313 | // | ||
314 | // guard | ||
315 | // | ||
316 | case 180: | ||
317 | case 181: | ||
318 | case 182: | ||
319 | case 183: | ||
320 | if (gamestate.difficulty<gd_hard) | ||
321 | break; | ||
322 | tile -= 36; | ||
323 | case 144: | ||
324 | case 145: | ||
325 | case 146: | ||
326 | case 147: | ||
327 | if (gamestate.difficulty<gd_medium) | ||
328 | break; | ||
329 | tile -= 36; | ||
330 | case 108: | ||
331 | case 109: | ||
332 | case 110: | ||
333 | case 111: | ||
334 | SpawnStand(en_guard,x,y,tile-108); | ||
335 | break; | ||
336 | |||
337 | |||
338 | case 184: | ||
339 | case 185: | ||
340 | case 186: | ||
341 | case 187: | ||
342 | if (gamestate.difficulty<gd_hard) | ||
343 | break; | ||
344 | tile -= 36; | ||
345 | case 148: | ||
346 | case 149: | ||
347 | case 150: | ||
348 | case 151: | ||
349 | if (gamestate.difficulty<gd_medium) | ||
350 | break; | ||
351 | tile -= 36; | ||
352 | case 112: | ||
353 | case 113: | ||
354 | case 114: | ||
355 | case 115: | ||
356 | SpawnPatrol(en_guard,x,y,tile-112); | ||
357 | break; | ||
358 | |||
359 | case 124: | ||
360 | SpawnDeadGuard (x,y); | ||
361 | break; | ||
362 | // | ||
363 | // officer | ||
364 | // | ||
365 | case 188: | ||
366 | case 189: | ||
367 | case 190: | ||
368 | case 191: | ||
369 | if (gamestate.difficulty<gd_hard) | ||
370 | break; | ||
371 | tile -= 36; | ||
372 | case 152: | ||
373 | case 153: | ||
374 | case 154: | ||
375 | case 155: | ||
376 | if (gamestate.difficulty<gd_medium) | ||
377 | break; | ||
378 | tile -= 36; | ||
379 | case 116: | ||
380 | case 117: | ||
381 | case 118: | ||
382 | case 119: | ||
383 | SpawnStand(en_officer,x,y,tile-116); | ||
384 | break; | ||
385 | |||
386 | |||
387 | case 192: | ||
388 | case 193: | ||
389 | case 194: | ||
390 | case 195: | ||
391 | if (gamestate.difficulty<gd_hard) | ||
392 | break; | ||
393 | tile -= 36; | ||
394 | case 156: | ||
395 | case 157: | ||
396 | case 158: | ||
397 | case 159: | ||
398 | if (gamestate.difficulty<gd_medium) | ||
399 | break; | ||
400 | tile -= 36; | ||
401 | case 120: | ||
402 | case 121: | ||
403 | case 122: | ||
404 | case 123: | ||
405 | SpawnPatrol(en_officer,x,y,tile-120); | ||
406 | break; | ||
407 | |||
408 | |||
409 | // | ||
410 | // ss | ||
411 | // | ||
412 | case 198: | ||
413 | case 199: | ||
414 | case 200: | ||
415 | case 201: | ||
416 | if (gamestate.difficulty<gd_hard) | ||
417 | break; | ||
418 | tile -= 36; | ||
419 | case 162: | ||
420 | case 163: | ||
421 | case 164: | ||
422 | case 165: | ||
423 | if (gamestate.difficulty<gd_medium) | ||
424 | break; | ||
425 | tile -= 36; | ||
426 | case 126: | ||
427 | case 127: | ||
428 | case 128: | ||
429 | case 129: | ||
430 | SpawnStand(en_ss,x,y,tile-126); | ||
431 | break; | ||
432 | |||
433 | |||
434 | case 202: | ||
435 | case 203: | ||
436 | case 204: | ||
437 | case 205: | ||
438 | if (gamestate.difficulty<gd_hard) | ||
439 | break; | ||
440 | tile -= 36; | ||
441 | case 166: | ||
442 | case 167: | ||
443 | case 168: | ||
444 | case 169: | ||
445 | if (gamestate.difficulty<gd_medium) | ||
446 | break; | ||
447 | tile -= 36; | ||
448 | case 130: | ||
449 | case 131: | ||
450 | case 132: | ||
451 | case 133: | ||
452 | SpawnPatrol(en_ss,x,y,tile-130); | ||
453 | break; | ||
454 | |||
455 | // | ||
456 | // dogs | ||
457 | // | ||
458 | case 206: | ||
459 | case 207: | ||
460 | case 208: | ||
461 | case 209: | ||
462 | if (gamestate.difficulty<gd_hard) | ||
463 | break; | ||
464 | tile -= 36; | ||
465 | case 170: | ||
466 | case 171: | ||
467 | case 172: | ||
468 | case 173: | ||
469 | if (gamestate.difficulty<gd_medium) | ||
470 | break; | ||
471 | tile -= 36; | ||
472 | case 134: | ||
473 | case 135: | ||
474 | case 136: | ||
475 | case 137: | ||
476 | SpawnStand(en_dog,x,y,tile-134); | ||
477 | break; | ||
478 | |||
479 | |||
480 | case 210: | ||
481 | case 211: | ||
482 | case 212: | ||
483 | case 213: | ||
484 | if (gamestate.difficulty<gd_hard) | ||
485 | break; | ||
486 | tile -= 36; | ||
487 | case 174: | ||
488 | case 175: | ||
489 | case 176: | ||
490 | case 177: | ||
491 | if (gamestate.difficulty<gd_medium) | ||
492 | break; | ||
493 | tile -= 36; | ||
494 | case 138: | ||
495 | case 139: | ||
496 | case 140: | ||
497 | case 141: | ||
498 | SpawnPatrol(en_dog,x,y,tile-138); | ||
499 | break; | ||
500 | |||
501 | // | ||
502 | // boss | ||
503 | // | ||
504 | #ifndef SPEAR | ||
505 | case 214: | ||
506 | SpawnBoss (x,y); | ||
507 | break; | ||
508 | case 197: | ||
509 | SpawnGretel (x,y); | ||
510 | break; | ||
511 | case 215: | ||
512 | SpawnGift (x,y); | ||
513 | break; | ||
514 | case 179: | ||
515 | SpawnFat (x,y); | ||
516 | break; | ||
517 | case 196: | ||
518 | SpawnSchabbs (x,y); | ||
519 | break; | ||
520 | case 160: | ||
521 | SpawnFakeHitler (x,y); | ||
522 | break; | ||
523 | case 178: | ||
524 | SpawnHitler (x,y); | ||
525 | break; | ||
526 | #else | ||
527 | case 106: | ||
528 | SpawnSpectre (x,y); | ||
529 | break; | ||
530 | case 107: | ||
531 | SpawnAngel (x,y); | ||
532 | break; | ||
533 | case 125: | ||
534 | SpawnTrans (x,y); | ||
535 | break; | ||
536 | case 142: | ||
537 | SpawnUber (x,y); | ||
538 | break; | ||
539 | case 143: | ||
540 | SpawnWill (x,y); | ||
541 | break; | ||
542 | case 161: | ||
543 | SpawnDeath (x,y); | ||
544 | break; | ||
545 | |||
546 | #endif | ||
547 | |||
548 | // | ||
549 | // mutants | ||
550 | // | ||
551 | case 252: | ||
552 | case 253: | ||
553 | case 254: | ||
554 | case 255: | ||
555 | if (gamestate.difficulty<gd_hard) | ||
556 | break; | ||
557 | tile -= 18; | ||
558 | case 234: | ||
559 | case 235: | ||
560 | case 236: | ||
561 | case 237: | ||
562 | if (gamestate.difficulty<gd_medium) | ||
563 | break; | ||
564 | tile -= 18; | ||
565 | case 216: | ||
566 | case 217: | ||
567 | case 218: | ||
568 | case 219: | ||
569 | SpawnStand(en_mutant,x,y,tile-216); | ||
570 | break; | ||
571 | |||
572 | case 256: | ||
573 | case 257: | ||
574 | case 258: | ||
575 | case 259: | ||
576 | if (gamestate.difficulty<gd_hard) | ||
577 | break; | ||
578 | tile -= 18; | ||
579 | case 238: | ||
580 | case 239: | ||
581 | case 240: | ||
582 | case 241: | ||
583 | if (gamestate.difficulty<gd_medium) | ||
584 | break; | ||
585 | tile -= 18; | ||
586 | case 220: | ||
587 | case 221: | ||
588 | case 222: | ||
589 | case 223: | ||
590 | SpawnPatrol(en_mutant,x,y,tile-220); | ||
591 | break; | ||
592 | |||
593 | // | ||
594 | // ghosts | ||
595 | // | ||
596 | #ifndef SPEAR | ||
597 | case 224: | ||
598 | SpawnGhosts (en_blinky,x,y); | ||
599 | break; | ||
600 | case 225: | ||
601 | SpawnGhosts (en_clyde,x,y); | ||
602 | break; | ||
603 | case 226: | ||
604 | SpawnGhosts (en_pinky,x,y); | ||
605 | break; | ||
606 | case 227: | ||
607 | SpawnGhosts (en_inky,x,y); | ||
608 | break; | ||
609 | #endif | ||
610 | } | ||
611 | } | ||
612 | } | ||
613 | } | ||
614 | |||
615 | //========================================================================== | ||
616 | |||
617 | /* | ||
618 | ================== | ||
619 | = | ||
620 | = SetupGameLevel | ||
621 | = | ||
622 | ================== | ||
623 | */ | ||
624 | |||
625 | void SetupGameLevel (void) | ||
626 | { | ||
627 | int x,y; | ||
628 | word *map; | ||
629 | word tile; | ||
630 | |||
631 | |||
632 | if (!loadedgame) | ||
633 | { | ||
634 | gamestate.TimeCount | ||
635 | = gamestate.secrettotal | ||
636 | = gamestate.killtotal | ||
637 | = gamestate.treasuretotal | ||
638 | = gamestate.secretcount | ||
639 | = gamestate.killcount | ||
640 | = gamestate.treasurecount | ||
641 | = pwallstate = pwallpos = facetimes = 0; | ||
642 | LastAttacker = NULL; | ||
643 | killerobj = NULL; | ||
644 | } | ||
645 | |||
646 | if (demoplayback || demorecord) | ||
647 | US_InitRndT (false); | ||
648 | else | ||
649 | US_InitRndT (true); | ||
650 | |||
651 | // | ||
652 | // load the level | ||
653 | // | ||
654 | CA_CacheMap (gamestate.mapon+10*gamestate.episode); | ||
655 | mapon-=gamestate.episode*10; | ||
656 | |||
657 | #ifdef USE_FEATUREFLAGS | ||
658 | // Temporary definition to make things clearer | ||
659 | #define MXX MAPSIZE - 1 | ||
660 | |||
661 | // Read feature flags data from map corners and overwrite corners with adjacent tiles | ||
662 | ffDataTopLeft = MAPSPOT(0, 0, 0); MAPSPOT(0, 0, 0) = MAPSPOT(1, 0, 0); | ||
663 | ffDataTopRight = MAPSPOT(MXX, 0, 0); MAPSPOT(MXX, 0, 0) = MAPSPOT(MXX, 1, 0); | ||
664 | ffDataBottomRight = MAPSPOT(MXX, MXX, 0); MAPSPOT(MXX, MXX, 0) = MAPSPOT(MXX - 1, MXX, 0); | ||
665 | ffDataBottomLeft = MAPSPOT(0, MXX, 0); MAPSPOT(0, MXX, 0) = MAPSPOT(0, MXX - 1, 0); | ||
666 | |||
667 | #undef MXX | ||
668 | #endif | ||
669 | |||
670 | // | ||
671 | // copy the wall data to a data segment array | ||
672 | // | ||
673 | memset (tilemap,0,sizeof(tilemap)); | ||
674 | memset (actorat,0,sizeof(actorat)); | ||
675 | map = mapsegs[0]; | ||
676 | for (y=0;y<mapheight;y++) | ||
677 | { | ||
678 | for (x=0;x<mapwidth;x++) | ||
679 | { | ||
680 | tile = *map++; | ||
681 | if (tile<AREATILE) | ||
682 | { | ||
683 | // solid wall | ||
684 | tilemap[x][y] = (byte) tile; | ||
685 | actorat[x][y] = (objtype *)(uintptr_t) tile; | ||
686 | } | ||
687 | else | ||
688 | { | ||
689 | // area floor | ||
690 | tilemap[x][y] = 0; | ||
691 | actorat[x][y] = 0; | ||
692 | } | ||
693 | } | ||
694 | } | ||
695 | |||
696 | // | ||
697 | // spawn doors | ||
698 | // | ||
699 | InitActorList (); // start spawning things with a clean slate | ||
700 | InitDoorList (); | ||
701 | InitStaticList (); | ||
702 | |||
703 | map = mapsegs[0]; | ||
704 | for (y=0;y<mapheight;y++) | ||
705 | { | ||
706 | for (x=0;x<mapwidth;x++) | ||
707 | { | ||
708 | tile = *map++; | ||
709 | if (tile >= 90 && tile <= 101) | ||
710 | { | ||
711 | // door | ||
712 | switch (tile) | ||
713 | { | ||
714 | case 90: | ||
715 | case 92: | ||
716 | case 94: | ||
717 | case 96: | ||
718 | case 98: | ||
719 | case 100: | ||
720 | SpawnDoor (x,y,1,(tile-90)/2); | ||
721 | break; | ||
722 | case 91: | ||
723 | case 93: | ||
724 | case 95: | ||
725 | case 97: | ||
726 | case 99: | ||
727 | case 101: | ||
728 | SpawnDoor (x,y,0,(tile-91)/2); | ||
729 | break; | ||
730 | } | ||
731 | } | ||
732 | } | ||
733 | } | ||
734 | |||
735 | // | ||
736 | // spawn actors | ||
737 | // | ||
738 | ScanInfoPlane (); | ||
739 | |||
740 | |||
741 | // | ||
742 | // take out the ambush markers | ||
743 | // | ||
744 | map = mapsegs[0]; | ||
745 | for (y=0;y<mapheight;y++) | ||
746 | { | ||
747 | for (x=0;x<mapwidth;x++) | ||
748 | { | ||
749 | tile = *map++; | ||
750 | if (tile == AMBUSHTILE) | ||
751 | { | ||
752 | tilemap[x][y] = 0; | ||
753 | if ( (unsigned)(uintptr_t)actorat[x][y] == AMBUSHTILE) | ||
754 | actorat[x][y] = NULL; | ||
755 | |||
756 | if (*map >= AREATILE) | ||
757 | tile = *map; | ||
758 | if (*(map-1-mapwidth) >= AREATILE) | ||
759 | tile = *(map-1-mapwidth); | ||
760 | if (*(map-1+mapwidth) >= AREATILE) | ||
761 | tile = *(map-1+mapwidth); | ||
762 | if ( *(map-2) >= AREATILE) | ||
763 | tile = *(map-2); | ||
764 | |||
765 | *(map-1) = tile; | ||
766 | } | ||
767 | } | ||
768 | } | ||
769 | |||
770 | |||
771 | // | ||
772 | // have the caching manager load and purge stuff to make sure all marks | ||
773 | // are in memory | ||
774 | // | ||
775 | CA_LoadAllSounds (); | ||
776 | } | ||
777 | |||
778 | |||
779 | //========================================================================== | ||
780 | |||
781 | |||
782 | /* | ||
783 | =================== | ||
784 | = | ||
785 | = DrawPlayBorderSides | ||
786 | = | ||
787 | = To fix window overwrites | ||
788 | = | ||
789 | =================== | ||
790 | */ | ||
791 | void DrawPlayBorderSides(void) | ||
792 | { | ||
793 | if(viewsize == 21) return; | ||
794 | |||
795 | const int sw = screenWidth; | ||
796 | const int sh = screenHeight; | ||
797 | const int vw = viewwidth; | ||
798 | const int vh = viewheight; | ||
799 | const int px = scaleFactor; // size of one "pixel" | ||
800 | |||
801 | const int h = sh - px * STATUSLINES; | ||
802 | const int xl = sw / 2 - vw / 2; | ||
803 | const int yl = (h - vh) / 2; | ||
804 | |||
805 | if(xl != 0) | ||
806 | { | ||
807 | VWB_BarScaledCoord(0, 0, xl - px, h, bordercol); // left side | ||
808 | VWB_BarScaledCoord(xl + vw + px, 0, xl - px * 2, h, bordercol); // right side | ||
809 | } | ||
810 | |||
811 | if(yl != 0) | ||
812 | { | ||
813 | VWB_BarScaledCoord(0, 0, sw, yl - px, bordercol); // upper side | ||
814 | VWB_BarScaledCoord(0, yl + vh + px, sw, yl - px, bordercol); // lower side | ||
815 | } | ||
816 | |||
817 | if(xl != 0) | ||
818 | { | ||
819 | // Paint game view border lines | ||
820 | VWB_BarScaledCoord(xl - px, yl - px, vw + px, px, 0); // upper border | ||
821 | VWB_BarScaledCoord(xl, yl + vh, vw + px, px, bordercol - 2); // lower border | ||
822 | VWB_BarScaledCoord(xl - px, yl - px, px, vh + px, 0); // left border | ||
823 | VWB_BarScaledCoord(xl + vw, yl - px, px, vh + px * 2, bordercol - 2); // right border | ||
824 | VWB_BarScaledCoord(xl - px, yl + vh, px, px, bordercol - 3); // lower left highlight | ||
825 | } | ||
826 | else | ||
827 | { | ||
828 | // Just paint a lower border line | ||
829 | VWB_BarScaledCoord(0, yl+vh, vw, px, bordercol-2); // lower border | ||
830 | } | ||
831 | } | ||
832 | |||
833 | |||
834 | /* | ||
835 | =================== | ||
836 | = | ||
837 | = DrawStatusBorder | ||
838 | = | ||
839 | =================== | ||
840 | */ | ||
841 | |||
842 | void DrawStatusBorder (byte color) | ||
843 | { | ||
844 | int statusborderw = (screenWidth-scaleFactor*320)/2; | ||
845 | |||
846 | VWB_BarScaledCoord (0,0,screenWidth,screenHeight-scaleFactor*(STATUSLINES-3),color); | ||
847 | VWB_BarScaledCoord (0,screenHeight-scaleFactor*(STATUSLINES-3), | ||
848 | statusborderw+scaleFactor*8,scaleFactor*(STATUSLINES-4),color); | ||
849 | VWB_BarScaledCoord (0,screenHeight-scaleFactor*2,screenWidth,scaleFactor*2,color); | ||
850 | VWB_BarScaledCoord (screenWidth-statusborderw-scaleFactor*8, screenHeight-scaleFactor*(STATUSLINES-3), | ||
851 | statusborderw+scaleFactor*8,scaleFactor*(STATUSLINES-4),color); | ||
852 | |||
853 | VWB_BarScaledCoord (statusborderw+scaleFactor*9, screenHeight-scaleFactor*3, | ||
854 | scaleFactor*97, scaleFactor*1, color-1); | ||
855 | VWB_BarScaledCoord (statusborderw+scaleFactor*106, screenHeight-scaleFactor*3, | ||
856 | scaleFactor*161, scaleFactor*1, color-2); | ||
857 | VWB_BarScaledCoord (statusborderw+scaleFactor*267, screenHeight-scaleFactor*3, | ||
858 | scaleFactor*44, scaleFactor*1, color-3); | ||
859 | VWB_BarScaledCoord (screenWidth-statusborderw-scaleFactor*9, screenHeight-scaleFactor*(STATUSLINES-4), | ||
860 | scaleFactor*1, scaleFactor*20, color-2); | ||
861 | VWB_BarScaledCoord (screenWidth-statusborderw-scaleFactor*9, screenHeight-scaleFactor*(STATUSLINES/2-4), | ||
862 | scaleFactor*1, scaleFactor*14, color-3); | ||
863 | } | ||
864 | |||
865 | |||
866 | /* | ||
867 | =================== | ||
868 | = | ||
869 | = DrawPlayBorder | ||
870 | = | ||
871 | =================== | ||
872 | */ | ||
873 | |||
874 | void DrawPlayBorder (void) | ||
875 | { | ||
876 | const int px = scaleFactor; // size of one "pixel" | ||
877 | |||
878 | if (bordercol != VIEWCOLOR) | ||
879 | DrawStatusBorder(bordercol); | ||
880 | else | ||
881 | { | ||
882 | const int statusborderw = (screenWidth-px*320)/2; | ||
883 | VWB_BarScaledCoord (0, screenHeight-px*STATUSLINES, | ||
884 | statusborderw+px*8, px*STATUSLINES, bordercol); | ||
885 | VWB_BarScaledCoord (screenWidth-statusborderw-px*8, screenHeight-px*STATUSLINES, | ||
886 | statusborderw+px*8, px*STATUSLINES, bordercol); | ||
887 | } | ||
888 | |||
889 | if((unsigned) viewheight == screenHeight) return; | ||
890 | |||
891 | VWB_BarScaledCoord (0,0,screenWidth,screenHeight-px*STATUSLINES,bordercol); | ||
892 | |||
893 | const int xl = screenWidth/2-viewwidth/2; | ||
894 | const int yl = (screenHeight-px*STATUSLINES-viewheight)/2; | ||
895 | VWB_BarScaledCoord (xl,yl,viewwidth,viewheight,0); | ||
896 | |||
897 | if(xl != 0) | ||
898 | { | ||
899 | // Paint game view border lines | ||
900 | VWB_BarScaledCoord(xl-px, yl-px, viewwidth+px, px, 0); // upper border | ||
901 | VWB_BarScaledCoord(xl, yl+viewheight, viewwidth+px, px, bordercol-2); // lower border | ||
902 | VWB_BarScaledCoord(xl-px, yl-px, px, viewheight+px, 0); // left border | ||
903 | VWB_BarScaledCoord(xl+viewwidth, yl-px, px, viewheight+2*px, bordercol-2); // right border | ||
904 | VWB_BarScaledCoord(xl-px, yl+viewheight, px, px, bordercol-3); // lower left highlight | ||
905 | } | ||
906 | else | ||
907 | { | ||
908 | // Just paint a lower border line | ||
909 | VWB_BarScaledCoord(0, yl+viewheight, viewwidth, px, bordercol-2); // lower border | ||
910 | } | ||
911 | } | ||
912 | |||
913 | |||
914 | /* | ||
915 | =================== | ||
916 | = | ||
917 | = DrawPlayScreen | ||
918 | = | ||
919 | =================== | ||
920 | */ | ||
921 | |||
922 | void DrawPlayScreen (void) | ||
923 | { | ||
924 | VWB_DrawPicScaledCoord ((screenWidth-scaleFactor*320)/2,screenHeight-scaleFactor*STATUSLINES,STATUSBARPIC); | ||
925 | DrawPlayBorder (); | ||
926 | |||
927 | DrawFace (); | ||
928 | DrawHealth (); | ||
929 | DrawLives (); | ||
930 | DrawLevel (); | ||
931 | DrawAmmo (); | ||
932 | DrawKeys (); | ||
933 | DrawWeapon (); | ||
934 | DrawScore (); | ||
935 | } | ||
936 | |||
937 | // Uses LatchDrawPic instead of StatusDrawPic | ||
938 | void LatchNumberHERE (int x, int y, unsigned width, int32_t number) | ||
939 | { | ||
940 | unsigned length,c; | ||
941 | char str[20]; | ||
942 | |||
943 | ltoa (number,str,10); | ||
944 | |||
945 | length = (unsigned) strlen (str); | ||
946 | |||
947 | while (length<width) | ||
948 | { | ||
949 | LatchDrawPic (x,y,N_BLANKPIC); | ||
950 | x++; | ||
951 | width--; | ||
952 | } | ||
953 | |||
954 | c = length <= width ? 0 : length-width; | ||
955 | |||
956 | while (c<length) | ||
957 | { | ||
958 | LatchDrawPic (x,y,str[c]-'0'+ N_0PIC); | ||
959 | x++; | ||
960 | c++; | ||
961 | } | ||
962 | } | ||
963 | |||
964 | void ShowActStatus() | ||
965 | { | ||
966 | // Draw status bar without borders | ||
967 | byte *source = grsegs[STATUSBARPIC]; | ||
968 | int picnum = STATUSBARPIC - STARTPICS; | ||
969 | int width = pictable[picnum].width; | ||
970 | int height = pictable[picnum].height; | ||
971 | int destx = (screenWidth-scaleFactor*320)/2 + 9 * scaleFactor; | ||
972 | int desty = screenHeight - (height - 4) * scaleFactor; | ||
973 | VL_MemToScreenScaledCoord_ex(source, width, height, 9, 4, destx, desty, width - 18, height - 7); | ||
974 | |||
975 | ingame = false; | ||
976 | DrawFace (); | ||
977 | DrawHealth (); | ||
978 | DrawLives (); | ||
979 | DrawLevel (); | ||
980 | DrawAmmo (); | ||
981 | DrawKeys (); | ||
982 | DrawWeapon (); | ||
983 | DrawScore (); | ||
984 | ingame = true; | ||
985 | } | ||
986 | |||
987 | |||
988 | //========================================================================== | ||
989 | |||
990 | /* | ||
991 | ================== | ||
992 | = | ||
993 | = StartDemoRecord | ||
994 | = | ||
995 | ================== | ||
996 | */ | ||
997 | |||
998 | char demoname[13] = "DEMO?."; | ||
999 | |||
1000 | #ifndef REMDEBUG | ||
1001 | #define MAXDEMOSIZE 8192 | ||
1002 | |||
1003 | void StartDemoRecord (int levelnumber) | ||
1004 | { | ||
1005 | demobuffer=malloc(MAXDEMOSIZE); | ||
1006 | CHECKMALLOCRESULT(demobuffer); | ||
1007 | demoptr = (int8_t *) demobuffer; | ||
1008 | lastdemoptr = demoptr+MAXDEMOSIZE; | ||
1009 | |||
1010 | *demoptr = levelnumber; | ||
1011 | demoptr += 4; // leave space for length | ||
1012 | demorecord = true; | ||
1013 | } | ||
1014 | |||
1015 | |||
1016 | /* | ||
1017 | ================== | ||
1018 | = | ||
1019 | = FinishDemoRecord | ||
1020 | = | ||
1021 | ================== | ||
1022 | */ | ||
1023 | |||
1024 | void FinishDemoRecord (void) | ||
1025 | { | ||
1026 | int32_t length,level; | ||
1027 | |||
1028 | demorecord = false; | ||
1029 | |||
1030 | length = (int32_t) (demoptr - (int8_t *)demobuffer); | ||
1031 | |||
1032 | demoptr = ((int8_t *)demobuffer)+1; | ||
1033 | demoptr[0] = (int8_t) length; | ||
1034 | demoptr[1] = (int8_t) (length >> 8); | ||
1035 | demoptr[2] = 0; | ||
1036 | |||
1037 | VW_FadeIn(); | ||
1038 | CenterWindow(24,3); | ||
1039 | PrintY+=6; | ||
1040 | fontnumber=0; | ||
1041 | SETFONTCOLOR(0,15); | ||
1042 | US_Print(" Demo number (0-9): "); | ||
1043 | VW_UpdateScreen(); | ||
1044 | |||
1045 | if (US_LineInput (px,py,str,NULL,true,1,0)) | ||
1046 | { | ||
1047 | level = atoi (str); | ||
1048 | if (level>=0 && level<=9) | ||
1049 | { | ||
1050 | demoname[4] = (char)('0'+level); | ||
1051 | CA_WriteFile (demoname,demobuffer,length); | ||
1052 | } | ||
1053 | } | ||
1054 | |||
1055 | free(demobuffer); | ||
1056 | } | ||
1057 | |||
1058 | //========================================================================== | ||
1059 | |||
1060 | /* | ||
1061 | ================== | ||
1062 | = | ||
1063 | = RecordDemo | ||
1064 | = | ||
1065 | = Fades the screen out, then starts a demo. Exits with the screen faded | ||
1066 | = | ||
1067 | ================== | ||
1068 | */ | ||
1069 | |||
1070 | void RecordDemo (void) | ||
1071 | { | ||
1072 | int level,esc,maps; | ||
1073 | |||
1074 | CenterWindow(26,3); | ||
1075 | PrintY+=6; | ||
1076 | CA_CacheGrChunk(STARTFONT); | ||
1077 | fontnumber=0; | ||
1078 | SETFONTCOLOR(0,15); | ||
1079 | #ifndef SPEAR | ||
1080 | #ifdef UPLOAD | ||
1081 | US_Print(" Demo which level(1-10): "); maps = 10; | ||
1082 | #else | ||
1083 | US_Print(" Demo which level(1-60): "); maps = 60; | ||
1084 | #endif | ||
1085 | #else | ||
1086 | US_Print(" Demo which level(1-21): "); maps = 21; | ||
1087 | #endif | ||
1088 | VW_UpdateScreen(); | ||
1089 | VW_FadeIn (); | ||
1090 | esc = !US_LineInput (px,py,str,NULL,true,2,0); | ||
1091 | if (esc) | ||
1092 | return; | ||
1093 | |||
1094 | level = atoi (str); | ||
1095 | level--; | ||
1096 | |||
1097 | if (level >= maps || level < 0) | ||
1098 | return; | ||
1099 | |||
1100 | VW_FadeOut (); | ||
1101 | |||
1102 | #ifndef SPEAR | ||
1103 | NewGame (gd_hard,level/10); | ||
1104 | gamestate.mapon = level%10; | ||
1105 | #else | ||
1106 | NewGame (gd_hard,0); | ||
1107 | gamestate.mapon = level; | ||
1108 | #endif | ||
1109 | |||
1110 | StartDemoRecord (level); | ||
1111 | |||
1112 | DrawPlayScreen (); | ||
1113 | VW_FadeIn (); | ||
1114 | |||
1115 | startgame = false; | ||
1116 | demorecord = true; | ||
1117 | |||
1118 | SetupGameLevel (); | ||
1119 | StartMusic (); | ||
1120 | |||
1121 | if(usedoublebuffering) VH_UpdateScreen(); | ||
1122 | fizzlein = true; | ||
1123 | |||
1124 | PlayLoop (); | ||
1125 | |||
1126 | demoplayback = false; | ||
1127 | |||
1128 | StopMusic (); | ||
1129 | VW_FadeOut (); | ||
1130 | ClearMemory (); | ||
1131 | |||
1132 | FinishDemoRecord (); | ||
1133 | } | ||
1134 | #else | ||
1135 | void FinishDemoRecord (void) {return;} | ||
1136 | void RecordDemo (void) {return;} | ||
1137 | #endif | ||
1138 | |||
1139 | |||
1140 | |||
1141 | //========================================================================== | ||
1142 | |||
1143 | /* | ||
1144 | ================== | ||
1145 | = | ||
1146 | = PlayDemo | ||
1147 | = | ||
1148 | = Fades the screen out, then starts a demo. Exits with the screen unfaded | ||
1149 | = | ||
1150 | ================== | ||
1151 | */ | ||
1152 | |||
1153 | void PlayDemo (int demonumber) | ||
1154 | { | ||
1155 | int length; | ||
1156 | #ifdef DEMOSEXTERN | ||
1157 | // debug: load chunk | ||
1158 | #ifndef SPEARDEMO | ||
1159 | int dems[4]={T_DEMO0,T_DEMO1,T_DEMO2,T_DEMO3}; | ||
1160 | #else | ||
1161 | int dems[1]={T_DEMO0}; | ||
1162 | #endif | ||
1163 | |||
1164 | CA_CacheGrChunk(dems[demonumber]); | ||
1165 | demoptr = (int8_t *) grsegs[dems[demonumber]]; | ||
1166 | #else | ||
1167 | demoname[4] = '0'+demonumber; | ||
1168 | CA_LoadFile (demoname,&demobuffer); | ||
1169 | demoptr = (int8_t *)demobuffer; | ||
1170 | #endif | ||
1171 | |||
1172 | NewGame (1,0); | ||
1173 | gamestate.mapon = *demoptr++; | ||
1174 | LOGF("%d", gamestate.mapon); | ||
1175 | gamestate.difficulty = gd_hard; | ||
1176 | /* FIXME POSSIBLE BUG */ | ||
1177 | length = READWORD((uint8_t **)&demoptr); | ||
1178 | LOGF("%d", length); | ||
1179 | // TODO: Seems like the original demo format supports 16 MB demos | ||
1180 | // But T_DEM00 and T_DEM01 of Wolf have a 0xd8 as third length size... | ||
1181 | demoptr++; | ||
1182 | lastdemoptr = demoptr-4+length; | ||
1183 | |||
1184 | VW_FadeOut (); | ||
1185 | |||
1186 | SETFONTCOLOR(0,15); | ||
1187 | DrawPlayScreen (); | ||
1188 | |||
1189 | startgame = false; | ||
1190 | demoplayback = true; | ||
1191 | |||
1192 | SetupGameLevel (); | ||
1193 | StartMusic (); | ||
1194 | |||
1195 | PlayLoop (); | ||
1196 | |||
1197 | #ifdef DEMOSEXTERN | ||
1198 | UNCACHEGRCHUNK(dems[demonumber]); | ||
1199 | #else | ||
1200 | MM_FreePtr (&demobuffer); | ||
1201 | #endif | ||
1202 | |||
1203 | demoplayback = false; | ||
1204 | |||
1205 | StopMusic (); | ||
1206 | ClearMemory (); | ||
1207 | } | ||
1208 | |||
1209 | //========================================================================== | ||
1210 | |||
1211 | /* | ||
1212 | ================== | ||
1213 | = | ||
1214 | = Died | ||
1215 | = | ||
1216 | ================== | ||
1217 | */ | ||
1218 | |||
1219 | #define DEATHROTATE 2 | ||
1220 | |||
1221 | void Died (void) | ||
1222 | { | ||
1223 | float fangle; | ||
1224 | int32_t dx,dy; | ||
1225 | int iangle,curangle,clockwise,counter,change; | ||
1226 | |||
1227 | if (screenfaded) | ||
1228 | { | ||
1229 | ThreeDRefresh (); | ||
1230 | VW_FadeIn (); | ||
1231 | } | ||
1232 | |||
1233 | gamestate.weapon = (weapontype) -1; // take away weapon | ||
1234 | SD_PlaySound (PLAYERDEATHSND); | ||
1235 | |||
1236 | // | ||
1237 | // swing around to face attacker | ||
1238 | // | ||
1239 | if(killerobj) | ||
1240 | { | ||
1241 | dx = killerobj->x - player->x; | ||
1242 | dy = player->y - killerobj->y; | ||
1243 | |||
1244 | fangle = (float) atan2((float) dy, (float) dx); // returns -pi to pi | ||
1245 | if (fangle<0) | ||
1246 | fangle = (float) (M_PI*2+fangle); | ||
1247 | |||
1248 | iangle = (int) (fangle/(M_PI*2)*ANGLES); | ||
1249 | } | ||
1250 | else | ||
1251 | { | ||
1252 | iangle = player->angle + ANGLES / 2; | ||
1253 | if(iangle >= ANGLES) iangle -= ANGLES; | ||
1254 | } | ||
1255 | |||
1256 | if (player->angle > iangle) | ||
1257 | { | ||
1258 | counter = player->angle - iangle; | ||
1259 | clockwise = ANGLES-player->angle + iangle; | ||
1260 | } | ||
1261 | else | ||
1262 | { | ||
1263 | clockwise = iangle - player->angle; | ||
1264 | counter = player->angle + ANGLES-iangle; | ||
1265 | } | ||
1266 | |||
1267 | curangle = player->angle; | ||
1268 | |||
1269 | if (clockwise<counter) | ||
1270 | { | ||
1271 | // | ||
1272 | // rotate clockwise | ||
1273 | // | ||
1274 | if (curangle>iangle) | ||
1275 | curangle -= ANGLES; | ||
1276 | do | ||
1277 | { | ||
1278 | change = tics*DEATHROTATE; | ||
1279 | if (curangle + change > iangle) | ||
1280 | change = iangle-curangle; | ||
1281 | |||
1282 | curangle += change; | ||
1283 | player->angle += change; | ||
1284 | if (player->angle >= ANGLES) | ||
1285 | player->angle -= ANGLES; | ||
1286 | |||
1287 | ThreeDRefresh (); | ||
1288 | CalcTics (); | ||
1289 | } while (curangle != iangle); | ||
1290 | } | ||
1291 | else | ||
1292 | { | ||
1293 | // | ||
1294 | // rotate counterclockwise | ||
1295 | // | ||
1296 | if (curangle<iangle) | ||
1297 | curangle += ANGLES; | ||
1298 | do | ||
1299 | { | ||
1300 | change = -(int)tics*DEATHROTATE; | ||
1301 | if (curangle + change < iangle) | ||
1302 | change = iangle-curangle; | ||
1303 | |||
1304 | curangle += change; | ||
1305 | player->angle += change; | ||
1306 | if (player->angle < 0) | ||
1307 | player->angle += ANGLES; | ||
1308 | |||
1309 | ThreeDRefresh (); | ||
1310 | CalcTics (); | ||
1311 | } while (curangle != iangle); | ||
1312 | } | ||
1313 | |||
1314 | // | ||
1315 | // fade to red | ||
1316 | // | ||
1317 | FinishPaletteShifts (); | ||
1318 | |||
1319 | if(usedoublebuffering) VH_UpdateScreen(); | ||
1320 | |||
1321 | VL_BarScaledCoord (viewscreenx,viewscreeny,viewwidth,viewheight,4); | ||
1322 | |||
1323 | IN_ClearKeysDown (); | ||
1324 | |||
1325 | FizzleFade(screenBuffer,viewscreenx,viewscreeny,viewwidth,viewheight,70,false); | ||
1326 | |||
1327 | IN_UserInput(100); | ||
1328 | SD_WaitSoundDone (); | ||
1329 | ClearMemory(); | ||
1330 | |||
1331 | gamestate.lives--; | ||
1332 | |||
1333 | if (gamestate.lives > -1) | ||
1334 | { | ||
1335 | gamestate.health = 100; | ||
1336 | gamestate.weapon = gamestate.bestweapon | ||
1337 | = gamestate.chosenweapon = wp_pistol; | ||
1338 | gamestate.ammo = STARTAMMO; | ||
1339 | gamestate.keys = 0; | ||
1340 | pwallstate = pwallpos = 0; | ||
1341 | gamestate.attackframe = gamestate.attackcount = | ||
1342 | gamestate.weaponframe = 0; | ||
1343 | |||
1344 | if(viewsize != 21) | ||
1345 | { | ||
1346 | DrawKeys (); | ||
1347 | DrawWeapon (); | ||
1348 | DrawAmmo (); | ||
1349 | DrawHealth (); | ||
1350 | DrawFace (); | ||
1351 | DrawLives (); | ||
1352 | } | ||
1353 | } | ||
1354 | } | ||
1355 | |||
1356 | //========================================================================== | ||
1357 | |||
1358 | /* | ||
1359 | =================== | ||
1360 | = | ||
1361 | = GameLoop | ||
1362 | = | ||
1363 | =================== | ||
1364 | */ | ||
1365 | |||
1366 | void GameLoop (void) | ||
1367 | { | ||
1368 | boolean died; | ||
1369 | #ifdef MYPROFILE | ||
1370 | clock_t start,end; | ||
1371 | #endif | ||
1372 | |||
1373 | restartgame: | ||
1374 | ClearMemory (); | ||
1375 | SETFONTCOLOR(0,15); | ||
1376 | VW_FadeOut(); | ||
1377 | DrawPlayScreen (); | ||
1378 | died = false; | ||
1379 | do | ||
1380 | { | ||
1381 | if (!loadedgame) | ||
1382 | gamestate.score = gamestate.oldscore; | ||
1383 | if(!died || viewsize != 21) DrawScore(); | ||
1384 | |||
1385 | startgame = false; | ||
1386 | if (!loadedgame) | ||
1387 | SetupGameLevel (); | ||
1388 | |||
1389 | #ifdef SPEAR | ||
1390 | if (gamestate.mapon == 20) // give them the key allways | ||
1391 | { | ||
1392 | gamestate.keys |= 1; | ||
1393 | DrawKeys (); | ||
1394 | } | ||
1395 | #endif | ||
1396 | |||
1397 | ingame = true; | ||
1398 | if(loadedgame) | ||
1399 | { | ||
1400 | ContinueMusic(lastgamemusicoffset); | ||
1401 | loadedgame = false; | ||
1402 | } | ||
1403 | else StartMusic (); | ||
1404 | |||
1405 | if (!died) | ||
1406 | PreloadGraphics (); // TODO: Let this do something useful! | ||
1407 | else | ||
1408 | { | ||
1409 | died = false; | ||
1410 | fizzlein = true; | ||
1411 | } | ||
1412 | |||
1413 | DrawLevel (); | ||
1414 | |||
1415 | #ifdef SPEAR | ||
1416 | startplayloop: | ||
1417 | #endif | ||
1418 | PlayLoop (); | ||
1419 | |||
1420 | #ifdef SPEAR | ||
1421 | if (spearflag) | ||
1422 | { | ||
1423 | SD_StopSound(); | ||
1424 | SD_PlaySound(GETSPEARSND); | ||
1425 | if (DigiMode != sds_Off) | ||
1426 | { | ||
1427 | Delay(150); | ||
1428 | } | ||
1429 | else | ||
1430 | SD_WaitSoundDone(); | ||
1431 | |||
1432 | ClearMemory (); | ||
1433 | gamestate.oldscore = gamestate.score; | ||
1434 | gamestate.mapon = 20; | ||
1435 | SetupGameLevel (); | ||
1436 | StartMusic (); | ||
1437 | player->x = spearx; | ||
1438 | player->y = speary; | ||
1439 | player->angle = (short)spearangle; | ||
1440 | spearflag = false; | ||
1441 | Thrust (0,0); | ||
1442 | goto startplayloop; | ||
1443 | } | ||
1444 | #endif | ||
1445 | |||
1446 | StopMusic (); | ||
1447 | ingame = false; | ||
1448 | |||
1449 | if (demorecord && playstate != ex_warped) | ||
1450 | FinishDemoRecord (); | ||
1451 | |||
1452 | if (startgame || loadedgame) | ||
1453 | goto restartgame; | ||
1454 | |||
1455 | switch (playstate) | ||
1456 | { | ||
1457 | case ex_completed: | ||
1458 | case ex_secretlevel: | ||
1459 | if(viewsize == 21) DrawPlayScreen(); | ||
1460 | gamestate.keys = 0; | ||
1461 | DrawKeys (); | ||
1462 | VW_FadeOut (); | ||
1463 | |||
1464 | ClearMemory (); | ||
1465 | |||
1466 | LevelCompleted (); // do the intermission | ||
1467 | if(viewsize == 21) DrawPlayScreen(); | ||
1468 | |||
1469 | #ifdef SPEARDEMO | ||
1470 | if (gamestate.mapon == 1) | ||
1471 | { | ||
1472 | died = true; // don't "get psyched!" | ||
1473 | |||
1474 | VW_FadeOut (); | ||
1475 | |||
1476 | ClearMemory (); | ||
1477 | |||
1478 | CheckHighScore (gamestate.score,gamestate.mapon+1); | ||
1479 | #ifndef JAPAN | ||
1480 | strcpy(MainMenu[viewscores].string,STR_VS); | ||
1481 | #endif | ||
1482 | MainMenu[viewscores].routine = CP_ViewScores; | ||
1483 | return; | ||
1484 | } | ||
1485 | #endif | ||
1486 | |||
1487 | #ifdef JAPDEMO | ||
1488 | if (gamestate.mapon == 3) | ||
1489 | { | ||
1490 | died = true; // don't "get psyched!" | ||
1491 | |||
1492 | VW_FadeOut (); | ||
1493 | |||
1494 | ClearMemory (); | ||
1495 | |||
1496 | CheckHighScore (gamestate.score,gamestate.mapon+1); | ||
1497 | #ifndef JAPAN | ||
1498 | strcpy(MainMenu[viewscores].string,STR_VS); | ||
1499 | #endif | ||
1500 | MainMenu[viewscores].routine = CP_ViewScores; | ||
1501 | return; | ||
1502 | } | ||
1503 | #endif | ||
1504 | |||
1505 | gamestate.oldscore = gamestate.score; | ||
1506 | |||
1507 | #ifndef SPEAR | ||
1508 | // | ||
1509 | // COMING BACK FROM SECRET LEVEL | ||
1510 | // | ||
1511 | if (gamestate.mapon == 9) | ||
1512 | gamestate.mapon = ElevatorBackTo[gamestate.episode]; // back from secret | ||
1513 | else | ||
1514 | // | ||
1515 | // GOING TO SECRET LEVEL | ||
1516 | // | ||
1517 | if (playstate == ex_secretlevel) | ||
1518 | gamestate.mapon = 9; | ||
1519 | #else | ||
1520 | |||
1521 | #define FROMSECRET1 3 | ||
1522 | #define FROMSECRET2 11 | ||
1523 | |||
1524 | // | ||
1525 | // GOING TO SECRET LEVEL | ||
1526 | // | ||
1527 | if (playstate == ex_secretlevel) | ||
1528 | switch(gamestate.mapon) | ||
1529 | { | ||
1530 | case FROMSECRET1: gamestate.mapon = 18; break; | ||
1531 | case FROMSECRET2: gamestate.mapon = 19; break; | ||
1532 | } | ||
1533 | else | ||
1534 | // | ||
1535 | // COMING BACK FROM SECRET LEVEL | ||
1536 | // | ||
1537 | if (gamestate.mapon == 18 || gamestate.mapon == 19) | ||
1538 | switch(gamestate.mapon) | ||
1539 | { | ||
1540 | case 18: gamestate.mapon = FROMSECRET1+1; break; | ||
1541 | case 19: gamestate.mapon = FROMSECRET2+1; break; | ||
1542 | } | ||
1543 | #endif | ||
1544 | else | ||
1545 | // | ||
1546 | // GOING TO NEXT LEVEL | ||
1547 | // | ||
1548 | gamestate.mapon++; | ||
1549 | break; | ||
1550 | |||
1551 | case ex_died: | ||
1552 | Died (); | ||
1553 | died = true; // don't "get psyched!" | ||
1554 | |||
1555 | if (gamestate.lives > -1) | ||
1556 | break; // more lives left | ||
1557 | |||
1558 | VW_FadeOut (); | ||
1559 | if(screenHeight % 200 != 0) | ||
1560 | VL_ClearScreen(0); | ||
1561 | |||
1562 | #ifdef _arch_dreamcast | ||
1563 | DC_StatusClearLCD(); | ||
1564 | #endif | ||
1565 | |||
1566 | ClearMemory (); | ||
1567 | |||
1568 | CheckHighScore (gamestate.score,gamestate.mapon+1); | ||
1569 | #ifndef JAPAN | ||
1570 | strcpy(MainMenu[viewscores].string,STR_VS); | ||
1571 | #endif | ||
1572 | MainMenu[viewscores].routine = CP_ViewScores; | ||
1573 | return; | ||
1574 | |||
1575 | case ex_victorious: | ||
1576 | if(viewsize == 21) DrawPlayScreen(); | ||
1577 | #ifndef SPEAR | ||
1578 | VW_FadeOut (); | ||
1579 | #else | ||
1580 | VL_FadeOut (0,255,0,17,17,300); | ||
1581 | #endif | ||
1582 | ClearMemory (); | ||
1583 | |||
1584 | Victory (); | ||
1585 | |||
1586 | ClearMemory (); | ||
1587 | |||
1588 | CheckHighScore (gamestate.score,gamestate.mapon+1); | ||
1589 | #ifndef JAPAN | ||
1590 | strcpy(MainMenu[viewscores].string,STR_VS); | ||
1591 | #endif | ||
1592 | MainMenu[viewscores].routine = CP_ViewScores; | ||
1593 | return; | ||
1594 | |||
1595 | default: | ||
1596 | if(viewsize == 21) DrawPlayScreen(); | ||
1597 | ClearMemory (); | ||
1598 | break; | ||
1599 | } | ||
1600 | } while (1); | ||
1601 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_inter.c b/apps/plugins/sdl/progs/wolf3d/wl_inter.c new file mode 100644 index 0000000000..113c55c79d --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_inter.c | |||
@@ -0,0 +1,1723 @@ | |||
1 | // WL_INTER.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | LRstruct LevelRatios[LRpack]; | ||
7 | int32_t lastBreathTime = 0; | ||
8 | |||
9 | void Write (int x, int y, const char *string); | ||
10 | |||
11 | //========================================================================== | ||
12 | |||
13 | /* | ||
14 | ================== | ||
15 | = | ||
16 | = CLearSplitVWB | ||
17 | = | ||
18 | ================== | ||
19 | */ | ||
20 | |||
21 | void | ||
22 | ClearSplitVWB (void) | ||
23 | { | ||
24 | WindowX = 0; | ||
25 | WindowY = 0; | ||
26 | WindowW = 320; | ||
27 | WindowH = 160; | ||
28 | } | ||
29 | |||
30 | |||
31 | //========================================================================== | ||
32 | |||
33 | #ifdef SPEAR | ||
34 | #ifndef SPEARDEMO | ||
35 | //////////////////////////////////////////////////////// | ||
36 | // | ||
37 | // End of Spear of Destiny | ||
38 | // | ||
39 | //////////////////////////////////////////////////////// | ||
40 | |||
41 | void | ||
42 | EndScreen (int palette, int screen) | ||
43 | { | ||
44 | SDL_Color pal[256]; | ||
45 | CA_CacheScreen (screen); | ||
46 | VW_UpdateScreen (); | ||
47 | CA_CacheGrChunk (palette); | ||
48 | VL_ConvertPalette(grsegs[palette], pal, 256); | ||
49 | VL_FadeIn (0, 255, pal, 30); | ||
50 | UNCACHEGRCHUNK (palette); | ||
51 | IN_ClearKeysDown (); | ||
52 | IN_Ack (); | ||
53 | VW_FadeOut (); | ||
54 | } | ||
55 | |||
56 | |||
57 | void | ||
58 | EndSpear (void) | ||
59 | { | ||
60 | SDL_Color pal[256]; | ||
61 | |||
62 | EndScreen (END1PALETTE, ENDSCREEN11PIC); | ||
63 | |||
64 | CA_CacheScreen (ENDSCREEN3PIC); | ||
65 | VW_UpdateScreen (); | ||
66 | CA_CacheGrChunk (END3PALETTE); | ||
67 | VL_ConvertPalette(grsegs[END3PALETTE], pal, 256); | ||
68 | VL_FadeIn (0, 255, pal, 30); | ||
69 | UNCACHEGRCHUNK (END3PALETTE); | ||
70 | fontnumber = 0; | ||
71 | fontcolor = 0xd0; | ||
72 | WindowX = 0; | ||
73 | WindowW = 320; | ||
74 | PrintX = 0; | ||
75 | PrintY = 180; | ||
76 | US_CPrint (STR_ENDGAME1 "\n"); | ||
77 | US_CPrint (STR_ENDGAME2); | ||
78 | VW_UpdateScreen (); | ||
79 | IN_UserInput(700); | ||
80 | |||
81 | PrintX = 0; | ||
82 | PrintY = 180; | ||
83 | VWB_Bar (0, 180, 320, 20, 0); | ||
84 | US_CPrint (STR_ENDGAME3 "\n"); | ||
85 | US_CPrint (STR_ENDGAME4); | ||
86 | VW_UpdateScreen (); | ||
87 | IN_UserInput(700); | ||
88 | |||
89 | VW_FadeOut (); | ||
90 | |||
91 | EndScreen (END4PALETTE, ENDSCREEN4PIC); | ||
92 | EndScreen (END5PALETTE, ENDSCREEN5PIC); | ||
93 | EndScreen (END6PALETTE, ENDSCREEN6PIC); | ||
94 | EndScreen (END7PALETTE, ENDSCREEN7PIC); | ||
95 | EndScreen (END8PALETTE, ENDSCREEN8PIC); | ||
96 | EndScreen (END9PALETTE, ENDSCREEN9PIC); | ||
97 | |||
98 | EndScreen (END2PALETTE, ENDSCREEN12PIC); | ||
99 | |||
100 | MainMenu[savegame].active = 0; | ||
101 | } | ||
102 | #endif | ||
103 | #endif | ||
104 | |||
105 | //========================================================================== | ||
106 | |||
107 | /* | ||
108 | ================== | ||
109 | = | ||
110 | = Victory | ||
111 | = | ||
112 | ================== | ||
113 | */ | ||
114 | |||
115 | void | ||
116 | Victory (void) | ||
117 | { | ||
118 | #ifndef SPEARDEMO | ||
119 | int32_t sec; | ||
120 | int i, min, kr, sr, tr, x; | ||
121 | char tempstr[8]; | ||
122 | |||
123 | #define RATIOX 6 | ||
124 | #define RATIOY 14 | ||
125 | #define TIMEX 14 | ||
126 | #define TIMEY 8 | ||
127 | |||
128 | |||
129 | #ifdef SPEAR | ||
130 | StartCPMusic (XTHEEND_MUS); | ||
131 | |||
132 | CA_CacheGrChunk (BJCOLLAPSE1PIC); | ||
133 | CA_CacheGrChunk (BJCOLLAPSE2PIC); | ||
134 | CA_CacheGrChunk (BJCOLLAPSE3PIC); | ||
135 | CA_CacheGrChunk (BJCOLLAPSE4PIC); | ||
136 | |||
137 | VWB_Bar (0, 0, 320, 200, VIEWCOLOR); | ||
138 | VWB_DrawPic (124, 44, BJCOLLAPSE1PIC); | ||
139 | VW_UpdateScreen (); | ||
140 | VW_FadeIn (); | ||
141 | VW_WaitVBL (2 * 70); | ||
142 | VWB_DrawPic (124, 44, BJCOLLAPSE2PIC); | ||
143 | VW_UpdateScreen (); | ||
144 | VW_WaitVBL (105); | ||
145 | VWB_DrawPic (124, 44, BJCOLLAPSE3PIC); | ||
146 | VW_UpdateScreen (); | ||
147 | VW_WaitVBL (105); | ||
148 | VWB_DrawPic (124, 44, BJCOLLAPSE4PIC); | ||
149 | VW_UpdateScreen (); | ||
150 | VW_WaitVBL (3 * 70); | ||
151 | |||
152 | UNCACHEGRCHUNK (BJCOLLAPSE1PIC); | ||
153 | UNCACHEGRCHUNK (BJCOLLAPSE2PIC); | ||
154 | UNCACHEGRCHUNK (BJCOLLAPSE3PIC); | ||
155 | UNCACHEGRCHUNK (BJCOLLAPSE4PIC); | ||
156 | VL_FadeOut (0, 255, 0, 17, 17, 5); | ||
157 | #endif | ||
158 | |||
159 | StartCPMusic (URAHERO_MUS); | ||
160 | ClearSplitVWB (); | ||
161 | CacheLump (LEVELEND_LUMP_START, LEVELEND_LUMP_END); | ||
162 | CA_CacheGrChunk (STARTFONT); | ||
163 | |||
164 | #ifndef SPEAR | ||
165 | CA_CacheGrChunk (C_TIMECODEPIC); | ||
166 | #endif | ||
167 | |||
168 | VWB_Bar (0, 0, 320, screenHeight / scaleFactor - STATUSLINES + 1, VIEWCOLOR); | ||
169 | if (bordercol != VIEWCOLOR) | ||
170 | DrawStatusBorder (VIEWCOLOR); | ||
171 | |||
172 | #ifdef JAPAN | ||
173 | #ifndef JAPDEMO | ||
174 | CA_CacheGrChunk (C_ENDRATIOSPIC); | ||
175 | VWB_DrawPic (0, 0, C_ENDRATIOSPIC); | ||
176 | UNCACHEGRCHUNK (C_ENDRATIOSPIC); | ||
177 | #endif | ||
178 | #else | ||
179 | Write (18, 2, STR_YOUWIN); | ||
180 | |||
181 | Write (TIMEX, TIMEY - 2, STR_TOTALTIME); | ||
182 | |||
183 | Write (12, RATIOY - 2, "averages"); | ||
184 | |||
185 | #ifdef SPANISH | ||
186 | Write (RATIOX + 2, RATIOY, STR_RATKILL); | ||
187 | Write (RATIOX + 2, RATIOY + 2, STR_RATSECRET); | ||
188 | Write (RATIOX + 2, RATIOY + 4, STR_RATTREASURE); | ||
189 | #else | ||
190 | Write (RATIOX + 8, RATIOY, STR_RATKILL); | ||
191 | Write (RATIOX + 4, RATIOY + 2, STR_RATSECRET); | ||
192 | Write (RATIOX, RATIOY + 4, STR_RATTREASURE); | ||
193 | #endif | ||
194 | |||
195 | #endif | ||
196 | |||
197 | #ifndef JAPDEMO | ||
198 | VWB_DrawPic (8, 4, L_BJWINSPIC); | ||
199 | #endif | ||
200 | |||
201 | |||
202 | for (kr = sr = tr = sec = i = 0; i < LRpack; i++) | ||
203 | { | ||
204 | sec += LevelRatios[i].time; | ||
205 | kr += LevelRatios[i].kill; | ||
206 | sr += LevelRatios[i].secret; | ||
207 | tr += LevelRatios[i].treasure; | ||
208 | } | ||
209 | |||
210 | #ifndef SPEAR | ||
211 | kr /= LRpack; | ||
212 | sr /= LRpack; | ||
213 | tr /= LRpack; | ||
214 | #else | ||
215 | kr /= 14; | ||
216 | sr /= 14; | ||
217 | tr /= 14; | ||
218 | #endif | ||
219 | |||
220 | min = sec / 60; | ||
221 | sec %= 60; | ||
222 | |||
223 | if (min > 99) | ||
224 | min = sec = 99; | ||
225 | |||
226 | i = TIMEX * 8 + 1; | ||
227 | VWB_DrawPic (i, TIMEY * 8, L_NUM0PIC + (min / 10)); | ||
228 | i += 2 * 8; | ||
229 | VWB_DrawPic (i, TIMEY * 8, L_NUM0PIC + (min % 10)); | ||
230 | i += 2 * 8; | ||
231 | Write (i / 8, TIMEY, ":"); | ||
232 | i += 1 * 8; | ||
233 | VWB_DrawPic (i, TIMEY * 8, L_NUM0PIC + (sec / 10)); | ||
234 | i += 2 * 8; | ||
235 | VWB_DrawPic (i, TIMEY * 8, L_NUM0PIC + (sec % 10)); | ||
236 | VW_UpdateScreen (); | ||
237 | |||
238 | itoa (kr, tempstr, 10); | ||
239 | x = RATIOX + 24 - (int) strlen(tempstr) * 2; | ||
240 | Write (x, RATIOY, tempstr); | ||
241 | |||
242 | itoa (sr, tempstr, 10); | ||
243 | x = RATIOX + 24 - (int) strlen(tempstr) * 2; | ||
244 | Write (x, RATIOY + 2, tempstr); | ||
245 | |||
246 | itoa (tr, tempstr, 10); | ||
247 | x = RATIOX + 24 - (int) strlen(tempstr) * 2; | ||
248 | Write (x, RATIOY + 4, tempstr); | ||
249 | |||
250 | #ifndef SPANISH | ||
251 | #ifndef UPLOAD | ||
252 | #ifndef SPEAR | ||
253 | // | ||
254 | // TOTAL TIME VERIFICATION CODE | ||
255 | // | ||
256 | if (gamestate.difficulty >= gd_medium) | ||
257 | { | ||
258 | VWB_DrawPic (30 * 8, TIMEY * 8, C_TIMECODEPIC); | ||
259 | fontnumber = 0; | ||
260 | fontcolor = READHCOLOR; | ||
261 | PrintX = 30 * 8 - 3; | ||
262 | PrintY = TIMEY * 8 + 8; | ||
263 | PrintX += 4; | ||
264 | tempstr[0] = (((min / 10) ^ (min % 10)) ^ 0xa) + 'A'; | ||
265 | tempstr[1] = (int) ((((sec / 10) ^ (sec % 10)) ^ 0xa) + 'A'); | ||
266 | tempstr[2] = (tempstr[0] ^ tempstr[1]) + 'A'; | ||
267 | tempstr[3] = 0; | ||
268 | US_Print (tempstr); | ||
269 | } | ||
270 | #endif | ||
271 | #endif | ||
272 | #endif | ||
273 | |||
274 | fontnumber = 1; | ||
275 | |||
276 | VW_UpdateScreen (); | ||
277 | VW_FadeIn (); | ||
278 | |||
279 | IN_Ack (); | ||
280 | |||
281 | VW_FadeOut (); | ||
282 | if(screenHeight % 200 != 0) | ||
283 | VL_ClearScreen(0); | ||
284 | |||
285 | #ifndef SPEAR | ||
286 | UNCACHEGRCHUNK (C_TIMECODEPIC); | ||
287 | #endif | ||
288 | UnCacheLump (LEVELEND_LUMP_START, LEVELEND_LUMP_END); | ||
289 | |||
290 | #ifndef SPEAR | ||
291 | EndText (); | ||
292 | #else | ||
293 | EndSpear (); | ||
294 | #endif | ||
295 | |||
296 | #endif // SPEARDEMO | ||
297 | } | ||
298 | |||
299 | |||
300 | //========================================================================== | ||
301 | |||
302 | #ifndef JAPAN | ||
303 | /* | ||
304 | ================== | ||
305 | = | ||
306 | = PG13 | ||
307 | = | ||
308 | ================== | ||
309 | */ | ||
310 | |||
311 | void | ||
312 | PG13 (void) | ||
313 | { | ||
314 | VW_FadeOut (); | ||
315 | VWB_Bar (0, 0, 320, 200, 0x82); // background | ||
316 | |||
317 | CA_CacheGrChunk (PG13PIC); | ||
318 | VWB_DrawPic (216, 110, PG13PIC); | ||
319 | VW_UpdateScreen (); | ||
320 | |||
321 | UNCACHEGRCHUNK (PG13PIC); | ||
322 | |||
323 | VW_FadeIn (); | ||
324 | IN_UserInput (TickBase * 7); | ||
325 | |||
326 | VW_FadeOut (); | ||
327 | } | ||
328 | #endif | ||
329 | |||
330 | |||
331 | //========================================================================== | ||
332 | |||
333 | void | ||
334 | Write (int x, int y, const char *string) | ||
335 | { | ||
336 | static const int alpha[] = { L_NUM0PIC, L_NUM1PIC, L_NUM2PIC, L_NUM3PIC, L_NUM4PIC, L_NUM5PIC, | ||
337 | L_NUM6PIC, L_NUM7PIC, L_NUM8PIC, L_NUM9PIC, L_COLONPIC, 0, 0, 0, 0, 0, 0, L_APIC, L_BPIC, | ||
338 | L_CPIC, L_DPIC, L_EPIC, L_FPIC, L_GPIC, L_HPIC, L_IPIC, L_JPIC, L_KPIC, | ||
339 | L_LPIC, L_MPIC, L_NPIC, L_OPIC, L_PPIC, L_QPIC, L_RPIC, L_SPIC, L_TPIC, | ||
340 | L_UPIC, L_VPIC, L_WPIC, L_XPIC, L_YPIC, L_ZPIC | ||
341 | }; | ||
342 | |||
343 | int i, ox, nx, ny, len = (int) strlen(string); | ||
344 | char ch; | ||
345 | |||
346 | ox = nx = x * 8; | ||
347 | ny = y * 8; | ||
348 | for (i = 0; i < len; i++) | ||
349 | { | ||
350 | if (string[i] == '\n') | ||
351 | { | ||
352 | nx = ox; | ||
353 | ny += 16; | ||
354 | } | ||
355 | else | ||
356 | { | ||
357 | ch = string[i]; | ||
358 | if (ch >= 'a') | ||
359 | ch -= ('a' - 'A'); | ||
360 | ch -= '0'; | ||
361 | |||
362 | switch (string[i]) | ||
363 | { | ||
364 | case '!': | ||
365 | VWB_DrawPic (nx, ny, L_EXPOINTPIC); | ||
366 | nx += 8; | ||
367 | continue; | ||
368 | |||
369 | #ifndef APOGEE_1_0 | ||
370 | case '\'': | ||
371 | VWB_DrawPic (nx, ny, L_APOSTROPHEPIC); | ||
372 | nx += 8; | ||
373 | continue; | ||
374 | #endif | ||
375 | |||
376 | case ' ': | ||
377 | break; | ||
378 | |||
379 | case 0x3a: // ':' | ||
380 | VWB_DrawPic (nx, ny, L_COLONPIC); | ||
381 | nx += 8; | ||
382 | continue; | ||
383 | |||
384 | case '%': | ||
385 | VWB_DrawPic (nx, ny, L_PERCENTPIC); | ||
386 | break; | ||
387 | |||
388 | default: | ||
389 | VWB_DrawPic (nx, ny, alpha[ch]); | ||
390 | } | ||
391 | nx += 16; | ||
392 | } | ||
393 | } | ||
394 | } | ||
395 | |||
396 | |||
397 | // | ||
398 | // Breathe Mr. BJ!!! | ||
399 | // | ||
400 | void | ||
401 | BJ_Breathe (void) | ||
402 | { | ||
403 | static int which = 0, max = 10; | ||
404 | int pics[2] = { L_GUYPIC, L_GUY2PIC }; | ||
405 | |||
406 | SDL_Delay(5); | ||
407 | |||
408 | if ((int32_t) GetTimeCount () - lastBreathTime > max) | ||
409 | { | ||
410 | which ^= 1; | ||
411 | VWB_DrawPic (0, 16, pics[which]); | ||
412 | VW_UpdateScreen (); | ||
413 | lastBreathTime = GetTimeCount(); | ||
414 | max = 35; | ||
415 | } | ||
416 | } | ||
417 | |||
418 | |||
419 | |||
420 | /* | ||
421 | ================== | ||
422 | = | ||
423 | = LevelCompleted | ||
424 | = | ||
425 | = Entered with the screen faded out | ||
426 | = Still in split screen mode with the status bar | ||
427 | = | ||
428 | = Exit with the screen faded out | ||
429 | = | ||
430 | ================== | ||
431 | */ | ||
432 | |||
433 | void | ||
434 | LevelCompleted (void) | ||
435 | { | ||
436 | #define VBLWAIT 30 | ||
437 | #define PAR_AMOUNT 500 | ||
438 | #define PERCENT100AMT 10000 | ||
439 | typedef struct | ||
440 | { | ||
441 | float time; | ||
442 | char timestr[6]; | ||
443 | } times; | ||
444 | |||
445 | int x, i, min, sec, ratio, kr, sr, tr; | ||
446 | char tempstr[10]; | ||
447 | int32_t bonus, timeleft = 0; | ||
448 | times parTimes[] = { | ||
449 | #ifndef SPEAR | ||
450 | // | ||
451 | // Episode One Par Times | ||
452 | // | ||
453 | {1.5, "01:30"}, | ||
454 | {2, "02:00"}, | ||
455 | {2, "02:00"}, | ||
456 | {3.5, "03:30"}, | ||
457 | {3, "03:00"}, | ||
458 | {3, "03:00"}, | ||
459 | {2.5, "02:30"}, | ||
460 | {2.5, "02:30"}, | ||
461 | {0, "??:??"}, // Boss level | ||
462 | {0, "??:??"}, // Secret level | ||
463 | |||
464 | // | ||
465 | // Episode Two Par Times | ||
466 | // | ||
467 | {1.5, "01:30"}, | ||
468 | {3.5, "03:30"}, | ||
469 | {3, "03:00"}, | ||
470 | {2, "02:00"}, | ||
471 | {4, "04:00"}, | ||
472 | {6, "06:00"}, | ||
473 | {1, "01:00"}, | ||
474 | {3, "03:00"}, | ||
475 | {0, "??:??"}, | ||
476 | {0, "??:??"}, | ||
477 | |||
478 | // | ||
479 | // Episode Three Par Times | ||
480 | // | ||
481 | {1.5, "01:30"}, | ||
482 | {1.5, "01:30"}, | ||
483 | {2.5, "02:30"}, | ||
484 | {2.5, "02:30"}, | ||
485 | {3.5, "03:30"}, | ||
486 | {2.5, "02:30"}, | ||
487 | {2, "02:00"}, | ||
488 | {6, "06:00"}, | ||
489 | {0, "??:??"}, | ||
490 | {0, "??:??"}, | ||
491 | |||
492 | // | ||
493 | // Episode Four Par Times | ||
494 | // | ||
495 | {2, "02:00"}, | ||
496 | {2, "02:00"}, | ||
497 | {1.5, "01:30"}, | ||
498 | {1, "01:00"}, | ||
499 | {4.5, "04:30"}, | ||
500 | {3.5, "03:30"}, | ||
501 | {2, "02:00"}, | ||
502 | {4.5, "04:30"}, | ||
503 | {0, "??:??"}, | ||
504 | {0, "??:??"}, | ||
505 | |||
506 | // | ||
507 | // Episode Five Par Times | ||
508 | // | ||
509 | {2.5, "02:30"}, | ||
510 | {1.5, "01:30"}, | ||
511 | {2.5, "02:30"}, | ||
512 | {2.5, "02:30"}, | ||
513 | {4, "04:00"}, | ||
514 | {3, "03:00"}, | ||
515 | {4.5, "04:30"}, | ||
516 | {3.5, "03:30"}, | ||
517 | {0, "??:??"}, | ||
518 | {0, "??:??"}, | ||
519 | |||
520 | // | ||
521 | // Episode Six Par Times | ||
522 | // | ||
523 | {6.5, "06:30"}, | ||
524 | {4, "04:00"}, | ||
525 | {4.5, "04:30"}, | ||
526 | {6, "06:00"}, | ||
527 | {5, "05:00"}, | ||
528 | {5.5, "05:30"}, | ||
529 | {5.5, "05:30"}, | ||
530 | {8.5, "08:30"}, | ||
531 | {0, "??:??"}, | ||
532 | {0, "??:??"} | ||
533 | #else | ||
534 | // | ||
535 | // SPEAR OF DESTINY TIMES | ||
536 | // | ||
537 | {1.5, "01:30"}, | ||
538 | {3.5, "03:30"}, | ||
539 | {2.75, "02:45"}, | ||
540 | {3.5, "03:30"}, | ||
541 | {0, "??:??"}, // Boss 1 | ||
542 | {4.5, "04:30"}, | ||
543 | {3.25, "03:15"}, | ||
544 | {2.75, "02:45"}, | ||
545 | {4.75, "04:45"}, | ||
546 | {0, "??:??"}, // Boss 2 | ||
547 | {6.5, "06:30"}, | ||
548 | {4.5, "04:30"}, | ||
549 | {2.75, "02:45"}, | ||
550 | {4.5, "04:30"}, | ||
551 | {6, "06:00"}, | ||
552 | {0, "??:??"}, // Boss 3 | ||
553 | {6, "06:00"}, | ||
554 | {0, "??:??"}, // Boss 4 | ||
555 | {0, "??:??"}, // Secret level 1 | ||
556 | {0, "??:??"}, // Secret level 2 | ||
557 | #endif | ||
558 | }; | ||
559 | |||
560 | CacheLump (LEVELEND_LUMP_START, LEVELEND_LUMP_END); | ||
561 | ClearSplitVWB (); // set up for double buffering in split screen | ||
562 | VWB_Bar (0, 0, 320, screenHeight / scaleFactor - STATUSLINES + 1, VIEWCOLOR); | ||
563 | |||
564 | if (bordercol != VIEWCOLOR) | ||
565 | DrawStatusBorder (VIEWCOLOR); | ||
566 | |||
567 | StartCPMusic (ENDLEVEL_MUS); | ||
568 | |||
569 | // | ||
570 | // do the intermission | ||
571 | // | ||
572 | IN_ClearKeysDown (); | ||
573 | IN_StartAck (); | ||
574 | |||
575 | #ifdef JAPAN | ||
576 | CA_CacheGrChunk (C_INTERMISSIONPIC); | ||
577 | VWB_DrawPic (0, 0, C_INTERMISSIONPIC); | ||
578 | UNCACHEGRCHUNK (C_INTERMISSIONPIC); | ||
579 | #endif | ||
580 | VWB_DrawPic (0, 16, L_GUYPIC); | ||
581 | |||
582 | #ifndef SPEAR | ||
583 | if (mapon < 8) | ||
584 | #else | ||
585 | if (mapon != 4 && mapon != 9 && mapon != 15 && mapon < 17) | ||
586 | #endif | ||
587 | { | ||
588 | #ifndef JAPAN | ||
589 | #ifdef SPANISH | ||
590 | Write (14, 2, "piso\ncompletado"); | ||
591 | #else | ||
592 | Write (14, 2, "floor\ncompleted"); | ||
593 | #endif | ||
594 | |||
595 | Write (14, 7, STR_BONUS " 0"); | ||
596 | Write (16, 10, STR_TIME); | ||
597 | Write (16, 12, STR_PAR); | ||
598 | |||
599 | #ifdef SPANISH | ||
600 | Write (11, 14, STR_RAT2KILL); | ||
601 | Write (11, 16, STR_RAT2SECRET); | ||
602 | Write (11, 18, STR_RAT2TREASURE); | ||
603 | #else | ||
604 | Write (9, 14, STR_RAT2KILL); | ||
605 | Write (5, 16, STR_RAT2SECRET); | ||
606 | Write (1, 18, STR_RAT2TREASURE); | ||
607 | #endif | ||
608 | |||
609 | Write (26, 2, itoa (gamestate.mapon + 1, tempstr, 10)); | ||
610 | #endif | ||
611 | |||
612 | #ifdef SPANISH | ||
613 | Write (30, 12, parTimes[gamestate.episode * 10 + mapon].timestr); | ||
614 | #else | ||
615 | Write (26, 12, parTimes[gamestate.episode * 10 + mapon].timestr); | ||
616 | #endif | ||
617 | |||
618 | // | ||
619 | // PRINT TIME | ||
620 | // | ||
621 | sec = gamestate.TimeCount / 70; | ||
622 | |||
623 | if (sec > 99 * 60) // 99 minutes max | ||
624 | sec = 99 * 60; | ||
625 | |||
626 | if (gamestate.TimeCount < parTimes[gamestate.episode * 10 + mapon].time * 4200) | ||
627 | timeleft = (int32_t) ((parTimes[gamestate.episode * 10 + mapon].time * 4200) / 70 - sec); | ||
628 | |||
629 | min = sec / 60; | ||
630 | sec %= 60; | ||
631 | |||
632 | #ifdef SPANISH | ||
633 | i = 30 * 8; | ||
634 | #else | ||
635 | i = 26 * 8; | ||
636 | #endif | ||
637 | VWB_DrawPic (i, 10 * 8, L_NUM0PIC + (min / 10)); | ||
638 | i += 2 * 8; | ||
639 | VWB_DrawPic (i, 10 * 8, L_NUM0PIC + (min % 10)); | ||
640 | i += 2 * 8; | ||
641 | Write (i / 8, 10, ":"); | ||
642 | i += 1 * 8; | ||
643 | VWB_DrawPic (i, 10 * 8, L_NUM0PIC + (sec / 10)); | ||
644 | i += 2 * 8; | ||
645 | VWB_DrawPic (i, 10 * 8, L_NUM0PIC + (sec % 10)); | ||
646 | |||
647 | VW_UpdateScreen (); | ||
648 | VW_FadeIn (); | ||
649 | |||
650 | |||
651 | // | ||
652 | // FIGURE RATIOS OUT BEFOREHAND | ||
653 | // | ||
654 | kr = sr = tr = 0; | ||
655 | if (gamestate.killtotal) | ||
656 | kr = (gamestate.killcount * 100) / gamestate.killtotal; | ||
657 | if (gamestate.secrettotal) | ||
658 | sr = (gamestate.secretcount * 100) / gamestate.secrettotal; | ||
659 | if (gamestate.treasuretotal) | ||
660 | tr = (gamestate.treasurecount * 100) / gamestate.treasuretotal; | ||
661 | |||
662 | |||
663 | // | ||
664 | // PRINT TIME BONUS | ||
665 | // | ||
666 | bonus = timeleft * PAR_AMOUNT; | ||
667 | if (bonus) | ||
668 | { | ||
669 | for (i = 0; i <= timeleft; i++) | ||
670 | { | ||
671 | ltoa ((int32_t) i * PAR_AMOUNT, tempstr, 10); | ||
672 | x = 36 - (int) strlen(tempstr) * 2; | ||
673 | Write (x, 7, tempstr); | ||
674 | if (!(i % (PAR_AMOUNT / 10))) | ||
675 | SD_PlaySound (ENDBONUS1SND); | ||
676 | if(!usedoublebuffering || !(i % (PAR_AMOUNT / 50))) VW_UpdateScreen (); | ||
677 | while(SD_SoundPlaying ()) | ||
678 | BJ_Breathe (); | ||
679 | if (IN_CheckAck ()) | ||
680 | goto done; | ||
681 | } | ||
682 | |||
683 | VW_UpdateScreen (); | ||
684 | |||
685 | SD_PlaySound (ENDBONUS2SND); | ||
686 | while (SD_SoundPlaying ()) | ||
687 | BJ_Breathe (); | ||
688 | } | ||
689 | |||
690 | |||
691 | #ifdef SPANISH | ||
692 | #define RATIOXX 33 | ||
693 | #else | ||
694 | #define RATIOXX 37 | ||
695 | #endif | ||
696 | // | ||
697 | // KILL RATIO | ||
698 | // | ||
699 | ratio = kr; | ||
700 | for (i = 0; i <= ratio; i++) | ||
701 | { | ||
702 | itoa (i, tempstr, 10); | ||
703 | x = RATIOXX - (int) strlen(tempstr) * 2; | ||
704 | Write (x, 14, tempstr); | ||
705 | if (!(i % 10)) | ||
706 | SD_PlaySound (ENDBONUS1SND); | ||
707 | if(!usedoublebuffering || !(i & 1)) VW_UpdateScreen (); | ||
708 | while (SD_SoundPlaying ()) | ||
709 | BJ_Breathe (); | ||
710 | |||
711 | if (IN_CheckAck ()) | ||
712 | goto done; | ||
713 | } | ||
714 | if (ratio >= 100) | ||
715 | { | ||
716 | VW_WaitVBL (VBLWAIT); | ||
717 | SD_StopSound (); | ||
718 | bonus += PERCENT100AMT; | ||
719 | ltoa (bonus, tempstr, 10); | ||
720 | x = (RATIOXX - 1) - (int) strlen(tempstr) * 2; | ||
721 | Write (x, 7, tempstr); | ||
722 | VW_UpdateScreen (); | ||
723 | SD_PlaySound (PERCENT100SND); | ||
724 | } | ||
725 | else if (!ratio) | ||
726 | { | ||
727 | VW_WaitVBL (VBLWAIT); | ||
728 | SD_StopSound (); | ||
729 | SD_PlaySound (NOBONUSSND); | ||
730 | } | ||
731 | else | ||
732 | SD_PlaySound (ENDBONUS2SND); | ||
733 | |||
734 | VW_UpdateScreen (); | ||
735 | while (SD_SoundPlaying ()) | ||
736 | BJ_Breathe (); | ||
737 | |||
738 | // | ||
739 | // SECRET RATIO | ||
740 | // | ||
741 | ratio = sr; | ||
742 | for (i = 0; i <= ratio; i++) | ||
743 | { | ||
744 | itoa (i, tempstr, 10); | ||
745 | x = RATIOXX - (int) strlen(tempstr) * 2; | ||
746 | Write (x, 16, tempstr); | ||
747 | if (!(i % 10)) | ||
748 | SD_PlaySound (ENDBONUS1SND); | ||
749 | if(!usedoublebuffering || !(i & 1)) VW_UpdateScreen (); | ||
750 | while (SD_SoundPlaying ()) | ||
751 | BJ_Breathe (); | ||
752 | |||
753 | if (IN_CheckAck ()) | ||
754 | goto done; | ||
755 | } | ||
756 | if (ratio >= 100) | ||
757 | { | ||
758 | VW_WaitVBL (VBLWAIT); | ||
759 | SD_StopSound (); | ||
760 | bonus += PERCENT100AMT; | ||
761 | ltoa (bonus, tempstr, 10); | ||
762 | x = (RATIOXX - 1) - (int) strlen(tempstr) * 2; | ||
763 | Write (x, 7, tempstr); | ||
764 | VW_UpdateScreen (); | ||
765 | SD_PlaySound (PERCENT100SND); | ||
766 | } | ||
767 | else if (!ratio) | ||
768 | { | ||
769 | VW_WaitVBL (VBLWAIT); | ||
770 | SD_StopSound (); | ||
771 | SD_PlaySound (NOBONUSSND); | ||
772 | } | ||
773 | else | ||
774 | SD_PlaySound (ENDBONUS2SND); | ||
775 | VW_UpdateScreen (); | ||
776 | while (SD_SoundPlaying ()) | ||
777 | BJ_Breathe (); | ||
778 | |||
779 | // | ||
780 | // TREASURE RATIO | ||
781 | // | ||
782 | ratio = tr; | ||
783 | for (i = 0; i <= ratio; i++) | ||
784 | { | ||
785 | itoa (i, tempstr, 10); | ||
786 | x = RATIOXX - (int) strlen(tempstr) * 2; | ||
787 | Write (x, 18, tempstr); | ||
788 | if (!(i % 10)) | ||
789 | SD_PlaySound (ENDBONUS1SND); | ||
790 | if(!usedoublebuffering || !(i & 1)) VW_UpdateScreen (); | ||
791 | while (SD_SoundPlaying ()) | ||
792 | BJ_Breathe (); | ||
793 | if (IN_CheckAck ()) | ||
794 | goto done; | ||
795 | } | ||
796 | if (ratio >= 100) | ||
797 | { | ||
798 | VW_WaitVBL (VBLWAIT); | ||
799 | SD_StopSound (); | ||
800 | bonus += PERCENT100AMT; | ||
801 | ltoa (bonus, tempstr, 10); | ||
802 | x = (RATIOXX - 1) - (int) strlen(tempstr) * 2; | ||
803 | Write (x, 7, tempstr); | ||
804 | VW_UpdateScreen (); | ||
805 | SD_PlaySound (PERCENT100SND); | ||
806 | } | ||
807 | else if (!ratio) | ||
808 | { | ||
809 | VW_WaitVBL (VBLWAIT); | ||
810 | SD_StopSound (); | ||
811 | SD_PlaySound (NOBONUSSND); | ||
812 | } | ||
813 | else | ||
814 | SD_PlaySound (ENDBONUS2SND); | ||
815 | VW_UpdateScreen (); | ||
816 | while (SD_SoundPlaying ()) | ||
817 | BJ_Breathe (); | ||
818 | |||
819 | |||
820 | // | ||
821 | // JUMP STRAIGHT HERE IF KEY PRESSED | ||
822 | // | ||
823 | done: itoa (kr, tempstr, 10); | ||
824 | x = RATIOXX - (int) strlen(tempstr) * 2; | ||
825 | Write (x, 14, tempstr); | ||
826 | |||
827 | itoa (sr, tempstr, 10); | ||
828 | x = RATIOXX - (int) strlen(tempstr) * 2; | ||
829 | Write (x, 16, tempstr); | ||
830 | |||
831 | itoa (tr, tempstr, 10); | ||
832 | x = RATIOXX - (int) strlen(tempstr) * 2; | ||
833 | Write (x, 18, tempstr); | ||
834 | |||
835 | bonus = (int32_t) timeleft *PAR_AMOUNT + | ||
836 | (PERCENT100AMT * (kr >= 100)) + | ||
837 | (PERCENT100AMT * (sr >= 100)) + (PERCENT100AMT * (tr >= 100)); | ||
838 | |||
839 | GivePoints (bonus); | ||
840 | ltoa (bonus, tempstr, 10); | ||
841 | x = 36 - (int) strlen(tempstr) * 2; | ||
842 | Write (x, 7, tempstr); | ||
843 | |||
844 | // | ||
845 | // SAVE RATIO INFORMATION FOR ENDGAME | ||
846 | // | ||
847 | LevelRatios[mapon].kill = kr; | ||
848 | LevelRatios[mapon].secret = sr; | ||
849 | LevelRatios[mapon].treasure = tr; | ||
850 | LevelRatios[mapon].time = min * 60 + sec; | ||
851 | } | ||
852 | else | ||
853 | { | ||
854 | #ifdef SPEAR | ||
855 | #ifndef SPEARDEMO | ||
856 | switch (mapon) | ||
857 | { | ||
858 | case 4: | ||
859 | Write (14, 4, " trans\n" " grosse\n" STR_DEFEATED); | ||
860 | break; | ||
861 | case 9: | ||
862 | Write (14, 4, "barnacle\n" "wilhelm\n" STR_DEFEATED); | ||
863 | break; | ||
864 | case 15: | ||
865 | Write (14, 4, "ubermutant\n" STR_DEFEATED); | ||
866 | break; | ||
867 | case 17: | ||
868 | Write (14, 4, " death\n" " knight\n" STR_DEFEATED); | ||
869 | break; | ||
870 | case 18: | ||
871 | Write (13, 4, "secret tunnel\n" " area\n" " completed!"); | ||
872 | break; | ||
873 | case 19: | ||
874 | Write (13, 4, "secret castle\n" " area\n" " completed!"); | ||
875 | break; | ||
876 | } | ||
877 | #endif | ||
878 | #else | ||
879 | Write (14, 4, "secret floor\n completed!"); | ||
880 | #endif | ||
881 | |||
882 | Write (10, 16, "15000 bonus!"); | ||
883 | |||
884 | VW_UpdateScreen (); | ||
885 | VW_FadeIn (); | ||
886 | |||
887 | GivePoints (15000); | ||
888 | } | ||
889 | |||
890 | |||
891 | DrawScore (); | ||
892 | VW_UpdateScreen (); | ||
893 | |||
894 | lastBreathTime = GetTimeCount(); | ||
895 | IN_StartAck (); | ||
896 | while (!IN_CheckAck ()) | ||
897 | BJ_Breathe (); | ||
898 | |||
899 | // | ||
900 | // done | ||
901 | // | ||
902 | #ifdef SPEARDEMO | ||
903 | if (gamestate.mapon == 1) | ||
904 | { | ||
905 | SD_PlaySound (BONUS1UPSND); | ||
906 | |||
907 | CA_CacheGrChunk (STARTFONT + 1); | ||
908 | Message ("This concludes your demo\n" | ||
909 | "of Spear of Destiny! Now,\n" "go to your local software\n" "store and buy it!"); | ||
910 | UNCACHEGRCHUNK (STARTFONT + 1); | ||
911 | |||
912 | IN_ClearKeysDown (); | ||
913 | IN_Ack (); | ||
914 | } | ||
915 | #endif | ||
916 | |||
917 | #ifdef JAPDEMO | ||
918 | if (gamestate.mapon == 3) | ||
919 | { | ||
920 | SD_PlaySound (BONUS1UPSND); | ||
921 | |||
922 | CA_CacheGrChunk (STARTFONT + 1); | ||
923 | Message ("This concludes your demo\n" | ||
924 | "of Wolfenstein 3-D! Now,\n" "go to your local software\n" "store and buy it!"); | ||
925 | UNCACHEGRCHUNK (STARTFONT + 1); | ||
926 | |||
927 | IN_ClearKeysDown (); | ||
928 | IN_Ack (); | ||
929 | } | ||
930 | #endif | ||
931 | |||
932 | VW_FadeOut (); | ||
933 | DrawPlayBorder(); | ||
934 | |||
935 | UnCacheLump (LEVELEND_LUMP_START, LEVELEND_LUMP_END); | ||
936 | } | ||
937 | |||
938 | |||
939 | |||
940 | //========================================================================== | ||
941 | |||
942 | |||
943 | /* | ||
944 | ================= | ||
945 | = | ||
946 | = PreloadGraphics | ||
947 | = | ||
948 | = Fill the cache up | ||
949 | = | ||
950 | ================= | ||
951 | */ | ||
952 | |||
953 | boolean | ||
954 | PreloadUpdate (unsigned current, unsigned total) | ||
955 | { | ||
956 | unsigned w = WindowW - scaleFactor * 10; | ||
957 | |||
958 | VWB_BarScaledCoord (WindowX + scaleFactor * 5, WindowY + WindowH - scaleFactor * 3, | ||
959 | w, scaleFactor * 2, BLACK); | ||
960 | w = ((int32_t) w * current) / total; | ||
961 | if (w) | ||
962 | { | ||
963 | VWB_BarScaledCoord (WindowX + scaleFactor * 5, WindowY + WindowH - scaleFactor * 3, | ||
964 | w, scaleFactor * 2, 0x37); //SECONDCOLOR); | ||
965 | VWB_BarScaledCoord (WindowX + scaleFactor * 5, WindowY + WindowH - scaleFactor * 3, | ||
966 | w - scaleFactor * 1, scaleFactor * 1, 0x32); | ||
967 | |||
968 | } | ||
969 | VW_UpdateScreen (); | ||
970 | // if (LastScan == sc_Escape) | ||
971 | // { | ||
972 | // IN_ClearKeysDown(); | ||
973 | // return(true); | ||
974 | // } | ||
975 | // else | ||
976 | return (false); | ||
977 | } | ||
978 | |||
979 | void | ||
980 | PreloadGraphics (void) | ||
981 | { | ||
982 | DrawLevel (); | ||
983 | ClearSplitVWB (); // set up for double buffering in split screen | ||
984 | |||
985 | VWB_BarScaledCoord (0, 0, screenWidth, screenHeight - scaleFactor * (STATUSLINES - 1), bordercol); | ||
986 | LatchDrawPicScaledCoord ((screenWidth-scaleFactor*224)/16, | ||
987 | (screenHeight-scaleFactor*(STATUSLINES+48))/2, GETPSYCHEDPIC); | ||
988 | |||
989 | WindowX = (screenWidth - scaleFactor*224)/2; | ||
990 | WindowY = (screenHeight - scaleFactor*(STATUSLINES+48))/2; | ||
991 | WindowW = scaleFactor * 28 * 8; | ||
992 | WindowH = scaleFactor * 48; | ||
993 | |||
994 | VW_UpdateScreen (); | ||
995 | VW_FadeIn (); | ||
996 | |||
997 | // PM_Preload (PreloadUpdate); | ||
998 | PreloadUpdate (10, 10); | ||
999 | IN_UserInput (70); | ||
1000 | VW_FadeOut (); | ||
1001 | |||
1002 | DrawPlayBorder (); | ||
1003 | VW_UpdateScreen (); | ||
1004 | } | ||
1005 | |||
1006 | |||
1007 | //========================================================================== | ||
1008 | |||
1009 | /* | ||
1010 | ================== | ||
1011 | = | ||
1012 | = DrawHighScores | ||
1013 | = | ||
1014 | ================== | ||
1015 | */ | ||
1016 | |||
1017 | void | ||
1018 | DrawHighScores (void) | ||
1019 | { | ||
1020 | char buffer[16]; | ||
1021 | #ifndef SPEAR | ||
1022 | char *str; | ||
1023 | #ifndef UPLOAD | ||
1024 | char buffer1[5]; | ||
1025 | #endif | ||
1026 | #endif | ||
1027 | word i, w, h; | ||
1028 | HighScore *s; | ||
1029 | |||
1030 | #ifndef SPEAR | ||
1031 | CA_CacheGrChunk (HIGHSCORESPIC); | ||
1032 | CA_CacheGrChunk (STARTFONT); | ||
1033 | #ifndef APOGEE_1_0 | ||
1034 | CA_CacheGrChunk (C_LEVELPIC); | ||
1035 | CA_CacheGrChunk (C_SCOREPIC); | ||
1036 | CA_CacheGrChunk (C_NAMEPIC); | ||
1037 | #else | ||
1038 | CA_CacheGrChunk (C_CODEPIC); | ||
1039 | #endif | ||
1040 | |||
1041 | ClearMScreen (); | ||
1042 | DrawStripes (10); | ||
1043 | |||
1044 | VWB_DrawPic (48, 0, HIGHSCORESPIC); | ||
1045 | UNCACHEGRCHUNK (HIGHSCORESPIC); | ||
1046 | |||
1047 | #ifndef APOGEE_1_0 | ||
1048 | VWB_DrawPic (4 * 8, 68, C_NAMEPIC); | ||
1049 | VWB_DrawPic (20 * 8, 68, C_LEVELPIC); | ||
1050 | VWB_DrawPic (28 * 8, 68, C_SCOREPIC); | ||
1051 | #else | ||
1052 | VWB_DrawPic(35*8,68,C_CODEPIC); | ||
1053 | #endif | ||
1054 | fontnumber = 0; | ||
1055 | |||
1056 | #else | ||
1057 | CacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
1058 | ClearMScreen (); | ||
1059 | DrawStripes (10); | ||
1060 | UnCacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
1061 | |||
1062 | CacheLump (HIGHSCORES_LUMP_START, HIGHSCORES_LUMP_END); | ||
1063 | CA_CacheGrChunk (STARTFONT + 1); | ||
1064 | VWB_DrawPic (0, 0, HIGHSCORESPIC); | ||
1065 | |||
1066 | fontnumber = 1; | ||
1067 | #endif | ||
1068 | |||
1069 | |||
1070 | #ifndef SPEAR | ||
1071 | SETFONTCOLOR (15, 0x29); | ||
1072 | #else | ||
1073 | SETFONTCOLOR (HIGHLIGHT, 0x29); | ||
1074 | #endif | ||
1075 | |||
1076 | for (i = 0, s = Scores; i < MaxScores; i++, s++) | ||
1077 | { | ||
1078 | PrintY = 76 + (16 * i); | ||
1079 | |||
1080 | // | ||
1081 | // name | ||
1082 | // | ||
1083 | #ifndef SPEAR | ||
1084 | PrintX = 4 * 8; | ||
1085 | #else | ||
1086 | PrintX = 16; | ||
1087 | #endif | ||
1088 | US_Print (s->name); | ||
1089 | |||
1090 | // | ||
1091 | // level | ||
1092 | // | ||
1093 | itoa (s->completed, buffer, 10); | ||
1094 | #ifndef SPEAR | ||
1095 | for (str = buffer; *str; str++) | ||
1096 | *str = *str + (129 - '0'); // Used fixed-width numbers (129...) | ||
1097 | USL_MeasureString (buffer, &w, &h); | ||
1098 | PrintX = (22 * 8) - w; | ||
1099 | #else | ||
1100 | USL_MeasureString (buffer, &w, &h); | ||
1101 | PrintX = 194 - w; | ||
1102 | #endif | ||
1103 | |||
1104 | #ifndef UPLOAD | ||
1105 | #ifndef SPEAR | ||
1106 | PrintX -= 6; | ||
1107 | itoa (s->episode + 1, buffer1, 10); | ||
1108 | US_Print ("E"); | ||
1109 | US_Print (buffer1); | ||
1110 | US_Print ("/L"); | ||
1111 | #endif | ||
1112 | #endif | ||
1113 | |||
1114 | #ifdef SPEAR | ||
1115 | if (s->completed == 21) | ||
1116 | VWB_DrawPic (PrintX + 8, PrintY - 1, C_WONSPEARPIC); | ||
1117 | else | ||
1118 | #endif | ||
1119 | US_Print (buffer); | ||
1120 | |||
1121 | // | ||
1122 | // score | ||
1123 | // | ||
1124 | itoa (s->score, buffer, 10); | ||
1125 | #ifndef SPEAR | ||
1126 | for (str = buffer; *str; str++) | ||
1127 | *str = *str + (129 - '0'); // Used fixed-width numbers (129...) | ||
1128 | USL_MeasureString (buffer, &w, &h); | ||
1129 | PrintX = (34 * 8) - 8 - w; | ||
1130 | #else | ||
1131 | USL_MeasureString (buffer, &w, &h); | ||
1132 | PrintX = 292 - w; | ||
1133 | #endif | ||
1134 | US_Print (buffer); | ||
1135 | |||
1136 | #ifdef APOGEE_1_0 | ||
1137 | //#ifndef UPLOAD | ||
1138 | #ifndef SPEAR | ||
1139 | // | ||
1140 | // verification # | ||
1141 | // | ||
1142 | if (!i) | ||
1143 | { | ||
1144 | char temp = (((s->score >> 28) & 0xf) ^ ((s->score >> 24) & 0xf)) + 'A'; | ||
1145 | char temp1 = (((s->score >> 20) & 0xf) ^ ((s->score >> 16) & 0xf)) + 'A'; | ||
1146 | char temp2 = (((s->score >> 12) & 0xf) ^ ((s->score >> 8) & 0xf)) + 'A'; | ||
1147 | char temp3 = (((s->score >> 4) & 0xf) ^ ((s->score >> 0) & 0xf)) + 'A'; | ||
1148 | |||
1149 | SETFONTCOLOR (0x49, 0x29); | ||
1150 | PrintX = 35 * 8; | ||
1151 | buffer[0] = temp; | ||
1152 | buffer[1] = temp1; | ||
1153 | buffer[2] = temp2; | ||
1154 | buffer[3] = temp3; | ||
1155 | buffer[4] = 0; | ||
1156 | US_Print (buffer); | ||
1157 | SETFONTCOLOR (15, 0x29); | ||
1158 | } | ||
1159 | #endif | ||
1160 | //#endif | ||
1161 | #endif | ||
1162 | } | ||
1163 | |||
1164 | VW_UpdateScreen (); | ||
1165 | |||
1166 | #ifdef SPEAR | ||
1167 | UnCacheLump (HIGHSCORES_LUMP_START, HIGHSCORES_LUMP_END); | ||
1168 | fontnumber = 0; | ||
1169 | #endif | ||
1170 | } | ||
1171 | |||
1172 | //=========================================================================== | ||
1173 | |||
1174 | |||
1175 | /* | ||
1176 | ======================= | ||
1177 | = | ||
1178 | = CheckHighScore | ||
1179 | = | ||
1180 | ======================= | ||
1181 | */ | ||
1182 | |||
1183 | void | ||
1184 | CheckHighScore (int32_t score, word other) | ||
1185 | { | ||
1186 | word i, j; | ||
1187 | int n; | ||
1188 | HighScore myscore; | ||
1189 | |||
1190 | strcpy (myscore.name, ""); | ||
1191 | myscore.score = score; | ||
1192 | myscore.episode = gamestate.episode; | ||
1193 | myscore.completed = other; | ||
1194 | |||
1195 | for (i = 0, n = -1; i < MaxScores; i++) | ||
1196 | { | ||
1197 | if ((myscore.score > Scores[i].score) | ||
1198 | || ((myscore.score == Scores[i].score) && (myscore.completed > Scores[i].completed))) | ||
1199 | { | ||
1200 | for (j = MaxScores; --j > i;) | ||
1201 | Scores[j] = Scores[j - 1]; | ||
1202 | Scores[i] = myscore; | ||
1203 | n = i; | ||
1204 | break; | ||
1205 | } | ||
1206 | } | ||
1207 | |||
1208 | #ifdef SPEAR | ||
1209 | StartCPMusic (XAWARD_MUS); | ||
1210 | #else | ||
1211 | StartCPMusic (ROSTER_MUS); | ||
1212 | #endif | ||
1213 | DrawHighScores (); | ||
1214 | |||
1215 | VW_FadeIn (); | ||
1216 | |||
1217 | if (n != -1) | ||
1218 | { | ||
1219 | // | ||
1220 | // got a high score | ||
1221 | // | ||
1222 | PrintY = 76 + (16 * n); | ||
1223 | #ifndef SPEAR | ||
1224 | PrintX = 4 * 8; | ||
1225 | backcolor = BORDCOLOR; | ||
1226 | fontcolor = 15; | ||
1227 | US_LineInput (PrintX, PrintY, Scores[n].name, 0, true, MaxHighName, 100); | ||
1228 | #else | ||
1229 | PrintX = 16; | ||
1230 | fontnumber = 1; | ||
1231 | VWB_Bar (PrintX - 2, PrintY - 2, 145, 15, 0x9c); | ||
1232 | VW_UpdateScreen (); | ||
1233 | backcolor = 0x9c; | ||
1234 | fontcolor = 15; | ||
1235 | US_LineInput (PrintX, PrintY, Scores[n].name, 0, true, MaxHighName, 130); | ||
1236 | #endif | ||
1237 | } | ||
1238 | else | ||
1239 | { | ||
1240 | IN_ClearKeysDown (); | ||
1241 | IN_UserInput (500); | ||
1242 | } | ||
1243 | |||
1244 | } | ||
1245 | |||
1246 | |||
1247 | #ifndef UPLOAD | ||
1248 | #ifndef SPEAR | ||
1249 | #ifndef JAPAN | ||
1250 | //////////////////////////////////////////////////////// | ||
1251 | // | ||
1252 | // NON-SHAREWARE NOTICE | ||
1253 | // | ||
1254 | //////////////////////////////////////////////////////// | ||
1255 | void | ||
1256 | NonShareware (void) | ||
1257 | { | ||
1258 | VW_FadeOut (); | ||
1259 | |||
1260 | ClearMScreen (); | ||
1261 | DrawStripes (10); | ||
1262 | |||
1263 | CA_CacheGrChunk (STARTFONT + 1); | ||
1264 | fontnumber = 1; | ||
1265 | |||
1266 | SETFONTCOLOR (READHCOLOR, BKGDCOLOR); | ||
1267 | PrintX = 110; | ||
1268 | PrintY = 15; | ||
1269 | |||
1270 | #ifdef SPANISH | ||
1271 | US_Print ("Atencion"); | ||
1272 | #else | ||
1273 | US_Print ("Attention"); | ||
1274 | #endif | ||
1275 | |||
1276 | SETFONTCOLOR (HIGHLIGHT, BKGDCOLOR); | ||
1277 | WindowX = PrintX = 40; | ||
1278 | PrintY = 60; | ||
1279 | #ifdef SPANISH | ||
1280 | US_Print ("Este juego NO es gratis y\n"); | ||
1281 | US_Print ("NO es Shareware; favor de\n"); | ||
1282 | US_Print ("no distribuirlo.\n\n"); | ||
1283 | #else | ||
1284 | US_Print ("This game is NOT shareware.\n"); | ||
1285 | US_Print ("Please do not distribute it.\n"); | ||
1286 | US_Print ("Thanks.\n\n"); | ||
1287 | #endif | ||
1288 | US_Print (" Id Software\n"); | ||
1289 | |||
1290 | VW_UpdateScreen (); | ||
1291 | VW_FadeIn (); | ||
1292 | IN_Ack (); | ||
1293 | } | ||
1294 | #endif | ||
1295 | #endif | ||
1296 | #endif | ||
1297 | |||
1298 | #ifdef SPEAR | ||
1299 | #ifndef GOODTIMES | ||
1300 | #ifndef SPEARDEMO | ||
1301 | //////////////////////////////////////////////////////// | ||
1302 | // | ||
1303 | // COPY PROTECTION FOR FormGen | ||
1304 | // | ||
1305 | //////////////////////////////////////////////////////// | ||
1306 | char CopyProFailedStrs[][100] = { | ||
1307 | STR_COPY1, | ||
1308 | STR_COPY2, | ||
1309 | |||
1310 | STR_COPY3, | ||
1311 | STR_COPY4, | ||
1312 | |||
1313 | STR_COPY5, | ||
1314 | STR_COPY6, | ||
1315 | |||
1316 | STR_COPY7, | ||
1317 | STR_COPY8, | ||
1318 | |||
1319 | STR_COPY9, | ||
1320 | "", | ||
1321 | |||
1322 | STR_COPY10, | ||
1323 | STR_COPY11, | ||
1324 | |||
1325 | STR_COPY12, | ||
1326 | "", | ||
1327 | |||
1328 | STR_COPY13, | ||
1329 | "", | ||
1330 | |||
1331 | STR_COPY14, | ||
1332 | "" | ||
1333 | }; | ||
1334 | |||
1335 | char BackDoorStrs[5][16] = { | ||
1336 | "a spoon?", | ||
1337 | "bite me!", | ||
1338 | "joshua", | ||
1339 | "pelt", | ||
1340 | "snoops" | ||
1341 | }; | ||
1342 | |||
1343 | char GoodBoyStrs[10][40] = { | ||
1344 | "...is the CORRECT ANSWER!", | ||
1345 | "", | ||
1346 | |||
1347 | "Consider yourself bitten, sir.", | ||
1348 | "", | ||
1349 | |||
1350 | "Greetings Professor Falken, would you", | ||
1351 | "like to play Spear of Destiny?", | ||
1352 | |||
1353 | "Do you have any gold spray paint?", | ||
1354 | "", | ||
1355 | |||
1356 | "I wish I had a 21\" monitor...", | ||
1357 | "" | ||
1358 | }; | ||
1359 | |||
1360 | char bossstrs[4][24] = { | ||
1361 | "DEATH KNIGHT", | ||
1362 | "BARNACLE WILHELM", | ||
1363 | "UBERMUTANTUBER MUTANT", | ||
1364 | "TRANS GROSSE" | ||
1365 | }; | ||
1366 | |||
1367 | char WordStr[5][20] = { | ||
1368 | "New Game", | ||
1369 | "Sound...F4", | ||
1370 | "Control...F6", | ||
1371 | "Change View...F5", | ||
1372 | "Quit...F10" | ||
1373 | }; | ||
1374 | |||
1375 | char WordCorrect[5][2] = { "3", "4", "4", "5", "5" }; | ||
1376 | |||
1377 | char MemberStr[10][40] = { | ||
1378 | STR_COPY15, | ||
1379 | "", | ||
1380 | |||
1381 | STR_COPY16, | ||
1382 | "", | ||
1383 | |||
1384 | STR_COPY17, | ||
1385 | STR_COPY18, | ||
1386 | |||
1387 | STR_COPY19, | ||
1388 | STR_COPY20, | ||
1389 | |||
1390 | STR_COPY21, | ||
1391 | STR_COPY22 | ||
1392 | }; | ||
1393 | |||
1394 | char MemberCorrect[5][24] = { | ||
1395 | "adrian carmack", | ||
1396 | "john carmackjohn romero", | ||
1397 | "tom hall", | ||
1398 | "jay wilbur", | ||
1399 | "kevin cloud" | ||
1400 | }; | ||
1401 | |||
1402 | char DosMessages[9][80] = { | ||
1403 | STR_NOPE1, | ||
1404 | STR_NOPE2, | ||
1405 | STR_NOPE3, | ||
1406 | STR_NOPE4, | ||
1407 | STR_NOPE5, | ||
1408 | STR_NOPE6, | ||
1409 | STR_NOPE7, | ||
1410 | STR_NOPE8, | ||
1411 | STR_NOPE9 | ||
1412 | }; | ||
1413 | |||
1414 | char MiscTitle[4][20] = { | ||
1415 | "BLOOD TEST", | ||
1416 | "STRAIGHT-LACED", | ||
1417 | "QUITE SHAPELY", | ||
1418 | "I AM WHAT I AMMO" | ||
1419 | }; | ||
1420 | |||
1421 | char MiscStr[12][40] = { | ||
1422 | STR_MISC1, | ||
1423 | STR_MISC2, | ||
1424 | "", | ||
1425 | |||
1426 | STR_MISC3, | ||
1427 | STR_MISC4, | ||
1428 | "", | ||
1429 | |||
1430 | STR_MISC5, | ||
1431 | STR_MISC6, | ||
1432 | "", | ||
1433 | |||
1434 | STR_MISC7, | ||
1435 | STR_MISC8, | ||
1436 | STR_MISC9 | ||
1437 | }; | ||
1438 | |||
1439 | char MiscCorrect[4][5] = { "ss", "8", STR_STAR, "45" }; | ||
1440 | |||
1441 | |||
1442 | int | ||
1443 | BackDoor (char *s) | ||
1444 | { | ||
1445 | for (int i = 0; i < 5; i++) | ||
1446 | { | ||
1447 | if (!strcasecmp (s, BackDoorStrs[i])) | ||
1448 | { | ||
1449 | SETFONTCOLOR (14, 15); | ||
1450 | fontnumber = 0; | ||
1451 | PrintY = 175; | ||
1452 | VWB_DrawPic (0, 20 * 8, COPYPROTBOXPIC); | ||
1453 | US_CPrint (GoodBoyStrs[i * 2]); | ||
1454 | US_CPrint (GoodBoyStrs[i * 2 + 1]); | ||
1455 | VW_UpdateScreen (); | ||
1456 | return 1; | ||
1457 | } | ||
1458 | } | ||
1459 | |||
1460 | return 0; | ||
1461 | } | ||
1462 | |||
1463 | |||
1464 | void | ||
1465 | CopyProtection (void) | ||
1466 | { | ||
1467 | #define TYPEBOX_Y 177 | ||
1468 | #define TYPEBOX_BKGD 0x9c | ||
1469 | #define PRINTCOLOR HIGHLIGHT | ||
1470 | |||
1471 | unsigned i; | ||
1472 | int match, whichboss, bossnum, attempt, whichline; | ||
1473 | int enemypicked[4] = { 0, 0, 0, 0 }; | ||
1474 | int bosses[4] = { BOSSPIC1PIC, BOSSPIC2PIC, BOSSPIC3PIC, BOSSPIC4PIC }; | ||
1475 | int whichpicked[4] = { 0, 0, 0, 0 }; | ||
1476 | int whichone, quiztype, whichmem, whichword; | ||
1477 | int memberpicked[5] = { 0, 0, 0, 0, 0 }; | ||
1478 | int wordpicked[5] = { 0, 0, 0, 0, 0 }; | ||
1479 | |||
1480 | char inputbuffer[20]; | ||
1481 | char message[80]; | ||
1482 | |||
1483 | enum | ||
1484 | { | ||
1485 | debriefing, | ||
1486 | checkmanual, | ||
1487 | staffquiz, | ||
1488 | miscquiz, | ||
1489 | |||
1490 | totaltypes | ||
1491 | }; | ||
1492 | |||
1493 | |||
1494 | |||
1495 | attempt = 0; | ||
1496 | VW_FadeOut (); | ||
1497 | CA_CacheGrChunk (C_BACKDROPPIC); | ||
1498 | CacheLump (COPYPROT_LUMP_START, COPYPROT_LUMP_END); | ||
1499 | CA_CacheGrChunk (STARTFONT + 1); | ||
1500 | CA_LoadAllSounds (); | ||
1501 | StartCPMusic (COPYPRO_MUS); | ||
1502 | US_InitRndT (true); | ||
1503 | |||
1504 | while (attempt < 3) | ||
1505 | { | ||
1506 | fontnumber = 1; | ||
1507 | SETFONTCOLOR (PRINTCOLOR - 2, 15); | ||
1508 | VWB_DrawPic (0, 0, C_BACKDROPPIC); | ||
1509 | VWB_DrawPic (0, 0, COPYPROTTOPPIC); | ||
1510 | VWB_DrawPic (0, 20 * 8, COPYPROTBOXPIC); | ||
1511 | WindowX = WindowY = 0; | ||
1512 | WindowW = 320; | ||
1513 | WindowH = 200; | ||
1514 | PrintY = 65; | ||
1515 | |||
1516 | quiztype = US_RndT () % totaltypes; | ||
1517 | switch (quiztype) | ||
1518 | { | ||
1519 | // | ||
1520 | // BOSSES QUIZ | ||
1521 | // | ||
1522 | case debriefing: | ||
1523 | { | ||
1524 | PrintX = 0; | ||
1525 | US_Print (STR_DEBRIEF); | ||
1526 | SETFONTCOLOR (PRINTCOLOR, 15); | ||
1527 | |||
1528 | while (enemypicked[whichboss = US_RndT () & 3]); | ||
1529 | enemypicked[whichboss] = 1; | ||
1530 | bossnum = bosses[whichboss]; | ||
1531 | VWB_DrawPic (128, 60, bossnum); | ||
1532 | fontnumber = 0; | ||
1533 | PrintY = 130; | ||
1534 | US_CPrint (STR_ENEMY1 "\n"); | ||
1535 | US_CPrint (STR_ENEMY2 "\n\n"); | ||
1536 | |||
1537 | VW_UpdateScreen (); | ||
1538 | VW_FadeIn (); | ||
1539 | |||
1540 | PrintX = 100; | ||
1541 | fontcolor = 15; | ||
1542 | backcolor = TYPEBOX_BKGD; | ||
1543 | inputbuffer[0] = 0; | ||
1544 | PrintY = TYPEBOX_Y; | ||
1545 | fontnumber = 1; | ||
1546 | US_LineInput (PrintX, PrintY, inputbuffer, 0, true, 20, 100); | ||
1547 | |||
1548 | match = 0; | ||
1549 | size_t inputlen = strlen(inputbuffer); | ||
1550 | if(inputlen > 3) | ||
1551 | { | ||
1552 | size_t bosslen = strlen(bossstrs[whichboss]); | ||
1553 | for (i = 0; i < bosslen; i++) | ||
1554 | { | ||
1555 | if (!strncasecmp (inputbuffer, bossstrs[whichboss] + i, inputlen)) | ||
1556 | { | ||
1557 | match = 1; | ||
1558 | break; | ||
1559 | } | ||
1560 | } | ||
1561 | } | ||
1562 | |||
1563 | match += BackDoor (inputbuffer); | ||
1564 | break; | ||
1565 | } | ||
1566 | |||
1567 | // | ||
1568 | // MANUAL CHECK | ||
1569 | // | ||
1570 | case checkmanual: | ||
1571 | { | ||
1572 | while (wordpicked[whichword = US_RndT () % 5]); | ||
1573 | wordpicked[whichword] = 1; | ||
1574 | US_CPrint (STR_CHECKMAN); | ||
1575 | SETFONTCOLOR (PRINTCOLOR, 15); | ||
1576 | PrintY += 25; | ||
1577 | US_CPrint (STR_MAN1); | ||
1578 | US_CPrint (STR_MAN2); | ||
1579 | sprintf(message, STR_MAN3 " \"%s\" " STR_MAN4, WordStr[whichword]); | ||
1580 | US_CPrint (message); | ||
1581 | VW_UpdateScreen (); | ||
1582 | VW_FadeIn (); | ||
1583 | |||
1584 | PrintX = 146; | ||
1585 | fontcolor = 15; | ||
1586 | backcolor = TYPEBOX_BKGD; | ||
1587 | inputbuffer[0] = 0; | ||
1588 | PrintY = TYPEBOX_Y; | ||
1589 | US_LineInput (PrintX, PrintY, inputbuffer, 0, true, 6, 100); | ||
1590 | |||
1591 | match = 1 - (strcasecmp (inputbuffer, WordCorrect[whichword]) != 0); | ||
1592 | match += BackDoor (inputbuffer); | ||
1593 | break; | ||
1594 | } | ||
1595 | |||
1596 | // | ||
1597 | // STAFF QUIZ | ||
1598 | // | ||
1599 | case staffquiz: | ||
1600 | { | ||
1601 | while (memberpicked[whichmem = US_RndT () % 5]); | ||
1602 | memberpicked[whichmem] = 1; | ||
1603 | US_CPrint (STR_ID1); | ||
1604 | SETFONTCOLOR (PRINTCOLOR, 15); | ||
1605 | PrintY += 25; | ||
1606 | US_CPrint (MemberStr[whichmem * 2]); | ||
1607 | US_CPrint (MemberStr[whichmem * 2 + 1]); | ||
1608 | VW_UpdateScreen (); | ||
1609 | VW_FadeIn (); | ||
1610 | |||
1611 | PrintX = 100; | ||
1612 | fontcolor = 15; | ||
1613 | backcolor = TYPEBOX_BKGD; | ||
1614 | inputbuffer[0] = 0; | ||
1615 | PrintY = TYPEBOX_Y; | ||
1616 | US_LineInput (PrintX, PrintY, inputbuffer, 0, true, 20, 120); | ||
1617 | |||
1618 | match = 0; | ||
1619 | size_t inputlen = strlen(inputbuffer); | ||
1620 | if(inputlen > 2) | ||
1621 | { | ||
1622 | size_t memberlen = strlen(MemberCorrect[whichmem]); | ||
1623 | for (i = 0; i < memberlen; i++) | ||
1624 | { | ||
1625 | if (!strncasecmp (inputbuffer, MemberCorrect[whichmem] + i, inputlen)) | ||
1626 | { | ||
1627 | match = 1; | ||
1628 | break; | ||
1629 | } | ||
1630 | } | ||
1631 | } | ||
1632 | |||
1633 | match += BackDoor (inputbuffer); | ||
1634 | break; | ||
1635 | } | ||
1636 | |||
1637 | // | ||
1638 | // MISCELLANEOUS QUESTIONS | ||
1639 | // | ||
1640 | case miscquiz: | ||
1641 | { | ||
1642 | while (whichpicked[whichone = US_RndT () & 3]); | ||
1643 | whichpicked[whichone] = 1; | ||
1644 | US_CPrint (MiscTitle[whichone]); | ||
1645 | SETFONTCOLOR (PRINTCOLOR, 15); | ||
1646 | PrintY += 25; | ||
1647 | US_CPrint (MiscStr[whichone * 3]); | ||
1648 | US_CPrint (MiscStr[whichone * 3 + 1]); | ||
1649 | US_CPrint (MiscStr[whichone * 3 + 2]); | ||
1650 | VW_UpdateScreen (); | ||
1651 | VW_FadeIn (); | ||
1652 | |||
1653 | PrintX = 146; | ||
1654 | fontcolor = 15; | ||
1655 | backcolor = TYPEBOX_BKGD; | ||
1656 | inputbuffer[0] = 0; | ||
1657 | PrintY = TYPEBOX_Y; | ||
1658 | US_LineInput (PrintX, PrintY, inputbuffer, 0, true, 6, 100); | ||
1659 | |||
1660 | match = 1 - (strcasecmp (inputbuffer, MiscCorrect[whichone]) != 0); | ||
1661 | match += BackDoor (inputbuffer); | ||
1662 | break; | ||
1663 | } | ||
1664 | } | ||
1665 | |||
1666 | // | ||
1667 | // IF NO MATCH, WE'VE GOT A (MINOR) PROBLEM! | ||
1668 | // | ||
1669 | |||
1670 | if (!match) | ||
1671 | { | ||
1672 | whichline = 2 * (US_RndT () % 9); | ||
1673 | SETFONTCOLOR (14, 15); | ||
1674 | fontnumber = 0; | ||
1675 | PrintY = 175; | ||
1676 | VWB_DrawPic (0, 20 * 8, COPYPROTBOXPIC); | ||
1677 | US_CPrint (CopyProFailedStrs[whichline]); | ||
1678 | US_CPrint (CopyProFailedStrs[whichline + 1]); | ||
1679 | |||
1680 | VW_UpdateScreen (); | ||
1681 | SD_PlaySound (NOWAYSND); | ||
1682 | IN_UserInput (TickBase * 6); | ||
1683 | VW_FadeOut (); | ||
1684 | attempt++; | ||
1685 | } | ||
1686 | else | ||
1687 | { | ||
1688 | int start; | ||
1689 | |||
1690 | SD_PlaySound (BONUS1UPSND); | ||
1691 | SD_WaitSoundDone (); | ||
1692 | UNCACHEGRCHUNK (STARTFONT + 1); | ||
1693 | UNCACHEGRCHUNK (C_BACKDROPPIC); | ||
1694 | UnCacheLump (COPYPROT_LUMP_START, COPYPROT_LUMP_END); | ||
1695 | |||
1696 | switch (SoundMode) | ||
1697 | { | ||
1698 | case sdm_Off: | ||
1699 | return; | ||
1700 | case sdm_PC: | ||
1701 | start = STARTPCSOUNDS; | ||
1702 | break; | ||
1703 | case sdm_AdLib: | ||
1704 | start = STARTADLIBSOUNDS; | ||
1705 | } | ||
1706 | |||
1707 | /* for (i=0;i<NUMSOUNDS;i++,start++) | ||
1708 | MM_FreePtr ((memptr *)&audiosegs[start]); */ | ||
1709 | return; | ||
1710 | } | ||
1711 | } | ||
1712 | |||
1713 | ClearMemory (); | ||
1714 | ShutdownId (); | ||
1715 | |||
1716 | printf ("%s\n", DosMessages[US_RndT () % 9]); | ||
1717 | exit (1); | ||
1718 | } | ||
1719 | |||
1720 | #endif // SPEARDEMO | ||
1721 | #endif // GOODTIMES | ||
1722 | #endif // SPEAR | ||
1723 | //=========================================================================== | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_main.c b/apps/plugins/sdl/progs/wolf3d/wl_main.c new file mode 100644 index 0000000000..e78274cbac --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_main.c | |||
@@ -0,0 +1,1953 @@ | |||
1 | // WL_MAIN.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | #include "wl_atmos.h" | ||
6 | #include <SDL_syswm.h> | ||
7 | |||
8 | |||
9 | /* | ||
10 | ============================================================================= | ||
11 | |||
12 | WOLFENSTEIN 3-D | ||
13 | |||
14 | An Id Software production | ||
15 | |||
16 | by John Carmack | ||
17 | |||
18 | ============================================================================= | ||
19 | */ | ||
20 | |||
21 | extern byte signon[]; | ||
22 | |||
23 | /* | ||
24 | ============================================================================= | ||
25 | |||
26 | LOCAL CONSTANTS | ||
27 | |||
28 | ============================================================================= | ||
29 | */ | ||
30 | |||
31 | |||
32 | #define FOCALLENGTH (0x5700l) // in global coordinates | ||
33 | #define VIEWGLOBAL 0x10000 // globals visable flush to wall | ||
34 | |||
35 | #define VIEWWIDTH 256 // size of view window | ||
36 | #define VIEWHEIGHT 144 | ||
37 | |||
38 | /* | ||
39 | ============================================================================= | ||
40 | |||
41 | GLOBAL VARIABLES | ||
42 | |||
43 | ============================================================================= | ||
44 | */ | ||
45 | |||
46 | char str[80]; | ||
47 | int dirangle[9] = {0,ANGLES/8,2*ANGLES/8,3*ANGLES/8,4*ANGLES/8, | ||
48 | 5*ANGLES/8,6*ANGLES/8,7*ANGLES/8,ANGLES}; | ||
49 | |||
50 | // | ||
51 | // proejection variables | ||
52 | // | ||
53 | fixed focallength; | ||
54 | unsigned screenofs; | ||
55 | int viewscreenx, viewscreeny; | ||
56 | int viewwidth; | ||
57 | int viewheight; | ||
58 | short centerx; | ||
59 | int shootdelta; // pixels away from centerx a target can be | ||
60 | fixed scale; | ||
61 | int32_t heightnumerator; | ||
62 | |||
63 | |||
64 | void Quit (const char *error,...); | ||
65 | |||
66 | boolean startgame; | ||
67 | boolean loadedgame; | ||
68 | int mouseadjustment; | ||
69 | |||
70 | char configdir[256] = ""; | ||
71 | char configname[13] = "config."; | ||
72 | |||
73 | // | ||
74 | // Command line parameter variables | ||
75 | // | ||
76 | boolean param_debugmode = false; | ||
77 | boolean param_nowait = false; | ||
78 | int param_difficulty = 1; // default is "normal" | ||
79 | int param_tedlevel = -1; // default is not to start a level | ||
80 | int param_joystickindex = 0; | ||
81 | |||
82 | #if defined(_arch_dreamcast) | ||
83 | int param_joystickhat = 0; | ||
84 | int param_samplerate = 11025; // higher samplerates result in "out of memory" | ||
85 | int param_audiobuffer = 4096 / (44100 / param_samplerate); | ||
86 | #elif defined(GP2X_940) | ||
87 | int param_joystickhat = -1; | ||
88 | int param_samplerate = 11025; // higher samplerates result in "out of memory" | ||
89 | int param_audiobuffer = 128; | ||
90 | #else | ||
91 | int param_joystickhat = -1; | ||
92 | int param_samplerate = RB_SAMPR; | ||
93 | int param_audiobuffer = 2048 / (44100 / RB_SAMPR); | ||
94 | #endif | ||
95 | |||
96 | int param_mission = 0; | ||
97 | boolean param_goodtimes = false; | ||
98 | boolean param_ignorenumchunks = false; | ||
99 | |||
100 | /* | ||
101 | ============================================================================= | ||
102 | |||
103 | LOCAL VARIABLES | ||
104 | |||
105 | ============================================================================= | ||
106 | */ | ||
107 | |||
108 | |||
109 | /* | ||
110 | ==================== | ||
111 | = | ||
112 | = ReadConfig | ||
113 | = | ||
114 | ==================== | ||
115 | */ | ||
116 | |||
117 | void ReadConfig(void) | ||
118 | { | ||
119 | SDMode sd; | ||
120 | SMMode sm; | ||
121 | SDSMode sds; | ||
122 | |||
123 | char configpath[300]; | ||
124 | |||
125 | #ifdef _arch_dreamcast | ||
126 | DC_LoadFromVMU(configname); | ||
127 | #endif | ||
128 | |||
129 | if(configdir[0]) | ||
130 | snprintf(configpath, sizeof(configpath), "%s/%s", configdir, configname); | ||
131 | else | ||
132 | strcpy(configpath, configname); | ||
133 | |||
134 | const int file = open(configpath, O_RDONLY | O_BINARY); | ||
135 | if (file >= 0) | ||
136 | { | ||
137 | // | ||
138 | // valid config file | ||
139 | // | ||
140 | word tmp; | ||
141 | read(file,&tmp,sizeof(tmp)); | ||
142 | if(tmp!=0xfefa) | ||
143 | { | ||
144 | close(file); | ||
145 | goto noconfig; | ||
146 | } | ||
147 | read(file,Scores,sizeof(HighScore) * MaxScores); | ||
148 | |||
149 | read(file,&sd,sizeof(sd)); | ||
150 | read(file,&sm,sizeof(sm)); | ||
151 | read(file,&sds,sizeof(sds)); | ||
152 | |||
153 | read(file,&mouseenabled,sizeof(mouseenabled)); | ||
154 | read(file,&joystickenabled,sizeof(joystickenabled)); | ||
155 | boolean dummyJoypadEnabled; | ||
156 | read(file,&dummyJoypadEnabled,sizeof(dummyJoypadEnabled)); | ||
157 | boolean dummyJoystickProgressive; | ||
158 | read(file,&dummyJoystickProgressive,sizeof(dummyJoystickProgressive)); | ||
159 | int dummyJoystickPort = 0; | ||
160 | read(file,&dummyJoystickPort,sizeof(dummyJoystickPort)); | ||
161 | |||
162 | read(file,dirscan,sizeof(dirscan)); | ||
163 | read(file,buttonscan,sizeof(buttonscan)); | ||
164 | read(file,buttonmouse,sizeof(buttonmouse)); | ||
165 | read(file,buttonjoy,sizeof(buttonjoy)); | ||
166 | |||
167 | read(file,&viewsize,sizeof(viewsize)); | ||
168 | read(file,&mouseadjustment,sizeof(mouseadjustment)); | ||
169 | |||
170 | close(file); | ||
171 | |||
172 | /* hack to always enable sound */ | ||
173 | sd = sdm_AdLib; | ||
174 | sm = smm_AdLib; | ||
175 | |||
176 | sds = sds_SoundBlaster; | ||
177 | |||
178 | // make sure values are correct | ||
179 | |||
180 | if(mouseenabled) mouseenabled=true; | ||
181 | if(joystickenabled) joystickenabled=true; | ||
182 | |||
183 | if (!MousePresent) | ||
184 | mouseenabled = false; | ||
185 | if (!IN_JoyPresent()) | ||
186 | joystickenabled = false; | ||
187 | |||
188 | if(mouseadjustment<0) mouseadjustment=0; | ||
189 | else if(mouseadjustment>9) mouseadjustment=9; | ||
190 | |||
191 | if(viewsize<4) viewsize=4; | ||
192 | else if(viewsize>21) viewsize=21; | ||
193 | |||
194 | MainMenu[6].active=1; | ||
195 | MainItems.curpos=0; | ||
196 | } | ||
197 | else | ||
198 | { | ||
199 | // | ||
200 | // no config file, so select by hardware | ||
201 | // | ||
202 | noconfig: | ||
203 | // always -FW19 | ||
204 | sd = sdm_AdLib; | ||
205 | sm = smm_AdLib; | ||
206 | |||
207 | sds = sds_SoundBlaster; | ||
208 | |||
209 | if (MousePresent) | ||
210 | mouseenabled = true; | ||
211 | |||
212 | if (IN_JoyPresent()) | ||
213 | joystickenabled = true; | ||
214 | |||
215 | viewsize = 19; // start with a good size | ||
216 | mouseadjustment=5; | ||
217 | } | ||
218 | |||
219 | SD_SetMusicMode (sm); | ||
220 | SD_SetSoundMode (sd); | ||
221 | SD_SetDigiDevice (sds); | ||
222 | } | ||
223 | |||
224 | /* | ||
225 | ==================== | ||
226 | = | ||
227 | = WriteConfig | ||
228 | = | ||
229 | ==================== | ||
230 | */ | ||
231 | |||
232 | void WriteConfig(void) | ||
233 | { | ||
234 | char configpath[300]; | ||
235 | |||
236 | #ifdef _arch_dreamcast | ||
237 | fs_unlink(configname); | ||
238 | #endif | ||
239 | |||
240 | if(configdir[0]) | ||
241 | snprintf(configpath, sizeof(configpath), "%s/%s", configdir, configname); | ||
242 | else | ||
243 | strcpy(configpath, configname); | ||
244 | |||
245 | const int file = open(configpath, O_CREAT | O_WRONLY | O_BINARY, 0644); | ||
246 | if (file != -1) | ||
247 | { | ||
248 | word tmp=0xfefa; | ||
249 | write(file,&tmp,sizeof(tmp)); | ||
250 | write(file,Scores,sizeof(HighScore) * MaxScores); | ||
251 | |||
252 | write(file,&SoundMode,sizeof(SoundMode)); | ||
253 | write(file,&MusicMode,sizeof(MusicMode)); | ||
254 | write(file,&DigiMode,sizeof(DigiMode)); | ||
255 | |||
256 | write(file,&mouseenabled,sizeof(mouseenabled)); | ||
257 | write(file,&joystickenabled,sizeof(joystickenabled)); | ||
258 | boolean dummyJoypadEnabled = false; | ||
259 | write(file,&dummyJoypadEnabled,sizeof(dummyJoypadEnabled)); | ||
260 | boolean dummyJoystickProgressive = false; | ||
261 | write(file,&dummyJoystickProgressive,sizeof(dummyJoystickProgressive)); | ||
262 | int dummyJoystickPort = 0; | ||
263 | write(file,&dummyJoystickPort,sizeof(dummyJoystickPort)); | ||
264 | |||
265 | write(file,dirscan,sizeof(dirscan)); | ||
266 | write(file,buttonscan,sizeof(buttonscan)); | ||
267 | write(file,buttonmouse,sizeof(buttonmouse)); | ||
268 | write(file,buttonjoy,sizeof(buttonjoy)); | ||
269 | |||
270 | write(file,&viewsize,sizeof(viewsize)); | ||
271 | write(file,&mouseadjustment,sizeof(mouseadjustment)); | ||
272 | |||
273 | close(file); | ||
274 | } | ||
275 | #ifdef _arch_dreamcast | ||
276 | DC_SaveToVMU(configname, NULL); | ||
277 | #endif | ||
278 | } | ||
279 | |||
280 | |||
281 | //=========================================================================== | ||
282 | |||
283 | /* | ||
284 | ===================== | ||
285 | = | ||
286 | = NewGame | ||
287 | = | ||
288 | = Set up new game to start from the beginning | ||
289 | = | ||
290 | ===================== | ||
291 | */ | ||
292 | |||
293 | void NewGame (int difficulty,int episode) | ||
294 | { | ||
295 | memset (&gamestate,0,sizeof(gamestate)); | ||
296 | gamestate.difficulty = difficulty; | ||
297 | gamestate.weapon = gamestate.bestweapon | ||
298 | = gamestate.chosenweapon = wp_pistol; | ||
299 | gamestate.health = 100; | ||
300 | gamestate.ammo = STARTAMMO; | ||
301 | gamestate.lives = 3; | ||
302 | gamestate.nextextra = EXTRAPOINTS; | ||
303 | gamestate.episode=episode; | ||
304 | |||
305 | startgame = true; | ||
306 | } | ||
307 | |||
308 | //=========================================================================== | ||
309 | |||
310 | void DiskFlopAnim(int x,int y) | ||
311 | { | ||
312 | static int8_t which=0; | ||
313 | if (!x && !y) | ||
314 | return; | ||
315 | VWB_DrawPic(x,y,C_DISKLOADING1PIC+which); | ||
316 | VW_UpdateScreen(); | ||
317 | which^=1; | ||
318 | } | ||
319 | |||
320 | |||
321 | int32_t DoChecksum(byte *source,unsigned size,int32_t checksum) | ||
322 | { | ||
323 | unsigned i; | ||
324 | |||
325 | for (i=0;i<size-1;i++) | ||
326 | checksum += source[i]^source[i+1]; | ||
327 | |||
328 | return checksum; | ||
329 | } | ||
330 | |||
331 | |||
332 | /* | ||
333 | ================== | ||
334 | = | ||
335 | = SaveTheGame | ||
336 | = | ||
337 | ================== | ||
338 | */ | ||
339 | |||
340 | extern statetype s_grdstand; | ||
341 | extern statetype s_player; | ||
342 | |||
343 | boolean SaveTheGame(FILE *file,int x,int y) | ||
344 | { | ||
345 | // struct diskfree_t dfree; | ||
346 | // int32_t avail,size,checksum; | ||
347 | int checksum; | ||
348 | objtype *ob; | ||
349 | objtype nullobj; | ||
350 | statobj_t nullstat; | ||
351 | |||
352 | /* if (_dos_getdiskfree(0,&dfree)) | ||
353 | Quit("Error in _dos_getdiskfree call"); | ||
354 | |||
355 | avail = (int32_t)dfree.avail_clusters * | ||
356 | dfree.bytes_per_sector * | ||
357 | dfree.sectors_per_cluster; | ||
358 | |||
359 | size = 0; | ||
360 | for (ob = player; ob ; ob=ob->next) | ||
361 | size += sizeof(*ob); | ||
362 | size += sizeof(nullobj); | ||
363 | |||
364 | size += sizeof(gamestate) + | ||
365 | sizeof(LRstruct)*LRpack + | ||
366 | sizeof(tilemap) + | ||
367 | sizeof(actorat) + | ||
368 | sizeof(laststatobj) + | ||
369 | sizeof(statobjlist) + | ||
370 | sizeof(doorposition) + | ||
371 | sizeof(pwallstate) + | ||
372 | sizeof(pwalltile) + | ||
373 | sizeof(pwallx) + | ||
374 | sizeof(pwally) + | ||
375 | sizeof(pwalldir) + | ||
376 | sizeof(pwallpos); | ||
377 | |||
378 | if (avail < size) | ||
379 | { | ||
380 | Message(STR_NOSPACE1"\n"STR_NOSPACE2); | ||
381 | return false; | ||
382 | }*/ | ||
383 | |||
384 | checksum = 0; | ||
385 | |||
386 | DiskFlopAnim(x,y); | ||
387 | fwrite(&gamestate,sizeof(gamestate),1,file); | ||
388 | checksum = DoChecksum((byte *)&gamestate,sizeof(gamestate),checksum); | ||
389 | |||
390 | DiskFlopAnim(x,y); | ||
391 | fwrite(&LevelRatios[0],sizeof(LRstruct)*LRpack,1,file); | ||
392 | checksum = DoChecksum((byte *)&LevelRatios[0],sizeof(LRstruct)*LRpack,checksum); | ||
393 | |||
394 | DiskFlopAnim(x,y); | ||
395 | fwrite(tilemap,sizeof(tilemap),1,file); | ||
396 | checksum = DoChecksum((byte *)tilemap,sizeof(tilemap),checksum); | ||
397 | DiskFlopAnim(x,y); | ||
398 | |||
399 | int i; | ||
400 | for(i=0;i<MAPSIZE;i++) | ||
401 | { | ||
402 | for(int j=0;j<MAPSIZE;j++) | ||
403 | { | ||
404 | word actnum; | ||
405 | objtype *objptr=actorat[i][j]; | ||
406 | if(ISPOINTER(objptr)) | ||
407 | actnum=0x8000 | (word)(objptr-objlist); | ||
408 | else | ||
409 | actnum=(word)(uintptr_t)objptr; | ||
410 | fwrite(&actnum,sizeof(actnum),1,file); | ||
411 | checksum = DoChecksum((byte *)&actnum,sizeof(actnum),checksum); | ||
412 | } | ||
413 | } | ||
414 | |||
415 | fwrite (areaconnect,sizeof(areaconnect),1,file); | ||
416 | fwrite (areabyplayer,sizeof(areabyplayer),1,file); | ||
417 | |||
418 | // player object needs special treatment as it's in WL_AGENT.CPP and not in | ||
419 | // WL_ACT2.CPP which could cause problems for the relative addressing | ||
420 | |||
421 | ob = player; | ||
422 | DiskFlopAnim(x,y); | ||
423 | memcpy(&nullobj,ob,sizeof(nullobj)); | ||
424 | nullobj.state=(statetype *) ((uintptr_t)nullobj.state-(uintptr_t)&s_player); | ||
425 | fwrite(&nullobj,sizeof(nullobj),1,file); | ||
426 | ob = ob->next; | ||
427 | |||
428 | DiskFlopAnim(x,y); | ||
429 | for (; ob ; ob=ob->next) | ||
430 | { | ||
431 | memcpy(&nullobj,ob,sizeof(nullobj)); | ||
432 | nullobj.state=(statetype *) ((uintptr_t)nullobj.state-(uintptr_t)&s_grdstand); | ||
433 | fwrite(&nullobj,sizeof(nullobj),1,file); | ||
434 | } | ||
435 | nullobj.active = ac_badobject; // end of file marker | ||
436 | DiskFlopAnim(x,y); | ||
437 | fwrite(&nullobj,sizeof(nullobj),1,file); | ||
438 | |||
439 | DiskFlopAnim(x,y); | ||
440 | word laststatobjnum=(word) (laststatobj-statobjlist); | ||
441 | fwrite(&laststatobjnum,sizeof(laststatobjnum),1,file); | ||
442 | checksum = DoChecksum((byte *)&laststatobjnum,sizeof(laststatobjnum),checksum); | ||
443 | |||
444 | DiskFlopAnim(x,y); | ||
445 | for(i=0;i<MAXSTATS;i++) | ||
446 | { | ||
447 | memcpy(&nullstat,statobjlist+i,sizeof(nullstat)); | ||
448 | nullstat.visspot=(byte *) ((uintptr_t) nullstat.visspot-(uintptr_t)spotvis); | ||
449 | fwrite(&nullstat,sizeof(nullstat),1,file); | ||
450 | checksum = DoChecksum((byte *)&nullstat,sizeof(nullstat),checksum); | ||
451 | } | ||
452 | |||
453 | DiskFlopAnim(x,y); | ||
454 | fwrite (doorposition,sizeof(doorposition),1,file); | ||
455 | checksum = DoChecksum((byte *)doorposition,sizeof(doorposition),checksum); | ||
456 | DiskFlopAnim(x,y); | ||
457 | fwrite (doorobjlist,sizeof(doorobjlist),1,file); | ||
458 | checksum = DoChecksum((byte *)doorobjlist,sizeof(doorobjlist),checksum); | ||
459 | |||
460 | DiskFlopAnim(x,y); | ||
461 | fwrite (&pwallstate,sizeof(pwallstate),1,file); | ||
462 | checksum = DoChecksum((byte *)&pwallstate,sizeof(pwallstate),checksum); | ||
463 | fwrite (&pwalltile,sizeof(pwalltile),1,file); | ||
464 | checksum = DoChecksum((byte *)&pwalltile,sizeof(pwalltile),checksum); | ||
465 | fwrite (&pwallx,sizeof(pwallx),1,file); | ||
466 | checksum = DoChecksum((byte *)&pwallx,sizeof(pwallx),checksum); | ||
467 | fwrite (&pwally,sizeof(pwally),1,file); | ||
468 | checksum = DoChecksum((byte *)&pwally,sizeof(pwally),checksum); | ||
469 | fwrite (&pwalldir,sizeof(pwalldir),1,file); | ||
470 | checksum = DoChecksum((byte *)&pwalldir,sizeof(pwalldir),checksum); | ||
471 | fwrite (&pwallpos,sizeof(pwallpos),1,file); | ||
472 | checksum = DoChecksum((byte *)&pwallpos,sizeof(pwallpos),checksum); | ||
473 | |||
474 | // | ||
475 | // WRITE OUT CHECKSUM | ||
476 | // | ||
477 | fwrite (&checksum,sizeof(checksum),1,file); | ||
478 | |||
479 | fwrite (&lastgamemusicoffset,sizeof(lastgamemusicoffset),1,file); | ||
480 | |||
481 | return(true); | ||
482 | } | ||
483 | |||
484 | //=========================================================================== | ||
485 | |||
486 | /* | ||
487 | ================== | ||
488 | = | ||
489 | = LoadTheGame | ||
490 | = | ||
491 | ================== | ||
492 | */ | ||
493 | |||
494 | boolean LoadTheGame(FILE *file,int x,int y) | ||
495 | { | ||
496 | int32_t checksum,oldchecksum; | ||
497 | objtype nullobj; | ||
498 | statobj_t nullstat; | ||
499 | |||
500 | checksum = 0; | ||
501 | |||
502 | DiskFlopAnim(x,y); | ||
503 | fread (&gamestate,sizeof(gamestate),1,file); | ||
504 | checksum = DoChecksum((byte *)&gamestate,sizeof(gamestate),checksum); | ||
505 | |||
506 | DiskFlopAnim(x,y); | ||
507 | fread (&LevelRatios[0],sizeof(LRstruct)*LRpack,1,file); | ||
508 | checksum = DoChecksum((byte *)&LevelRatios[0],sizeof(LRstruct)*LRpack,checksum); | ||
509 | |||
510 | DiskFlopAnim(x,y); | ||
511 | SetupGameLevel (); | ||
512 | |||
513 | DiskFlopAnim(x,y); | ||
514 | fread (tilemap,sizeof(tilemap),1,file); | ||
515 | checksum = DoChecksum((byte *)tilemap,sizeof(tilemap),checksum); | ||
516 | |||
517 | DiskFlopAnim(x,y); | ||
518 | |||
519 | int actnum=0, i; | ||
520 | for(i=0;i<MAPSIZE;i++) | ||
521 | { | ||
522 | for(int j=0;j<MAPSIZE;j++) | ||
523 | { | ||
524 | fread (&actnum,sizeof(word),1,file); | ||
525 | checksum = DoChecksum((byte *) &actnum,sizeof(word),checksum); | ||
526 | if(actnum&0x8000) | ||
527 | actorat[i][j]=objlist+(actnum&0x7fff); | ||
528 | else | ||
529 | actorat[i][j]=(objtype *)(uintptr_t) actnum; | ||
530 | } | ||
531 | } | ||
532 | |||
533 | fread (areaconnect,sizeof(areaconnect),1,file); | ||
534 | fread (areabyplayer,sizeof(areabyplayer),1,file); | ||
535 | |||
536 | InitActorList (); | ||
537 | DiskFlopAnim(x,y); | ||
538 | fread (player,sizeof(*player),1,file); | ||
539 | player->state=(statetype *) ((uintptr_t)player->state+(uintptr_t)&s_player); | ||
540 | |||
541 | while (1) | ||
542 | { | ||
543 | DiskFlopAnim(x,y); | ||
544 | fread (&nullobj,sizeof(nullobj),1,file); | ||
545 | if (nullobj.active == ac_badobject) | ||
546 | break; | ||
547 | GetNewActor (); | ||
548 | nullobj.state=(statetype *) ((uintptr_t)nullobj.state+(uintptr_t)&s_grdstand); | ||
549 | // don't copy over the links | ||
550 | memcpy (newobj,&nullobj,sizeof(nullobj)-8); | ||
551 | } | ||
552 | |||
553 | DiskFlopAnim(x,y); | ||
554 | word laststatobjnum; | ||
555 | fread (&laststatobjnum,sizeof(laststatobjnum),1,file); | ||
556 | laststatobj=statobjlist+laststatobjnum; | ||
557 | checksum = DoChecksum((byte *)&laststatobjnum,sizeof(laststatobjnum),checksum); | ||
558 | |||
559 | DiskFlopAnim(x,y); | ||
560 | for(i=0;i<MAXSTATS;i++) | ||
561 | { | ||
562 | fread(&nullstat,sizeof(nullstat),1,file); | ||
563 | checksum = DoChecksum((byte *)&nullstat,sizeof(nullstat),checksum); | ||
564 | nullstat.visspot=(byte *) ((uintptr_t)nullstat.visspot+(uintptr_t)spotvis); | ||
565 | memcpy(statobjlist+i,&nullstat,sizeof(nullstat)); | ||
566 | } | ||
567 | |||
568 | DiskFlopAnim(x,y); | ||
569 | fread (doorposition,sizeof(doorposition),1,file); | ||
570 | checksum = DoChecksum((byte *)doorposition,sizeof(doorposition),checksum); | ||
571 | DiskFlopAnim(x,y); | ||
572 | fread (doorobjlist,sizeof(doorobjlist),1,file); | ||
573 | checksum = DoChecksum((byte *)doorobjlist,sizeof(doorobjlist),checksum); | ||
574 | |||
575 | DiskFlopAnim(x,y); | ||
576 | fread (&pwallstate,sizeof(pwallstate),1,file); | ||
577 | checksum = DoChecksum((byte *)&pwallstate,sizeof(pwallstate),checksum); | ||
578 | fread (&pwalltile,sizeof(pwalltile),1,file); | ||
579 | checksum = DoChecksum((byte *)&pwalltile,sizeof(pwalltile),checksum); | ||
580 | fread (&pwallx,sizeof(pwallx),1,file); | ||
581 | checksum = DoChecksum((byte *)&pwallx,sizeof(pwallx),checksum); | ||
582 | fread (&pwally,sizeof(pwally),1,file); | ||
583 | checksum = DoChecksum((byte *)&pwally,sizeof(pwally),checksum); | ||
584 | fread (&pwalldir,sizeof(pwalldir),1,file); | ||
585 | checksum = DoChecksum((byte *)&pwalldir,sizeof(pwalldir),checksum); | ||
586 | fread (&pwallpos,sizeof(pwallpos),1,file); | ||
587 | checksum = DoChecksum((byte *)&pwallpos,sizeof(pwallpos),checksum); | ||
588 | |||
589 | if (gamestate.secretcount) // assign valid floorcodes under moved pushwalls | ||
590 | { | ||
591 | word *map, *obj; word tile, sprite; | ||
592 | map = mapsegs[0]; obj = mapsegs[1]; | ||
593 | for (y=0;y<mapheight;y++) | ||
594 | for (x=0;x<mapwidth;x++) | ||
595 | { | ||
596 | tile = *map++; sprite = *obj++; | ||
597 | if (sprite == PUSHABLETILE && !tilemap[x][y] | ||
598 | && (tile < AREATILE || tile >= (AREATILE+NUMMAPS))) | ||
599 | { | ||
600 | if (*map >= AREATILE) | ||
601 | tile = *map; | ||
602 | if (*(map-1-mapwidth) >= AREATILE) | ||
603 | tile = *(map-1-mapwidth); | ||
604 | if (*(map-1+mapwidth) >= AREATILE) | ||
605 | tile = *(map-1+mapwidth); | ||
606 | if ( *(map-2) >= AREATILE) | ||
607 | tile = *(map-2); | ||
608 | |||
609 | *(map-1) = tile; *(obj-1) = 0; | ||
610 | } | ||
611 | } | ||
612 | } | ||
613 | |||
614 | Thrust(0,0); // set player->areanumber to the floortile you're standing on | ||
615 | |||
616 | fread (&oldchecksum,sizeof(oldchecksum),1,file); | ||
617 | |||
618 | fread (&lastgamemusicoffset,sizeof(lastgamemusicoffset),1,file); | ||
619 | if(lastgamemusicoffset<0) lastgamemusicoffset=0; | ||
620 | |||
621 | |||
622 | if (oldchecksum != checksum) | ||
623 | { | ||
624 | Message(STR_SAVECHT1"\n" | ||
625 | STR_SAVECHT2"\n" | ||
626 | STR_SAVECHT3"\n" | ||
627 | STR_SAVECHT4); | ||
628 | |||
629 | IN_ClearKeysDown(); | ||
630 | IN_Ack(); | ||
631 | |||
632 | gamestate.oldscore = gamestate.score = 0; | ||
633 | gamestate.lives = 1; | ||
634 | gamestate.weapon = | ||
635 | gamestate.chosenweapon = | ||
636 | gamestate.bestweapon = wp_pistol; | ||
637 | gamestate.ammo = 8; | ||
638 | } | ||
639 | |||
640 | return true; | ||
641 | } | ||
642 | |||
643 | //=========================================================================== | ||
644 | |||
645 | /* | ||
646 | ========================== | ||
647 | = | ||
648 | = ShutdownId | ||
649 | = | ||
650 | = Shuts down all ID_?? managers | ||
651 | = | ||
652 | ========================== | ||
653 | */ | ||
654 | |||
655 | void ShutdownId (void) | ||
656 | { | ||
657 | US_Shutdown (); // This line is completely useless... | ||
658 | SD_Shutdown (); | ||
659 | PM_Shutdown (); | ||
660 | IN_Shutdown (); | ||
661 | VW_Shutdown (); | ||
662 | CA_Shutdown (); | ||
663 | #if defined(GP2X_940) | ||
664 | GP2X_Shutdown(); | ||
665 | #endif | ||
666 | } | ||
667 | |||
668 | |||
669 | //=========================================================================== | ||
670 | |||
671 | /* | ||
672 | ================== | ||
673 | = | ||
674 | = BuildTables | ||
675 | = | ||
676 | = Calculates: | ||
677 | = | ||
678 | = scale projection constant | ||
679 | = sintable/costable overlapping fractional tables | ||
680 | = | ||
681 | ================== | ||
682 | */ | ||
683 | |||
684 | const float radtoint = (float)(FINEANGLES/2/PI); | ||
685 | |||
686 | void BuildTables (void) | ||
687 | { | ||
688 | // | ||
689 | // calculate fine tangents | ||
690 | // | ||
691 | |||
692 | int i; | ||
693 | for(i=0;i<FINEANGLES/8;i++) | ||
694 | { | ||
695 | double tang=tan((i+0.5)/radtoint); | ||
696 | finetangent[i]=(int32_t)(tang*GLOBAL1); | ||
697 | finetangent[FINEANGLES/4-1-i]=(int32_t)((1/tang)*GLOBAL1); | ||
698 | } | ||
699 | |||
700 | // | ||
701 | // costable overlays sintable with a quarter phase shift | ||
702 | // ANGLES is assumed to be divisable by four | ||
703 | // | ||
704 | |||
705 | float angle=0; | ||
706 | float anglestep=(float)(PI/2/ANGLEQUAD); | ||
707 | for(i=0; i<ANGLEQUAD; i++) | ||
708 | { | ||
709 | fixed value=(int32_t)(GLOBAL1*sin(angle)); | ||
710 | sintable[i]=sintable[i+ANGLES]=sintable[ANGLES/2-i]=value; | ||
711 | sintable[ANGLES-i]=sintable[ANGLES/2+i]=-value; | ||
712 | angle+=anglestep; | ||
713 | } | ||
714 | sintable[ANGLEQUAD] = 65536; | ||
715 | sintable[3*ANGLEQUAD] = -65536; | ||
716 | |||
717 | #if defined(USE_STARSKY) || defined(USE_RAIN) || defined(USE_SNOW) | ||
718 | Init3DPoints(); | ||
719 | #endif | ||
720 | } | ||
721 | |||
722 | //=========================================================================== | ||
723 | |||
724 | |||
725 | /* | ||
726 | ==================== | ||
727 | = | ||
728 | = CalcProjection | ||
729 | = | ||
730 | = Uses focallength | ||
731 | = | ||
732 | ==================== | ||
733 | */ | ||
734 | |||
735 | void CalcProjection (int32_t focal) | ||
736 | { | ||
737 | int i; | ||
738 | int intang; | ||
739 | float angle; | ||
740 | double tang; | ||
741 | int halfview; | ||
742 | double facedist; | ||
743 | |||
744 | focallength = focal; | ||
745 | facedist = focal+MINDIST; | ||
746 | halfview = viewwidth/2; // half view in pixels | ||
747 | |||
748 | // | ||
749 | // calculate scale value for vertical height calculations | ||
750 | // and sprite x calculations | ||
751 | // | ||
752 | scale = (fixed) (halfview*facedist/(VIEWGLOBAL/2)); | ||
753 | |||
754 | // | ||
755 | // divide heightnumerator by a posts distance to get the posts height for | ||
756 | // the heightbuffer. The pixel height is height>>2 | ||
757 | // | ||
758 | heightnumerator = (TILEGLOBAL*scale)>>6; | ||
759 | |||
760 | // | ||
761 | // calculate the angle offset from view angle of each pixel's ray | ||
762 | // | ||
763 | |||
764 | for (i=0;i<halfview;i++) | ||
765 | { | ||
766 | // start 1/2 pixel over, so viewangle bisects two middle pixels | ||
767 | tang = (int32_t)i*VIEWGLOBAL/viewwidth/facedist; | ||
768 | angle = (float) atan(tang); | ||
769 | intang = (int) (angle*radtoint); | ||
770 | pixelangle[halfview-1-i] = intang; | ||
771 | pixelangle[halfview+i] = -intang; | ||
772 | } | ||
773 | } | ||
774 | |||
775 | |||
776 | |||
777 | //=========================================================================== | ||
778 | |||
779 | /* | ||
780 | =================== | ||
781 | = | ||
782 | = SetupWalls | ||
783 | = | ||
784 | = Map tile values to scaled pics | ||
785 | = | ||
786 | =================== | ||
787 | */ | ||
788 | |||
789 | void SetupWalls (void) | ||
790 | { | ||
791 | int i; | ||
792 | |||
793 | horizwall[0]=0; | ||
794 | vertwall[0]=0; | ||
795 | |||
796 | for (i=1;i<MAXWALLTILES;i++) | ||
797 | { | ||
798 | horizwall[i]=(i-1)*2; | ||
799 | vertwall[i]=(i-1)*2+1; | ||
800 | } | ||
801 | } | ||
802 | |||
803 | //=========================================================================== | ||
804 | |||
805 | /* | ||
806 | ========================== | ||
807 | = | ||
808 | = SignonScreen | ||
809 | = | ||
810 | ========================== | ||
811 | */ | ||
812 | |||
813 | void SignonScreen (void) // VGA version | ||
814 | { | ||
815 | VL_SetVGAPlaneMode (); | ||
816 | |||
817 | VL_MungePic (signon,320,200); | ||
818 | VL_MemToScreen (signon,320,200,0,0); | ||
819 | } | ||
820 | |||
821 | |||
822 | /* | ||
823 | ========================== | ||
824 | = | ||
825 | = FinishSignon | ||
826 | = | ||
827 | ========================== | ||
828 | */ | ||
829 | |||
830 | void FinishSignon (void) | ||
831 | { | ||
832 | #ifndef SPEAR | ||
833 | VW_Bar (0,189,300,11,VL_GetPixel(0,0)); | ||
834 | WindowX = 0; | ||
835 | WindowW = 320; | ||
836 | PrintY = 190; | ||
837 | |||
838 | #ifndef JAPAN | ||
839 | SETFONTCOLOR(14,4); | ||
840 | |||
841 | #ifdef SPANISH | ||
842 | US_CPrint ("Oprima una tecla"); | ||
843 | #else | ||
844 | US_CPrint ("Press a key"); | ||
845 | #endif | ||
846 | |||
847 | #endif | ||
848 | |||
849 | VH_UpdateScreen(); | ||
850 | |||
851 | if (!param_nowait) | ||
852 | IN_Ack (); | ||
853 | |||
854 | #ifndef JAPAN | ||
855 | VW_Bar (0,189,300,11,VL_GetPixel(0,0)); | ||
856 | |||
857 | PrintY = 190; | ||
858 | SETFONTCOLOR(10,4); | ||
859 | |||
860 | #ifdef SPANISH | ||
861 | US_CPrint ("pensando..."); | ||
862 | #else | ||
863 | US_CPrint ("Working..."); | ||
864 | #endif | ||
865 | |||
866 | VH_UpdateScreen(); | ||
867 | #endif | ||
868 | |||
869 | SETFONTCOLOR(0,15); | ||
870 | #else | ||
871 | VH_UpdateScreen(); | ||
872 | |||
873 | if (!param_nowait) | ||
874 | VW_WaitVBL(3*70); | ||
875 | #endif | ||
876 | } | ||
877 | |||
878 | //=========================================================================== | ||
879 | |||
880 | /* | ||
881 | ===================== | ||
882 | = | ||
883 | = InitDigiMap | ||
884 | = | ||
885 | ===================== | ||
886 | */ | ||
887 | |||
888 | // channel mapping: | ||
889 | // -1: any non reserved channel | ||
890 | // 0: player weapons | ||
891 | // 1: boss weapons | ||
892 | |||
893 | static int wolfdigimap[] = | ||
894 | { | ||
895 | // These first sounds are in the upload version | ||
896 | #ifndef SPEAR | ||
897 | HALTSND, 0, -1, | ||
898 | DOGBARKSND, 1, -1, | ||
899 | CLOSEDOORSND, 2, -1, | ||
900 | OPENDOORSND, 3, -1, | ||
901 | ATKMACHINEGUNSND, 4, 0, | ||
902 | ATKPISTOLSND, 5, 0, | ||
903 | ATKGATLINGSND, 6, 0, | ||
904 | SCHUTZADSND, 7, -1, | ||
905 | GUTENTAGSND, 8, -1, | ||
906 | MUTTISND, 9, -1, | ||
907 | BOSSFIRESND, 10, 1, | ||
908 | SSFIRESND, 11, -1, | ||
909 | DEATHSCREAM1SND, 12, -1, | ||
910 | DEATHSCREAM2SND, 13, -1, | ||
911 | DEATHSCREAM3SND, 13, -1, | ||
912 | TAKEDAMAGESND, 14, -1, | ||
913 | PUSHWALLSND, 15, -1, | ||
914 | |||
915 | LEBENSND, 20, -1, | ||
916 | NAZIFIRESND, 21, -1, | ||
917 | SLURPIESND, 22, -1, | ||
918 | |||
919 | YEAHSND, 32, -1, | ||
920 | |||
921 | #ifndef UPLOAD | ||
922 | // These are in all other episodes | ||
923 | DOGDEATHSND, 16, -1, | ||
924 | AHHHGSND, 17, -1, | ||
925 | DIESND, 18, -1, | ||
926 | EVASND, 19, -1, | ||
927 | |||
928 | TOT_HUNDSND, 23, -1, | ||
929 | MEINGOTTSND, 24, -1, | ||
930 | SCHABBSHASND, 25, -1, | ||
931 | HITLERHASND, 26, -1, | ||
932 | SPIONSND, 27, -1, | ||
933 | NEINSOVASSND, 28, -1, | ||
934 | DOGATTACKSND, 29, -1, | ||
935 | LEVELDONESND, 30, -1, | ||
936 | MECHSTEPSND, 31, -1, | ||
937 | |||
938 | SCHEISTSND, 33, -1, | ||
939 | DEATHSCREAM4SND, 34, -1, // AIIEEE | ||
940 | DEATHSCREAM5SND, 35, -1, // DEE-DEE | ||
941 | DONNERSND, 36, -1, // EPISODE 4 BOSS DIE | ||
942 | EINESND, 37, -1, // EPISODE 4 BOSS SIGHTING | ||
943 | ERLAUBENSND, 38, -1, // EPISODE 6 BOSS SIGHTING | ||
944 | DEATHSCREAM6SND, 39, -1, // FART | ||
945 | DEATHSCREAM7SND, 40, -1, // GASP | ||
946 | DEATHSCREAM8SND, 41, -1, // GUH-BOY! | ||
947 | DEATHSCREAM9SND, 42, -1, // AH GEEZ! | ||
948 | KEINSND, 43, -1, // EPISODE 5 BOSS SIGHTING | ||
949 | MEINSND, 44, -1, // EPISODE 6 BOSS DIE | ||
950 | ROSESND, 45, -1, // EPISODE 5 BOSS DIE | ||
951 | |||
952 | #endif | ||
953 | #else | ||
954 | // | ||
955 | // SPEAR OF DESTINY DIGISOUNDS | ||
956 | // | ||
957 | HALTSND, 0, -1, | ||
958 | CLOSEDOORSND, 2, -1, | ||
959 | OPENDOORSND, 3, -1, | ||
960 | ATKMACHINEGUNSND, 4, 0, | ||
961 | ATKPISTOLSND, 5, 0, | ||
962 | ATKGATLINGSND, 6, 0, | ||
963 | SCHUTZADSND, 7, -1, | ||
964 | BOSSFIRESND, 8, 1, | ||
965 | SSFIRESND, 9, -1, | ||
966 | DEATHSCREAM1SND, 10, -1, | ||
967 | DEATHSCREAM2SND, 11, -1, | ||
968 | TAKEDAMAGESND, 12, -1, | ||
969 | PUSHWALLSND, 13, -1, | ||
970 | AHHHGSND, 15, -1, | ||
971 | LEBENSND, 16, -1, | ||
972 | NAZIFIRESND, 17, -1, | ||
973 | SLURPIESND, 18, -1, | ||
974 | LEVELDONESND, 22, -1, | ||
975 | DEATHSCREAM4SND, 23, -1, // AIIEEE | ||
976 | DEATHSCREAM3SND, 23, -1, // DOUBLY-MAPPED!!! | ||
977 | DEATHSCREAM5SND, 24, -1, // DEE-DEE | ||
978 | DEATHSCREAM6SND, 25, -1, // FART | ||
979 | DEATHSCREAM7SND, 26, -1, // GASP | ||
980 | DEATHSCREAM8SND, 27, -1, // GUH-BOY! | ||
981 | DEATHSCREAM9SND, 28, -1, // AH GEEZ! | ||
982 | GETGATLINGSND, 38, -1, // Got Gat replacement | ||
983 | |||
984 | #ifndef SPEARDEMO | ||
985 | DOGBARKSND, 1, -1, | ||
986 | DOGDEATHSND, 14, -1, | ||
987 | SPIONSND, 19, -1, | ||
988 | NEINSOVASSND, 20, -1, | ||
989 | DOGATTACKSND, 21, -1, | ||
990 | TRANSSIGHTSND, 29, -1, // Trans Sight | ||
991 | TRANSDEATHSND, 30, -1, // Trans Death | ||
992 | WILHELMSIGHTSND, 31, -1, // Wilhelm Sight | ||
993 | WILHELMDEATHSND, 32, -1, // Wilhelm Death | ||
994 | UBERDEATHSND, 33, -1, // Uber Death | ||
995 | KNIGHTSIGHTSND, 34, -1, // Death Knight Sight | ||
996 | KNIGHTDEATHSND, 35, -1, // Death Knight Death | ||
997 | ANGELSIGHTSND, 36, -1, // Angel Sight | ||
998 | ANGELDEATHSND, 37, -1, // Angel Death | ||
999 | GETSPEARSND, 39, -1, // Got Spear replacement | ||
1000 | #endif | ||
1001 | #endif | ||
1002 | LASTSOUND | ||
1003 | }; | ||
1004 | |||
1005 | |||
1006 | void InitDigiMap (void) | ||
1007 | { | ||
1008 | int *map; | ||
1009 | |||
1010 | int i = 0; | ||
1011 | for (map = wolfdigimap; *map != LASTSOUND; map += 3) | ||
1012 | { | ||
1013 | rb->splashf(0, "Preparing sounds (%d/%d)", ++i, ARRAYLEN(wolfdigimap)/3); | ||
1014 | DigiMap[map[0]] = map[1]; | ||
1015 | DigiChannel[map[1]] = map[2]; | ||
1016 | SD_PrepareSound(map[1]); | ||
1017 | rb->yield(); | ||
1018 | } | ||
1019 | } | ||
1020 | |||
1021 | #ifndef SPEAR | ||
1022 | CP_iteminfo MusicItems={CTL_X,CTL_Y,6,0,32}; | ||
1023 | CP_itemtype MusicMenu[]= | ||
1024 | { | ||
1025 | {1,"Get Them!",0}, | ||
1026 | {1,"Searching",0}, | ||
1027 | {1,"P.O.W.",0}, | ||
1028 | {1,"Suspense",0}, | ||
1029 | {1,"War March",0}, | ||
1030 | {1,"Around The Corner!",0}, | ||
1031 | |||
1032 | {1,"Nazi Anthem",0}, | ||
1033 | {1,"Lurking...",0}, | ||
1034 | {1,"Going After Hitler",0}, | ||
1035 | {1,"Pounding Headache",0}, | ||
1036 | {1,"Into the Dungeons",0}, | ||
1037 | {1,"Ultimate Conquest",0}, | ||
1038 | |||
1039 | {1,"Kill the S.O.B.",0}, | ||
1040 | {1,"The Nazi Rap",0}, | ||
1041 | {1,"Twelfth Hour",0}, | ||
1042 | {1,"Zero Hour",0}, | ||
1043 | {1,"Ultimate Conquest",0}, | ||
1044 | {1,"Wolfpack",0} | ||
1045 | }; | ||
1046 | #else | ||
1047 | CP_iteminfo MusicItems={CTL_X,CTL_Y-20,9,0,32}; | ||
1048 | CP_itemtype MusicMenu[]= | ||
1049 | { | ||
1050 | {1,"Funky Colonel Bill",0}, | ||
1051 | {1,"Death To The Nazis",0}, | ||
1052 | {1,"Tiptoeing Around",0}, | ||
1053 | {1,"Is This THE END?",0}, | ||
1054 | {1,"Evil Incarnate",0}, | ||
1055 | {1,"Jazzin' Them Nazis",0}, | ||
1056 | {1,"Puttin' It To The Enemy",0}, | ||
1057 | {1,"The SS Gonna Get You",0}, | ||
1058 | {1,"Towering Above",0} | ||
1059 | }; | ||
1060 | #endif | ||
1061 | |||
1062 | #ifndef SPEARDEMO | ||
1063 | void DoJukebox(void) | ||
1064 | { | ||
1065 | int which,lastsong=-1; | ||
1066 | unsigned start; | ||
1067 | unsigned songs[]= | ||
1068 | { | ||
1069 | #ifndef SPEAR | ||
1070 | GETTHEM_MUS, | ||
1071 | SEARCHN_MUS, | ||
1072 | POW_MUS, | ||
1073 | SUSPENSE_MUS, | ||
1074 | WARMARCH_MUS, | ||
1075 | CORNER_MUS, | ||
1076 | |||
1077 | NAZI_OMI_MUS, | ||
1078 | PREGNANT_MUS, | ||
1079 | GOINGAFT_MUS, | ||
1080 | HEADACHE_MUS, | ||
1081 | DUNGEON_MUS, | ||
1082 | ULTIMATE_MUS, | ||
1083 | |||
1084 | INTROCW3_MUS, | ||
1085 | NAZI_RAP_MUS, | ||
1086 | TWELFTH_MUS, | ||
1087 | ZEROHOUR_MUS, | ||
1088 | ULTIMATE_MUS, | ||
1089 | PACMAN_MUS | ||
1090 | #else | ||
1091 | XFUNKIE_MUS, // 0 | ||
1092 | XDEATH_MUS, // 2 | ||
1093 | XTIPTOE_MUS, // 4 | ||
1094 | XTHEEND_MUS, // 7 | ||
1095 | XEVIL_MUS, // 17 | ||
1096 | XJAZNAZI_MUS, // 18 | ||
1097 | XPUTIT_MUS, // 21 | ||
1098 | XGETYOU_MUS, // 22 | ||
1099 | XTOWER2_MUS // 23 | ||
1100 | #endif | ||
1101 | }; | ||
1102 | |||
1103 | IN_ClearKeysDown(); | ||
1104 | if (!AdLibPresent && !SoundBlasterPresent) | ||
1105 | return; | ||
1106 | |||
1107 | MenuFadeOut(); | ||
1108 | |||
1109 | #ifndef SPEAR | ||
1110 | #ifndef UPLOAD | ||
1111 | start = ((SDL_GetTicks()/10)%3)*6; | ||
1112 | #else | ||
1113 | start = 0; | ||
1114 | #endif | ||
1115 | #else | ||
1116 | start = 0; | ||
1117 | #endif | ||
1118 | |||
1119 | CA_CacheGrChunk (STARTFONT+1); | ||
1120 | #ifdef SPEAR | ||
1121 | CacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); | ||
1122 | #else | ||
1123 | CacheLump (CONTROLS_LUMP_START,CONTROLS_LUMP_END); | ||
1124 | #endif | ||
1125 | CA_LoadAllSounds (); | ||
1126 | |||
1127 | fontnumber=1; | ||
1128 | ClearMScreen (); | ||
1129 | VWB_DrawPic(112,184,C_MOUSELBACKPIC); | ||
1130 | DrawStripes (10); | ||
1131 | SETFONTCOLOR (TEXTCOLOR,BKGDCOLOR); | ||
1132 | |||
1133 | #ifndef SPEAR | ||
1134 | DrawWindow (CTL_X-2,CTL_Y-6,280,13*7,BKGDCOLOR); | ||
1135 | #else | ||
1136 | DrawWindow (CTL_X-2,CTL_Y-26,280,13*10,BKGDCOLOR); | ||
1137 | #endif | ||
1138 | |||
1139 | DrawMenu (&MusicItems,&MusicMenu[start]); | ||
1140 | |||
1141 | SETFONTCOLOR (READHCOLOR,BKGDCOLOR); | ||
1142 | PrintY=15; | ||
1143 | WindowX = 0; | ||
1144 | WindowY = 320; | ||
1145 | US_CPrint ("Robert's Jukebox"); | ||
1146 | |||
1147 | SETFONTCOLOR (TEXTCOLOR,BKGDCOLOR); | ||
1148 | VW_UpdateScreen(); | ||
1149 | MenuFadeIn(); | ||
1150 | |||
1151 | do | ||
1152 | { | ||
1153 | which = HandleMenu(&MusicItems,&MusicMenu[start],NULL); | ||
1154 | if (which>=0) | ||
1155 | { | ||
1156 | if (lastsong >= 0) | ||
1157 | MusicMenu[start+lastsong].active = 1; | ||
1158 | |||
1159 | StartCPMusic(songs[start + which]); | ||
1160 | MusicMenu[start+which].active = 2; | ||
1161 | DrawMenu (&MusicItems,&MusicMenu[start]); | ||
1162 | VW_UpdateScreen(); | ||
1163 | lastsong = which; | ||
1164 | } | ||
1165 | } while(which>=0); | ||
1166 | |||
1167 | MenuFadeOut(); | ||
1168 | IN_ClearKeysDown(); | ||
1169 | #ifdef SPEAR | ||
1170 | UnCacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); | ||
1171 | #else | ||
1172 | UnCacheLump (CONTROLS_LUMP_START,CONTROLS_LUMP_END); | ||
1173 | #endif | ||
1174 | } | ||
1175 | #endif | ||
1176 | |||
1177 | /* | ||
1178 | ========================== | ||
1179 | = | ||
1180 | = InitGame | ||
1181 | = | ||
1182 | = Load a few things right away | ||
1183 | = | ||
1184 | ========================== | ||
1185 | */ | ||
1186 | |||
1187 | static void InitGame() | ||
1188 | { | ||
1189 | #ifndef SPEARDEMO | ||
1190 | boolean didjukebox=false; | ||
1191 | #endif | ||
1192 | |||
1193 | // initialize SDL | ||
1194 | #if defined _WIN32 | ||
1195 | putenv("SDL_VIDEODRIVER=directx"); | ||
1196 | #endif | ||
1197 | if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) | ||
1198 | { | ||
1199 | printf("Unable to init SDL: %s\n", SDL_GetError()); | ||
1200 | exit(1); | ||
1201 | } | ||
1202 | |||
1203 | atexit(SDL_Quit); | ||
1204 | |||
1205 | int numJoysticks = SDL_NumJoysticks(); | ||
1206 | if(param_joystickindex && (param_joystickindex < -1 || param_joystickindex >= numJoysticks)) | ||
1207 | { | ||
1208 | if(!numJoysticks) | ||
1209 | printf("No joysticks are available to SDL!\n"); | ||
1210 | else | ||
1211 | printf("The joystick index must be between -1 and %i!\n", numJoysticks - 1); | ||
1212 | exit(1); | ||
1213 | } | ||
1214 | |||
1215 | #if defined(GP2X_940) | ||
1216 | GP2X_MemoryInit(); | ||
1217 | #endif | ||
1218 | |||
1219 | SignonScreen (); | ||
1220 | |||
1221 | #if defined _WIN32 | ||
1222 | if(!fullscreen) | ||
1223 | { | ||
1224 | struct SDL_SysWMinfo wmInfo; | ||
1225 | SDL_VERSION(&wmInfo.version); | ||
1226 | |||
1227 | if(SDL_GetWMInfo(&wmInfo) != -1) | ||
1228 | { | ||
1229 | HWND hwndSDL = wmInfo.window; | ||
1230 | DWORD style = GetWindowLong(hwndSDL, GWL_STYLE) & ~WS_SYSMENU; | ||
1231 | SetWindowLong(hwndSDL, GWL_STYLE, style); | ||
1232 | SetWindowPos(hwndSDL, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); | ||
1233 | } | ||
1234 | } | ||
1235 | #endif | ||
1236 | |||
1237 | VH_Startup (); | ||
1238 | IN_Startup (); | ||
1239 | PM_Startup (); | ||
1240 | SD_Startup (); | ||
1241 | CA_Startup (); | ||
1242 | US_Startup (); | ||
1243 | |||
1244 | // TODO: Will any memory checking be needed someday?? | ||
1245 | #ifdef NOTYET | ||
1246 | #ifndef SPEAR | ||
1247 | if (mminfo.mainmem < 235000L) | ||
1248 | #else | ||
1249 | if (mminfo.mainmem < 257000L && !MS_CheckParm("debugmode")) | ||
1250 | #endif | ||
1251 | { | ||
1252 | byte *screen; | ||
1253 | |||
1254 | CA_CacheGrChunk (ERRORSCREEN); | ||
1255 | screen = grsegs[ERRORSCREEN]; | ||
1256 | ShutdownId(); | ||
1257 | /* memcpy((byte *)0xb8000,screen+7+7*160,17*160); | ||
1258 | gotoxy (1,23);*/ | ||
1259 | exit(1); | ||
1260 | } | ||
1261 | #endif | ||
1262 | |||
1263 | // | ||
1264 | // build some tables | ||
1265 | // | ||
1266 | InitDigiMap (); | ||
1267 | |||
1268 | rb->splash(0, "Reading configuration..."); | ||
1269 | |||
1270 | ReadConfig(); | ||
1271 | |||
1272 | rb->splash(0, "Reading saved games..."); | ||
1273 | |||
1274 | SetupSaveGames(); | ||
1275 | |||
1276 | // | ||
1277 | // HOLDING DOWN 'M' KEY? (Fire for rockbox) | ||
1278 | // | ||
1279 | #ifndef SPEARDEMO | ||
1280 | if (Keyboard[sc_Control]) | ||
1281 | { | ||
1282 | DoJukebox(); | ||
1283 | didjukebox=true; | ||
1284 | } | ||
1285 | else | ||
1286 | #endif | ||
1287 | |||
1288 | // | ||
1289 | // draw intro screen stuff | ||
1290 | // | ||
1291 | IntroScreen (); | ||
1292 | |||
1293 | #ifdef _arch_dreamcast | ||
1294 | //TODO: VMU Selection Screen | ||
1295 | #endif | ||
1296 | |||
1297 | // | ||
1298 | // load in and lock down some basic chunks | ||
1299 | // | ||
1300 | |||
1301 | rb->splash(0, "Loading..."); | ||
1302 | |||
1303 | CA_CacheGrChunk(STARTFONT); | ||
1304 | CA_CacheGrChunk(STATUSBARPIC); | ||
1305 | |||
1306 | LoadLatchMem (); | ||
1307 | BuildTables (); // trig tables | ||
1308 | SetupWalls (); | ||
1309 | |||
1310 | rb->splash(0, "Loading (50%)..."); | ||
1311 | |||
1312 | NewViewSize (viewsize); | ||
1313 | |||
1314 | // | ||
1315 | // initialize variables | ||
1316 | // | ||
1317 | InitRedShifts (); | ||
1318 | #ifndef SPEARDEMO | ||
1319 | if(!didjukebox) | ||
1320 | #endif | ||
1321 | FinishSignon(); | ||
1322 | |||
1323 | #ifdef NOTYET | ||
1324 | vdisp = (byte *) (0xa0000+PAGE1START); | ||
1325 | vbuf = (byte *) (0xa0000+PAGE2START); | ||
1326 | #endif | ||
1327 | } | ||
1328 | |||
1329 | //=========================================================================== | ||
1330 | |||
1331 | /* | ||
1332 | ========================== | ||
1333 | = | ||
1334 | = SetViewSize | ||
1335 | = | ||
1336 | ========================== | ||
1337 | */ | ||
1338 | |||
1339 | boolean SetViewSize (unsigned width, unsigned height) | ||
1340 | { | ||
1341 | viewwidth = width&~15; // must be divisable by 16 | ||
1342 | viewheight = height&~1; // must be even | ||
1343 | centerx = viewwidth/2-1; | ||
1344 | shootdelta = viewwidth/10; | ||
1345 | if((unsigned) viewheight == screenHeight) | ||
1346 | viewscreenx = viewscreeny = screenofs = 0; | ||
1347 | else | ||
1348 | { | ||
1349 | viewscreenx = (screenWidth-viewwidth) / 2; | ||
1350 | viewscreeny = (screenHeight-scaleFactor*STATUSLINES-viewheight)/2; | ||
1351 | screenofs = viewscreeny*screenWidth+viewscreenx; | ||
1352 | } | ||
1353 | |||
1354 | // | ||
1355 | // calculate trace angles and projection constants | ||
1356 | // | ||
1357 | CalcProjection (FOCALLENGTH); | ||
1358 | |||
1359 | return true; | ||
1360 | } | ||
1361 | |||
1362 | |||
1363 | void ShowViewSize (int width) | ||
1364 | { | ||
1365 | int oldwidth,oldheight; | ||
1366 | |||
1367 | oldwidth = viewwidth; | ||
1368 | oldheight = viewheight; | ||
1369 | |||
1370 | if(width == 21) | ||
1371 | { | ||
1372 | viewwidth = screenWidth; | ||
1373 | viewheight = screenHeight; | ||
1374 | VWB_BarScaledCoord (0, 0, screenWidth, screenHeight, 0); | ||
1375 | } | ||
1376 | else if(width == 20) | ||
1377 | { | ||
1378 | viewwidth = screenWidth; | ||
1379 | viewheight = screenHeight - scaleFactor*STATUSLINES; | ||
1380 | DrawPlayBorder (); | ||
1381 | } | ||
1382 | else | ||
1383 | { | ||
1384 | viewwidth = width*16*screenWidth/320; | ||
1385 | viewheight = (int) (width*16*HEIGHTRATIO*screenHeight/200); | ||
1386 | DrawPlayBorder (); | ||
1387 | } | ||
1388 | |||
1389 | viewwidth = oldwidth; | ||
1390 | viewheight = oldheight; | ||
1391 | } | ||
1392 | |||
1393 | |||
1394 | void NewViewSize (int width) | ||
1395 | { | ||
1396 | viewsize = width; | ||
1397 | if(viewsize == 21) | ||
1398 | SetViewSize(screenWidth, screenHeight); | ||
1399 | else if(viewsize == 20) | ||
1400 | SetViewSize(screenWidth, screenHeight - scaleFactor * STATUSLINES); | ||
1401 | else | ||
1402 | SetViewSize(width*16*screenWidth/320, (unsigned) (width*16*HEIGHTRATIO*screenHeight/200)); | ||
1403 | } | ||
1404 | |||
1405 | |||
1406 | |||
1407 | //=========================================================================== | ||
1408 | |||
1409 | /* | ||
1410 | ========================== | ||
1411 | = | ||
1412 | = Quit | ||
1413 | = | ||
1414 | ========================== | ||
1415 | */ | ||
1416 | |||
1417 | void Quit (const char *errorStr, ...) | ||
1418 | { | ||
1419 | #ifdef NOTYET | ||
1420 | byte *screen; | ||
1421 | #endif | ||
1422 | char error[256]; | ||
1423 | if(errorStr != NULL) | ||
1424 | { | ||
1425 | va_list vlist; | ||
1426 | va_start(vlist, errorStr); | ||
1427 | vsprintf(error, errorStr, vlist); | ||
1428 | va_end(vlist); | ||
1429 | rb->splashf(HZ * 4, "FATAL: %s", error); | ||
1430 | } | ||
1431 | else error[0] = 0; | ||
1432 | |||
1433 | if (!pictable) // don't try to display the red box before it's loaded | ||
1434 | { | ||
1435 | ShutdownId(); | ||
1436 | if (error && *error) | ||
1437 | { | ||
1438 | #ifdef NOTYET | ||
1439 | SetTextCursor(0,0); | ||
1440 | #endif | ||
1441 | puts(error); | ||
1442 | #ifdef NOTYET | ||
1443 | SetTextCursor(0,2); | ||
1444 | #endif | ||
1445 | VW_WaitVBL(100); | ||
1446 | } | ||
1447 | exit(1); | ||
1448 | } | ||
1449 | |||
1450 | if (!error || !*error) | ||
1451 | { | ||
1452 | #ifdef NOTYET | ||
1453 | #ifndef JAPAN | ||
1454 | CA_CacheGrChunk (ORDERSCREEN); | ||
1455 | screen = grsegs[ORDERSCREEN]; | ||
1456 | #endif | ||
1457 | #endif | ||
1458 | WriteConfig (); | ||
1459 | } | ||
1460 | #ifdef NOTYET | ||
1461 | else | ||
1462 | { | ||
1463 | CA_CacheGrChunk (ERRORSCREEN); | ||
1464 | screen = grsegs[ERRORSCREEN]; | ||
1465 | } | ||
1466 | #endif | ||
1467 | |||
1468 | ShutdownId (); | ||
1469 | |||
1470 | if (error && *error) | ||
1471 | { | ||
1472 | #ifdef NOTYET | ||
1473 | memcpy((byte *)0xb8000,screen+7,7*160); | ||
1474 | SetTextCursor(9,3); | ||
1475 | #endif | ||
1476 | puts(error); | ||
1477 | #ifdef NOTYET | ||
1478 | SetTextCursor(0,7); | ||
1479 | #endif | ||
1480 | VW_WaitVBL(200); | ||
1481 | exit(1); | ||
1482 | } | ||
1483 | else | ||
1484 | if (!error || !(*error)) | ||
1485 | { | ||
1486 | #ifdef NOTYET | ||
1487 | #ifndef JAPAN | ||
1488 | memcpy((byte *)0xb8000,screen+7,24*160); // 24 for SPEAR/UPLOAD compatibility | ||
1489 | #endif | ||
1490 | SetTextCursor(0,23); | ||
1491 | #endif | ||
1492 | } | ||
1493 | |||
1494 | exit(0); | ||
1495 | } | ||
1496 | |||
1497 | //=========================================================================== | ||
1498 | |||
1499 | |||
1500 | |||
1501 | /* | ||
1502 | ===================== | ||
1503 | = | ||
1504 | = DemoLoop | ||
1505 | = | ||
1506 | ===================== | ||
1507 | */ | ||
1508 | |||
1509 | |||
1510 | static void DemoLoop() | ||
1511 | { | ||
1512 | int LastDemo = 0; | ||
1513 | |||
1514 | // | ||
1515 | // check for launch from ted | ||
1516 | // | ||
1517 | if (param_tedlevel != -1) | ||
1518 | { | ||
1519 | param_nowait = true; | ||
1520 | EnableEndGameMenuItem(); | ||
1521 | NewGame(param_difficulty,0); | ||
1522 | |||
1523 | #ifndef SPEAR | ||
1524 | gamestate.episode = param_tedlevel/10; | ||
1525 | gamestate.mapon = param_tedlevel%10; | ||
1526 | #else | ||
1527 | gamestate.episode = 0; | ||
1528 | gamestate.mapon = param_tedlevel; | ||
1529 | #endif | ||
1530 | GameLoop(); | ||
1531 | Quit (NULL); | ||
1532 | } | ||
1533 | |||
1534 | |||
1535 | // | ||
1536 | // main game cycle | ||
1537 | // | ||
1538 | |||
1539 | #ifndef DEMOTEST | ||
1540 | |||
1541 | #ifndef UPLOAD | ||
1542 | |||
1543 | #ifndef GOODTIMES | ||
1544 | #ifndef SPEAR | ||
1545 | #ifndef JAPAN | ||
1546 | if (!param_nowait) | ||
1547 | NonShareware(); | ||
1548 | #endif | ||
1549 | #else | ||
1550 | #ifndef GOODTIMES | ||
1551 | #ifndef SPEARDEMO | ||
1552 | extern void CopyProtection(void); | ||
1553 | if(!param_goodtimes) | ||
1554 | CopyProtection(); | ||
1555 | #endif | ||
1556 | #endif | ||
1557 | #endif | ||
1558 | #endif | ||
1559 | #endif | ||
1560 | |||
1561 | StartCPMusic(INTROSONG); | ||
1562 | |||
1563 | #ifndef JAPAN | ||
1564 | if (!param_nowait) | ||
1565 | PG13 (); | ||
1566 | #endif | ||
1567 | |||
1568 | #endif | ||
1569 | |||
1570 | while (1) | ||
1571 | { | ||
1572 | while (!param_nowait) | ||
1573 | { | ||
1574 | // | ||
1575 | // title page | ||
1576 | // | ||
1577 | #ifndef DEMOTEST | ||
1578 | |||
1579 | #ifdef SPEAR | ||
1580 | SDL_Color pal[256]; | ||
1581 | CA_CacheGrChunk (TITLEPALETTE); | ||
1582 | VL_ConvertPalette(grsegs[TITLEPALETTE], pal, 256); | ||
1583 | |||
1584 | CA_CacheGrChunk (TITLE1PIC); | ||
1585 | VWB_DrawPic (0,0,TITLE1PIC); | ||
1586 | UNCACHEGRCHUNK (TITLE1PIC); | ||
1587 | |||
1588 | CA_CacheGrChunk (TITLE2PIC); | ||
1589 | VWB_DrawPic (0,80,TITLE2PIC); | ||
1590 | UNCACHEGRCHUNK (TITLE2PIC); | ||
1591 | VW_UpdateScreen (); | ||
1592 | VL_FadeIn(0,255,pal,30); | ||
1593 | |||
1594 | UNCACHEGRCHUNK (TITLEPALETTE); | ||
1595 | #else | ||
1596 | CA_CacheScreen (TITLEPIC); | ||
1597 | VW_UpdateScreen (); | ||
1598 | VW_FadeIn(); | ||
1599 | #endif | ||
1600 | if (IN_UserInput(TickBase*15)) | ||
1601 | break; | ||
1602 | VW_FadeOut(); | ||
1603 | // | ||
1604 | // credits page | ||
1605 | // | ||
1606 | CA_CacheScreen (CREDITSPIC); | ||
1607 | VW_UpdateScreen(); | ||
1608 | VW_FadeIn (); | ||
1609 | if (IN_UserInput(TickBase*10)) | ||
1610 | break; | ||
1611 | VW_FadeOut (); | ||
1612 | // | ||
1613 | // high scores | ||
1614 | // | ||
1615 | DrawHighScores (); | ||
1616 | VW_UpdateScreen (); | ||
1617 | VW_FadeIn (); | ||
1618 | |||
1619 | if (IN_UserInput(TickBase*10)) | ||
1620 | break; | ||
1621 | #endif | ||
1622 | // | ||
1623 | // demo | ||
1624 | // | ||
1625 | |||
1626 | #ifndef SPEARDEMO | ||
1627 | PlayDemo (LastDemo++%4); | ||
1628 | #else | ||
1629 | PlayDemo (0); | ||
1630 | #endif | ||
1631 | |||
1632 | if (playstate == ex_abort) | ||
1633 | break; | ||
1634 | VW_FadeOut(); | ||
1635 | if(screenHeight % 200 != 0) | ||
1636 | VL_ClearScreen(0); | ||
1637 | StartCPMusic(INTROSONG); | ||
1638 | } | ||
1639 | |||
1640 | VW_FadeOut (); | ||
1641 | |||
1642 | #ifdef DEBUGKEYS | ||
1643 | if (Keyboard[sc_Tab] && param_debugmode) | ||
1644 | RecordDemo (); | ||
1645 | else | ||
1646 | US_ControlPanel (0); | ||
1647 | #else | ||
1648 | US_ControlPanel (0); | ||
1649 | #endif | ||
1650 | |||
1651 | if (startgame || loadedgame) | ||
1652 | { | ||
1653 | GameLoop (); | ||
1654 | if(!param_nowait) | ||
1655 | { | ||
1656 | VW_FadeOut(); | ||
1657 | StartCPMusic(INTROSONG); | ||
1658 | } | ||
1659 | } | ||
1660 | } | ||
1661 | } | ||
1662 | |||
1663 | |||
1664 | //=========================================================================== | ||
1665 | |||
1666 | #define IFARG(str) if(!strcmp(arg, (str))) | ||
1667 | |||
1668 | void CheckParameters(int argc, char *argv[]) | ||
1669 | { | ||
1670 | bool hasError = false, showHelp = false; | ||
1671 | bool sampleRateGiven = false, audioBufferGiven = false; | ||
1672 | int defaultSampleRate = param_samplerate; | ||
1673 | |||
1674 | for(int i = 1; i < argc; i++) | ||
1675 | { | ||
1676 | char *arg = argv[i]; | ||
1677 | #ifndef SPEAR | ||
1678 | IFARG("--goobers") | ||
1679 | #else | ||
1680 | IFARG("--debugmode") | ||
1681 | #endif | ||
1682 | param_debugmode = true; | ||
1683 | else IFARG("--baby") | ||
1684 | param_difficulty = 0; | ||
1685 | else IFARG("--easy") | ||
1686 | param_difficulty = 1; | ||
1687 | else IFARG("--normal") | ||
1688 | param_difficulty = 2; | ||
1689 | else IFARG("--hard") | ||
1690 | param_difficulty = 3; | ||
1691 | else IFARG("--nowait") | ||
1692 | param_nowait = true; | ||
1693 | else IFARG("--tedlevel") | ||
1694 | { | ||
1695 | if(++i >= argc) | ||
1696 | { | ||
1697 | printf("The tedlevel option is missing the level argument!\n"); | ||
1698 | hasError = true; | ||
1699 | } | ||
1700 | else param_tedlevel = atoi(argv[i]); | ||
1701 | } | ||
1702 | else IFARG("--windowed") | ||
1703 | fullscreen = false; | ||
1704 | else IFARG("--windowed-mouse") | ||
1705 | { | ||
1706 | fullscreen = false; | ||
1707 | forcegrabmouse = true; | ||
1708 | } | ||
1709 | else IFARG("--res") | ||
1710 | { | ||
1711 | if(i + 2 >= argc) | ||
1712 | { | ||
1713 | printf("The res option needs the width and/or the height argument!\n"); | ||
1714 | hasError = true; | ||
1715 | } | ||
1716 | else | ||
1717 | { | ||
1718 | screenWidth = atoi(argv[++i]); | ||
1719 | screenHeight = atoi(argv[++i]); | ||
1720 | unsigned factor = screenWidth / 320; | ||
1721 | if(screenWidth % 320 || screenHeight != 200 * factor && screenHeight != 240 * factor) | ||
1722 | printf("Screen size must be a multiple of 320x200 or 320x240!\n"), hasError = true; | ||
1723 | } | ||
1724 | } | ||
1725 | else IFARG("--resf") | ||
1726 | { | ||
1727 | if(i + 2 >= argc) | ||
1728 | { | ||
1729 | printf("The resf option needs the width and/or the height argument!\n"); | ||
1730 | hasError = true; | ||
1731 | } | ||
1732 | else | ||
1733 | { | ||
1734 | screenWidth = atoi(argv[++i]); | ||
1735 | screenHeight = atoi(argv[++i]); | ||
1736 | if(screenWidth < 320) | ||
1737 | printf("Screen width must be at least 320!\n"), hasError = true; | ||
1738 | if(screenHeight < 200) | ||
1739 | printf("Screen height must be at least 200!\n"), hasError = true; | ||
1740 | } | ||
1741 | } | ||
1742 | else IFARG("--bits") | ||
1743 | { | ||
1744 | if(++i >= argc) | ||
1745 | { | ||
1746 | printf("The bits option is missing the color depth argument!\n"); | ||
1747 | hasError = true; | ||
1748 | } | ||
1749 | else | ||
1750 | { | ||
1751 | screenBits = atoi(argv[i]); | ||
1752 | switch(screenBits) | ||
1753 | { | ||
1754 | case 8: | ||
1755 | case 16: | ||
1756 | case 24: | ||
1757 | case 32: | ||
1758 | break; | ||
1759 | |||
1760 | default: | ||
1761 | printf("Screen color depth must be 8, 16, 24, or 32!\n"); | ||
1762 | hasError = true; | ||
1763 | break; | ||
1764 | } | ||
1765 | } | ||
1766 | } | ||
1767 | else IFARG("--nodblbuf") | ||
1768 | usedoublebuffering = false; | ||
1769 | else IFARG("--extravbls") | ||
1770 | { | ||
1771 | if(++i >= argc) | ||
1772 | { | ||
1773 | printf("The extravbls option is missing the vbls argument!\n"); | ||
1774 | hasError = true; | ||
1775 | } | ||
1776 | else | ||
1777 | { | ||
1778 | extravbls = atoi(argv[i]); | ||
1779 | if(extravbls < 0) | ||
1780 | { | ||
1781 | printf("Extravbls must be positive!\n"); | ||
1782 | hasError = true; | ||
1783 | } | ||
1784 | } | ||
1785 | } | ||
1786 | else IFARG("--joystick") | ||
1787 | { | ||
1788 | if(++i >= argc) | ||
1789 | { | ||
1790 | printf("The joystick option is missing the index argument!\n"); | ||
1791 | hasError = true; | ||
1792 | } | ||
1793 | else param_joystickindex = atoi(argv[i]); // index is checked in InitGame | ||
1794 | } | ||
1795 | else IFARG("--joystickhat") | ||
1796 | { | ||
1797 | if(++i >= argc) | ||
1798 | { | ||
1799 | printf("The joystickhat option is missing the index argument!\n"); | ||
1800 | hasError = true; | ||
1801 | } | ||
1802 | else param_joystickhat = atoi(argv[i]); | ||
1803 | } | ||
1804 | else IFARG("--samplerate") | ||
1805 | { | ||
1806 | if(++i >= argc) | ||
1807 | { | ||
1808 | printf("The samplerate option is missing the rate argument!\n"); | ||
1809 | hasError = true; | ||
1810 | } | ||
1811 | else param_samplerate = atoi(argv[i]); | ||
1812 | sampleRateGiven = true; | ||
1813 | } | ||
1814 | else IFARG("--audiobuffer") | ||
1815 | { | ||
1816 | if(++i >= argc) | ||
1817 | { | ||
1818 | printf("The audiobuffer option is missing the size argument!\n"); | ||
1819 | hasError = true; | ||
1820 | } | ||
1821 | else param_audiobuffer = atoi(argv[i]); | ||
1822 | audioBufferGiven = true; | ||
1823 | } | ||
1824 | else IFARG("--mission") | ||
1825 | { | ||
1826 | if(++i >= argc) | ||
1827 | { | ||
1828 | printf("The mission option is missing the mission argument!\n"); | ||
1829 | hasError = true; | ||
1830 | } | ||
1831 | else | ||
1832 | { | ||
1833 | param_mission = atoi(argv[i]); | ||
1834 | if(param_mission < 0 || param_mission > 3) | ||
1835 | { | ||
1836 | printf("The mission option must be between 0 and 3!\n"); | ||
1837 | hasError = true; | ||
1838 | } | ||
1839 | } | ||
1840 | } | ||
1841 | else IFARG("--configdir") | ||
1842 | { | ||
1843 | if(++i >= argc) | ||
1844 | { | ||
1845 | printf("The configdir option is missing the dir argument!\n"); | ||
1846 | hasError = true; | ||
1847 | } | ||
1848 | else | ||
1849 | { | ||
1850 | size_t len = strlen(argv[i]); | ||
1851 | if(len + 2 > sizeof(configdir)) | ||
1852 | { | ||
1853 | printf("The config directory is too long!\n"); | ||
1854 | hasError = true; | ||
1855 | } | ||
1856 | else | ||
1857 | { | ||
1858 | strcpy(configdir, argv[i]); | ||
1859 | if(argv[i][len] != '/' && argv[i][len] != '\\') | ||
1860 | strcat(configdir, "/"); | ||
1861 | } | ||
1862 | } | ||
1863 | } | ||
1864 | else IFARG("--goodtimes") | ||
1865 | param_goodtimes = true; | ||
1866 | else IFARG("--ignorenumchunks") | ||
1867 | param_ignorenumchunks = true; | ||
1868 | else IFARG("--help") | ||
1869 | showHelp = true; | ||
1870 | else hasError = true; | ||
1871 | } | ||
1872 | if(hasError || showHelp) | ||
1873 | { | ||
1874 | if(hasError) printf("\n"); | ||
1875 | printf( | ||
1876 | "Wolf4SDL v1.7 ($Revision: 256 $)\n" | ||
1877 | "Ported by Chaos-Software (http://www.chaos-software.de.vu)\n" | ||
1878 | "Original Wolfenstein 3D by id Software\n\n" | ||
1879 | "Usage: Wolf4SDL [options]\n" | ||
1880 | "Options:\n" | ||
1881 | " --help This help page\n" | ||
1882 | " --tedlevel <level> Starts the game in the given level\n" | ||
1883 | " --baby Sets the difficulty to baby for tedlevel\n" | ||
1884 | " --easy Sets the difficulty to easy for tedlevel\n" | ||
1885 | " --normal Sets the difficulty to normal for tedlevel\n" | ||
1886 | " --hard Sets the difficulty to hard for tedlevel\n" | ||
1887 | " --nowait Skips intro screens\n" | ||
1888 | " --windowed[-mouse] Starts the game in a window [and grabs mouse]\n" | ||
1889 | " --res <width> <height> Sets the screen resolution\n" | ||
1890 | " (must be multiple of 320x200 or 320x240)\n" | ||
1891 | " --resf <w> <h> Sets any screen resolution >= 320x200\n" | ||
1892 | " (which may result in graphic errors)\n" | ||
1893 | " --bits <b> Sets the screen color depth\n" | ||
1894 | " (use this when you have palette/fading problems\n" | ||
1895 | " allowed: 8, 16, 24, 32, default: \"best\" depth)\n" | ||
1896 | " --nodblbuf Don't use SDL's double buffering\n" | ||
1897 | " --extravbls <vbls> Sets a delay after each frame, which may help to\n" | ||
1898 | " reduce flickering (unit is currently 8 ms, default: 0)\n" | ||
1899 | " --joystick <index> Use the index-th joystick if available\n" | ||
1900 | " (-1 to disable joystick, default: 0)\n" | ||
1901 | " --joystickhat <index> Enables movement with the given coolie hat\n" | ||
1902 | " --samplerate <rate> Sets the sound sample rate (given in Hz, default: %i)\n" | ||
1903 | " --audiobuffer <size> Sets the size of the audio buffer (-> sound latency)\n" | ||
1904 | " (given in bytes, default: 2048 / (44100 / samplerate))\n" | ||
1905 | " --ignorenumchunks Ignores the number of chunks in VGAHEAD.*\n" | ||
1906 | " (may be useful for some broken mods)\n" | ||
1907 | " --configdir <dir> Directory where config file and save games are stored\n" | ||
1908 | #if defined(_arch_dreamcast) || defined(_WIN32) | ||
1909 | " (default: current directory)\n" | ||
1910 | #else | ||
1911 | " (default: $HOME/.wolf4sdl)\n" | ||
1912 | #endif | ||
1913 | #if defined(SPEAR) && !defined(SPEARDEMO) | ||
1914 | " --mission <mission> Mission number to play (0-3)\n" | ||
1915 | " (default: 0 -> .sod, 1-3 -> .sd*)\n" | ||
1916 | " --goodtimes Disable copy protection quiz\n" | ||
1917 | #endif | ||
1918 | , defaultSampleRate | ||
1919 | ); | ||
1920 | exit(1); | ||
1921 | } | ||
1922 | |||
1923 | if(sampleRateGiven && !audioBufferGiven) | ||
1924 | param_audiobuffer = 2048 / (44100 / param_samplerate); | ||
1925 | } | ||
1926 | |||
1927 | /* | ||
1928 | ========================== | ||
1929 | = | ||
1930 | = main | ||
1931 | = | ||
1932 | ========================== | ||
1933 | */ | ||
1934 | |||
1935 | #define main my_main | ||
1936 | |||
1937 | int main (int argc, char *argv[]) | ||
1938 | { | ||
1939 | #if defined(_arch_dreamcast) | ||
1940 | DC_Init(); | ||
1941 | #else | ||
1942 | CheckParameters(argc, argv); | ||
1943 | #endif | ||
1944 | |||
1945 | CheckForEpisodes(); | ||
1946 | |||
1947 | InitGame(); | ||
1948 | |||
1949 | DemoLoop(); | ||
1950 | |||
1951 | Quit("Demo loop exited???"); | ||
1952 | return 1; | ||
1953 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_menu.c b/apps/plugins/sdl/progs/wolf3d/wl_menu.c new file mode 100644 index 0000000000..3913fab33d --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_menu.c | |||
@@ -0,0 +1,4160 @@ | |||
1 | //////////////////////////////////////////////////////////////////// | ||
2 | // | ||
3 | // WL_MENU.C | ||
4 | // by John Romero (C) 1992 Id Software, Inc. | ||
5 | // | ||
6 | //////////////////////////////////////////////////////////////////// | ||
7 | |||
8 | #include "wl_def.h" | ||
9 | #pragma hdrstop | ||
10 | |||
11 | extern int lastgamemusicoffset; | ||
12 | extern int numEpisodesMissing; | ||
13 | |||
14 | // | ||
15 | // PRIVATE PROTOTYPES | ||
16 | // | ||
17 | int CP_ReadThis (int); | ||
18 | |||
19 | #ifdef SPEAR | ||
20 | #define STARTITEM newgame | ||
21 | |||
22 | #else | ||
23 | #ifdef GOODTIMES | ||
24 | #define STARTITEM newgame | ||
25 | |||
26 | #else | ||
27 | #define STARTITEM readthis | ||
28 | #endif | ||
29 | #endif | ||
30 | |||
31 | // ENDSTRx constants are defined in foreign.h | ||
32 | char endStrings[9][80] = { | ||
33 | ENDSTR1, | ||
34 | ENDSTR2, | ||
35 | ENDSTR3, | ||
36 | ENDSTR4, | ||
37 | ENDSTR5, | ||
38 | ENDSTR6, | ||
39 | ENDSTR7, | ||
40 | ENDSTR8, | ||
41 | ENDSTR9 | ||
42 | }; | ||
43 | |||
44 | CP_itemtype MainMenu[] = { | ||
45 | #ifdef JAPAN | ||
46 | {1, "", CP_NewGame}, | ||
47 | {1, "", CP_Sound}, | ||
48 | {1, "", CP_Control}, | ||
49 | {1, "", CP_LoadGame}, | ||
50 | {0, "", CP_SaveGame}, | ||
51 | {1, "", CP_ChangeView}, | ||
52 | {2, "", CP_ReadThis}, | ||
53 | {1, "", CP_ViewScores}, | ||
54 | {1, "", 0}, | ||
55 | {1, "", 0} | ||
56 | #else | ||
57 | |||
58 | {1, STR_NG, CP_NewGame}, | ||
59 | {1, STR_SD, CP_Sound}, | ||
60 | {1, STR_CL, CP_Control}, | ||
61 | {1, STR_LG, CP_LoadGame}, | ||
62 | {0, STR_SG, CP_SaveGame}, | ||
63 | {1, STR_CV, CP_ChangeView}, | ||
64 | |||
65 | #ifndef GOODTIMES | ||
66 | #ifndef SPEAR | ||
67 | |||
68 | #ifdef SPANISH | ||
69 | {2, "Ve esto!", CP_ReadThis}, | ||
70 | #else | ||
71 | {2, "Read This!", CP_ReadThis}, | ||
72 | #endif | ||
73 | |||
74 | #endif | ||
75 | #endif | ||
76 | |||
77 | {1, STR_VS, CP_ViewScores}, | ||
78 | {1, STR_BD, 0}, | ||
79 | {1, STR_QT, 0} | ||
80 | #endif | ||
81 | }; | ||
82 | |||
83 | CP_itemtype SndMenu[] = { | ||
84 | #ifdef JAPAN | ||
85 | {1, "", 0}, | ||
86 | {1, "", 0}, | ||
87 | {1, "", 0}, | ||
88 | {0, "", 0}, | ||
89 | {0, "", 0}, | ||
90 | {1, "", 0}, | ||
91 | {1, "", 0}, | ||
92 | {1, "", 0}, | ||
93 | {0, "", 0}, | ||
94 | {0, "", 0}, | ||
95 | {1, "", 0}, | ||
96 | {1, "", 0}, | ||
97 | #else | ||
98 | {1, STR_NONE, 0}, | ||
99 | {0, STR_PC, 0}, | ||
100 | {1, STR_ALSB, 0}, | ||
101 | {0, "", 0}, | ||
102 | {0, "", 0}, | ||
103 | {1, STR_NONE, 0}, | ||
104 | {0, STR_DISNEY, 0}, | ||
105 | {1, STR_SB, 0}, | ||
106 | {0, "", 0}, | ||
107 | {0, "", 0}, | ||
108 | {1, STR_NONE, 0}, | ||
109 | {1, STR_ALSB, 0} | ||
110 | #endif | ||
111 | }; | ||
112 | |||
113 | enum { CTL_MOUSEENABLE, CTL_MOUSESENS, CTL_JOYENABLE, CTL_CUSTOMIZE }; | ||
114 | |||
115 | CP_itemtype CtlMenu[] = { | ||
116 | #ifdef JAPAN | ||
117 | {0, "", 0}, | ||
118 | {0, "", MouseSensitivity}, | ||
119 | {0, "", 0}, | ||
120 | {1, "", CustomControls} | ||
121 | #else | ||
122 | {0, STR_MOUSEEN, 0}, | ||
123 | {0, STR_SENS, MouseSensitivity}, | ||
124 | {0, STR_JOYEN, 0}, | ||
125 | {1, STR_CUSTOM, CustomControls} | ||
126 | #endif | ||
127 | }; | ||
128 | |||
129 | #ifndef SPEAR | ||
130 | CP_itemtype NewEmenu[] = { | ||
131 | #ifdef JAPAN | ||
132 | #ifdef JAPDEMO | ||
133 | {1, "", 0}, | ||
134 | {0, "", 0}, | ||
135 | {0, "", 0}, | ||
136 | {0, "", 0}, | ||
137 | {0, "", 0}, | ||
138 | {0, "", 0}, | ||
139 | {0, "", 0}, | ||
140 | {0, "", 0}, | ||
141 | {0, "", 0}, | ||
142 | {0, "", 0}, | ||
143 | {0, "", 0}, | ||
144 | {0, "", 0}, | ||
145 | #else | ||
146 | {1, "", 0}, | ||
147 | {0, "", 0}, | ||
148 | {1, "", 0}, | ||
149 | {0, "", 0}, | ||
150 | {1, "", 0}, | ||
151 | {0, "", 0}, | ||
152 | {1, "", 0}, | ||
153 | {0, "", 0}, | ||
154 | {1, "", 0}, | ||
155 | {0, "", 0}, | ||
156 | {1, "", 0}, | ||
157 | {0, "", 0} | ||
158 | #endif | ||
159 | #else | ||
160 | #ifdef SPANISH | ||
161 | {1, "Episodio 1\n" "Fuga desde Wolfenstein", 0}, | ||
162 | {0, "", 0}, | ||
163 | {3, "Episodio 2\n" "Operacion Eisenfaust", 0}, | ||
164 | {0, "", 0}, | ||
165 | {3, "Episodio 3\n" "Muere, Fuhrer, Muere!", 0}, | ||
166 | {0, "", 0}, | ||
167 | {3, "Episodio 4\n" "Un Negro Secreto", 0}, | ||
168 | {0, "", 0}, | ||
169 | {3, "Episodio 5\n" "Huellas del Loco", 0}, | ||
170 | {0, "", 0}, | ||
171 | {3, "Episodio 6\n" "Confrontacion", 0} | ||
172 | #else | ||
173 | {1, "Episode 1\n" "Escape from Wolfenstein", 0}, | ||
174 | {0, "", 0}, | ||
175 | {3, "Episode 2\n" "Operation: Eisenfaust", 0}, | ||
176 | {0, "", 0}, | ||
177 | {3, "Episode 3\n" "Die, Fuhrer, Die!", 0}, | ||
178 | {0, "", 0}, | ||
179 | {3, "Episode 4\n" "A Dark Secret", 0}, | ||
180 | {0, "", 0}, | ||
181 | {3, "Episode 5\n" "Trail of the Madman", 0}, | ||
182 | {0, "", 0}, | ||
183 | {3, "Episode 6\n" "Confrontation", 0} | ||
184 | #endif | ||
185 | #endif | ||
186 | }; | ||
187 | #endif | ||
188 | |||
189 | |||
190 | CP_itemtype NewMenu[] = { | ||
191 | #ifdef JAPAN | ||
192 | {1, "", 0}, | ||
193 | {1, "", 0}, | ||
194 | {1, "", 0}, | ||
195 | {1, "", 0} | ||
196 | #else | ||
197 | {1, STR_DADDY, 0}, | ||
198 | {1, STR_HURTME, 0}, | ||
199 | {1, STR_BRINGEM, 0}, | ||
200 | {1, STR_DEATH, 0} | ||
201 | #endif | ||
202 | }; | ||
203 | |||
204 | CP_itemtype LSMenu[] = { | ||
205 | {1, "", 0}, | ||
206 | {1, "", 0}, | ||
207 | {1, "", 0}, | ||
208 | {1, "", 0}, | ||
209 | {1, "", 0}, | ||
210 | {1, "", 0}, | ||
211 | {1, "", 0}, | ||
212 | {1, "", 0}, | ||
213 | {1, "", 0}, | ||
214 | {1, "", 0} | ||
215 | }; | ||
216 | |||
217 | CP_itemtype CusMenu[] = { | ||
218 | {1, "", 0}, | ||
219 | {0, "", 0}, | ||
220 | {0, "", 0}, | ||
221 | {1, "", 0}, | ||
222 | {0, "", 0}, | ||
223 | {0, "", 0}, | ||
224 | {1, "", 0}, | ||
225 | {0, "", 0}, | ||
226 | {1, "", 0} | ||
227 | }; | ||
228 | |||
229 | // CP_iteminfo struct format: short x, y, amount, curpos, indent; | ||
230 | CP_iteminfo MainItems = { MENU_X, MENU_Y, lengthof(MainMenu), STARTITEM, 24 }, | ||
231 | SndItems = { SM_X, SM_Y1, lengthof(SndMenu), 0, 52 }, | ||
232 | LSItems = { LSM_X, LSM_Y, lengthof(LSMenu), 0, 24 }, | ||
233 | CtlItems = { CTL_X, CTL_Y, lengthof(CtlMenu), -1, 56 }, | ||
234 | CusItems = { 8, CST_Y + 13 * 2, lengthof(CusMenu), -1, 0}, | ||
235 | #ifndef SPEAR | ||
236 | NewEitems = { NE_X, NE_Y, lengthof(NewEmenu), 0, 88 }, | ||
237 | #endif | ||
238 | NewItems = { NM_X, NM_Y, lengthof(NewMenu), 2, 24 }; | ||
239 | |||
240 | int color_hlite[] = { | ||
241 | DEACTIVE, | ||
242 | HIGHLIGHT, | ||
243 | READHCOLOR, | ||
244 | 0x67 | ||
245 | }; | ||
246 | |||
247 | int color_norml[] = { | ||
248 | DEACTIVE, | ||
249 | TEXTCOLOR, | ||
250 | READCOLOR, | ||
251 | 0x6b | ||
252 | }; | ||
253 | |||
254 | int EpisodeSelect[6] = { 1 }; | ||
255 | |||
256 | |||
257 | static int SaveGamesAvail[10]; | ||
258 | static int StartGame; | ||
259 | static int SoundStatus = 1; | ||
260 | static int pickquick; | ||
261 | static char SaveGameNames[10][32]; | ||
262 | static char SaveName[13] = "savegam?."; | ||
263 | |||
264 | |||
265 | //////////////////////////////////////////////////////////////////// | ||
266 | // | ||
267 | // INPUT MANAGER SCANCODE TABLES | ||
268 | // | ||
269 | //////////////////////////////////////////////////////////////////// | ||
270 | |||
271 | #if 0 | ||
272 | static const char *ScanNames[] = // Scan code names with single chars | ||
273 | { | ||
274 | "?", "?", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "+", "?", "?", | ||
275 | "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "[", "]", "|", "?", "A", "S", | ||
276 | "D", "F", "G", "H", "J", "K", "L", ";", "\"", "?", "?", "?", "Z", "X", "C", "V", | ||
277 | "B", "N", "M", ",", ".", "/", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", | ||
278 | "?", "?", "?", "?", "?", "?", "?", "?", "\xf", "?", "-", "\x15", "5", "\x11", "+", "?", | ||
279 | "\x13", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", | ||
280 | "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", | ||
281 | "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?" | ||
282 | }; // DEBUG - consolidate these | ||
283 | static ScanCode ExtScanCodes[] = // Scan codes with >1 char names | ||
284 | { | ||
285 | 1, 0xe, 0xf, 0x1d, 0x2a, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, | ||
286 | 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x57, 0x59, 0x46, 0x1c, 0x36, | ||
287 | 0x37, 0x38, 0x47, 0x49, 0x4f, 0x51, 0x52, 0x53, 0x45, 0x48, | ||
288 | 0x50, 0x4b, 0x4d, 0x00 | ||
289 | }; | ||
290 | static const char *ExtScanNames[] = // Names corresponding to ExtScanCodes | ||
291 | { | ||
292 | "Esc", "BkSp", "Tab", "Ctrl", "LShft", "Space", "CapsLk", "F1", "F2", "F3", "F4", | ||
293 | "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "ScrlLk", "Enter", "RShft", | ||
294 | "PrtSc", "Alt", "Home", "PgUp", "End", "PgDn", "Ins", "Del", "NumLk", "Up", | ||
295 | "Down", "Left", "Right", "" | ||
296 | }; | ||
297 | |||
298 | /*#pragma warning 737 9 | ||
299 | static byte | ||
300 | *ScanNames[] = // Scan code names with single chars | ||
301 | { | ||
302 | "?","?","1","2","3","4","5","6","7","8","9","0","-","+","?","?", | ||
303 | "Q","W","E","R","T","Y","U","I","O","P","[","]","|","?","A","S", | ||
304 | "D","F","G","H","J","K","L",";","\"","?","?","?","Z","X","C","V", | ||
305 | "B","N","M",",",".","/","?","?","?","?","?","?","?","?","?","?", | ||
306 | "?","?","?","?","?","?","?","?","\xf","?","-","\x15","5","\x11","+","?", | ||
307 | "\x13","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?", | ||
308 | "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?", | ||
309 | "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?" | ||
310 | }; // DEBUG - consolidate these | ||
311 | static byte ExtScanCodes[] = // Scan codes with >1 char names | ||
312 | { | ||
313 | 1,0xe,0xf,0x1d,0x2a,0x39,0x3a,0x3b,0x3c,0x3d,0x3e, | ||
314 | 0x3f,0x40,0x41,0x42,0x43,0x44,0x57,0x59,0x46,0x1c,0x36, | ||
315 | 0x37,0x38,0x47,0x49,0x4f,0x51,0x52,0x53,0x45,0x48, | ||
316 | 0x50,0x4b,0x4d,0x00 | ||
317 | }; | ||
318 | static byte *ExtScanNames[] = // Names corresponding to ExtScanCodes | ||
319 | { | ||
320 | "Esc","BkSp","Tab","Ctrl","LShft","Space","CapsLk","F1","F2","F3","F4", | ||
321 | "F5","F6","F7","F8","F9","F10","F11","F12","ScrlLk","Enter","RShft", | ||
322 | "PrtSc","Alt","Home","PgUp","End","PgDn","Ins","Del","NumLk","Up", | ||
323 | "Down","Left","Right","" | ||
324 | };*/ | ||
325 | |||
326 | #else | ||
327 | static const char* const ScanNames[SDLK_LAST] = | ||
328 | { | ||
329 | "?","?","?","?","?","?","?","?", // 0 | ||
330 | "BkSp","Tab","?","?","?","Return","?","?", // 8 | ||
331 | "?","?","?","Pause","?","?","?","?", // 16 | ||
332 | "?","?","?","Esc","?","?","?","?", // 24 | ||
333 | "Space","!","\"","#","$","?","&","'", // 32 | ||
334 | "(",")","*","+",",","-",".","/", // 40 | ||
335 | "0","1","2","3","4","5","6","7", // 48 | ||
336 | "8","9",":",";","<","=",">","?", // 56 | ||
337 | "@","A","B","C","D","E","F","G", // 64 | ||
338 | "H","I","J","K","L","M","N","O", // 72 | ||
339 | "P","Q","R","S","T","U","V","W", // 80 | ||
340 | "X","Y","Z","[","\\","]","^","_", // 88 | ||
341 | "`","a","b","c","d","e","f","h", // 96 | ||
342 | "h","i","j","k","l","m","n","o", // 104 | ||
343 | "p","q","r","s","t","u","v","w", // 112 | ||
344 | "x","y","z","{","|","}","~","?", // 120 | ||
345 | "?","?","?","?","?","?","?","?", // 128 | ||
346 | "?","?","?","?","?","?","?","?", // 136 | ||
347 | "?","?","?","?","?","?","?","?", // 144 | ||
348 | "?","?","?","?","?","?","?","?", // 152 | ||
349 | "?","?","?","?","?","?","?","?", // 160 | ||
350 | "?","?","?","?","?","?","?","?", // 168 | ||
351 | "?","?","?","?","?","?","?","?", // 176 | ||
352 | "?","?","?","?","?","?","?","?", // 184 | ||
353 | "?","?","?","?","?","?","?","?", // 192 | ||
354 | "?","?","?","?","?","?","?","?", // 200 | ||
355 | "?","?","?","?","?","?","?","?", // 208 | ||
356 | "?","?","?","?","?","?","?","?", // 216 | ||
357 | "?","?","?","?","?","?","?","?", // 224 | ||
358 | "?","?","?","?","?","?","?","?", // 232 | ||
359 | "?","?","?","?","?","?","?","?", // 240 | ||
360 | "?","?","?","?","?","?","?","?", // 248 | ||
361 | "?","?","?","?","?","?","?","?", // 256 | ||
362 | "?","?","?","?","?","?","?","Enter", // 264 | ||
363 | "?","Up","Down","Right","Left","Ins","Home","End", // 272 | ||
364 | "PgUp","PgDn","F1","F2","F3","F4","F5","F6", // 280 | ||
365 | "F7","F8","F9","F10","F11","F12","?","?", // 288 | ||
366 | "?","?","?","?","NumLk","CapsLk","ScrlLk","RShft", // 296 | ||
367 | "Shift","RCtrl","Ctrl","RAlt","Alt","?","?","?", // 304 | ||
368 | "?","?","?","?","PrtSc","?","?","?", // 312 | ||
369 | "?","?" // 320 | ||
370 | }; | ||
371 | |||
372 | #endif | ||
373 | |||
374 | //////////////////////////////////////////////////////////////////// | ||
375 | // | ||
376 | // Wolfenstein Control Panel! Ta Da! | ||
377 | // | ||
378 | //////////////////////////////////////////////////////////////////// | ||
379 | void | ||
380 | US_ControlPanel (ScanCode scancode) | ||
381 | { | ||
382 | int which; | ||
383 | |||
384 | #ifdef _arch_dreamcast | ||
385 | DC_StatusClearLCD(); | ||
386 | #endif | ||
387 | |||
388 | if (ingame) | ||
389 | { | ||
390 | if (CP_CheckQuick (scancode)) | ||
391 | return; | ||
392 | lastgamemusicoffset = StartCPMusic (MENUSONG); | ||
393 | } | ||
394 | else | ||
395 | StartCPMusic (MENUSONG); | ||
396 | SetupControlPanel (); | ||
397 | |||
398 | // | ||
399 | // F-KEYS FROM WITHIN GAME | ||
400 | // | ||
401 | switch (scancode) | ||
402 | { | ||
403 | case sc_F1: | ||
404 | #ifdef SPEAR | ||
405 | BossKey (); | ||
406 | #else | ||
407 | #ifdef GOODTIMES | ||
408 | BossKey (); | ||
409 | #else | ||
410 | HelpScreens (); | ||
411 | #endif | ||
412 | #endif | ||
413 | goto finishup; | ||
414 | |||
415 | case sc_F2: | ||
416 | CP_SaveGame (0); | ||
417 | goto finishup; | ||
418 | |||
419 | case sc_F3: | ||
420 | CP_LoadGame (0); | ||
421 | goto finishup; | ||
422 | |||
423 | case sc_F4: | ||
424 | CP_Sound (0); | ||
425 | goto finishup; | ||
426 | |||
427 | case sc_F5: | ||
428 | CP_ChangeView (0); | ||
429 | goto finishup; | ||
430 | |||
431 | case sc_F6: | ||
432 | CP_Control (0); | ||
433 | goto finishup; | ||
434 | |||
435 | finishup: | ||
436 | CleanupControlPanel (); | ||
437 | #ifdef SPEAR | ||
438 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
439 | #endif | ||
440 | return; | ||
441 | } | ||
442 | |||
443 | #ifdef SPEAR | ||
444 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
445 | #endif | ||
446 | |||
447 | DrawMainMenu (); | ||
448 | MenuFadeIn (); | ||
449 | StartGame = 0; | ||
450 | |||
451 | // | ||
452 | // MAIN MENU LOOP | ||
453 | // | ||
454 | do | ||
455 | { | ||
456 | which = HandleMenu (&MainItems, &MainMenu[0], NULL); | ||
457 | |||
458 | #ifdef SPEAR | ||
459 | #ifndef SPEARDEMO | ||
460 | IN_ProcessEvents(); | ||
461 | |||
462 | // | ||
463 | // EASTER EGG FOR SPEAR OF DESTINY! | ||
464 | // | ||
465 | if (Keyboard[sc_I] && Keyboard[sc_D]) | ||
466 | { | ||
467 | VW_FadeOut (); | ||
468 | StartCPMusic (XJAZNAZI_MUS); | ||
469 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
470 | UnCacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
471 | ClearMemory (); | ||
472 | |||
473 | |||
474 | CA_CacheGrChunk (IDGUYS1PIC); | ||
475 | VWB_DrawPic (0, 0, IDGUYS1PIC); | ||
476 | UNCACHEGRCHUNK (IDGUYS1PIC); | ||
477 | |||
478 | CA_CacheGrChunk (IDGUYS2PIC); | ||
479 | VWB_DrawPic (0, 80, IDGUYS2PIC); | ||
480 | UNCACHEGRCHUNK (IDGUYS2PIC); | ||
481 | |||
482 | VW_UpdateScreen (); | ||
483 | |||
484 | SDL_Color pal[256]; | ||
485 | CA_CacheGrChunk (IDGUYSPALETTE); | ||
486 | VL_ConvertPalette(grsegs[IDGUYSPALETTE], pal, 256); | ||
487 | VL_FadeIn (0, 255, pal, 30); | ||
488 | UNCACHEGRCHUNK (IDGUYSPALETTE); | ||
489 | |||
490 | while (Keyboard[sc_I] || Keyboard[sc_D]) | ||
491 | IN_WaitAndProcessEvents(); | ||
492 | IN_ClearKeysDown (); | ||
493 | IN_Ack (); | ||
494 | |||
495 | VW_FadeOut (); | ||
496 | |||
497 | CacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
498 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
499 | DrawMainMenu (); | ||
500 | StartCPMusic (MENUSONG); | ||
501 | MenuFadeIn (); | ||
502 | } | ||
503 | #endif | ||
504 | #endif | ||
505 | |||
506 | switch (which) | ||
507 | { | ||
508 | case viewscores: | ||
509 | if (MainMenu[viewscores].routine == NULL) | ||
510 | { | ||
511 | if (CP_EndGame (0)) | ||
512 | StartGame = 1; | ||
513 | } | ||
514 | else | ||
515 | { | ||
516 | DrawMainMenu(); | ||
517 | MenuFadeIn (); | ||
518 | } | ||
519 | break; | ||
520 | |||
521 | case backtodemo: | ||
522 | StartGame = 1; | ||
523 | if (!ingame) | ||
524 | StartCPMusic (INTROSONG); | ||
525 | VL_FadeOut (0, 255, 0, 0, 0, 10); | ||
526 | break; | ||
527 | |||
528 | case -1: | ||
529 | case quit: | ||
530 | CP_Quit (0); | ||
531 | break; | ||
532 | |||
533 | default: | ||
534 | if (!StartGame) | ||
535 | { | ||
536 | DrawMainMenu (); | ||
537 | MenuFadeIn (); | ||
538 | } | ||
539 | } | ||
540 | |||
541 | // | ||
542 | // "EXIT OPTIONS" OR "NEW GAME" EXITS | ||
543 | // | ||
544 | } | ||
545 | while (!StartGame); | ||
546 | |||
547 | // | ||
548 | // DEALLOCATE EVERYTHING | ||
549 | // | ||
550 | CleanupControlPanel (); | ||
551 | |||
552 | // | ||
553 | // CHANGE MAINMENU ITEM | ||
554 | // | ||
555 | if (startgame || loadedgame) | ||
556 | EnableEndGameMenuItem(); | ||
557 | |||
558 | // RETURN/START GAME EXECUTION | ||
559 | |||
560 | #ifdef SPEAR | ||
561 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
562 | #endif | ||
563 | } | ||
564 | |||
565 | void EnableEndGameMenuItem() | ||
566 | { | ||
567 | MainMenu[viewscores].routine = NULL; | ||
568 | #ifndef JAPAN | ||
569 | strcpy (MainMenu[viewscores].string, STR_EG); | ||
570 | #endif | ||
571 | } | ||
572 | |||
573 | //////////////////////// | ||
574 | // | ||
575 | // DRAW MAIN MENU SCREEN | ||
576 | // | ||
577 | void | ||
578 | DrawMainMenu (void) | ||
579 | { | ||
580 | #ifdef JAPAN | ||
581 | CA_CacheScreen (S_OPTIONSPIC); | ||
582 | #else | ||
583 | ClearMScreen (); | ||
584 | |||
585 | VWB_DrawPic (112, 184, C_MOUSELBACKPIC); | ||
586 | DrawStripes (10); | ||
587 | VWB_DrawPic (84, 0, C_OPTIONSPIC); | ||
588 | |||
589 | #ifdef SPANISH | ||
590 | DrawWindow (MENU_X - 8, MENU_Y - 3, MENU_W + 8, MENU_H, BKGDCOLOR); | ||
591 | #else | ||
592 | DrawWindow (MENU_X - 8, MENU_Y - 3, MENU_W, MENU_H, BKGDCOLOR); | ||
593 | #endif | ||
594 | #endif | ||
595 | |||
596 | // | ||
597 | // CHANGE "GAME" AND "DEMO" | ||
598 | // | ||
599 | if (ingame) | ||
600 | { | ||
601 | #ifndef JAPAN | ||
602 | |||
603 | #ifdef SPANISH | ||
604 | strcpy (&MainMenu[backtodemo].string, STR_GAME); | ||
605 | #else | ||
606 | strcpy (&MainMenu[backtodemo].string[8], STR_GAME); | ||
607 | #endif | ||
608 | |||
609 | #else | ||
610 | CA_CacheGrChunk (C_MRETGAMEPIC); | ||
611 | VWB_DrawPic (12 * 8, 20 * 8, C_MRETGAMEPIC); | ||
612 | UNCACHEGRCHUNK (C_MRETGAMEPIC); | ||
613 | CA_CacheGrChunk (C_MENDGAMEPIC); | ||
614 | VWB_DrawPic (12 * 8, 18 * 8, C_MENDGAMEPIC); | ||
615 | UNCACHEGRCHUNK (C_MENDGAMEPIC); | ||
616 | #endif | ||
617 | MainMenu[backtodemo].active = 2; | ||
618 | } | ||
619 | else | ||
620 | { | ||
621 | #ifndef JAPAN | ||
622 | #ifdef SPANISH | ||
623 | strcpy (&MainMenu[backtodemo].string, STR_BD); | ||
624 | #else | ||
625 | strcpy (&MainMenu[backtodemo].string[8], STR_DEMO); | ||
626 | #endif | ||
627 | #else | ||
628 | CA_CacheGrChunk (C_MRETDEMOPIC); | ||
629 | VWB_DrawPic (12 * 8, 20 * 8, C_MRETDEMOPIC); | ||
630 | UNCACHEGRCHUNK (C_MRETDEMOPIC); | ||
631 | CA_CacheGrChunk (C_MSCORESPIC); | ||
632 | VWB_DrawPic (12 * 8, 18 * 8, C_MSCORESPIC); | ||
633 | UNCACHEGRCHUNK (C_MSCORESPIC); | ||
634 | #endif | ||
635 | MainMenu[backtodemo].active = 1; | ||
636 | } | ||
637 | |||
638 | DrawMenu (&MainItems, &MainMenu[0]); | ||
639 | VW_UpdateScreen (); | ||
640 | } | ||
641 | |||
642 | #ifndef GOODTIMES | ||
643 | #ifndef SPEAR | ||
644 | //////////////////////////////////////////////////////////////////// | ||
645 | // | ||
646 | // READ THIS! | ||
647 | // | ||
648 | //////////////////////////////////////////////////////////////////// | ||
649 | int | ||
650 | CP_ReadThis (int) | ||
651 | { | ||
652 | StartCPMusic (CORNER_MUS); | ||
653 | HelpScreens (); | ||
654 | StartCPMusic (MENUSONG); | ||
655 | return true; | ||
656 | } | ||
657 | #endif | ||
658 | #endif | ||
659 | |||
660 | |||
661 | #ifdef GOODTIMES | ||
662 | //////////////////////////////////////////////////////////////////// | ||
663 | // | ||
664 | // BOSS KEY | ||
665 | // | ||
666 | //////////////////////////////////////////////////////////////////// | ||
667 | void | ||
668 | BossKey (void) | ||
669 | { | ||
670 | #ifdef NOTYET | ||
671 | byte palette1[256][3]; | ||
672 | SD_MusicOff (); | ||
673 | /* _AX = 3; | ||
674 | geninterrupt(0x10); */ | ||
675 | _asm | ||
676 | { | ||
677 | mov eax, 3 int 0x10} | ||
678 | puts ("C>"); | ||
679 | SetTextCursor (2, 0); | ||
680 | // while (!Keyboard[sc_Escape]) | ||
681 | IN_Ack (); | ||
682 | IN_ClearKeysDown (); | ||
683 | |||
684 | SD_MusicOn (); | ||
685 | VL_SetVGAPlaneMode (); | ||
686 | for (int i = 0; i < 768; i++) | ||
687 | palette1[0][i] = 0; | ||
688 | |||
689 | VL_SetPalette (&palette1[0][0]); | ||
690 | LoadLatchMem (); | ||
691 | #endif | ||
692 | } | ||
693 | #else | ||
694 | #ifdef SPEAR | ||
695 | void | ||
696 | BossKey (void) | ||
697 | { | ||
698 | #ifdef NOTYET | ||
699 | byte palette1[256][3]; | ||
700 | SD_MusicOff (); | ||
701 | /* _AX = 3; | ||
702 | geninterrupt(0x10); */ | ||
703 | _asm | ||
704 | { | ||
705 | mov eax, 3 int 0x10} | ||
706 | puts ("C>"); | ||
707 | SetTextCursor (2, 0); | ||
708 | // while (!Keyboard[sc_Escape]) | ||
709 | IN_Ack (); | ||
710 | IN_ClearKeysDown (); | ||
711 | |||
712 | SD_MusicOn (); | ||
713 | VL_SetVGAPlaneMode (); | ||
714 | for (int i = 0; i < 768; i++) | ||
715 | palette1[0][i] = 0; | ||
716 | |||
717 | VL_SetPalette (&palette1[0][0]); | ||
718 | LoadLatchMem (); | ||
719 | #endif | ||
720 | } | ||
721 | #endif | ||
722 | #endif | ||
723 | |||
724 | |||
725 | //////////////////////////////////////////////////////////////////// | ||
726 | // | ||
727 | // CHECK QUICK-KEYS & QUIT (WHILE IN A GAME) | ||
728 | // | ||
729 | //////////////////////////////////////////////////////////////////// | ||
730 | int | ||
731 | CP_CheckQuick (ScanCode scancode) | ||
732 | { | ||
733 | switch (scancode) | ||
734 | { | ||
735 | // | ||
736 | // END GAME | ||
737 | // | ||
738 | case sc_F7: | ||
739 | CA_CacheGrChunk (STARTFONT + 1); | ||
740 | |||
741 | WindowH = 160; | ||
742 | #ifdef JAPAN | ||
743 | if (GetYorN (7, 8, C_JAPQUITPIC)) | ||
744 | #else | ||
745 | if (Confirm (ENDGAMESTR)) | ||
746 | #endif | ||
747 | { | ||
748 | playstate = ex_died; | ||
749 | killerobj = NULL; | ||
750 | pickquick = gamestate.lives = 0; | ||
751 | } | ||
752 | |||
753 | WindowH = 200; | ||
754 | fontnumber = 0; | ||
755 | MainMenu[savegame].active = 0; | ||
756 | return 1; | ||
757 | |||
758 | // | ||
759 | // QUICKSAVE | ||
760 | // | ||
761 | case sc_F8: | ||
762 | if (SaveGamesAvail[LSItems.curpos] && pickquick) | ||
763 | { | ||
764 | CA_CacheGrChunk (STARTFONT + 1); | ||
765 | fontnumber = 1; | ||
766 | Message (STR_SAVING "..."); | ||
767 | CP_SaveGame (1); | ||
768 | fontnumber = 0; | ||
769 | } | ||
770 | else | ||
771 | { | ||
772 | #ifndef SPEAR | ||
773 | CA_CacheGrChunk (STARTFONT + 1); | ||
774 | CA_CacheGrChunk (C_CURSOR1PIC); | ||
775 | CA_CacheGrChunk (C_CURSOR2PIC); | ||
776 | CA_CacheGrChunk (C_DISKLOADING1PIC); | ||
777 | CA_CacheGrChunk (C_DISKLOADING2PIC); | ||
778 | CA_CacheGrChunk (C_SAVEGAMEPIC); | ||
779 | CA_CacheGrChunk (C_MOUSELBACKPIC); | ||
780 | #else | ||
781 | CacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
782 | CA_CacheGrChunk (C_CURSOR1PIC); | ||
783 | #endif | ||
784 | |||
785 | VW_FadeOut (); | ||
786 | if(screenHeight % 200 != 0) | ||
787 | VL_ClearScreen(0); | ||
788 | |||
789 | lastgamemusicoffset = StartCPMusic (MENUSONG); | ||
790 | pickquick = CP_SaveGame (0); | ||
791 | |||
792 | SETFONTCOLOR (0, 15); | ||
793 | IN_ClearKeysDown (); | ||
794 | VW_FadeOut(); | ||
795 | if(viewsize != 21) | ||
796 | DrawPlayScreen (); | ||
797 | |||
798 | if (!startgame && !loadedgame) | ||
799 | ContinueMusic (lastgamemusicoffset); | ||
800 | |||
801 | if (loadedgame) | ||
802 | playstate = ex_abort; | ||
803 | lasttimecount = GetTimeCount (); | ||
804 | |||
805 | if (MousePresent && IN_IsInputGrabbed()) | ||
806 | IN_CenterMouse(); // Clear accumulated mouse movement | ||
807 | |||
808 | #ifndef SPEAR | ||
809 | UNCACHEGRCHUNK (C_CURSOR1PIC); | ||
810 | UNCACHEGRCHUNK (C_CURSOR2PIC); | ||
811 | UNCACHEGRCHUNK (C_DISKLOADING1PIC); | ||
812 | UNCACHEGRCHUNK (C_DISKLOADING2PIC); | ||
813 | UNCACHEGRCHUNK (C_SAVEGAMEPIC); | ||
814 | UNCACHEGRCHUNK (C_MOUSELBACKPIC); | ||
815 | #else | ||
816 | UnCacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
817 | #endif | ||
818 | } | ||
819 | return 1; | ||
820 | |||
821 | // | ||
822 | // QUICKLOAD | ||
823 | // | ||
824 | case sc_F9: | ||
825 | if (SaveGamesAvail[LSItems.curpos] && pickquick) | ||
826 | { | ||
827 | char string[100] = STR_LGC; | ||
828 | |||
829 | |||
830 | CA_CacheGrChunk (STARTFONT + 1); | ||
831 | fontnumber = 1; | ||
832 | |||
833 | strcat (string, SaveGameNames[LSItems.curpos]); | ||
834 | strcat (string, "\"?"); | ||
835 | |||
836 | if (Confirm (string)) | ||
837 | CP_LoadGame (1); | ||
838 | |||
839 | fontnumber = 0; | ||
840 | } | ||
841 | else | ||
842 | { | ||
843 | #ifndef SPEAR | ||
844 | CA_CacheGrChunk (STARTFONT + 1); | ||
845 | CA_CacheGrChunk (C_CURSOR1PIC); | ||
846 | CA_CacheGrChunk (C_CURSOR2PIC); | ||
847 | CA_CacheGrChunk (C_DISKLOADING1PIC); | ||
848 | CA_CacheGrChunk (C_DISKLOADING2PIC); | ||
849 | CA_CacheGrChunk (C_LOADGAMEPIC); | ||
850 | CA_CacheGrChunk (C_MOUSELBACKPIC); | ||
851 | #else | ||
852 | CA_CacheGrChunk (C_CURSOR1PIC); | ||
853 | CacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
854 | #endif | ||
855 | |||
856 | VW_FadeOut (); | ||
857 | if(screenHeight % 200 != 0) | ||
858 | VL_ClearScreen(0); | ||
859 | |||
860 | lastgamemusicoffset = StartCPMusic (MENUSONG); | ||
861 | pickquick = CP_LoadGame (0); // loads lastgamemusicoffs | ||
862 | |||
863 | SETFONTCOLOR (0, 15); | ||
864 | IN_ClearKeysDown (); | ||
865 | VW_FadeOut(); | ||
866 | if(viewsize != 21) | ||
867 | DrawPlayScreen (); | ||
868 | |||
869 | if (!startgame && !loadedgame) | ||
870 | ContinueMusic (lastgamemusicoffset); | ||
871 | |||
872 | if (loadedgame) | ||
873 | playstate = ex_abort; | ||
874 | |||
875 | lasttimecount = GetTimeCount (); | ||
876 | |||
877 | if (MousePresent && IN_IsInputGrabbed()) | ||
878 | IN_CenterMouse(); // Clear accumulated mouse movement | ||
879 | |||
880 | #ifndef SPEAR | ||
881 | UNCACHEGRCHUNK (C_CURSOR1PIC); | ||
882 | UNCACHEGRCHUNK (C_CURSOR2PIC); | ||
883 | UNCACHEGRCHUNK (C_DISKLOADING1PIC); | ||
884 | UNCACHEGRCHUNK (C_DISKLOADING2PIC); | ||
885 | UNCACHEGRCHUNK (C_LOADGAMEPIC); | ||
886 | UNCACHEGRCHUNK (C_MOUSELBACKPIC); | ||
887 | #else | ||
888 | UnCacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
889 | #endif | ||
890 | } | ||
891 | return 1; | ||
892 | |||
893 | // | ||
894 | // QUIT | ||
895 | // | ||
896 | case sc_F10: | ||
897 | CA_CacheGrChunk (STARTFONT + 1); | ||
898 | |||
899 | WindowX = WindowY = 0; | ||
900 | WindowW = 320; | ||
901 | WindowH = 160; | ||
902 | #ifdef JAPAN | ||
903 | if (GetYorN (7, 8, C_QUITMSGPIC)) | ||
904 | #else | ||
905 | #ifdef SPANISH | ||
906 | if (Confirm (ENDGAMESTR)) | ||
907 | #else | ||
908 | if (Confirm (endStrings[US_RndT () & 0x7 + (US_RndT () & 1)])) | ||
909 | #endif | ||
910 | #endif | ||
911 | { | ||
912 | VW_UpdateScreen (); | ||
913 | SD_MusicOff (); | ||
914 | SD_StopSound (); | ||
915 | MenuFadeOut (); | ||
916 | |||
917 | Quit (NULL); | ||
918 | } | ||
919 | |||
920 | DrawPlayBorder (); | ||
921 | WindowH = 200; | ||
922 | fontnumber = 0; | ||
923 | return 1; | ||
924 | } | ||
925 | |||
926 | return 0; | ||
927 | } | ||
928 | |||
929 | |||
930 | //////////////////////////////////////////////////////////////////// | ||
931 | // | ||
932 | // END THE CURRENT GAME | ||
933 | // | ||
934 | //////////////////////////////////////////////////////////////////// | ||
935 | int | ||
936 | CP_EndGame (int a) | ||
937 | { | ||
938 | int res; | ||
939 | #ifdef JAPAN | ||
940 | res = GetYorN (7, 8, C_JAPQUITPIC); | ||
941 | #else | ||
942 | res = Confirm (ENDGAMESTR); | ||
943 | #endif | ||
944 | DrawMainMenu(); | ||
945 | if(!res) return 0; | ||
946 | |||
947 | pickquick = gamestate.lives = 0; | ||
948 | playstate = ex_died; | ||
949 | killerobj = NULL; | ||
950 | |||
951 | MainMenu[savegame].active = 0; | ||
952 | MainMenu[viewscores].routine = CP_ViewScores; | ||
953 | #ifndef JAPAN | ||
954 | strcpy (MainMenu[viewscores].string, STR_VS); | ||
955 | #endif | ||
956 | |||
957 | return 1; | ||
958 | } | ||
959 | |||
960 | |||
961 | //////////////////////////////////////////////////////////////////// | ||
962 | // | ||
963 | // VIEW THE HIGH SCORES | ||
964 | // | ||
965 | //////////////////////////////////////////////////////////////////// | ||
966 | int | ||
967 | CP_ViewScores (int a) | ||
968 | { | ||
969 | fontnumber = 0; | ||
970 | |||
971 | #ifdef SPEAR | ||
972 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
973 | StartCPMusic (XAWARD_MUS); | ||
974 | #else | ||
975 | StartCPMusic (ROSTER_MUS); | ||
976 | #endif | ||
977 | |||
978 | DrawHighScores (); | ||
979 | VW_UpdateScreen (); | ||
980 | MenuFadeIn (); | ||
981 | fontnumber = 1; | ||
982 | |||
983 | IN_Ack (); | ||
984 | |||
985 | StartCPMusic (MENUSONG); | ||
986 | MenuFadeOut (); | ||
987 | |||
988 | #ifdef SPEAR | ||
989 | CacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
990 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
991 | #endif | ||
992 | return 0; | ||
993 | } | ||
994 | |||
995 | |||
996 | //////////////////////////////////////////////////////////////////// | ||
997 | // | ||
998 | // START A NEW GAME | ||
999 | // | ||
1000 | //////////////////////////////////////////////////////////////////// | ||
1001 | int | ||
1002 | CP_NewGame (int a) | ||
1003 | { | ||
1004 | int which, episode; | ||
1005 | |||
1006 | #ifdef SPEAR | ||
1007 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1008 | #endif | ||
1009 | |||
1010 | |||
1011 | #ifndef SPEAR | ||
1012 | firstpart: | ||
1013 | |||
1014 | DrawNewEpisode (); | ||
1015 | do | ||
1016 | { | ||
1017 | which = HandleMenu (&NewEitems, &NewEmenu[0], NULL); | ||
1018 | switch (which) | ||
1019 | { | ||
1020 | case -1: | ||
1021 | MenuFadeOut (); | ||
1022 | return 0; | ||
1023 | |||
1024 | default: | ||
1025 | if (!EpisodeSelect[which / 2]) | ||
1026 | { | ||
1027 | SD_PlaySound (NOWAYSND); | ||
1028 | Message ("Please select \"Read This!\"\n" | ||
1029 | "from the Options menu to\n" | ||
1030 | "find out how to order this\n" "episode from Apogee."); | ||
1031 | IN_ClearKeysDown (); | ||
1032 | IN_Ack (); | ||
1033 | DrawNewEpisode (); | ||
1034 | which = 0; | ||
1035 | } | ||
1036 | else | ||
1037 | { | ||
1038 | episode = which / 2; | ||
1039 | which = 1; | ||
1040 | } | ||
1041 | break; | ||
1042 | } | ||
1043 | |||
1044 | } | ||
1045 | while (!which); | ||
1046 | |||
1047 | ShootSnd (); | ||
1048 | |||
1049 | // | ||
1050 | // ALREADY IN A GAME? | ||
1051 | // | ||
1052 | if (ingame) | ||
1053 | #ifdef JAPAN | ||
1054 | if (!GetYorN (7, 8, C_JAPNEWGAMEPIC)) | ||
1055 | #else | ||
1056 | if (!Confirm (CURGAME)) | ||
1057 | #endif | ||
1058 | { | ||
1059 | MenuFadeOut (); | ||
1060 | return 0; | ||
1061 | } | ||
1062 | |||
1063 | MenuFadeOut (); | ||
1064 | |||
1065 | #else | ||
1066 | episode = 0; | ||
1067 | |||
1068 | // | ||
1069 | // ALREADY IN A GAME? | ||
1070 | // | ||
1071 | CacheLump (NEWGAME_LUMP_START, NEWGAME_LUMP_END); | ||
1072 | DrawNewGame (); | ||
1073 | if (ingame) | ||
1074 | if (!Confirm (CURGAME)) | ||
1075 | { | ||
1076 | MenuFadeOut (); | ||
1077 | UnCacheLump (NEWGAME_LUMP_START, NEWGAME_LUMP_END); | ||
1078 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1079 | return 0; | ||
1080 | } | ||
1081 | |||
1082 | #endif | ||
1083 | |||
1084 | DrawNewGame (); | ||
1085 | which = HandleMenu (&NewItems, &NewMenu[0], DrawNewGameDiff); | ||
1086 | if (which < 0) | ||
1087 | { | ||
1088 | MenuFadeOut (); | ||
1089 | #ifndef SPEAR | ||
1090 | goto firstpart; | ||
1091 | #else | ||
1092 | UnCacheLump (NEWGAME_LUMP_START, NEWGAME_LUMP_END); | ||
1093 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1094 | return 0; | ||
1095 | #endif | ||
1096 | } | ||
1097 | |||
1098 | ShootSnd (); | ||
1099 | NewGame (which, episode); | ||
1100 | StartGame = 1; | ||
1101 | MenuFadeOut (); | ||
1102 | |||
1103 | // | ||
1104 | // CHANGE "READ THIS!" TO NORMAL COLOR | ||
1105 | // | ||
1106 | #ifndef SPEAR | ||
1107 | #ifndef GOODTIMES | ||
1108 | MainMenu[readthis].active = 1; | ||
1109 | #endif | ||
1110 | #endif | ||
1111 | |||
1112 | pickquick = 0; | ||
1113 | |||
1114 | #ifdef SPEAR | ||
1115 | UnCacheLump (NEWGAME_LUMP_START, NEWGAME_LUMP_END); | ||
1116 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1117 | #endif | ||
1118 | |||
1119 | return 0; | ||
1120 | } | ||
1121 | |||
1122 | |||
1123 | #ifndef SPEAR | ||
1124 | ///////////////////// | ||
1125 | // | ||
1126 | // DRAW NEW EPISODE MENU | ||
1127 | // | ||
1128 | void | ||
1129 | DrawNewEpisode (void) | ||
1130 | { | ||
1131 | int i; | ||
1132 | |||
1133 | #ifdef JAPAN | ||
1134 | CA_CacheScreen (S_EPISODEPIC); | ||
1135 | #else | ||
1136 | ClearMScreen (); | ||
1137 | VWB_DrawPic (112, 184, C_MOUSELBACKPIC); | ||
1138 | |||
1139 | DrawWindow (NE_X - 4, NE_Y - 4, NE_W + 8, NE_H + 8, BKGDCOLOR); | ||
1140 | SETFONTCOLOR (READHCOLOR, BKGDCOLOR); | ||
1141 | PrintY = 2; | ||
1142 | WindowX = 0; | ||
1143 | #ifdef SPANISH | ||
1144 | US_CPrint ("Cual episodio jugar?"); | ||
1145 | #else | ||
1146 | US_CPrint ("Which episode to play?"); | ||
1147 | #endif | ||
1148 | #endif | ||
1149 | |||
1150 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
1151 | DrawMenu (&NewEitems, &NewEmenu[0]); | ||
1152 | |||
1153 | for (i = 0; i < 6; i++) | ||
1154 | VWB_DrawPic (NE_X + 32, NE_Y + i * 26, C_EPISODE1PIC + i); | ||
1155 | |||
1156 | VW_UpdateScreen (); | ||
1157 | MenuFadeIn (); | ||
1158 | WaitKeyUp (); | ||
1159 | } | ||
1160 | #endif | ||
1161 | |||
1162 | ///////////////////// | ||
1163 | // | ||
1164 | // DRAW NEW GAME MENU | ||
1165 | // | ||
1166 | void | ||
1167 | DrawNewGame (void) | ||
1168 | { | ||
1169 | #ifdef JAPAN | ||
1170 | CA_CacheScreen (S_SKILLPIC); | ||
1171 | #else | ||
1172 | ClearMScreen (); | ||
1173 | VWB_DrawPic (112, 184, C_MOUSELBACKPIC); | ||
1174 | |||
1175 | SETFONTCOLOR (READHCOLOR, BKGDCOLOR); | ||
1176 | PrintX = NM_X + 20; | ||
1177 | PrintY = NM_Y - 32; | ||
1178 | |||
1179 | #ifndef SPEAR | ||
1180 | #ifdef SPANISH | ||
1181 | US_Print ("Eres macho?"); | ||
1182 | #else | ||
1183 | US_Print ("How tough are you?"); | ||
1184 | #endif | ||
1185 | #else | ||
1186 | VWB_DrawPic (PrintX, PrintY, C_HOWTOUGHPIC); | ||
1187 | #endif | ||
1188 | |||
1189 | DrawWindow (NM_X - 5, NM_Y - 10, NM_W, NM_H, BKGDCOLOR); | ||
1190 | #endif | ||
1191 | |||
1192 | DrawMenu (&NewItems, &NewMenu[0]); | ||
1193 | DrawNewGameDiff (NewItems.curpos); | ||
1194 | VW_UpdateScreen (); | ||
1195 | MenuFadeIn (); | ||
1196 | WaitKeyUp (); | ||
1197 | } | ||
1198 | |||
1199 | |||
1200 | //////////////////////// | ||
1201 | // | ||
1202 | // DRAW NEW GAME GRAPHIC | ||
1203 | // | ||
1204 | void | ||
1205 | DrawNewGameDiff (int w) | ||
1206 | { | ||
1207 | VWB_DrawPic (NM_X + 185, NM_Y + 7, w + C_BABYMODEPIC); | ||
1208 | } | ||
1209 | |||
1210 | |||
1211 | //////////////////////////////////////////////////////////////////// | ||
1212 | // | ||
1213 | // HANDLE SOUND MENU | ||
1214 | // | ||
1215 | //////////////////////////////////////////////////////////////////// | ||
1216 | int | ||
1217 | CP_Sound (int a) | ||
1218 | { | ||
1219 | int which; | ||
1220 | |||
1221 | |||
1222 | #ifdef SPEAR | ||
1223 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1224 | CacheLump (SOUND_LUMP_START, SOUND_LUMP_END); | ||
1225 | #endif | ||
1226 | |||
1227 | DrawSoundMenu (); | ||
1228 | MenuFadeIn (); | ||
1229 | WaitKeyUp (); | ||
1230 | |||
1231 | do | ||
1232 | { | ||
1233 | which = HandleMenu (&SndItems, &SndMenu[0], NULL); | ||
1234 | // | ||
1235 | // HANDLE MENU CHOICES | ||
1236 | // | ||
1237 | switch (which) | ||
1238 | { | ||
1239 | // | ||
1240 | // SOUND EFFECTS | ||
1241 | // | ||
1242 | case 0: | ||
1243 | if (SoundMode != sdm_Off) | ||
1244 | { | ||
1245 | SD_WaitSoundDone (); | ||
1246 | SD_SetSoundMode (sdm_Off); | ||
1247 | DrawSoundMenu (); | ||
1248 | } | ||
1249 | break; | ||
1250 | case 1: | ||
1251 | if (SoundMode != sdm_PC) | ||
1252 | { | ||
1253 | SD_WaitSoundDone (); | ||
1254 | SD_SetSoundMode (sdm_PC); | ||
1255 | CA_LoadAllSounds (); | ||
1256 | DrawSoundMenu (); | ||
1257 | ShootSnd (); | ||
1258 | } | ||
1259 | break; | ||
1260 | case 2: | ||
1261 | if (SoundMode != sdm_AdLib) | ||
1262 | { | ||
1263 | SD_WaitSoundDone (); | ||
1264 | SD_SetSoundMode (sdm_AdLib); | ||
1265 | CA_LoadAllSounds (); | ||
1266 | DrawSoundMenu (); | ||
1267 | ShootSnd (); | ||
1268 | } | ||
1269 | break; | ||
1270 | |||
1271 | // | ||
1272 | // DIGITIZED SOUND | ||
1273 | // | ||
1274 | case 5: | ||
1275 | if (DigiMode != sds_Off) | ||
1276 | { | ||
1277 | SD_SetDigiDevice (sds_Off); | ||
1278 | DrawSoundMenu (); | ||
1279 | } | ||
1280 | break; | ||
1281 | case 6: | ||
1282 | /* if (DigiMode != sds_SoundSource) | ||
1283 | { | ||
1284 | SD_SetDigiDevice (sds_SoundSource); | ||
1285 | DrawSoundMenu (); | ||
1286 | ShootSnd (); | ||
1287 | }*/ | ||
1288 | break; | ||
1289 | case 7: | ||
1290 | if (DigiMode != sds_SoundBlaster) | ||
1291 | { | ||
1292 | SD_SetDigiDevice (sds_SoundBlaster); | ||
1293 | DrawSoundMenu (); | ||
1294 | ShootSnd (); | ||
1295 | } | ||
1296 | break; | ||
1297 | |||
1298 | // | ||
1299 | // MUSIC | ||
1300 | // | ||
1301 | case 10: | ||
1302 | if (MusicMode != smm_Off) | ||
1303 | { | ||
1304 | SD_SetMusicMode (smm_Off); | ||
1305 | DrawSoundMenu (); | ||
1306 | ShootSnd (); | ||
1307 | } | ||
1308 | break; | ||
1309 | case 11: | ||
1310 | if (MusicMode != smm_AdLib) | ||
1311 | { | ||
1312 | SD_SetMusicMode (smm_AdLib); | ||
1313 | DrawSoundMenu (); | ||
1314 | ShootSnd (); | ||
1315 | StartCPMusic (MENUSONG); | ||
1316 | } | ||
1317 | break; | ||
1318 | } | ||
1319 | } | ||
1320 | while (which >= 0); | ||
1321 | |||
1322 | MenuFadeOut (); | ||
1323 | |||
1324 | #ifdef SPEAR | ||
1325 | UnCacheLump (SOUND_LUMP_START, SOUND_LUMP_END); | ||
1326 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1327 | #endif | ||
1328 | return 0; | ||
1329 | } | ||
1330 | |||
1331 | |||
1332 | ////////////////////// | ||
1333 | // | ||
1334 | // DRAW THE SOUND MENU | ||
1335 | // | ||
1336 | void | ||
1337 | DrawSoundMenu (void) | ||
1338 | { | ||
1339 | int i, on; | ||
1340 | |||
1341 | |||
1342 | #ifdef JAPAN | ||
1343 | CA_CacheScreen (S_SOUNDPIC); | ||
1344 | #else | ||
1345 | // | ||
1346 | // DRAW SOUND MENU | ||
1347 | // | ||
1348 | ClearMScreen (); | ||
1349 | VWB_DrawPic (112, 184, C_MOUSELBACKPIC); | ||
1350 | |||
1351 | DrawWindow (SM_X - 8, SM_Y1 - 3, SM_W, SM_H1, BKGDCOLOR); | ||
1352 | DrawWindow (SM_X - 8, SM_Y2 - 3, SM_W, SM_H2, BKGDCOLOR); | ||
1353 | DrawWindow (SM_X - 8, SM_Y3 - 3, SM_W, SM_H3, BKGDCOLOR); | ||
1354 | #endif | ||
1355 | |||
1356 | // | ||
1357 | // IF NO ADLIB, NON-CHOOSENESS! | ||
1358 | // | ||
1359 | if (!AdLibPresent && !SoundBlasterPresent) | ||
1360 | { | ||
1361 | SndMenu[2].active = SndMenu[10].active = SndMenu[11].active = 0; | ||
1362 | } | ||
1363 | |||
1364 | if (!SoundBlasterPresent) | ||
1365 | SndMenu[7].active = 0; | ||
1366 | |||
1367 | if (!SoundBlasterPresent) | ||
1368 | SndMenu[5].active = 0; | ||
1369 | |||
1370 | DrawMenu (&SndItems, &SndMenu[0]); | ||
1371 | #ifndef JAPAN | ||
1372 | VWB_DrawPic (100, SM_Y1 - 20, C_FXTITLEPIC); | ||
1373 | VWB_DrawPic (100, SM_Y2 - 20, C_DIGITITLEPIC); | ||
1374 | VWB_DrawPic (100, SM_Y3 - 20, C_MUSICTITLEPIC); | ||
1375 | #endif | ||
1376 | |||
1377 | for (i = 0; i < SndItems.amount; i++) | ||
1378 | #ifdef JAPAN | ||
1379 | if (i != 3 && i != 4 && i != 8 && i != 9) | ||
1380 | #else | ||
1381 | if (SndMenu[i].string[0]) | ||
1382 | #endif | ||
1383 | { | ||
1384 | // | ||
1385 | // DRAW SELECTED/NOT SELECTED GRAPHIC BUTTONS | ||
1386 | // | ||
1387 | on = 0; | ||
1388 | switch (i) | ||
1389 | { | ||
1390 | // | ||
1391 | // SOUND EFFECTS | ||
1392 | // | ||
1393 | case 0: | ||
1394 | if (SoundMode == sdm_Off) | ||
1395 | on = 1; | ||
1396 | break; | ||
1397 | case 1: | ||
1398 | if (SoundMode == sdm_PC) | ||
1399 | on = 1; | ||
1400 | break; | ||
1401 | case 2: | ||
1402 | if (SoundMode == sdm_AdLib) | ||
1403 | on = 1; | ||
1404 | break; | ||
1405 | |||
1406 | // | ||
1407 | // DIGITIZED SOUND | ||
1408 | // | ||
1409 | case 5: | ||
1410 | if (DigiMode == sds_Off) | ||
1411 | on = 1; | ||
1412 | break; | ||
1413 | case 6: | ||
1414 | // if (DigiMode == sds_SoundSource) | ||
1415 | // on = 1; | ||
1416 | break; | ||
1417 | case 7: | ||
1418 | if (DigiMode == sds_SoundBlaster) | ||
1419 | on = 1; | ||
1420 | break; | ||
1421 | |||
1422 | // | ||
1423 | // MUSIC | ||
1424 | // | ||
1425 | case 10: | ||
1426 | if (MusicMode == smm_Off) | ||
1427 | on = 1; | ||
1428 | break; | ||
1429 | case 11: | ||
1430 | if (MusicMode == smm_AdLib) | ||
1431 | on = 1; | ||
1432 | break; | ||
1433 | } | ||
1434 | |||
1435 | if (on) | ||
1436 | VWB_DrawPic (SM_X + 24, SM_Y1 + i * 13 + 2, C_SELECTEDPIC); | ||
1437 | else | ||
1438 | VWB_DrawPic (SM_X + 24, SM_Y1 + i * 13 + 2, C_NOTSELECTEDPIC); | ||
1439 | } | ||
1440 | |||
1441 | DrawMenuGun (&SndItems); | ||
1442 | VW_UpdateScreen (); | ||
1443 | } | ||
1444 | |||
1445 | |||
1446 | // | ||
1447 | // DRAW LOAD/SAVE IN PROGRESS | ||
1448 | // | ||
1449 | void | ||
1450 | DrawLSAction (int which) | ||
1451 | { | ||
1452 | #define LSA_X 96 | ||
1453 | #define LSA_Y 80 | ||
1454 | #define LSA_W 130 | ||
1455 | #define LSA_H 42 | ||
1456 | |||
1457 | DrawWindow (LSA_X, LSA_Y, LSA_W, LSA_H, TEXTCOLOR); | ||
1458 | DrawOutline (LSA_X, LSA_Y, LSA_W, LSA_H, 0, HIGHLIGHT); | ||
1459 | VWB_DrawPic (LSA_X + 8, LSA_Y + 5, C_DISKLOADING1PIC); | ||
1460 | |||
1461 | fontnumber = 1; | ||
1462 | SETFONTCOLOR (0, TEXTCOLOR); | ||
1463 | PrintX = LSA_X + 46; | ||
1464 | PrintY = LSA_Y + 13; | ||
1465 | |||
1466 | if (!which) | ||
1467 | US_Print (STR_LOADING "..."); | ||
1468 | else | ||
1469 | US_Print (STR_SAVING "..."); | ||
1470 | |||
1471 | VW_UpdateScreen (); | ||
1472 | } | ||
1473 | |||
1474 | |||
1475 | //////////////////////////////////////////////////////////////////// | ||
1476 | // | ||
1477 | // LOAD SAVED GAMES | ||
1478 | // | ||
1479 | //////////////////////////////////////////////////////////////////// | ||
1480 | int | ||
1481 | CP_LoadGame (int quick) | ||
1482 | { | ||
1483 | FILE *file; | ||
1484 | int which, exit = 0; | ||
1485 | char name[13]; | ||
1486 | char loadpath[300]; | ||
1487 | |||
1488 | strcpy (name, SaveName); | ||
1489 | |||
1490 | // | ||
1491 | // QUICKLOAD? | ||
1492 | // | ||
1493 | if (quick) | ||
1494 | { | ||
1495 | which = LSItems.curpos; | ||
1496 | |||
1497 | if (SaveGamesAvail[which]) | ||
1498 | { | ||
1499 | name[7] = which + '0'; | ||
1500 | |||
1501 | #ifdef _arch_dreamcast | ||
1502 | DC_LoadFromVMU(name); | ||
1503 | #endif | ||
1504 | |||
1505 | if(configdir[0]) | ||
1506 | snprintf(loadpath, sizeof(loadpath), "%s/%s", configdir, name); | ||
1507 | else | ||
1508 | strcpy(loadpath, name); | ||
1509 | |||
1510 | file = fopen (loadpath, "rb"); | ||
1511 | fseek (file, 32, SEEK_SET); | ||
1512 | loadedgame = true; | ||
1513 | LoadTheGame (file, 0, 0); | ||
1514 | loadedgame = false; | ||
1515 | fclose (file); | ||
1516 | |||
1517 | DrawFace (); | ||
1518 | DrawHealth (); | ||
1519 | DrawLives (); | ||
1520 | DrawLevel (); | ||
1521 | DrawAmmo (); | ||
1522 | DrawKeys (); | ||
1523 | DrawWeapon (); | ||
1524 | DrawScore (); | ||
1525 | ContinueMusic (lastgamemusicoffset); | ||
1526 | return 1; | ||
1527 | } | ||
1528 | } | ||
1529 | |||
1530 | |||
1531 | #ifdef SPEAR | ||
1532 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1533 | CacheLump (LOADSAVE_LUMP_START, LOADSAVE_LUMP_END); | ||
1534 | #endif | ||
1535 | |||
1536 | DrawLoadSaveScreen (0); | ||
1537 | |||
1538 | do | ||
1539 | { | ||
1540 | which = HandleMenu (&LSItems, &LSMenu[0], TrackWhichGame); | ||
1541 | if (which >= 0 && SaveGamesAvail[which]) | ||
1542 | { | ||
1543 | ShootSnd (); | ||
1544 | name[7] = which + '0'; | ||
1545 | |||
1546 | #ifdef _arch_dreamcast | ||
1547 | DC_LoadFromVMU(name); | ||
1548 | #endif | ||
1549 | |||
1550 | if(configdir[0]) | ||
1551 | snprintf(loadpath, sizeof(loadpath), "%s/%s", configdir, name); | ||
1552 | else | ||
1553 | strcpy(loadpath, name); | ||
1554 | |||
1555 | file = fopen (loadpath, "rb"); | ||
1556 | fseek (file, 32, SEEK_SET); | ||
1557 | |||
1558 | DrawLSAction (0); | ||
1559 | loadedgame = true; | ||
1560 | |||
1561 | LoadTheGame (file, LSA_X + 8, LSA_Y + 5); | ||
1562 | fclose (file); | ||
1563 | |||
1564 | StartGame = 1; | ||
1565 | ShootSnd (); | ||
1566 | // | ||
1567 | // CHANGE "READ THIS!" TO NORMAL COLOR | ||
1568 | // | ||
1569 | |||
1570 | #ifndef SPEAR | ||
1571 | #ifndef GOODTIMES | ||
1572 | MainMenu[readthis].active = 1; | ||
1573 | #endif | ||
1574 | #endif | ||
1575 | |||
1576 | exit = 1; | ||
1577 | break; | ||
1578 | } | ||
1579 | |||
1580 | } | ||
1581 | while (which >= 0); | ||
1582 | |||
1583 | MenuFadeOut (); | ||
1584 | |||
1585 | #ifdef SPEAR | ||
1586 | UnCacheLump (LOADSAVE_LUMP_START, LOADSAVE_LUMP_END); | ||
1587 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1588 | #endif | ||
1589 | |||
1590 | return exit; | ||
1591 | } | ||
1592 | |||
1593 | |||
1594 | /////////////////////////////////// | ||
1595 | // | ||
1596 | // HIGHLIGHT CURRENT SELECTED ENTRY | ||
1597 | // | ||
1598 | void | ||
1599 | TrackWhichGame (int w) | ||
1600 | { | ||
1601 | static int lastgameon = 0; | ||
1602 | |||
1603 | PrintLSEntry (lastgameon, TEXTCOLOR); | ||
1604 | PrintLSEntry (w, HIGHLIGHT); | ||
1605 | |||
1606 | lastgameon = w; | ||
1607 | } | ||
1608 | |||
1609 | |||
1610 | //////////////////////////// | ||
1611 | // | ||
1612 | // DRAW THE LOAD/SAVE SCREEN | ||
1613 | // | ||
1614 | void | ||
1615 | DrawLoadSaveScreen (int loadsave) | ||
1616 | { | ||
1617 | #define DISKX 100 | ||
1618 | #define DISKY 0 | ||
1619 | |||
1620 | int i; | ||
1621 | |||
1622 | |||
1623 | ClearMScreen (); | ||
1624 | fontnumber = 1; | ||
1625 | VWB_DrawPic (112, 184, C_MOUSELBACKPIC); | ||
1626 | DrawWindow (LSM_X - 10, LSM_Y - 5, LSM_W, LSM_H, BKGDCOLOR); | ||
1627 | DrawStripes (10); | ||
1628 | |||
1629 | if (!loadsave) | ||
1630 | VWB_DrawPic (60, 0, C_LOADGAMEPIC); | ||
1631 | else | ||
1632 | VWB_DrawPic (60, 0, C_SAVEGAMEPIC); | ||
1633 | |||
1634 | for (i = 0; i < 10; i++) | ||
1635 | PrintLSEntry (i, TEXTCOLOR); | ||
1636 | |||
1637 | DrawMenu (&LSItems, &LSMenu[0]); | ||
1638 | VW_UpdateScreen (); | ||
1639 | MenuFadeIn (); | ||
1640 | WaitKeyUp (); | ||
1641 | } | ||
1642 | |||
1643 | |||
1644 | /////////////////////////////////////////// | ||
1645 | // | ||
1646 | // PRINT LOAD/SAVE GAME ENTRY W/BOX OUTLINE | ||
1647 | // | ||
1648 | void | ||
1649 | PrintLSEntry (int w, int color) | ||
1650 | { | ||
1651 | SETFONTCOLOR (color, BKGDCOLOR); | ||
1652 | DrawOutline (LSM_X + LSItems.indent, LSM_Y + w * 13, LSM_W - LSItems.indent - 15, 11, color, | ||
1653 | color); | ||
1654 | PrintX = LSM_X + LSItems.indent + 2; | ||
1655 | PrintY = LSM_Y + w * 13 + 1; | ||
1656 | fontnumber = 0; | ||
1657 | |||
1658 | if (SaveGamesAvail[w]) | ||
1659 | US_Print (SaveGameNames[w]); | ||
1660 | else | ||
1661 | US_Print (" - " STR_EMPTY " -"); | ||
1662 | |||
1663 | fontnumber = 1; | ||
1664 | } | ||
1665 | |||
1666 | |||
1667 | //////////////////////////////////////////////////////////////////// | ||
1668 | // | ||
1669 | // SAVE CURRENT GAME | ||
1670 | // | ||
1671 | //////////////////////////////////////////////////////////////////// | ||
1672 | int | ||
1673 | CP_SaveGame (int quick) | ||
1674 | { | ||
1675 | int which, exit = 0; | ||
1676 | FILE *file; | ||
1677 | char name[13]; | ||
1678 | char savepath[300]; | ||
1679 | char input[32]; | ||
1680 | |||
1681 | strcpy (name, SaveName); | ||
1682 | |||
1683 | // | ||
1684 | // QUICKSAVE? | ||
1685 | // | ||
1686 | if (quick) | ||
1687 | { | ||
1688 | which = LSItems.curpos; | ||
1689 | |||
1690 | if (SaveGamesAvail[which]) | ||
1691 | { | ||
1692 | name[7] = which + '0'; | ||
1693 | |||
1694 | if(configdir[0]) | ||
1695 | snprintf(savepath, sizeof(savepath), "%s/%s", configdir, name); | ||
1696 | else | ||
1697 | strcpy(savepath, name); | ||
1698 | |||
1699 | unlink (savepath); | ||
1700 | file = fopen (savepath, "wb"); | ||
1701 | |||
1702 | strcpy (input, &SaveGameNames[which][0]); | ||
1703 | |||
1704 | fwrite (input, 1, 32, file); | ||
1705 | fseek (file, 32, SEEK_SET); | ||
1706 | SaveTheGame (file, 0, 0); | ||
1707 | fclose (file); | ||
1708 | |||
1709 | #ifdef _arch_dreamcast | ||
1710 | DC_SaveToVMU(name, input); | ||
1711 | #endif | ||
1712 | |||
1713 | return 1; | ||
1714 | } | ||
1715 | } | ||
1716 | |||
1717 | |||
1718 | #ifdef SPEAR | ||
1719 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1720 | CacheLump (LOADSAVE_LUMP_START, LOADSAVE_LUMP_END); | ||
1721 | #endif | ||
1722 | |||
1723 | DrawLoadSaveScreen (1); | ||
1724 | |||
1725 | do | ||
1726 | { | ||
1727 | which = HandleMenu (&LSItems, &LSMenu[0], TrackWhichGame); | ||
1728 | if (which >= 0) | ||
1729 | { | ||
1730 | // | ||
1731 | // OVERWRITE EXISTING SAVEGAME? | ||
1732 | // | ||
1733 | if (SaveGamesAvail[which]) | ||
1734 | { | ||
1735 | #ifdef JAPAN | ||
1736 | if (!GetYorN (7, 8, C_JAPSAVEOVERPIC)) | ||
1737 | #else | ||
1738 | if (!Confirm (GAMESVD)) | ||
1739 | #endif | ||
1740 | { | ||
1741 | DrawLoadSaveScreen (1); | ||
1742 | continue; | ||
1743 | } | ||
1744 | else | ||
1745 | { | ||
1746 | DrawLoadSaveScreen (1); | ||
1747 | PrintLSEntry (which, HIGHLIGHT); | ||
1748 | VW_UpdateScreen (); | ||
1749 | } | ||
1750 | } | ||
1751 | |||
1752 | ShootSnd (); | ||
1753 | |||
1754 | strcpy (input, &SaveGameNames[which][0]); | ||
1755 | name[7] = which + '0'; | ||
1756 | |||
1757 | fontnumber = 0; | ||
1758 | if (!SaveGamesAvail[which]) | ||
1759 | VWB_Bar (LSM_X + LSItems.indent + 1, LSM_Y + which * 13 + 1, | ||
1760 | LSM_W - LSItems.indent - 16, 10, BKGDCOLOR); | ||
1761 | VW_UpdateScreen (); | ||
1762 | |||
1763 | if (US_LineInput | ||
1764 | (LSM_X + LSItems.indent + 2, LSM_Y + which * 13 + 1, input, input, true, 31, | ||
1765 | LSM_W - LSItems.indent - 30)) | ||
1766 | { | ||
1767 | SaveGamesAvail[which] = 1; | ||
1768 | strcpy (&SaveGameNames[which][0], input); | ||
1769 | |||
1770 | if(configdir[0]) | ||
1771 | snprintf(savepath, sizeof(savepath), "%s/%s", configdir, name); | ||
1772 | else | ||
1773 | strcpy(savepath, name); | ||
1774 | |||
1775 | unlink (savepath); | ||
1776 | file = fopen (savepath, "wb"); | ||
1777 | fwrite (input, 32, 1, file); | ||
1778 | fseek (file, 32, SEEK_SET); | ||
1779 | |||
1780 | DrawLSAction (1); | ||
1781 | SaveTheGame (file, LSA_X + 8, LSA_Y + 5); | ||
1782 | |||
1783 | fclose (file); | ||
1784 | |||
1785 | #ifdef _arch_dreamcast | ||
1786 | DC_SaveToVMU(name, input); | ||
1787 | #endif | ||
1788 | |||
1789 | ShootSnd (); | ||
1790 | exit = 1; | ||
1791 | } | ||
1792 | else | ||
1793 | { | ||
1794 | VWB_Bar (LSM_X + LSItems.indent + 1, LSM_Y + which * 13 + 1, | ||
1795 | LSM_W - LSItems.indent - 16, 10, BKGDCOLOR); | ||
1796 | PrintLSEntry (which, HIGHLIGHT); | ||
1797 | VW_UpdateScreen (); | ||
1798 | SD_PlaySound (ESCPRESSEDSND); | ||
1799 | continue; | ||
1800 | } | ||
1801 | |||
1802 | fontnumber = 1; | ||
1803 | break; | ||
1804 | } | ||
1805 | |||
1806 | } | ||
1807 | while (which >= 0); | ||
1808 | |||
1809 | MenuFadeOut (); | ||
1810 | |||
1811 | #ifdef SPEAR | ||
1812 | UnCacheLump (LOADSAVE_LUMP_START, LOADSAVE_LUMP_END); | ||
1813 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1814 | #endif | ||
1815 | |||
1816 | return exit; | ||
1817 | } | ||
1818 | |||
1819 | //////////////////////////////////////////////////////////////////// | ||
1820 | // | ||
1821 | // DEFINE CONTROLS | ||
1822 | // | ||
1823 | //////////////////////////////////////////////////////////////////// | ||
1824 | int | ||
1825 | CP_Control (int a) | ||
1826 | { | ||
1827 | int which; | ||
1828 | |||
1829 | #ifdef SPEAR | ||
1830 | UnCacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1831 | CacheLump (CONTROL_LUMP_START, CONTROL_LUMP_END); | ||
1832 | #endif | ||
1833 | |||
1834 | DrawCtlScreen (); | ||
1835 | MenuFadeIn (); | ||
1836 | WaitKeyUp (); | ||
1837 | |||
1838 | do | ||
1839 | { | ||
1840 | which = HandleMenu (&CtlItems, CtlMenu, NULL); | ||
1841 | switch (which) | ||
1842 | { | ||
1843 | case CTL_MOUSEENABLE: | ||
1844 | mouseenabled ^= 1; | ||
1845 | if(IN_IsInputGrabbed()) | ||
1846 | IN_CenterMouse(); | ||
1847 | DrawCtlScreen (); | ||
1848 | CusItems.curpos = -1; | ||
1849 | ShootSnd (); | ||
1850 | break; | ||
1851 | |||
1852 | case CTL_JOYENABLE: | ||
1853 | joystickenabled ^= 1; | ||
1854 | DrawCtlScreen (); | ||
1855 | CusItems.curpos = -1; | ||
1856 | ShootSnd (); | ||
1857 | break; | ||
1858 | |||
1859 | case CTL_MOUSESENS: | ||
1860 | case CTL_CUSTOMIZE: | ||
1861 | DrawCtlScreen (); | ||
1862 | MenuFadeIn (); | ||
1863 | WaitKeyUp (); | ||
1864 | break; | ||
1865 | } | ||
1866 | } | ||
1867 | while (which >= 0); | ||
1868 | |||
1869 | MenuFadeOut (); | ||
1870 | |||
1871 | #ifdef SPEAR | ||
1872 | UnCacheLump (CONTROL_LUMP_START, CONTROL_LUMP_END); | ||
1873 | CacheLump (OPTIONS_LUMP_START, OPTIONS_LUMP_END); | ||
1874 | #endif | ||
1875 | return 0; | ||
1876 | } | ||
1877 | |||
1878 | |||
1879 | //////////////////////////////// | ||
1880 | // | ||
1881 | // DRAW MOUSE SENSITIVITY SCREEN | ||
1882 | // | ||
1883 | void | ||
1884 | DrawMouseSens (void) | ||
1885 | { | ||
1886 | #ifdef JAPAN | ||
1887 | CA_CacheScreen (S_MOUSESENSPIC); | ||
1888 | #else | ||
1889 | ClearMScreen (); | ||
1890 | VWB_DrawPic (112, 184, C_MOUSELBACKPIC); | ||
1891 | #ifdef SPANISH | ||
1892 | DrawWindow (10, 80, 300, 43, BKGDCOLOR); | ||
1893 | #else | ||
1894 | DrawWindow (10, 80, 300, 30, BKGDCOLOR); | ||
1895 | #endif | ||
1896 | |||
1897 | WindowX = 0; | ||
1898 | WindowW = 320; | ||
1899 | PrintY = 82; | ||
1900 | SETFONTCOLOR (READCOLOR, BKGDCOLOR); | ||
1901 | US_CPrint (STR_MOUSEADJ); | ||
1902 | |||
1903 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
1904 | #ifdef SPANISH | ||
1905 | PrintX = 14; | ||
1906 | PrintY = 95 + 13; | ||
1907 | US_Print (STR_SLOW); | ||
1908 | PrintX = 252; | ||
1909 | US_Print (STR_FAST); | ||
1910 | #else | ||
1911 | PrintX = 14; | ||
1912 | PrintY = 95; | ||
1913 | US_Print (STR_SLOW); | ||
1914 | PrintX = 269; | ||
1915 | US_Print (STR_FAST); | ||
1916 | #endif | ||
1917 | #endif | ||
1918 | |||
1919 | VWB_Bar (60, 97, 200, 10, TEXTCOLOR); | ||
1920 | DrawOutline (60, 97, 200, 10, 0, HIGHLIGHT); | ||
1921 | DrawOutline (60 + 20 * mouseadjustment, 97, 20, 10, 0, READCOLOR); | ||
1922 | VWB_Bar (61 + 20 * mouseadjustment, 98, 19, 9, READHCOLOR); | ||
1923 | |||
1924 | VW_UpdateScreen (); | ||
1925 | MenuFadeIn (); | ||
1926 | } | ||
1927 | |||
1928 | |||
1929 | /////////////////////////// | ||
1930 | // | ||
1931 | // ADJUST MOUSE SENSITIVITY | ||
1932 | // | ||
1933 | int | ||
1934 | MouseSensitivity (int a) | ||
1935 | { | ||
1936 | ControlInfo ci; | ||
1937 | int exit = 0, oldMA; | ||
1938 | |||
1939 | |||
1940 | oldMA = mouseadjustment; | ||
1941 | DrawMouseSens (); | ||
1942 | do | ||
1943 | { | ||
1944 | SDL_Delay(5); | ||
1945 | ReadAnyControl (&ci); | ||
1946 | switch (ci.dir) | ||
1947 | { | ||
1948 | case dir_North: | ||
1949 | case dir_West: | ||
1950 | if (mouseadjustment) | ||
1951 | { | ||
1952 | mouseadjustment--; | ||
1953 | VWB_Bar (60, 97, 200, 10, TEXTCOLOR); | ||
1954 | DrawOutline (60, 97, 200, 10, 0, HIGHLIGHT); | ||
1955 | DrawOutline (60 + 20 * mouseadjustment, 97, 20, 10, 0, READCOLOR); | ||
1956 | VWB_Bar (61 + 20 * mouseadjustment, 98, 19, 9, READHCOLOR); | ||
1957 | VW_UpdateScreen (); | ||
1958 | SD_PlaySound (MOVEGUN1SND); | ||
1959 | TicDelay(20); | ||
1960 | } | ||
1961 | break; | ||
1962 | |||
1963 | case dir_South: | ||
1964 | case dir_East: | ||
1965 | if (mouseadjustment < 9) | ||
1966 | { | ||
1967 | mouseadjustment++; | ||
1968 | VWB_Bar (60, 97, 200, 10, TEXTCOLOR); | ||
1969 | DrawOutline (60, 97, 200, 10, 0, HIGHLIGHT); | ||
1970 | DrawOutline (60 + 20 * mouseadjustment, 97, 20, 10, 0, READCOLOR); | ||
1971 | VWB_Bar (61 + 20 * mouseadjustment, 98, 19, 9, READHCOLOR); | ||
1972 | VW_UpdateScreen (); | ||
1973 | SD_PlaySound (MOVEGUN1SND); | ||
1974 | TicDelay(20); | ||
1975 | } | ||
1976 | break; | ||
1977 | } | ||
1978 | |||
1979 | if (ci.button0 || Keyboard[sc_Space] || Keyboard[sc_Enter]) | ||
1980 | exit = 1; | ||
1981 | else if (ci.button1 || Keyboard[sc_Escape]) | ||
1982 | exit = 2; | ||
1983 | |||
1984 | } | ||
1985 | while (!exit); | ||
1986 | |||
1987 | if (exit == 2) | ||
1988 | { | ||
1989 | mouseadjustment = oldMA; | ||
1990 | SD_PlaySound (ESCPRESSEDSND); | ||
1991 | } | ||
1992 | else | ||
1993 | SD_PlaySound (SHOOTSND); | ||
1994 | |||
1995 | WaitKeyUp (); | ||
1996 | MenuFadeOut (); | ||
1997 | |||
1998 | return 0; | ||
1999 | } | ||
2000 | |||
2001 | |||
2002 | /////////////////////////// | ||
2003 | // | ||
2004 | // DRAW CONTROL MENU SCREEN | ||
2005 | // | ||
2006 | void | ||
2007 | DrawCtlScreen (void) | ||
2008 | { | ||
2009 | int i, x, y; | ||
2010 | |||
2011 | #ifdef JAPAN | ||
2012 | CA_CacheScreen (S_CONTROLPIC); | ||
2013 | #else | ||
2014 | ClearMScreen (); | ||
2015 | DrawStripes (10); | ||
2016 | VWB_DrawPic (80, 0, C_CONTROLPIC); | ||
2017 | VWB_DrawPic (112, 184, C_MOUSELBACKPIC); | ||
2018 | DrawWindow (CTL_X - 8, CTL_Y - 5, CTL_W, CTL_H, BKGDCOLOR); | ||
2019 | #endif | ||
2020 | WindowX = 0; | ||
2021 | WindowW = 320; | ||
2022 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
2023 | |||
2024 | if (IN_JoyPresent()) | ||
2025 | CtlMenu[CTL_JOYENABLE].active = 1; | ||
2026 | |||
2027 | if (MousePresent) | ||
2028 | { | ||
2029 | CtlMenu[CTL_MOUSESENS].active = CtlMenu[CTL_MOUSEENABLE].active = 1; | ||
2030 | } | ||
2031 | |||
2032 | CtlMenu[CTL_MOUSESENS].active = mouseenabled; | ||
2033 | |||
2034 | |||
2035 | DrawMenu (&CtlItems, CtlMenu); | ||
2036 | |||
2037 | |||
2038 | x = CTL_X + CtlItems.indent - 24; | ||
2039 | y = CTL_Y + 3; | ||
2040 | if (mouseenabled) | ||
2041 | VWB_DrawPic (x, y, C_SELECTEDPIC); | ||
2042 | else | ||
2043 | VWB_DrawPic (x, y, C_NOTSELECTEDPIC); | ||
2044 | |||
2045 | y = CTL_Y + 29; | ||
2046 | if (joystickenabled) | ||
2047 | VWB_DrawPic (x, y, C_SELECTEDPIC); | ||
2048 | else | ||
2049 | VWB_DrawPic (x, y, C_NOTSELECTEDPIC); | ||
2050 | |||
2051 | // | ||
2052 | // PICK FIRST AVAILABLE SPOT | ||
2053 | // | ||
2054 | if (CtlItems.curpos < 0 || !CtlMenu[CtlItems.curpos].active) | ||
2055 | { | ||
2056 | for (i = 0; i < CtlItems.amount; i++) | ||
2057 | { | ||
2058 | if (CtlMenu[i].active) | ||
2059 | { | ||
2060 | CtlItems.curpos = i; | ||
2061 | break; | ||
2062 | } | ||
2063 | } | ||
2064 | } | ||
2065 | |||
2066 | DrawMenuGun (&CtlItems); | ||
2067 | VW_UpdateScreen (); | ||
2068 | } | ||
2069 | |||
2070 | |||
2071 | //////////////////////////////////////////////////////////////////// | ||
2072 | // | ||
2073 | // CUSTOMIZE CONTROLS | ||
2074 | // | ||
2075 | //////////////////////////////////////////////////////////////////// | ||
2076 | enum | ||
2077 | { FIRE, STRAFE, RUN, OPEN }; | ||
2078 | char mbarray[4][3] = { "b0", "b1", "b2", "b3" }; | ||
2079 | int8_t order[4] = { RUN, OPEN, FIRE, STRAFE }; | ||
2080 | |||
2081 | |||
2082 | int | ||
2083 | CustomControls (int a) | ||
2084 | { | ||
2085 | int which; | ||
2086 | |||
2087 | DrawCustomScreen (); | ||
2088 | do | ||
2089 | { | ||
2090 | which = HandleMenu (&CusItems, &CusMenu[0], FixupCustom); | ||
2091 | switch (which) | ||
2092 | { | ||
2093 | case 0: | ||
2094 | DefineMouseBtns (); | ||
2095 | DrawCustMouse (1); | ||
2096 | break; | ||
2097 | case 3: | ||
2098 | DefineJoyBtns (); | ||
2099 | DrawCustJoy (0); | ||
2100 | break; | ||
2101 | case 6: | ||
2102 | DefineKeyBtns (); | ||
2103 | DrawCustKeybd (0); | ||
2104 | break; | ||
2105 | case 8: | ||
2106 | DefineKeyMove (); | ||
2107 | DrawCustKeys (0); | ||
2108 | } | ||
2109 | } | ||
2110 | while (which >= 0); | ||
2111 | |||
2112 | MenuFadeOut (); | ||
2113 | |||
2114 | return 0; | ||
2115 | } | ||
2116 | |||
2117 | |||
2118 | //////////////////////// | ||
2119 | // | ||
2120 | // DEFINE THE MOUSE BUTTONS | ||
2121 | // | ||
2122 | void | ||
2123 | DefineMouseBtns (void) | ||
2124 | { | ||
2125 | CustomCtrls mouseallowed = { 0, 1, 1, 1 }; | ||
2126 | EnterCtrlData (2, &mouseallowed, DrawCustMouse, PrintCustMouse, MOUSE); | ||
2127 | } | ||
2128 | |||
2129 | |||
2130 | //////////////////////// | ||
2131 | // | ||
2132 | // DEFINE THE JOYSTICK BUTTONS | ||
2133 | // | ||
2134 | void | ||
2135 | DefineJoyBtns (void) | ||
2136 | { | ||
2137 | CustomCtrls joyallowed = { 1, 1, 1, 1 }; | ||
2138 | EnterCtrlData (5, &joyallowed, DrawCustJoy, PrintCustJoy, JOYSTICK); | ||
2139 | } | ||
2140 | |||
2141 | |||
2142 | //////////////////////// | ||
2143 | // | ||
2144 | // DEFINE THE KEYBOARD BUTTONS | ||
2145 | // | ||
2146 | void | ||
2147 | DefineKeyBtns (void) | ||
2148 | { | ||
2149 | CustomCtrls keyallowed = { 1, 1, 1, 1 }; | ||
2150 | EnterCtrlData (8, &keyallowed, DrawCustKeybd, PrintCustKeybd, KEYBOARDBTNS); | ||
2151 | } | ||
2152 | |||
2153 | |||
2154 | //////////////////////// | ||
2155 | // | ||
2156 | // DEFINE THE KEYBOARD BUTTONS | ||
2157 | // | ||
2158 | void | ||
2159 | DefineKeyMove (void) | ||
2160 | { | ||
2161 | CustomCtrls keyallowed = { 1, 1, 1, 1 }; | ||
2162 | EnterCtrlData (10, &keyallowed, DrawCustKeys, PrintCustKeys, KEYBOARDMOVE); | ||
2163 | } | ||
2164 | |||
2165 | |||
2166 | //////////////////////// | ||
2167 | // | ||
2168 | // ENTER CONTROL DATA FOR ANY TYPE OF CONTROL | ||
2169 | // | ||
2170 | enum | ||
2171 | { FWRD, RIGHT, BKWD, LEFT }; | ||
2172 | int moveorder[4] = { LEFT, RIGHT, FWRD, BKWD }; | ||
2173 | |||
2174 | void | ||
2175 | EnterCtrlData (int index, CustomCtrls * cust, void (*DrawRtn) (int), void (*PrintRtn) (int), | ||
2176 | int type) | ||
2177 | { | ||
2178 | int j, exit, tick, redraw, which, x, picked, lastFlashTime; | ||
2179 | ControlInfo ci; | ||
2180 | |||
2181 | |||
2182 | ShootSnd (); | ||
2183 | PrintY = CST_Y + 13 * index; | ||
2184 | IN_ClearKeysDown (); | ||
2185 | exit = 0; | ||
2186 | redraw = 1; | ||
2187 | // | ||
2188 | // FIND FIRST SPOT IN ALLOWED ARRAY | ||
2189 | // | ||
2190 | for (j = 0; j < 4; j++) | ||
2191 | if (cust->allowed[j]) | ||
2192 | { | ||
2193 | which = j; | ||
2194 | break; | ||
2195 | } | ||
2196 | |||
2197 | do | ||
2198 | { | ||
2199 | if (redraw) | ||
2200 | { | ||
2201 | x = CST_START + CST_SPC * which; | ||
2202 | DrawWindow (5, PrintY - 1, 310, 13, BKGDCOLOR); | ||
2203 | |||
2204 | DrawRtn (1); | ||
2205 | DrawWindow (x - 2, PrintY, CST_SPC, 11, TEXTCOLOR); | ||
2206 | DrawOutline (x - 2, PrintY, CST_SPC, 11, 0, HIGHLIGHT); | ||
2207 | SETFONTCOLOR (0, TEXTCOLOR); | ||
2208 | PrintRtn (which); | ||
2209 | PrintX = x; | ||
2210 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
2211 | VW_UpdateScreen (); | ||
2212 | WaitKeyUp (); | ||
2213 | redraw = 0; | ||
2214 | } | ||
2215 | |||
2216 | SDL_Delay(5); | ||
2217 | ReadAnyControl (&ci); | ||
2218 | |||
2219 | if (type == MOUSE || type == JOYSTICK) | ||
2220 | if (IN_KeyDown (sc_Enter) || IN_KeyDown (sc_Control) || IN_KeyDown (sc_Alt)) | ||
2221 | { | ||
2222 | IN_ClearKeysDown (); | ||
2223 | ci.button0 = ci.button1 = false; | ||
2224 | } | ||
2225 | |||
2226 | // | ||
2227 | // CHANGE BUTTON VALUE? | ||
2228 | // | ||
2229 | if ((type != KEYBOARDBTNS && type != KEYBOARDMOVE) && (ci.button0 | ci.button1 | ci.button2 | ci.button3) || | ||
2230 | ((type == KEYBOARDBTNS || type == KEYBOARDMOVE) && LastScan == sc_Enter)) | ||
2231 | { | ||
2232 | lastFlashTime = GetTimeCount(); | ||
2233 | tick = picked = 0; | ||
2234 | SETFONTCOLOR (0, TEXTCOLOR); | ||
2235 | |||
2236 | if (type == KEYBOARDBTNS || type == KEYBOARDMOVE) | ||
2237 | IN_ClearKeysDown (); | ||
2238 | |||
2239 | while(1) | ||
2240 | { | ||
2241 | int button, result = 0; | ||
2242 | |||
2243 | // | ||
2244 | // FLASH CURSOR | ||
2245 | // | ||
2246 | if (GetTimeCount() - lastFlashTime > 10) | ||
2247 | { | ||
2248 | switch (tick) | ||
2249 | { | ||
2250 | case 0: | ||
2251 | VWB_Bar (x, PrintY + 1, CST_SPC - 2, 10, TEXTCOLOR); | ||
2252 | break; | ||
2253 | case 1: | ||
2254 | PrintX = x; | ||
2255 | US_Print ("?"); | ||
2256 | SD_PlaySound (HITWALLSND); | ||
2257 | } | ||
2258 | tick ^= 1; | ||
2259 | lastFlashTime = GetTimeCount(); | ||
2260 | VW_UpdateScreen (); | ||
2261 | } | ||
2262 | else SDL_Delay(5); | ||
2263 | |||
2264 | // | ||
2265 | // WHICH TYPE OF INPUT DO WE PROCESS? | ||
2266 | // | ||
2267 | switch (type) | ||
2268 | { | ||
2269 | case MOUSE: | ||
2270 | button = IN_MouseButtons(); | ||
2271 | switch (button) | ||
2272 | { | ||
2273 | case 1: | ||
2274 | result = 1; | ||
2275 | break; | ||
2276 | case 2: | ||
2277 | result = 2; | ||
2278 | break; | ||
2279 | case 4: | ||
2280 | result = 3; | ||
2281 | break; | ||
2282 | } | ||
2283 | |||
2284 | if (result) | ||
2285 | { | ||
2286 | for (int z = 0; z < 4; z++) | ||
2287 | if (order[which] == buttonmouse[z]) | ||
2288 | { | ||
2289 | buttonmouse[z] = bt_nobutton; | ||
2290 | break; | ||
2291 | } | ||
2292 | |||
2293 | buttonmouse[result - 1] = order[which]; | ||
2294 | picked = 1; | ||
2295 | SD_PlaySound (SHOOTDOORSND); | ||
2296 | } | ||
2297 | break; | ||
2298 | |||
2299 | case JOYSTICK: | ||
2300 | if (ci.button0) | ||
2301 | result = 1; | ||
2302 | else if (ci.button1) | ||
2303 | result = 2; | ||
2304 | else if (ci.button2) | ||
2305 | result = 3; | ||
2306 | else if (ci.button3) | ||
2307 | result = 4; | ||
2308 | |||
2309 | if (result) | ||
2310 | { | ||
2311 | for (int z = 0; z < 4; z++) | ||
2312 | { | ||
2313 | if (order[which] == buttonjoy[z]) | ||
2314 | { | ||
2315 | buttonjoy[z] = bt_nobutton; | ||
2316 | break; | ||
2317 | } | ||
2318 | } | ||
2319 | |||
2320 | buttonjoy[result - 1] = order[which]; | ||
2321 | picked = 1; | ||
2322 | SD_PlaySound (SHOOTDOORSND); | ||
2323 | } | ||
2324 | break; | ||
2325 | |||
2326 | case KEYBOARDBTNS: | ||
2327 | if (LastScan && LastScan != sc_Escape) | ||
2328 | { | ||
2329 | buttonscan[order[which]] = LastScan; | ||
2330 | picked = 1; | ||
2331 | ShootSnd (); | ||
2332 | IN_ClearKeysDown (); | ||
2333 | } | ||
2334 | break; | ||
2335 | |||
2336 | case KEYBOARDMOVE: | ||
2337 | if (LastScan && LastScan != sc_Escape) | ||
2338 | { | ||
2339 | dirscan[moveorder[which]] = LastScan; | ||
2340 | picked = 1; | ||
2341 | ShootSnd (); | ||
2342 | IN_ClearKeysDown (); | ||
2343 | } | ||
2344 | break; | ||
2345 | } | ||
2346 | |||
2347 | // | ||
2348 | // EXIT INPUT? | ||
2349 | // | ||
2350 | if (IN_KeyDown (sc_Escape) || type != JOYSTICK && ci.button1) | ||
2351 | { | ||
2352 | picked = 1; | ||
2353 | SD_PlaySound (ESCPRESSEDSND); | ||
2354 | } | ||
2355 | |||
2356 | if(picked) break; | ||
2357 | |||
2358 | ReadAnyControl (&ci); | ||
2359 | } | ||
2360 | |||
2361 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
2362 | redraw = 1; | ||
2363 | WaitKeyUp (); | ||
2364 | continue; | ||
2365 | } | ||
2366 | |||
2367 | if (ci.button1 || IN_KeyDown (sc_Escape)) | ||
2368 | exit = 1; | ||
2369 | |||
2370 | // | ||
2371 | // MOVE TO ANOTHER SPOT? | ||
2372 | // | ||
2373 | switch (ci.dir) | ||
2374 | { | ||
2375 | case dir_West: | ||
2376 | do | ||
2377 | { | ||
2378 | which--; | ||
2379 | if (which < 0) | ||
2380 | which = 3; | ||
2381 | } | ||
2382 | while (!cust->allowed[which]); | ||
2383 | redraw = 1; | ||
2384 | SD_PlaySound (MOVEGUN1SND); | ||
2385 | while (ReadAnyControl (&ci), ci.dir != dir_None) SDL_Delay(5); | ||
2386 | IN_ClearKeysDown (); | ||
2387 | break; | ||
2388 | |||
2389 | case dir_East: | ||
2390 | do | ||
2391 | { | ||
2392 | which++; | ||
2393 | if (which > 3) | ||
2394 | which = 0; | ||
2395 | } | ||
2396 | while (!cust->allowed[which]); | ||
2397 | redraw = 1; | ||
2398 | SD_PlaySound (MOVEGUN1SND); | ||
2399 | while (ReadAnyControl (&ci), ci.dir != dir_None) SDL_Delay(5); | ||
2400 | IN_ClearKeysDown (); | ||
2401 | break; | ||
2402 | case dir_North: | ||
2403 | case dir_South: | ||
2404 | exit = 1; | ||
2405 | } | ||
2406 | } | ||
2407 | while (!exit); | ||
2408 | |||
2409 | SD_PlaySound (ESCPRESSEDSND); | ||
2410 | WaitKeyUp (); | ||
2411 | DrawWindow (5, PrintY - 1, 310, 13, BKGDCOLOR); | ||
2412 | } | ||
2413 | |||
2414 | |||
2415 | //////////////////////// | ||
2416 | // | ||
2417 | // FIXUP GUN CURSOR OVERDRAW SHIT | ||
2418 | // | ||
2419 | void | ||
2420 | FixupCustom (int w) | ||
2421 | { | ||
2422 | static int lastwhich = -1; | ||
2423 | int y = CST_Y + 26 + w * 13; | ||
2424 | |||
2425 | |||
2426 | VWB_Hlin (7, 32, y - 1, DEACTIVE); | ||
2427 | VWB_Hlin (7, 32, y + 12, BORD2COLOR); | ||
2428 | #ifndef SPEAR | ||
2429 | VWB_Hlin (7, 32, y - 2, BORDCOLOR); | ||
2430 | VWB_Hlin (7, 32, y + 13, BORDCOLOR); | ||
2431 | #else | ||
2432 | VWB_Hlin (7, 32, y - 2, BORD2COLOR); | ||
2433 | VWB_Hlin (7, 32, y + 13, BORD2COLOR); | ||
2434 | #endif | ||
2435 | |||
2436 | switch (w) | ||
2437 | { | ||
2438 | case 0: | ||
2439 | DrawCustMouse (1); | ||
2440 | break; | ||
2441 | case 3: | ||
2442 | DrawCustJoy (1); | ||
2443 | break; | ||
2444 | case 6: | ||
2445 | DrawCustKeybd (1); | ||
2446 | break; | ||
2447 | case 8: | ||
2448 | DrawCustKeys (1); | ||
2449 | } | ||
2450 | |||
2451 | |||
2452 | if (lastwhich >= 0) | ||
2453 | { | ||
2454 | y = CST_Y + 26 + lastwhich * 13; | ||
2455 | VWB_Hlin (7, 32, y - 1, DEACTIVE); | ||
2456 | VWB_Hlin (7, 32, y + 12, BORD2COLOR); | ||
2457 | #ifndef SPEAR | ||
2458 | VWB_Hlin (7, 32, y - 2, BORDCOLOR); | ||
2459 | VWB_Hlin (7, 32, y + 13, BORDCOLOR); | ||
2460 | #else | ||
2461 | VWB_Hlin (7, 32, y - 2, BORD2COLOR); | ||
2462 | VWB_Hlin (7, 32, y + 13, BORD2COLOR); | ||
2463 | #endif | ||
2464 | |||
2465 | if (lastwhich != w) | ||
2466 | switch (lastwhich) | ||
2467 | { | ||
2468 | case 0: | ||
2469 | DrawCustMouse (0); | ||
2470 | break; | ||
2471 | case 3: | ||
2472 | DrawCustJoy (0); | ||
2473 | break; | ||
2474 | case 6: | ||
2475 | DrawCustKeybd (0); | ||
2476 | break; | ||
2477 | case 8: | ||
2478 | DrawCustKeys (0); | ||
2479 | } | ||
2480 | } | ||
2481 | |||
2482 | lastwhich = w; | ||
2483 | } | ||
2484 | |||
2485 | |||
2486 | //////////////////////// | ||
2487 | // | ||
2488 | // DRAW CUSTOMIZE SCREEN | ||
2489 | // | ||
2490 | void | ||
2491 | DrawCustomScreen (void) | ||
2492 | { | ||
2493 | int i; | ||
2494 | |||
2495 | |||
2496 | #ifdef JAPAN | ||
2497 | CA_CacheScreen (S_CUSTOMPIC); | ||
2498 | fontnumber = 1; | ||
2499 | |||
2500 | PrintX = CST_START; | ||
2501 | PrintY = CST_Y + 26; | ||
2502 | DrawCustMouse (0); | ||
2503 | |||
2504 | PrintX = CST_START; | ||
2505 | US_Print ("\n\n\n"); | ||
2506 | DrawCustJoy (0); | ||
2507 | |||
2508 | PrintX = CST_START; | ||
2509 | US_Print ("\n\n\n"); | ||
2510 | DrawCustKeybd (0); | ||
2511 | |||
2512 | PrintX = CST_START; | ||
2513 | US_Print ("\n\n\n"); | ||
2514 | DrawCustKeys (0); | ||
2515 | #else | ||
2516 | ClearMScreen (); | ||
2517 | WindowX = 0; | ||
2518 | WindowW = 320; | ||
2519 | VWB_DrawPic (112, 184, C_MOUSELBACKPIC); | ||
2520 | DrawStripes (10); | ||
2521 | VWB_DrawPic (80, 0, C_CUSTOMIZEPIC); | ||
2522 | |||
2523 | // | ||
2524 | // MOUSE | ||
2525 | // | ||
2526 | SETFONTCOLOR (READCOLOR, BKGDCOLOR); | ||
2527 | WindowX = 0; | ||
2528 | WindowW = 320; | ||
2529 | |||
2530 | #ifndef SPEAR | ||
2531 | PrintY = CST_Y; | ||
2532 | US_CPrint ("Mouse\n"); | ||
2533 | #else | ||
2534 | PrintY = CST_Y + 13; | ||
2535 | VWB_DrawPic (128, 48, C_MOUSEPIC); | ||
2536 | #endif | ||
2537 | |||
2538 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
2539 | #ifdef SPANISH | ||
2540 | PrintX = CST_START - 16; | ||
2541 | US_Print (STR_CRUN); | ||
2542 | PrintX = CST_START - 16 + CST_SPC * 1; | ||
2543 | US_Print (STR_COPEN); | ||
2544 | PrintX = CST_START - 16 + CST_SPC * 2; | ||
2545 | US_Print (STR_CFIRE); | ||
2546 | PrintX = CST_START - 16 + CST_SPC * 3; | ||
2547 | US_Print (STR_CSTRAFE "\n"); | ||
2548 | #else | ||
2549 | PrintX = CST_START; | ||
2550 | US_Print (STR_CRUN); | ||
2551 | PrintX = CST_START + CST_SPC * 1; | ||
2552 | US_Print (STR_COPEN); | ||
2553 | PrintX = CST_START + CST_SPC * 2; | ||
2554 | US_Print (STR_CFIRE); | ||
2555 | PrintX = CST_START + CST_SPC * 3; | ||
2556 | US_Print (STR_CSTRAFE "\n"); | ||
2557 | #endif | ||
2558 | |||
2559 | DrawWindow (5, PrintY - 1, 310, 13, BKGDCOLOR); | ||
2560 | DrawCustMouse (0); | ||
2561 | US_Print ("\n"); | ||
2562 | |||
2563 | |||
2564 | // | ||
2565 | // JOYSTICK/PAD | ||
2566 | // | ||
2567 | #ifndef SPEAR | ||
2568 | SETFONTCOLOR (READCOLOR, BKGDCOLOR); | ||
2569 | US_CPrint ("Joystick/Gravis GamePad\n"); | ||
2570 | #else | ||
2571 | PrintY += 13; | ||
2572 | VWB_DrawPic (40, 88, C_JOYSTICKPIC); | ||
2573 | #endif | ||
2574 | |||
2575 | #ifdef SPEAR | ||
2576 | VWB_DrawPic (112, 120, C_KEYBOARDPIC); | ||
2577 | #endif | ||
2578 | |||
2579 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
2580 | #ifdef SPANISH | ||
2581 | PrintX = CST_START - 16; | ||
2582 | US_Print (STR_CRUN); | ||
2583 | PrintX = CST_START - 16 + CST_SPC * 1; | ||
2584 | US_Print (STR_COPEN); | ||
2585 | PrintX = CST_START - 16 + CST_SPC * 2; | ||
2586 | US_Print (STR_CFIRE); | ||
2587 | PrintX = CST_START - 16 + CST_SPC * 3; | ||
2588 | US_Print (STR_CSTRAFE "\n"); | ||
2589 | #else | ||
2590 | PrintX = CST_START; | ||
2591 | US_Print (STR_CRUN); | ||
2592 | PrintX = CST_START + CST_SPC * 1; | ||
2593 | US_Print (STR_COPEN); | ||
2594 | PrintX = CST_START + CST_SPC * 2; | ||
2595 | US_Print (STR_CFIRE); | ||
2596 | PrintX = CST_START + CST_SPC * 3; | ||
2597 | US_Print (STR_CSTRAFE "\n"); | ||
2598 | #endif | ||
2599 | DrawWindow (5, PrintY - 1, 310, 13, BKGDCOLOR); | ||
2600 | DrawCustJoy (0); | ||
2601 | US_Print ("\n"); | ||
2602 | |||
2603 | |||
2604 | // | ||
2605 | // KEYBOARD | ||
2606 | // | ||
2607 | #ifndef SPEAR | ||
2608 | SETFONTCOLOR (READCOLOR, BKGDCOLOR); | ||
2609 | US_CPrint ("Keyboard\n"); | ||
2610 | #else | ||
2611 | PrintY += 13; | ||
2612 | #endif | ||
2613 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
2614 | #ifdef SPANISH | ||
2615 | PrintX = CST_START - 16; | ||
2616 | US_Print (STR_CRUN); | ||
2617 | PrintX = CST_START - 16 + CST_SPC * 1; | ||
2618 | US_Print (STR_COPEN); | ||
2619 | PrintX = CST_START - 16 + CST_SPC * 2; | ||
2620 | US_Print (STR_CFIRE); | ||
2621 | PrintX = CST_START - 16 + CST_SPC * 3; | ||
2622 | US_Print (STR_CSTRAFE "\n"); | ||
2623 | #else | ||
2624 | PrintX = CST_START; | ||
2625 | US_Print (STR_CRUN); | ||
2626 | PrintX = CST_START + CST_SPC * 1; | ||
2627 | US_Print (STR_COPEN); | ||
2628 | PrintX = CST_START + CST_SPC * 2; | ||
2629 | US_Print (STR_CFIRE); | ||
2630 | PrintX = CST_START + CST_SPC * 3; | ||
2631 | US_Print (STR_CSTRAFE "\n"); | ||
2632 | #endif | ||
2633 | DrawWindow (5, PrintY - 1, 310, 13, BKGDCOLOR); | ||
2634 | DrawCustKeybd (0); | ||
2635 | US_Print ("\n"); | ||
2636 | |||
2637 | |||
2638 | // | ||
2639 | // KEYBOARD MOVE KEYS | ||
2640 | // | ||
2641 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
2642 | #ifdef SPANISH | ||
2643 | PrintX = 4; | ||
2644 | US_Print (STR_LEFT); | ||
2645 | US_Print ("/"); | ||
2646 | US_Print (STR_RIGHT); | ||
2647 | US_Print ("/"); | ||
2648 | US_Print (STR_FRWD); | ||
2649 | US_Print ("/"); | ||
2650 | US_Print (STR_BKWD "\n"); | ||
2651 | #else | ||
2652 | PrintX = CST_START; | ||
2653 | US_Print (STR_LEFT); | ||
2654 | PrintX = CST_START + CST_SPC * 1; | ||
2655 | US_Print (STR_RIGHT); | ||
2656 | PrintX = CST_START + CST_SPC * 2; | ||
2657 | US_Print (STR_FRWD); | ||
2658 | PrintX = CST_START + CST_SPC * 3; | ||
2659 | US_Print (STR_BKWD "\n"); | ||
2660 | #endif | ||
2661 | DrawWindow (5, PrintY - 1, 310, 13, BKGDCOLOR); | ||
2662 | DrawCustKeys (0); | ||
2663 | #endif | ||
2664 | // | ||
2665 | // PICK STARTING POINT IN MENU | ||
2666 | // | ||
2667 | if (CusItems.curpos < 0) | ||
2668 | for (i = 0; i < CusItems.amount; i++) | ||
2669 | if (CusMenu[i].active) | ||
2670 | { | ||
2671 | CusItems.curpos = i; | ||
2672 | break; | ||
2673 | } | ||
2674 | |||
2675 | |||
2676 | VW_UpdateScreen (); | ||
2677 | MenuFadeIn (); | ||
2678 | } | ||
2679 | |||
2680 | |||
2681 | void | ||
2682 | PrintCustMouse (int i) | ||
2683 | { | ||
2684 | int j; | ||
2685 | |||
2686 | for (j = 0; j < 4; j++) | ||
2687 | if (order[i] == buttonmouse[j]) | ||
2688 | { | ||
2689 | PrintX = CST_START + CST_SPC * i; | ||
2690 | US_Print (mbarray[j]); | ||
2691 | break; | ||
2692 | } | ||
2693 | } | ||
2694 | |||
2695 | void | ||
2696 | DrawCustMouse (int hilight) | ||
2697 | { | ||
2698 | int i, color; | ||
2699 | |||
2700 | |||
2701 | color = TEXTCOLOR; | ||
2702 | if (hilight) | ||
2703 | color = HIGHLIGHT; | ||
2704 | SETFONTCOLOR (color, BKGDCOLOR); | ||
2705 | |||
2706 | if (!mouseenabled) | ||
2707 | { | ||
2708 | SETFONTCOLOR (DEACTIVE, BKGDCOLOR); | ||
2709 | CusMenu[0].active = 0; | ||
2710 | } | ||
2711 | else | ||
2712 | CusMenu[0].active = 1; | ||
2713 | |||
2714 | PrintY = CST_Y + 13 * 2; | ||
2715 | for (i = 0; i < 4; i++) | ||
2716 | PrintCustMouse (i); | ||
2717 | } | ||
2718 | |||
2719 | void | ||
2720 | PrintCustJoy (int i) | ||
2721 | { | ||
2722 | for (int j = 0; j < 4; j++) | ||
2723 | { | ||
2724 | if (order[i] == buttonjoy[j]) | ||
2725 | { | ||
2726 | PrintX = CST_START + CST_SPC * i; | ||
2727 | US_Print (mbarray[j]); | ||
2728 | break; | ||
2729 | } | ||
2730 | } | ||
2731 | } | ||
2732 | |||
2733 | void | ||
2734 | DrawCustJoy (int hilight) | ||
2735 | { | ||
2736 | int i, color; | ||
2737 | |||
2738 | color = TEXTCOLOR; | ||
2739 | if (hilight) | ||
2740 | color = HIGHLIGHT; | ||
2741 | SETFONTCOLOR (color, BKGDCOLOR); | ||
2742 | |||
2743 | if (!joystickenabled) | ||
2744 | { | ||
2745 | SETFONTCOLOR (DEACTIVE, BKGDCOLOR); | ||
2746 | CusMenu[3].active = 0; | ||
2747 | } | ||
2748 | else | ||
2749 | CusMenu[3].active = 1; | ||
2750 | |||
2751 | PrintY = CST_Y + 13 * 5; | ||
2752 | for (i = 0; i < 4; i++) | ||
2753 | PrintCustJoy (i); | ||
2754 | } | ||
2755 | |||
2756 | |||
2757 | void | ||
2758 | PrintCustKeybd (int i) | ||
2759 | { | ||
2760 | PrintX = CST_START + CST_SPC * i; | ||
2761 | US_Print ((const char *) IN_GetScanName (buttonscan[order[i]])); | ||
2762 | } | ||
2763 | |||
2764 | void | ||
2765 | DrawCustKeybd (int hilight) | ||
2766 | { | ||
2767 | int i, color; | ||
2768 | |||
2769 | |||
2770 | color = TEXTCOLOR; | ||
2771 | if (hilight) | ||
2772 | color = HIGHLIGHT; | ||
2773 | SETFONTCOLOR (color, BKGDCOLOR); | ||
2774 | |||
2775 | PrintY = CST_Y + 13 * 8; | ||
2776 | for (i = 0; i < 4; i++) | ||
2777 | PrintCustKeybd (i); | ||
2778 | } | ||
2779 | |||
2780 | void | ||
2781 | PrintCustKeys (int i) | ||
2782 | { | ||
2783 | PrintX = CST_START + CST_SPC * i; | ||
2784 | US_Print ((const char *) IN_GetScanName (dirscan[moveorder[i]])); | ||
2785 | } | ||
2786 | |||
2787 | void | ||
2788 | DrawCustKeys (int hilight) | ||
2789 | { | ||
2790 | int i, color; | ||
2791 | |||
2792 | |||
2793 | color = TEXTCOLOR; | ||
2794 | if (hilight) | ||
2795 | color = HIGHLIGHT; | ||
2796 | SETFONTCOLOR (color, BKGDCOLOR); | ||
2797 | |||
2798 | PrintY = CST_Y + 13 * 10; | ||
2799 | for (i = 0; i < 4; i++) | ||
2800 | PrintCustKeys (i); | ||
2801 | } | ||
2802 | |||
2803 | |||
2804 | //////////////////////////////////////////////////////////////////// | ||
2805 | // | ||
2806 | // CHANGE SCREEN VIEWING SIZE | ||
2807 | // | ||
2808 | //////////////////////////////////////////////////////////////////// | ||
2809 | int | ||
2810 | CP_ChangeView (int a) | ||
2811 | { | ||
2812 | int exit = 0, oldview, newview; | ||
2813 | ControlInfo ci; | ||
2814 | |||
2815 | WindowX = WindowY = 0; | ||
2816 | WindowW = 320; | ||
2817 | WindowH = 200; | ||
2818 | newview = oldview = viewsize; | ||
2819 | DrawChangeView (oldview); | ||
2820 | MenuFadeIn (); | ||
2821 | |||
2822 | do | ||
2823 | { | ||
2824 | CheckPause (); | ||
2825 | SDL_Delay(5); | ||
2826 | ReadAnyControl (&ci); | ||
2827 | switch (ci.dir) | ||
2828 | { | ||
2829 | case dir_South: | ||
2830 | case dir_West: | ||
2831 | newview--; | ||
2832 | if (newview < 4) | ||
2833 | newview = 4; | ||
2834 | if(newview >= 19) DrawChangeView(newview); | ||
2835 | else ShowViewSize (newview); | ||
2836 | VW_UpdateScreen (); | ||
2837 | SD_PlaySound (HITWALLSND); | ||
2838 | TicDelay (10); | ||
2839 | break; | ||
2840 | |||
2841 | case dir_North: | ||
2842 | case dir_East: | ||
2843 | newview++; | ||
2844 | if (newview >= 21) | ||
2845 | { | ||
2846 | newview = 21; | ||
2847 | DrawChangeView(newview); | ||
2848 | } | ||
2849 | else ShowViewSize (newview); | ||
2850 | VW_UpdateScreen (); | ||
2851 | SD_PlaySound (HITWALLSND); | ||
2852 | TicDelay (10); | ||
2853 | break; | ||
2854 | } | ||
2855 | |||
2856 | if (ci.button0 || Keyboard[sc_Enter]) | ||
2857 | exit = 1; | ||
2858 | else if (ci.button1 || Keyboard[sc_Escape]) | ||
2859 | { | ||
2860 | SD_PlaySound (ESCPRESSEDSND); | ||
2861 | MenuFadeOut (); | ||
2862 | if(screenHeight % 200 != 0) | ||
2863 | VL_ClearScreen(0); | ||
2864 | return 0; | ||
2865 | } | ||
2866 | } | ||
2867 | while (!exit); | ||
2868 | |||
2869 | if (oldview != newview) | ||
2870 | { | ||
2871 | SD_PlaySound (SHOOTSND); | ||
2872 | Message (STR_THINK "..."); | ||
2873 | NewViewSize (newview); | ||
2874 | } | ||
2875 | |||
2876 | ShootSnd (); | ||
2877 | MenuFadeOut (); | ||
2878 | if(screenHeight % 200 != 0) | ||
2879 | VL_ClearScreen(0); | ||
2880 | |||
2881 | return 0; | ||
2882 | } | ||
2883 | |||
2884 | |||
2885 | ///////////////////////////// | ||
2886 | // | ||
2887 | // DRAW THE CHANGEVIEW SCREEN | ||
2888 | // | ||
2889 | void | ||
2890 | DrawChangeView (int view) | ||
2891 | { | ||
2892 | int rescaledHeight = screenHeight / scaleFactor; | ||
2893 | if(view != 21) VWB_Bar (0, rescaledHeight - 40, 320, 40, bordercol); | ||
2894 | |||
2895 | #ifdef JAPAN | ||
2896 | CA_CacheScreen (S_CHANGEPIC); | ||
2897 | |||
2898 | ShowViewSize (view); | ||
2899 | #else | ||
2900 | ShowViewSize (view); | ||
2901 | |||
2902 | PrintY = (screenHeight / scaleFactor) - 39; | ||
2903 | WindowX = 0; | ||
2904 | WindowY = 320; // TODO: Check this! | ||
2905 | SETFONTCOLOR (HIGHLIGHT, BKGDCOLOR); | ||
2906 | |||
2907 | US_CPrint (STR_SIZE1 "\n"); | ||
2908 | US_CPrint (STR_SIZE2 "\n"); | ||
2909 | US_CPrint (STR_SIZE3); | ||
2910 | #endif | ||
2911 | VW_UpdateScreen (); | ||
2912 | } | ||
2913 | |||
2914 | |||
2915 | //////////////////////////////////////////////////////////////////// | ||
2916 | // | ||
2917 | // QUIT THIS INFERNAL GAME! | ||
2918 | // | ||
2919 | //////////////////////////////////////////////////////////////////// | ||
2920 | int | ||
2921 | CP_Quit (int a) | ||
2922 | { | ||
2923 | #ifdef JAPAN | ||
2924 | if (GetYorN (7, 11, C_QUITMSGPIC)) | ||
2925 | #else | ||
2926 | |||
2927 | #ifdef SPANISH | ||
2928 | if (Confirm (ENDGAMESTR)) | ||
2929 | #else | ||
2930 | if (Confirm (endStrings[US_RndT () & 0x7 + (US_RndT () & 1)])) | ||
2931 | #endif | ||
2932 | |||
2933 | #endif | ||
2934 | { | ||
2935 | VW_UpdateScreen (); | ||
2936 | SD_MusicOff (); | ||
2937 | SD_StopSound (); | ||
2938 | MenuFadeOut (); | ||
2939 | Quit (NULL); | ||
2940 | } | ||
2941 | |||
2942 | DrawMainMenu (); | ||
2943 | return 0; | ||
2944 | } | ||
2945 | |||
2946 | |||
2947 | //////////////////////////////////////////////////////////////////// | ||
2948 | // | ||
2949 | // HANDLE INTRO SCREEN (SYSTEM CONFIG) | ||
2950 | // | ||
2951 | //////////////////////////////////////////////////////////////////// | ||
2952 | void | ||
2953 | IntroScreen (void) | ||
2954 | { | ||
2955 | #ifdef SPEAR | ||
2956 | |||
2957 | #define MAINCOLOR 0x4f | ||
2958 | #define EMSCOLOR 0x4f | ||
2959 | #define XMSCOLOR 0x4f | ||
2960 | |||
2961 | #else | ||
2962 | |||
2963 | #define MAINCOLOR 0x6c | ||
2964 | #define EMSCOLOR 0x6c // 0x4f | ||
2965 | #define XMSCOLOR 0x6c // 0x7f | ||
2966 | |||
2967 | #endif | ||
2968 | #define FILLCOLOR 14 | ||
2969 | |||
2970 | // long memory; | ||
2971 | // long emshere,xmshere; | ||
2972 | int i; | ||
2973 | /* int ems[10]={100,200,300,400,500,600,700,800,900,1000}, | ||
2974 | xms[10]={100,200,300,400,500,600,700,800,900,1000}; | ||
2975 | int main[10]={32,64,96,128,160,192,224,256,288,320};*/ | ||
2976 | |||
2977 | |||
2978 | // | ||
2979 | // DRAW MAIN MEMORY | ||
2980 | // | ||
2981 | #ifdef ABCAUS | ||
2982 | memory = (1023l + mminfo.nearheap + mminfo.farheap) / 1024l; | ||
2983 | for (i = 0; i < 10; i++) | ||
2984 | if (memory >= main[i]) | ||
2985 | VWB_Bar (49, 163 - 8 * i, 6, 5, MAINCOLOR - i); | ||
2986 | |||
2987 | // | ||
2988 | // DRAW EMS MEMORY | ||
2989 | // | ||
2990 | if (EMSPresent) | ||
2991 | { | ||
2992 | emshere = 4l * EMSPagesAvail; | ||
2993 | for (i = 0; i < 10; i++) | ||
2994 | if (emshere >= ems[i]) | ||
2995 | VWB_Bar (89, 163 - 8 * i, 6, 5, EMSCOLOR - i); | ||
2996 | } | ||
2997 | |||
2998 | // | ||
2999 | // DRAW XMS MEMORY | ||
3000 | // | ||
3001 | if (XMSPresent) | ||
3002 | { | ||
3003 | xmshere = 4l * XMSPagesAvail; | ||
3004 | for (i = 0; i < 10; i++) | ||
3005 | if (xmshere >= xms[i]) | ||
3006 | VWB_Bar (129, 163 - 8 * i, 6, 5, XMSCOLOR - i); | ||
3007 | } | ||
3008 | #else | ||
3009 | for (i = 0; i < 10; i++) | ||
3010 | VWB_Bar (49, 163 - 8 * i, 6, 5, MAINCOLOR - i); | ||
3011 | for (i = 0; i < 10; i++) | ||
3012 | VWB_Bar (89, 163 - 8 * i, 6, 5, EMSCOLOR - i); | ||
3013 | for (i = 0; i < 10; i++) | ||
3014 | VWB_Bar (129, 163 - 8 * i, 6, 5, XMSCOLOR - i); | ||
3015 | #endif | ||
3016 | |||
3017 | |||
3018 | // | ||
3019 | // FILL BOXES | ||
3020 | // | ||
3021 | if (MousePresent) | ||
3022 | VWB_Bar (164, 82, 12, 2, FILLCOLOR); | ||
3023 | |||
3024 | if (IN_JoyPresent()) | ||
3025 | VWB_Bar (164, 105, 12, 2, FILLCOLOR); | ||
3026 | |||
3027 | if (AdLibPresent && !SoundBlasterPresent) | ||
3028 | VWB_Bar (164, 128, 12, 2, FILLCOLOR); | ||
3029 | |||
3030 | if (SoundBlasterPresent) | ||
3031 | VWB_Bar (164, 151, 12, 2, FILLCOLOR); | ||
3032 | |||
3033 | // if (SoundSourcePresent) | ||
3034 | // VWB_Bar (164, 174, 12, 2, FILLCOLOR); | ||
3035 | } | ||
3036 | |||
3037 | |||
3038 | //////////////////////////////////////////////////////////////////// | ||
3039 | //////////////////////////////////////////////////////////////////// | ||
3040 | // | ||
3041 | // SUPPORT ROUTINES | ||
3042 | // | ||
3043 | //////////////////////////////////////////////////////////////////// | ||
3044 | //////////////////////////////////////////////////////////////////// | ||
3045 | |||
3046 | //////////////////////////////////////////////////////////////////// | ||
3047 | // | ||
3048 | // Clear Menu screens to dark red | ||
3049 | // | ||
3050 | //////////////////////////////////////////////////////////////////// | ||
3051 | void | ||
3052 | ClearMScreen (void) | ||
3053 | { | ||
3054 | #ifndef SPEAR | ||
3055 | VWB_Bar (0, 0, 320, 200, BORDCOLOR); | ||
3056 | #else | ||
3057 | VWB_DrawPic (0, 0, C_BACKDROPPIC); | ||
3058 | #endif | ||
3059 | } | ||
3060 | |||
3061 | |||
3062 | //////////////////////////////////////////////////////////////////// | ||
3063 | // | ||
3064 | // Un/Cache a LUMP of graphics | ||
3065 | // | ||
3066 | //////////////////////////////////////////////////////////////////// | ||
3067 | void | ||
3068 | CacheLump (int lumpstart, int lumpend) | ||
3069 | { | ||
3070 | int i; | ||
3071 | |||
3072 | for (i = lumpstart; i <= lumpend; i++) | ||
3073 | CA_CacheGrChunk (i); | ||
3074 | } | ||
3075 | |||
3076 | |||
3077 | void | ||
3078 | UnCacheLump (int lumpstart, int lumpend) | ||
3079 | { | ||
3080 | int i; | ||
3081 | |||
3082 | for (i = lumpstart; i <= lumpend; i++) | ||
3083 | if (grsegs[i]) | ||
3084 | UNCACHEGRCHUNK (i); | ||
3085 | } | ||
3086 | |||
3087 | |||
3088 | //////////////////////////////////////////////////////////////////// | ||
3089 | // | ||
3090 | // Draw a window for a menu | ||
3091 | // | ||
3092 | //////////////////////////////////////////////////////////////////// | ||
3093 | void | ||
3094 | DrawWindow (int x, int y, int w, int h, int wcolor) | ||
3095 | { | ||
3096 | VWB_Bar (x, y, w, h, wcolor); | ||
3097 | DrawOutline (x, y, w, h, BORD2COLOR, DEACTIVE); | ||
3098 | } | ||
3099 | |||
3100 | |||
3101 | void | ||
3102 | DrawOutline (int x, int y, int w, int h, int color1, int color2) | ||
3103 | { | ||
3104 | VWB_Hlin (x, x + w, y, color2); | ||
3105 | VWB_Vlin (y, y + h, x, color2); | ||
3106 | VWB_Hlin (x, x + w, y + h, color1); | ||
3107 | VWB_Vlin (y, y + h, x + w, color1); | ||
3108 | } | ||
3109 | |||
3110 | |||
3111 | //////////////////////////////////////////////////////////////////// | ||
3112 | // | ||
3113 | // Setup Control Panel stuff - graphics, etc. | ||
3114 | // | ||
3115 | //////////////////////////////////////////////////////////////////// | ||
3116 | void | ||
3117 | SetupControlPanel (void) | ||
3118 | { | ||
3119 | // | ||
3120 | // CACHE GRAPHICS & SOUNDS | ||
3121 | // | ||
3122 | CA_CacheGrChunk (STARTFONT + 1); | ||
3123 | #ifndef SPEAR | ||
3124 | CacheLump (CONTROLS_LUMP_START, CONTROLS_LUMP_END); | ||
3125 | #else | ||
3126 | CacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
3127 | #endif | ||
3128 | |||
3129 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
3130 | fontnumber = 1; | ||
3131 | WindowH = 200; | ||
3132 | if(screenHeight % 200 != 0) | ||
3133 | VL_ClearScreen(0); | ||
3134 | |||
3135 | if (!ingame) | ||
3136 | CA_LoadAllSounds (); | ||
3137 | else | ||
3138 | MainMenu[savegame].active = 1; | ||
3139 | |||
3140 | // | ||
3141 | // CENTER MOUSE | ||
3142 | // | ||
3143 | if(IN_IsInputGrabbed()) | ||
3144 | IN_CenterMouse(); | ||
3145 | } | ||
3146 | |||
3147 | //////////////////////////////////////////////////////////////////// | ||
3148 | // | ||
3149 | // SEE WHICH SAVE GAME FILES ARE AVAILABLE & READ STRING IN | ||
3150 | // | ||
3151 | //////////////////////////////////////////////////////////////////// | ||
3152 | void SetupSaveGames() | ||
3153 | { | ||
3154 | char name[13]; | ||
3155 | char savepath[300]; | ||
3156 | |||
3157 | strcpy(name, SaveName); | ||
3158 | for(int i = 0; i < 10; i++) | ||
3159 | { | ||
3160 | name[7] = '0' + i; | ||
3161 | #ifdef _arch_dreamcast | ||
3162 | // Try to unpack file | ||
3163 | if(DC_LoadFromVMU(name)) | ||
3164 | { | ||
3165 | #endif | ||
3166 | if(configdir[0]) | ||
3167 | snprintf(savepath, sizeof(savepath), "%s/%s", configdir, name); | ||
3168 | else | ||
3169 | strcpy(savepath, name); | ||
3170 | |||
3171 | const int handle = open(savepath, O_RDONLY | O_BINARY); | ||
3172 | if(handle >= 0) | ||
3173 | { | ||
3174 | char temp[32]; | ||
3175 | |||
3176 | SaveGamesAvail[i] = 1; | ||
3177 | read(handle, temp, 32); | ||
3178 | close(handle); | ||
3179 | strcpy(&SaveGameNames[i][0], temp); | ||
3180 | } | ||
3181 | #ifdef _arch_dreamcast | ||
3182 | // Remove unpacked version of file | ||
3183 | fs_unlink(name); | ||
3184 | } | ||
3185 | #endif | ||
3186 | } | ||
3187 | } | ||
3188 | |||
3189 | //////////////////////////////////////////////////////////////////// | ||
3190 | // | ||
3191 | // Clean up all the Control Panel stuff | ||
3192 | // | ||
3193 | //////////////////////////////////////////////////////////////////// | ||
3194 | void | ||
3195 | CleanupControlPanel (void) | ||
3196 | { | ||
3197 | #ifndef SPEAR | ||
3198 | UnCacheLump (CONTROLS_LUMP_START, CONTROLS_LUMP_END); | ||
3199 | #else | ||
3200 | UnCacheLump (BACKDROP_LUMP_START, BACKDROP_LUMP_END); | ||
3201 | #endif | ||
3202 | |||
3203 | fontnumber = 0; | ||
3204 | } | ||
3205 | |||
3206 | |||
3207 | //////////////////////////////////////////////////////////////////// | ||
3208 | // | ||
3209 | // Handle moving gun around a menu | ||
3210 | // | ||
3211 | //////////////////////////////////////////////////////////////////// | ||
3212 | int | ||
3213 | HandleMenu (CP_iteminfo * item_i, CP_itemtype * items, void (*routine) (int w)) | ||
3214 | { | ||
3215 | char key; | ||
3216 | static int redrawitem = 1, lastitem = -1; | ||
3217 | int i, x, y, basey, exit, which, shape; | ||
3218 | int32_t lastBlinkTime, timer; | ||
3219 | ControlInfo ci; | ||
3220 | |||
3221 | |||
3222 | which = item_i->curpos; | ||
3223 | x = item_i->x & -8; | ||
3224 | basey = item_i->y - 2; | ||
3225 | y = basey + which * 13; | ||
3226 | |||
3227 | VWB_DrawPic (x, y, C_CURSOR1PIC); | ||
3228 | SetTextColor (items + which, 1); | ||
3229 | if (redrawitem) | ||
3230 | { | ||
3231 | PrintX = item_i->x + item_i->indent; | ||
3232 | PrintY = item_i->y + which * 13; | ||
3233 | US_Print ((items + which)->string); | ||
3234 | } | ||
3235 | // | ||
3236 | // CALL CUSTOM ROUTINE IF IT IS NEEDED | ||
3237 | // | ||
3238 | if (routine) | ||
3239 | routine (which); | ||
3240 | VW_UpdateScreen (); | ||
3241 | |||
3242 | shape = C_CURSOR1PIC; | ||
3243 | timer = 8; | ||
3244 | exit = 0; | ||
3245 | lastBlinkTime = GetTimeCount (); | ||
3246 | IN_ClearKeysDown (); | ||
3247 | |||
3248 | |||
3249 | do | ||
3250 | { | ||
3251 | // | ||
3252 | // CHANGE GUN SHAPE | ||
3253 | // | ||
3254 | if ((int32_t)GetTimeCount () - lastBlinkTime > timer) | ||
3255 | { | ||
3256 | lastBlinkTime = GetTimeCount (); | ||
3257 | if (shape == C_CURSOR1PIC) | ||
3258 | { | ||
3259 | shape = C_CURSOR2PIC; | ||
3260 | timer = 8; | ||
3261 | } | ||
3262 | else | ||
3263 | { | ||
3264 | shape = C_CURSOR1PIC; | ||
3265 | timer = 70; | ||
3266 | } | ||
3267 | VWB_DrawPic (x, y, shape); | ||
3268 | if (routine) | ||
3269 | routine (which); | ||
3270 | VW_UpdateScreen (); | ||
3271 | } | ||
3272 | else SDL_Delay(5); | ||
3273 | |||
3274 | CheckPause (); | ||
3275 | |||
3276 | // | ||
3277 | // SEE IF ANY KEYS ARE PRESSED FOR INITIAL CHAR FINDING | ||
3278 | // | ||
3279 | key = LastASCII; | ||
3280 | if (key) | ||
3281 | { | ||
3282 | int ok = 0; | ||
3283 | |||
3284 | if (key >= 'a') | ||
3285 | key -= 'a' - 'A'; | ||
3286 | |||
3287 | for (i = which + 1; i < item_i->amount; i++) | ||
3288 | if ((items + i)->active && (items + i)->string[0] == key) | ||
3289 | { | ||
3290 | EraseGun (item_i, items, x, y, which); | ||
3291 | which = i; | ||
3292 | DrawGun (item_i, items, x, &y, which, basey, routine); | ||
3293 | ok = 1; | ||
3294 | IN_ClearKeysDown (); | ||
3295 | break; | ||
3296 | } | ||
3297 | |||
3298 | // | ||
3299 | // DIDN'T FIND A MATCH FIRST TIME THRU. CHECK AGAIN. | ||
3300 | // | ||
3301 | if (!ok) | ||
3302 | { | ||
3303 | for (i = 0; i < which; i++) | ||
3304 | if ((items + i)->active && (items + i)->string[0] == key) | ||
3305 | { | ||
3306 | EraseGun (item_i, items, x, y, which); | ||
3307 | which = i; | ||
3308 | DrawGun (item_i, items, x, &y, which, basey, routine); | ||
3309 | IN_ClearKeysDown (); | ||
3310 | break; | ||
3311 | } | ||
3312 | } | ||
3313 | } | ||
3314 | |||
3315 | // | ||
3316 | // GET INPUT | ||
3317 | // | ||
3318 | ReadAnyControl (&ci); | ||
3319 | switch (ci.dir) | ||
3320 | { | ||
3321 | //////////////////////////////////////////////// | ||
3322 | // | ||
3323 | // MOVE UP | ||
3324 | // | ||
3325 | case dir_North: | ||
3326 | |||
3327 | EraseGun (item_i, items, x, y, which); | ||
3328 | |||
3329 | // | ||
3330 | // ANIMATE HALF-STEP | ||
3331 | // | ||
3332 | if (which && (items + which - 1)->active) | ||
3333 | { | ||
3334 | y -= 6; | ||
3335 | DrawHalfStep (x, y); | ||
3336 | } | ||
3337 | |||
3338 | // | ||
3339 | // MOVE TO NEXT AVAILABLE SPOT | ||
3340 | // | ||
3341 | do | ||
3342 | { | ||
3343 | if (!which) | ||
3344 | which = item_i->amount - 1; | ||
3345 | else | ||
3346 | which--; | ||
3347 | } | ||
3348 | while (!(items + which)->active); | ||
3349 | |||
3350 | DrawGun (item_i, items, x, &y, which, basey, routine); | ||
3351 | // | ||
3352 | // WAIT FOR BUTTON-UP OR DELAY NEXT MOVE | ||
3353 | // | ||
3354 | TicDelay (20); | ||
3355 | break; | ||
3356 | |||
3357 | //////////////////////////////////////////////// | ||
3358 | // | ||
3359 | // MOVE DOWN | ||
3360 | // | ||
3361 | case dir_South: | ||
3362 | |||
3363 | EraseGun (item_i, items, x, y, which); | ||
3364 | // | ||
3365 | // ANIMATE HALF-STEP | ||
3366 | // | ||
3367 | if (which != item_i->amount - 1 && (items + which + 1)->active) | ||
3368 | { | ||
3369 | y += 6; | ||
3370 | DrawHalfStep (x, y); | ||
3371 | } | ||
3372 | |||
3373 | do | ||
3374 | { | ||
3375 | if (which == item_i->amount - 1) | ||
3376 | which = 0; | ||
3377 | else | ||
3378 | which++; | ||
3379 | } | ||
3380 | while (!(items + which)->active); | ||
3381 | |||
3382 | DrawGun (item_i, items, x, &y, which, basey, routine); | ||
3383 | |||
3384 | // | ||
3385 | // WAIT FOR BUTTON-UP OR DELAY NEXT MOVE | ||
3386 | // | ||
3387 | TicDelay (20); | ||
3388 | break; | ||
3389 | } | ||
3390 | |||
3391 | if (ci.button0 || Keyboard[sc_Space] || Keyboard[sc_Enter]) | ||
3392 | exit = 1; | ||
3393 | |||
3394 | if (ci.button1 && !Keyboard[sc_Alt] || Keyboard[sc_Escape]) | ||
3395 | exit = 2; | ||
3396 | |||
3397 | } | ||
3398 | while (!exit); | ||
3399 | |||
3400 | |||
3401 | IN_ClearKeysDown (); | ||
3402 | |||
3403 | // | ||
3404 | // ERASE EVERYTHING | ||
3405 | // | ||
3406 | if (lastitem != which) | ||
3407 | { | ||
3408 | VWB_Bar (x - 1, y, 25, 16, BKGDCOLOR); | ||
3409 | PrintX = item_i->x + item_i->indent; | ||
3410 | PrintY = item_i->y + which * 13; | ||
3411 | US_Print ((items + which)->string); | ||
3412 | redrawitem = 1; | ||
3413 | } | ||
3414 | else | ||
3415 | redrawitem = 0; | ||
3416 | |||
3417 | if (routine) | ||
3418 | routine (which); | ||
3419 | VW_UpdateScreen (); | ||
3420 | |||
3421 | item_i->curpos = which; | ||
3422 | |||
3423 | lastitem = which; | ||
3424 | switch (exit) | ||
3425 | { | ||
3426 | case 1: | ||
3427 | // | ||
3428 | // CALL THE ROUTINE | ||
3429 | // | ||
3430 | if ((items + which)->routine != NULL) | ||
3431 | { | ||
3432 | ShootSnd (); | ||
3433 | MenuFadeOut (); | ||
3434 | (items + which)->routine (0); | ||
3435 | } | ||
3436 | return which; | ||
3437 | |||
3438 | case 2: | ||
3439 | SD_PlaySound (ESCPRESSEDSND); | ||
3440 | return -1; | ||
3441 | } | ||
3442 | |||
3443 | return 0; // JUST TO SHUT UP THE ERROR MESSAGES! | ||
3444 | } | ||
3445 | |||
3446 | |||
3447 | // | ||
3448 | // ERASE GUN & DE-HIGHLIGHT STRING | ||
3449 | // | ||
3450 | void | ||
3451 | EraseGun (CP_iteminfo * item_i, CP_itemtype * items, int x, int y, int which) | ||
3452 | { | ||
3453 | VWB_Bar (x - 1, y, 25, 16, BKGDCOLOR); | ||
3454 | SetTextColor (items + which, 0); | ||
3455 | |||
3456 | PrintX = item_i->x + item_i->indent; | ||
3457 | PrintY = item_i->y + which * 13; | ||
3458 | US_Print ((items + which)->string); | ||
3459 | VW_UpdateScreen (); | ||
3460 | } | ||
3461 | |||
3462 | |||
3463 | // | ||
3464 | // DRAW HALF STEP OF GUN TO NEXT POSITION | ||
3465 | // | ||
3466 | void | ||
3467 | DrawHalfStep (int x, int y) | ||
3468 | { | ||
3469 | VWB_DrawPic (x, y, C_CURSOR1PIC); | ||
3470 | VW_UpdateScreen (); | ||
3471 | SD_PlaySound (MOVEGUN1SND); | ||
3472 | SDL_Delay (8 * 100 / 7); | ||
3473 | } | ||
3474 | |||
3475 | |||
3476 | // | ||
3477 | // DRAW GUN AT NEW POSITION | ||
3478 | // | ||
3479 | void | ||
3480 | DrawGun (CP_iteminfo * item_i, CP_itemtype * items, int x, int *y, int which, int basey, | ||
3481 | void (*routine) (int w)) | ||
3482 | { | ||
3483 | VWB_Bar (x - 1, *y, 25, 16, BKGDCOLOR); | ||
3484 | *y = basey + which * 13; | ||
3485 | VWB_DrawPic (x, *y, C_CURSOR1PIC); | ||
3486 | SetTextColor (items + which, 1); | ||
3487 | |||
3488 | PrintX = item_i->x + item_i->indent; | ||
3489 | PrintY = item_i->y + which * 13; | ||
3490 | US_Print ((items + which)->string); | ||
3491 | |||
3492 | // | ||
3493 | // CALL CUSTOM ROUTINE IF IT IS NEEDED | ||
3494 | // | ||
3495 | if (routine) | ||
3496 | routine (which); | ||
3497 | VW_UpdateScreen (); | ||
3498 | SD_PlaySound (MOVEGUN2SND); | ||
3499 | } | ||
3500 | |||
3501 | //////////////////////////////////////////////////////////////////// | ||
3502 | // | ||
3503 | // DELAY FOR AN AMOUNT OF TICS OR UNTIL CONTROLS ARE INACTIVE | ||
3504 | // | ||
3505 | //////////////////////////////////////////////////////////////////// | ||
3506 | void | ||
3507 | TicDelay (int count) | ||
3508 | { | ||
3509 | ControlInfo ci; | ||
3510 | |||
3511 | int32_t startTime = GetTimeCount (); | ||
3512 | do | ||
3513 | { | ||
3514 | SDL_Delay(5); | ||
3515 | ReadAnyControl (&ci); | ||
3516 | } | ||
3517 | while ((int32_t) GetTimeCount () - startTime < count && ci.dir != dir_None); | ||
3518 | } | ||
3519 | |||
3520 | |||
3521 | //////////////////////////////////////////////////////////////////// | ||
3522 | // | ||
3523 | // Draw a menu | ||
3524 | // | ||
3525 | //////////////////////////////////////////////////////////////////// | ||
3526 | void | ||
3527 | DrawMenu (CP_iteminfo * item_i, CP_itemtype * items) | ||
3528 | { | ||
3529 | int i, which = item_i->curpos; | ||
3530 | |||
3531 | |||
3532 | WindowX = PrintX = item_i->x + item_i->indent; | ||
3533 | WindowY = PrintY = item_i->y; | ||
3534 | WindowW = 320; | ||
3535 | WindowH = 200; | ||
3536 | |||
3537 | for (i = 0; i < item_i->amount; i++) | ||
3538 | { | ||
3539 | SetTextColor (items + i, which == i); | ||
3540 | |||
3541 | PrintY = item_i->y + i * 13; | ||
3542 | if ((items + i)->active) | ||
3543 | US_Print ((items + i)->string); | ||
3544 | else | ||
3545 | { | ||
3546 | SETFONTCOLOR (DEACTIVE, BKGDCOLOR); | ||
3547 | US_Print ((items + i)->string); | ||
3548 | SETFONTCOLOR (TEXTCOLOR, BKGDCOLOR); | ||
3549 | } | ||
3550 | |||
3551 | US_Print ("\n"); | ||
3552 | } | ||
3553 | } | ||
3554 | |||
3555 | |||
3556 | //////////////////////////////////////////////////////////////////// | ||
3557 | // | ||
3558 | // SET TEXT COLOR (HIGHLIGHT OR NO) | ||
3559 | // | ||
3560 | //////////////////////////////////////////////////////////////////// | ||
3561 | void | ||
3562 | SetTextColor (CP_itemtype * items, int hlight) | ||
3563 | { | ||
3564 | if (hlight) | ||
3565 | { | ||
3566 | SETFONTCOLOR (color_hlite[items->active], BKGDCOLOR); | ||
3567 | } | ||
3568 | else | ||
3569 | { | ||
3570 | SETFONTCOLOR (color_norml[items->active], BKGDCOLOR); | ||
3571 | } | ||
3572 | } | ||
3573 | |||
3574 | |||
3575 | //////////////////////////////////////////////////////////////////// | ||
3576 | // | ||
3577 | // WAIT FOR CTRLKEY-UP OR BUTTON-UP | ||
3578 | // | ||
3579 | //////////////////////////////////////////////////////////////////// | ||
3580 | void | ||
3581 | WaitKeyUp (void) | ||
3582 | { | ||
3583 | ControlInfo ci; | ||
3584 | while (ReadAnyControl (&ci), ci.button0 | | ||
3585 | ci.button1 | | ||
3586 | ci.button2 | ci.button3 | Keyboard[sc_Space] | Keyboard[sc_Enter] | Keyboard[sc_Escape]) | ||
3587 | { | ||
3588 | IN_WaitAndProcessEvents(); | ||
3589 | } | ||
3590 | } | ||
3591 | |||
3592 | |||
3593 | //////////////////////////////////////////////////////////////////// | ||
3594 | // | ||
3595 | // READ KEYBOARD, JOYSTICK AND MOUSE FOR INPUT | ||
3596 | // | ||
3597 | //////////////////////////////////////////////////////////////////// | ||
3598 | void | ||
3599 | ReadAnyControl (ControlInfo * ci) | ||
3600 | { | ||
3601 | int mouseactive = 0; | ||
3602 | |||
3603 | IN_ReadControl (0, ci); | ||
3604 | #if 0 | ||
3605 | if (mouseenabled && IN_IsInputGrabbed()) | ||
3606 | { | ||
3607 | int mousex, mousey, buttons; | ||
3608 | buttons = SDL_GetMouseState(&mousex, &mousey); | ||
3609 | int middlePressed = buttons & SDL_BUTTON(SDL_BUTTON_MIDDLE); | ||
3610 | int rightPressed = buttons & SDL_BUTTON(SDL_BUTTON_RIGHT); | ||
3611 | buttons &= ~(SDL_BUTTON(SDL_BUTTON_MIDDLE) | SDL_BUTTON(SDL_BUTTON_RIGHT)); | ||
3612 | if(middlePressed) buttons |= 1 << 2; | ||
3613 | if(rightPressed) buttons |= 1 << 1; | ||
3614 | |||
3615 | if(mousey - CENTERY < -SENSITIVE) | ||
3616 | { | ||
3617 | ci->dir = dir_North; | ||
3618 | mouseactive = 1; | ||
3619 | } | ||
3620 | else if(mousey - CENTERY > SENSITIVE) | ||
3621 | { | ||
3622 | ci->dir = dir_South; | ||
3623 | mouseactive = 1; | ||
3624 | } | ||
3625 | |||
3626 | if(mousex - CENTERX < -SENSITIVE) | ||
3627 | { | ||
3628 | ci->dir = dir_West; | ||
3629 | mouseactive = 1; | ||
3630 | } | ||
3631 | else if(mousex - CENTERX > SENSITIVE) | ||
3632 | { | ||
3633 | ci->dir = dir_East; | ||
3634 | mouseactive = 1; | ||
3635 | } | ||
3636 | |||
3637 | if(mouseactive) | ||
3638 | IN_CenterMouse(); | ||
3639 | |||
3640 | if (buttons) | ||
3641 | { | ||
3642 | ci->button0 = buttons & 1; | ||
3643 | ci->button1 = buttons & 2; | ||
3644 | ci->button2 = buttons & 4; | ||
3645 | ci->button3 = false; | ||
3646 | mouseactive = 1; | ||
3647 | } | ||
3648 | } | ||
3649 | |||
3650 | if (joystickenabled && !mouseactive) | ||
3651 | { | ||
3652 | int jx, jy, jb; | ||
3653 | |||
3654 | IN_GetJoyDelta (&jx, &jy); | ||
3655 | if (jy < -SENSITIVE) | ||
3656 | ci->dir = dir_North; | ||
3657 | else if (jy > SENSITIVE) | ||
3658 | ci->dir = dir_South; | ||
3659 | |||
3660 | if (jx < -SENSITIVE) | ||
3661 | ci->dir = dir_West; | ||
3662 | else if (jx > SENSITIVE) | ||
3663 | ci->dir = dir_East; | ||
3664 | |||
3665 | jb = IN_JoyButtons (); | ||
3666 | if (jb) | ||
3667 | { | ||
3668 | ci->button0 = jb & 1; | ||
3669 | ci->button1 = jb & 2; | ||
3670 | ci->button2 = jb & 4; | ||
3671 | ci->button3 = jb & 8; | ||
3672 | } | ||
3673 | } | ||
3674 | #endif | ||
3675 | } | ||
3676 | |||
3677 | |||
3678 | //////////////////////////////////////////////////////////////////// | ||
3679 | // | ||
3680 | // DRAW DIALOG AND CONFIRM YES OR NO TO QUESTION | ||
3681 | // | ||
3682 | //////////////////////////////////////////////////////////////////// | ||
3683 | int | ||
3684 | Confirm (const char *string) | ||
3685 | { | ||
3686 | int xit = 0, x, y, tick = 0, lastBlinkTime; | ||
3687 | int whichsnd[2] = { ESCPRESSEDSND, SHOOTSND }; | ||
3688 | ControlInfo ci; | ||
3689 | |||
3690 | Message (string); | ||
3691 | IN_ClearKeysDown (); | ||
3692 | WaitKeyUp (); | ||
3693 | |||
3694 | // | ||
3695 | // BLINK CURSOR | ||
3696 | // | ||
3697 | x = PrintX; | ||
3698 | y = PrintY; | ||
3699 | lastBlinkTime = GetTimeCount(); | ||
3700 | |||
3701 | do | ||
3702 | { | ||
3703 | ReadAnyControl(&ci); | ||
3704 | |||
3705 | if (GetTimeCount() - lastBlinkTime >= 10) | ||
3706 | { | ||
3707 | switch (tick) | ||
3708 | { | ||
3709 | case 0: | ||
3710 | VWB_Bar (x, y, 8, 13, TEXTCOLOR); | ||
3711 | break; | ||
3712 | case 1: | ||
3713 | PrintX = x; | ||
3714 | PrintY = y; | ||
3715 | US_Print ("_"); | ||
3716 | } | ||
3717 | VW_UpdateScreen (); | ||
3718 | tick ^= 1; | ||
3719 | lastBlinkTime = GetTimeCount(); | ||
3720 | } | ||
3721 | else SDL_Delay(5); | ||
3722 | |||
3723 | #ifdef SPANISH | ||
3724 | } | ||
3725 | while (!Keyboard[sc_S] && !Keyboard[sc_N] && !Keyboard[sc_Escape]); | ||
3726 | #else | ||
3727 | } | ||
3728 | while (!Keyboard[sc_Return] && !Keyboard[sc_Y] && !Keyboard[sc_N] && !Keyboard[sc_Escape] && !ci.button0 && !ci.button1); | ||
3729 | #endif | ||
3730 | |||
3731 | #ifdef SPANISH | ||
3732 | if (Keyboard[sc_S] || ci.button0) | ||
3733 | { | ||
3734 | xit = 1; | ||
3735 | ShootSnd (); | ||
3736 | } | ||
3737 | #else | ||
3738 | if (Keyboard[sc_Y] || Keyboard[sc_Return] || ci.button0) | ||
3739 | { | ||
3740 | xit = 1; | ||
3741 | ShootSnd (); | ||
3742 | } | ||
3743 | #endif | ||
3744 | |||
3745 | IN_ClearKeysDown (); | ||
3746 | WaitKeyUp (); | ||
3747 | |||
3748 | SD_PlaySound ((soundnames) whichsnd[xit]); | ||
3749 | |||
3750 | return xit; | ||
3751 | } | ||
3752 | |||
3753 | #ifdef JAPAN | ||
3754 | //////////////////////////////////////////////////////////////////// | ||
3755 | // | ||
3756 | // DRAW MESSAGE & GET Y OR N | ||
3757 | // | ||
3758 | //////////////////////////////////////////////////////////////////// | ||
3759 | int | ||
3760 | GetYorN (int x, int y, int pic) | ||
3761 | { | ||
3762 | int xit = 0, whichsnd[2] = { ESCPRESSEDSND, SHOOTSND }; | ||
3763 | |||
3764 | |||
3765 | CA_CacheGrChunk (pic); | ||
3766 | VWB_DrawPic (x * 8, y * 8, pic); | ||
3767 | UNCACHEGRCHUNK (pic); | ||
3768 | VW_UpdateScreen (); | ||
3769 | IN_ClearKeysDown (); | ||
3770 | |||
3771 | do | ||
3772 | { | ||
3773 | IN_WaitAndProcessEvents(); | ||
3774 | #ifndef SPEAR | ||
3775 | if (Keyboard[sc_Tab] && Keyboard[sc_P] && param_debugmode) | ||
3776 | PicturePause (); | ||
3777 | #endif | ||
3778 | |||
3779 | #ifdef SPANISH | ||
3780 | } | ||
3781 | while (!Keyboard[sc_S] && !Keyboard[sc_N] && !Keyboard[sc_Escape]); | ||
3782 | #else | ||
3783 | } | ||
3784 | while (!Keyboard[sc_Y] && !Keyboard[sc_N] && !Keyboard[sc_Escape]); | ||
3785 | #endif | ||
3786 | |||
3787 | #ifdef SPANISH | ||
3788 | if (Keyboard[sc_S]) | ||
3789 | { | ||
3790 | xit = 1; | ||
3791 | ShootSnd (); | ||
3792 | } | ||
3793 | |||
3794 | while (Keyboard[sc_S] || Keyboard[sc_N] || Keyboard[sc_Escape]) | ||
3795 | IN_WaitAndProcessEvents(); | ||
3796 | |||
3797 | #else | ||
3798 | |||
3799 | if (Keyboard[sc_Y]) | ||
3800 | { | ||
3801 | xit = 1; | ||
3802 | ShootSnd (); | ||
3803 | } | ||
3804 | |||
3805 | while (Keyboard[sc_Y] || Keyboard[sc_N] || Keyboard[sc_Escape]) | ||
3806 | IN_WaitAndProcessEvents(); | ||
3807 | #endif | ||
3808 | |||
3809 | IN_ClearKeysDown (); | ||
3810 | SD_PlaySound (whichsnd[xit]); | ||
3811 | return xit; | ||
3812 | } | ||
3813 | #endif | ||
3814 | |||
3815 | |||
3816 | //////////////////////////////////////////////////////////////////// | ||
3817 | // | ||
3818 | // PRINT A MESSAGE IN A WINDOW | ||
3819 | // | ||
3820 | //////////////////////////////////////////////////////////////////// | ||
3821 | void | ||
3822 | Message (const char *string) | ||
3823 | { | ||
3824 | int h = 0, w = 0, mw = 0, i, len = (int) strlen(string); | ||
3825 | fontstruct *font; | ||
3826 | |||
3827 | |||
3828 | CA_CacheGrChunk (STARTFONT + 1); | ||
3829 | fontnumber = 1; | ||
3830 | font = (fontstruct *) grsegs[STARTFONT + fontnumber]; | ||
3831 | h = font->height; | ||
3832 | for (i = 0; i < len; i++) | ||
3833 | { | ||
3834 | if (string[i] == '\n') | ||
3835 | { | ||
3836 | if (w > mw) | ||
3837 | mw = w; | ||
3838 | w = 0; | ||
3839 | h += font->height; | ||
3840 | } | ||
3841 | else | ||
3842 | w += font->width[string[i]]; | ||
3843 | } | ||
3844 | |||
3845 | if (w + 10 > mw) | ||
3846 | mw = w + 10; | ||
3847 | |||
3848 | PrintY = (WindowH / 2) - h / 2; | ||
3849 | PrintX = WindowX = 160 - mw / 2; | ||
3850 | |||
3851 | DrawWindow (WindowX - 5, PrintY - 5, mw + 10, h + 10, TEXTCOLOR); | ||
3852 | DrawOutline (WindowX - 5, PrintY - 5, mw + 10, h + 10, 0, HIGHLIGHT); | ||
3853 | SETFONTCOLOR (0, TEXTCOLOR); | ||
3854 | US_Print (string); | ||
3855 | VW_UpdateScreen (); | ||
3856 | } | ||
3857 | |||
3858 | //////////////////////////////////////////////////////////////////// | ||
3859 | // | ||
3860 | // THIS MAY BE FIXED A LITTLE LATER... | ||
3861 | // | ||
3862 | //////////////////////////////////////////////////////////////////// | ||
3863 | static int lastmusic; | ||
3864 | |||
3865 | int | ||
3866 | StartCPMusic (int song) | ||
3867 | { | ||
3868 | int lastoffs; | ||
3869 | |||
3870 | lastmusic = song; | ||
3871 | lastoffs = SD_MusicOff (); | ||
3872 | UNCACHEAUDIOCHUNK (STARTMUSIC + lastmusic); | ||
3873 | |||
3874 | SD_StartMusic(STARTMUSIC + song); | ||
3875 | return lastoffs; | ||
3876 | } | ||
3877 | |||
3878 | void | ||
3879 | FreeMusic (void) | ||
3880 | { | ||
3881 | UNCACHEAUDIOCHUNK (STARTMUSIC + lastmusic); | ||
3882 | } | ||
3883 | |||
3884 | |||
3885 | /////////////////////////////////////////////////////////////////////////// | ||
3886 | // | ||
3887 | // IN_GetScanName() - Returns a string containing the name of the | ||
3888 | // specified scan code | ||
3889 | // | ||
3890 | /////////////////////////////////////////////////////////////////////////// | ||
3891 | const char * | ||
3892 | IN_GetScanName (ScanCode scan) | ||
3893 | { | ||
3894 | /* const char **p; | ||
3895 | ScanCode *s; | ||
3896 | |||
3897 | for (s = ExtScanCodes, p = ExtScanNames; *s; p++, s++) | ||
3898 | if (*s == scan) | ||
3899 | return (*p);*/ | ||
3900 | |||
3901 | return (ScanNames[scan]); | ||
3902 | } | ||
3903 | |||
3904 | |||
3905 | /////////////////////////////////////////////////////////////////////////// | ||
3906 | // | ||
3907 | // CHECK FOR PAUSE KEY (FOR MUSIC ONLY) | ||
3908 | // | ||
3909 | /////////////////////////////////////////////////////////////////////////// | ||
3910 | void | ||
3911 | CheckPause (void) | ||
3912 | { | ||
3913 | if (Paused) | ||
3914 | { | ||
3915 | switch (SoundStatus) | ||
3916 | { | ||
3917 | case 0: | ||
3918 | SD_MusicOn (); | ||
3919 | break; | ||
3920 | case 1: | ||
3921 | SD_MusicOff (); | ||
3922 | break; | ||
3923 | } | ||
3924 | |||
3925 | SoundStatus ^= 1; | ||
3926 | VW_WaitVBL (3); | ||
3927 | IN_ClearKeysDown (); | ||
3928 | Paused = false; | ||
3929 | } | ||
3930 | } | ||
3931 | |||
3932 | |||
3933 | /////////////////////////////////////////////////////////////////////////// | ||
3934 | // | ||
3935 | // DRAW GUN CURSOR AT CORRECT POSITION IN MENU | ||
3936 | // | ||
3937 | /////////////////////////////////////////////////////////////////////////// | ||
3938 | void | ||
3939 | DrawMenuGun (CP_iteminfo * iteminfo) | ||
3940 | { | ||
3941 | int x, y; | ||
3942 | |||
3943 | |||
3944 | x = iteminfo->x; | ||
3945 | y = iteminfo->y + iteminfo->curpos * 13 - 2; | ||
3946 | VWB_DrawPic (x, y, C_CURSOR1PIC); | ||
3947 | } | ||
3948 | |||
3949 | |||
3950 | /////////////////////////////////////////////////////////////////////////// | ||
3951 | // | ||
3952 | // DRAW SCREEN TITLE STRIPES | ||
3953 | // | ||
3954 | /////////////////////////////////////////////////////////////////////////// | ||
3955 | void | ||
3956 | DrawStripes (int y) | ||
3957 | { | ||
3958 | #ifndef SPEAR | ||
3959 | VWB_Bar (0, y, 320, 24, 0); | ||
3960 | VWB_Hlin (0, 319, y + 22, STRIPE); | ||
3961 | #else | ||
3962 | VWB_Bar (0, y, 320, 22, 0); | ||
3963 | VWB_Hlin (0, 319, y + 23, 0); | ||
3964 | #endif | ||
3965 | } | ||
3966 | |||
3967 | void | ||
3968 | ShootSnd (void) | ||
3969 | { | ||
3970 | SD_PlaySound (SHOOTSND); | ||
3971 | } | ||
3972 | |||
3973 | |||
3974 | /////////////////////////////////////////////////////////////////////////// | ||
3975 | // | ||
3976 | // CHECK FOR EPISODES | ||
3977 | // | ||
3978 | /////////////////////////////////////////////////////////////////////////// | ||
3979 | |||
3980 | #define stat my_stat | ||
3981 | void *my_stat(const char *path, int *buf) | ||
3982 | { | ||
3983 | if(rb->file_exists(path)) | ||
3984 | return NULL; | ||
3985 | else | ||
3986 | return 1; | ||
3987 | } | ||
3988 | |||
3989 | void | ||
3990 | CheckForEpisodes (void) | ||
3991 | { | ||
3992 | int statbuf; | ||
3993 | |||
3994 | // On Linux like systems, the configdir defaults to $HOME/.wolf4sdl | ||
3995 | #if !defined(_WIN32) && !defined(_arch_dreamcast) | ||
3996 | if(configdir[0] == 0) | ||
3997 | { | ||
3998 | // Set config location to home directory for multi-user support | ||
3999 | char *homedir = "/"; | ||
4000 | if(homedir == NULL) | ||
4001 | { | ||
4002 | Quit("Your $HOME directory is not defined. You must set this before playing."); | ||
4003 | } | ||
4004 | #define WOLFDIR "/.wolf4sdl" | ||
4005 | if(strlen(homedir) + sizeof(WOLFDIR) > sizeof(configdir)) | ||
4006 | { | ||
4007 | Quit("Your $HOME directory path is too long. It cannot be used for saving games."); | ||
4008 | } | ||
4009 | snprintf(configdir, sizeof(configdir), "%s" WOLFDIR, homedir); | ||
4010 | } | ||
4011 | #endif | ||
4012 | |||
4013 | if(configdir[0] != 0) | ||
4014 | { | ||
4015 | // Ensure config directory exists and create if necessary | ||
4016 | if(stat(configdir, &statbuf) != 0) | ||
4017 | { | ||
4018 | #ifdef _WIN32 | ||
4019 | if(_mkdir(configdir) != 0) | ||
4020 | #else | ||
4021 | if(mkdir(configdir) != 0) | ||
4022 | #endif | ||
4023 | { | ||
4024 | Quit("The configuration directory \"%s\" could not be created.", configdir); | ||
4025 | } | ||
4026 | } | ||
4027 | } | ||
4028 | |||
4029 | // | ||
4030 | // JAPANESE VERSION | ||
4031 | // | ||
4032 | #ifdef JAPAN | ||
4033 | #ifdef JAPDEMO | ||
4034 | if(!stat(DATADIR "vswap.wj1", &statbuf)) | ||
4035 | { | ||
4036 | strcpy (extension, "wj1"); | ||
4037 | numEpisodesMissing = 5; | ||
4038 | #else | ||
4039 | if(!stat(DATADIR "vswap.wj6", &statbuf)) | ||
4040 | { | ||
4041 | strcpy (extension, "wj6"); | ||
4042 | #endif | ||
4043 | strcat (configname, extension); | ||
4044 | strcat (SaveName, extension); | ||
4045 | strcat (demoname, extension); | ||
4046 | EpisodeSelect[1] = | ||
4047 | EpisodeSelect[2] = EpisodeSelect[3] = EpisodeSelect[4] = EpisodeSelect[5] = 1; | ||
4048 | } | ||
4049 | else | ||
4050 | Quit ("NO JAPANESE WOLFENSTEIN 3-D DATA FILES to be found!"); | ||
4051 | #else | ||
4052 | |||
4053 | // | ||
4054 | // ENGLISH | ||
4055 | // | ||
4056 | #ifdef UPLOAD | ||
4057 | if(!stat(DATADIR "vswap.wl1", &statbuf)) | ||
4058 | { | ||
4059 | strcpy (extension, "wl1"); | ||
4060 | numEpisodesMissing = 5; | ||
4061 | } | ||
4062 | else | ||
4063 | Quit ("NO WOLFENSTEIN 3-D DATA FILES to be found! %s", DATADIR"vswap.wl1"); | ||
4064 | #else | ||
4065 | #ifndef SPEAR | ||
4066 | if(!stat(DATADIR "vswap.wl6", &statbuf)) | ||
4067 | { | ||
4068 | strcpy (extension, "wl6"); | ||
4069 | NewEmenu[2].active = | ||
4070 | NewEmenu[4].active = | ||
4071 | NewEmenu[6].active = | ||
4072 | NewEmenu[8].active = | ||
4073 | NewEmenu[10].active = | ||
4074 | EpisodeSelect[1] = | ||
4075 | EpisodeSelect[2] = EpisodeSelect[3] = EpisodeSelect[4] = EpisodeSelect[5] = 1; | ||
4076 | } | ||
4077 | else | ||
4078 | { | ||
4079 | if(!stat(DATADIR "vswap.wl3", &statbuf)) | ||
4080 | { | ||
4081 | strcpy (extension, "wl3"); | ||
4082 | numEpisodesMissing = 3; | ||
4083 | NewEmenu[2].active = NewEmenu[4].active = EpisodeSelect[1] = EpisodeSelect[2] = 1; | ||
4084 | } | ||
4085 | else | ||
4086 | { | ||
4087 | if(!stat(DATADIR "vswap.wl1", &statbuf)) | ||
4088 | { | ||
4089 | strcpy (extension, "wl1"); | ||
4090 | numEpisodesMissing = 5; | ||
4091 | } | ||
4092 | else | ||
4093 | Quit ("NO WOLFENSTEIN 3-D DATA FILES to be found!"DATADIR"vswap.wl[6,3,1]"); | ||
4094 | } | ||
4095 | } | ||
4096 | #endif | ||
4097 | #endif | ||
4098 | |||
4099 | |||
4100 | #ifdef SPEAR | ||
4101 | #ifndef SPEARDEMO | ||
4102 | if(param_mission == 0) | ||
4103 | { | ||
4104 | if(!stat(DATADIR "vswap.sod", &statbuf)) | ||
4105 | strcpy (extension, "sod"); | ||
4106 | else | ||
4107 | Quit ("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); | ||
4108 | } | ||
4109 | else if(param_mission == 1) | ||
4110 | { | ||
4111 | if(!stat(DATADIR "vswap.sd1", &statbuf)) | ||
4112 | strcpy (extension, "sd1"); | ||
4113 | else | ||
4114 | Quit ("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); | ||
4115 | } | ||
4116 | else if(param_mission == 2) | ||
4117 | { | ||
4118 | if(!stat(DATADIR "vswap.sd2", &statbuf)) | ||
4119 | strcpy (extension, "sd2"); | ||
4120 | else | ||
4121 | Quit ("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); | ||
4122 | } | ||
4123 | else if(param_mission == 3) | ||
4124 | { | ||
4125 | if(!stat(DATADIR "vswap.sd3", &statbuf)) | ||
4126 | strcpy (extension, "sd3"); | ||
4127 | else | ||
4128 | Quit ("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); | ||
4129 | } | ||
4130 | else | ||
4131 | Quit ("UNSUPPORTED MISSION!"); | ||
4132 | strcpy (graphext, "sod"); | ||
4133 | strcpy (audioext, "sod"); | ||
4134 | #else | ||
4135 | if(!stat(DATADIR "vswap.sdm", &statbuf)) | ||
4136 | { | ||
4137 | strcpy (extension, "sdm"); | ||
4138 | } | ||
4139 | else | ||
4140 | Quit ("NO SPEAR OF DESTINY DEMO DATA FILES TO BE FOUND!"); | ||
4141 | strcpy (graphext, "sdm"); | ||
4142 | strcpy (audioext, "sdm"); | ||
4143 | #endif | ||
4144 | #else | ||
4145 | strcpy (graphext, extension); | ||
4146 | strcpy (audioext, extension); | ||
4147 | #endif | ||
4148 | |||
4149 | strcat (configname, extension); | ||
4150 | strcat (SaveName, extension); | ||
4151 | strcat (demoname, extension); | ||
4152 | |||
4153 | #ifndef SPEAR | ||
4154 | #ifndef GOODTIMES | ||
4155 | strcat (helpfilename, extension); | ||
4156 | #endif | ||
4157 | strcat (endfilename, extension); | ||
4158 | #endif | ||
4159 | #endif | ||
4160 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_menu.h b/apps/plugins/sdl/progs/wolf3d/wl_menu.h new file mode 100644 index 0000000000..c56fd7f576 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_menu.h | |||
@@ -0,0 +1,237 @@ | |||
1 | // | ||
2 | // WL_MENU.H | ||
3 | // | ||
4 | #ifdef SPEAR | ||
5 | |||
6 | #define BORDCOLOR 0x99 | ||
7 | #define BORD2COLOR 0x93 | ||
8 | #define DEACTIVE 0x9b | ||
9 | #define BKGDCOLOR 0x9d | ||
10 | //#define STRIPE 0x9c | ||
11 | |||
12 | #define MenuFadeOut() VL_FadeOut(0,255,0,0,51,10) | ||
13 | |||
14 | #else | ||
15 | |||
16 | #define BORDCOLOR 0x29 | ||
17 | #define BORD2COLOR 0x23 | ||
18 | #define DEACTIVE 0x2b | ||
19 | #define BKGDCOLOR 0x2d | ||
20 | #define STRIPE 0x2c | ||
21 | |||
22 | #define MenuFadeOut() VL_FadeOut(0,255,43,0,0,10) | ||
23 | |||
24 | #endif | ||
25 | |||
26 | #define READCOLOR 0x4a | ||
27 | #define READHCOLOR 0x47 | ||
28 | #define VIEWCOLOR 0x7f | ||
29 | #define TEXTCOLOR 0x17 | ||
30 | #define HIGHLIGHT 0x13 | ||
31 | #define MenuFadeIn() VL_FadeIn(0,255,gamepal,10) | ||
32 | |||
33 | |||
34 | #define MENUSONG WONDERIN_MUS | ||
35 | |||
36 | #ifndef SPEAR | ||
37 | #define INTROSONG NAZI_NOR_MUS | ||
38 | #else | ||
39 | #define INTROSONG XTOWER2_MUS | ||
40 | #endif | ||
41 | |||
42 | #define SENSITIVE 60 | ||
43 | #define CENTERX ((int) screenWidth / 2) | ||
44 | #define CENTERY ((int) screenHeight / 2) | ||
45 | |||
46 | #define MENU_X 76 | ||
47 | #define MENU_Y 55 | ||
48 | #define MENU_W 178 | ||
49 | #ifndef SPEAR | ||
50 | #ifndef GOODTIMES | ||
51 | #define MENU_H 13*10+6 | ||
52 | #else | ||
53 | #define MENU_H 13*9+6 | ||
54 | #endif | ||
55 | #else | ||
56 | #define MENU_H 13*9+6 | ||
57 | #endif | ||
58 | |||
59 | #define SM_X 48 | ||
60 | #define SM_W 250 | ||
61 | |||
62 | #define SM_Y1 20 | ||
63 | #define SM_H1 4*13-7 | ||
64 | #define SM_Y2 SM_Y1+5*13 | ||
65 | #define SM_H2 4*13-7 | ||
66 | #define SM_Y3 SM_Y2+5*13 | ||
67 | #define SM_H3 3*13-7 | ||
68 | |||
69 | #define CTL_X 24 | ||
70 | #define CTL_Y 86 | ||
71 | #define CTL_W 284 | ||
72 | #define CTL_H 60 | ||
73 | |||
74 | #define LSM_X 85 | ||
75 | #define LSM_Y 55 | ||
76 | #define LSM_W 175 | ||
77 | #define LSM_H 10*13+10 | ||
78 | |||
79 | #define NM_X 50 | ||
80 | #define NM_Y 100 | ||
81 | #define NM_W 225 | ||
82 | #define NM_H 13*4+15 | ||
83 | |||
84 | #define NE_X 10 | ||
85 | #define NE_Y 23 | ||
86 | #define NE_W 320-NE_X*2 | ||
87 | #define NE_H 200-NE_Y*2 | ||
88 | |||
89 | #define CST_X 20 | ||
90 | #define CST_Y 48 | ||
91 | #define CST_START 60 | ||
92 | #define CST_SPC 60 | ||
93 | |||
94 | |||
95 | // | ||
96 | // TYPEDEFS | ||
97 | // | ||
98 | typedef struct { | ||
99 | short x,y,amount,curpos,indent; | ||
100 | } CP_iteminfo; | ||
101 | |||
102 | typedef struct { | ||
103 | short active; | ||
104 | char string[36]; | ||
105 | int (* routine)(int temp1); | ||
106 | } CP_itemtype; | ||
107 | |||
108 | typedef struct { | ||
109 | short allowed[4]; | ||
110 | } CustomCtrls; | ||
111 | |||
112 | extern CP_itemtype MainMenu[]; | ||
113 | extern CP_iteminfo MainItems; | ||
114 | |||
115 | // | ||
116 | // FUNCTION PROTOTYPES | ||
117 | // | ||
118 | |||
119 | void US_ControlPanel(ScanCode); | ||
120 | |||
121 | void EnableEndGameMenuItem(); | ||
122 | |||
123 | void SetupControlPanel(void); | ||
124 | void SetupSaveGames(); | ||
125 | void CleanupControlPanel(void); | ||
126 | |||
127 | void DrawMenu(CP_iteminfo *item_i,CP_itemtype *items); | ||
128 | int HandleMenu(CP_iteminfo *item_i, | ||
129 | CP_itemtype *items, | ||
130 | void (*routine)(int w)); | ||
131 | void ClearMScreen(void); | ||
132 | void DrawWindow(int x,int y,int w,int h,int wcolor); | ||
133 | void DrawOutline(int x,int y,int w,int h,int color1,int color2); | ||
134 | void WaitKeyUp(void); | ||
135 | void ReadAnyControl(ControlInfo *ci); | ||
136 | void TicDelay(int count); | ||
137 | void CacheLump(int lumpstart,int lumpend); | ||
138 | void UnCacheLump(int lumpstart,int lumpend); | ||
139 | int StartCPMusic(int song); | ||
140 | int Confirm(const char *string); | ||
141 | void Message(const char *string); | ||
142 | void CheckPause(void); | ||
143 | void ShootSnd(void); | ||
144 | void CheckSecretMissions(void); | ||
145 | void BossKey(void); | ||
146 | |||
147 | void DrawGun(CP_iteminfo *item_i,CP_itemtype *items,int x,int *y,int which,int basey,void (*routine)(int w)); | ||
148 | void DrawHalfStep(int x,int y); | ||
149 | void EraseGun(CP_iteminfo *item_i,CP_itemtype *items,int x,int y,int which); | ||
150 | void SetTextColor(CP_itemtype *items,int hlight); | ||
151 | void DrawMenuGun(CP_iteminfo *iteminfo); | ||
152 | void DrawStripes(int y); | ||
153 | |||
154 | void DefineMouseBtns(void); | ||
155 | void DefineJoyBtns(void); | ||
156 | void DefineKeyBtns(void); | ||
157 | void DefineKeyMove(void); | ||
158 | void EnterCtrlData(int index,CustomCtrls *cust,void (*DrawRtn)(int),void (*PrintRtn)(int),int type); | ||
159 | |||
160 | void DrawMainMenu(void); | ||
161 | void DrawSoundMenu(void); | ||
162 | void DrawLoadSaveScreen(int loadsave); | ||
163 | void DrawNewEpisode(void); | ||
164 | void DrawNewGame(void); | ||
165 | void DrawChangeView(int view); | ||
166 | void DrawMouseSens(void); | ||
167 | void DrawCtlScreen(void); | ||
168 | void DrawCustomScreen(void); | ||
169 | void DrawLSAction(int which); | ||
170 | void DrawCustMouse(int hilight); | ||
171 | void DrawCustJoy(int hilight); | ||
172 | void DrawCustKeybd(int hilight); | ||
173 | void DrawCustKeys(int hilight); | ||
174 | void PrintCustMouse(int i); | ||
175 | void PrintCustJoy(int i); | ||
176 | void PrintCustKeybd(int i); | ||
177 | void PrintCustKeys(int i); | ||
178 | |||
179 | void PrintLSEntry(int w,int color); | ||
180 | void TrackWhichGame(int w); | ||
181 | void DrawNewGameDiff(int w); | ||
182 | void FixupCustom(int w); | ||
183 | |||
184 | int CP_NewGame(int); | ||
185 | int CP_Sound(int); | ||
186 | int CP_LoadGame(int quick); | ||
187 | int CP_SaveGame(int quick); | ||
188 | int CP_Control(int); | ||
189 | int CP_ChangeView(int); | ||
190 | int CP_ExitOptions(int); | ||
191 | int CP_Quit(int); | ||
192 | int CP_ViewScores(int); | ||
193 | int CP_EndGame(int); | ||
194 | int CP_CheckQuick(ScanCode scancode); | ||
195 | int CustomControls(int); | ||
196 | int MouseSensitivity(int); | ||
197 | |||
198 | void CheckForEpisodes(void); | ||
199 | |||
200 | void FreeMusic(void); | ||
201 | |||
202 | |||
203 | enum {MOUSE,JOYSTICK,KEYBOARDBTNS,KEYBOARDMOVE}; // FOR INPUT TYPES | ||
204 | |||
205 | enum menuitems | ||
206 | { | ||
207 | newgame, | ||
208 | soundmenu, | ||
209 | control, | ||
210 | loadgame, | ||
211 | savegame, | ||
212 | changeview, | ||
213 | |||
214 | #ifndef GOODTIMES | ||
215 | #ifndef SPEAR | ||
216 | readthis, | ||
217 | #endif | ||
218 | #endif | ||
219 | |||
220 | viewscores, | ||
221 | backtodemo, | ||
222 | quit | ||
223 | }; | ||
224 | |||
225 | // | ||
226 | // WL_INTER | ||
227 | // | ||
228 | typedef struct { | ||
229 | int kill,secret,treasure; | ||
230 | int32_t time; | ||
231 | } LRstruct; | ||
232 | |||
233 | extern LRstruct LevelRatios[]; | ||
234 | |||
235 | void Write (int x,int y,const char *string); | ||
236 | void NonShareware(void); | ||
237 | int GetYorN(int x,int y,int pic); | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_parallax.c b/apps/plugins/sdl/progs/wolf3d/wl_parallax.c new file mode 100644 index 0000000000..8fbc8cfb91 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_parallax.c | |||
@@ -0,0 +1,64 @@ | |||
1 | #include "version.h" | ||
2 | |||
3 | #ifdef USE_PARALLAX | ||
4 | |||
5 | #include "wl_def.h" | ||
6 | |||
7 | #ifdef USE_FEATUREFLAGS | ||
8 | |||
9 | // The lower left tile of every map determines the start texture of the parallax sky. | ||
10 | static int GetParallaxStartTexture() | ||
11 | { | ||
12 | int startTex = ffDataBottomLeft; | ||
13 | assert(startTex >= 0 && startTex < PMSpriteStart); | ||
14 | return startTex; | ||
15 | } | ||
16 | |||
17 | #else | ||
18 | |||
19 | static int GetParallaxStartTexture() | ||
20 | { | ||
21 | int startTex; | ||
22 | switch(gamestate.episode * 10 + mapon) | ||
23 | { | ||
24 | case 0: startTex = 20; break; | ||
25 | default: startTex = 0; break; | ||
26 | } | ||
27 | assert(startTex >= 0 && startTex < PMSpriteStart); | ||
28 | return startTex; | ||
29 | } | ||
30 | |||
31 | #endif | ||
32 | |||
33 | void DrawParallax(byte *vbuf, unsigned vbufPitch) | ||
34 | { | ||
35 | int startpage = GetParallaxStartTexture(); | ||
36 | int midangle = player->angle * (FINEANGLES / ANGLES); | ||
37 | int skyheight = viewheight >> 1; | ||
38 | int curtex = -1; | ||
39 | byte *skytex; | ||
40 | |||
41 | startpage += USE_PARALLAX - 1; | ||
42 | |||
43 | for(int x = 0; x < viewwidth; x++) | ||
44 | { | ||
45 | int curang = pixelangle[x] + midangle; | ||
46 | if(curang < 0) curang += FINEANGLES; | ||
47 | else if(curang >= FINEANGLES) curang -= FINEANGLES; | ||
48 | int xtex = curang * USE_PARALLAX * TEXTURESIZE / FINEANGLES; | ||
49 | int newtex = xtex >> TEXTURESHIFT; | ||
50 | if(newtex != curtex) | ||
51 | { | ||
52 | curtex = newtex; | ||
53 | skytex = PM_GetTexture(startpage - curtex); | ||
54 | } | ||
55 | int texoffs = TEXTUREMASK - ((xtex & (TEXTURESIZE - 1)) << TEXTURESHIFT); | ||
56 | int yend = skyheight - (wallheight[x] >> 3); | ||
57 | if(yend <= 0) continue; | ||
58 | |||
59 | for(int y = 0, offs = x; y < yend; y++, offs += vbufPitch) | ||
60 | vbuf[offs] = skytex[texoffs + (y * TEXTURESIZE) / skyheight]; | ||
61 | } | ||
62 | } | ||
63 | |||
64 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_play.c b/apps/plugins/sdl/progs/wolf3d/wl_play.c new file mode 100644 index 0000000000..79efcefe50 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_play.c | |||
@@ -0,0 +1,1366 @@ | |||
1 | // WL_PLAY.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | #include "wl_cloudsky.h" | ||
7 | #include "wl_shade.h" | ||
8 | |||
9 | /* | ||
10 | ============================================================================= | ||
11 | |||
12 | LOCAL CONSTANTS | ||
13 | |||
14 | ============================================================================= | ||
15 | */ | ||
16 | |||
17 | #define sc_Question 0x35 | ||
18 | |||
19 | /* | ||
20 | ============================================================================= | ||
21 | |||
22 | GLOBAL VARIABLES | ||
23 | |||
24 | ============================================================================= | ||
25 | */ | ||
26 | |||
27 | boolean madenoise; // true when shooting or screaming | ||
28 | |||
29 | exit_t playstate; | ||
30 | |||
31 | static musicnames lastmusicchunk = (musicnames) 0; | ||
32 | |||
33 | static int DebugOk; | ||
34 | |||
35 | objtype objlist[MAXACTORS]; | ||
36 | objtype *newobj, *obj, *player, *lastobj, *objfreelist, *killerobj; | ||
37 | |||
38 | boolean noclip, ammocheat; | ||
39 | int godmode, singlestep, extravbls = 0; | ||
40 | |||
41 | byte tilemap[MAPSIZE][MAPSIZE]; // wall values only | ||
42 | byte spotvis[MAPSIZE][MAPSIZE]; | ||
43 | objtype *actorat[MAPSIZE][MAPSIZE]; | ||
44 | |||
45 | // | ||
46 | // replacing refresh manager | ||
47 | // | ||
48 | unsigned tics; | ||
49 | |||
50 | // | ||
51 | // control info | ||
52 | // | ||
53 | boolean mouseenabled, joystickenabled; | ||
54 | int dirscan[4] = { sc_UpArrow, sc_RightArrow, sc_DownArrow, sc_LeftArrow }; | ||
55 | |||
56 | int buttonscan[NUMBUTTONS] = { sc_Return, sc_Alt, sc_LShift, sc_UpArrow, sc_1, sc_2, sc_3, sc_4, | ||
57 | sc_DownArrow, 0, 0, 0, sc_A, sc_D }; | ||
58 | int buttonmouse[4] = { bt_attack, bt_strafe, bt_use, bt_nobutton }; | ||
59 | int buttonjoy[32] = { | ||
60 | #ifdef _arch_dreamcast | ||
61 | bt_attack, bt_strafe, bt_use, bt_run, bt_esc, bt_prevweapon, bt_nobutton, bt_nextweapon, | ||
62 | bt_pause, bt_strafeleft, bt_straferight, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, | ||
63 | #else | ||
64 | bt_attack, bt_strafe, bt_use, bt_run, bt_strafeleft, bt_straferight, bt_esc, bt_pause, | ||
65 | bt_prevweapon, bt_nextweapon, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, | ||
66 | #endif | ||
67 | bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, | ||
68 | bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton, bt_nobutton | ||
69 | }; | ||
70 | |||
71 | int viewsize; | ||
72 | |||
73 | boolean buttonheld[NUMBUTTONS]; | ||
74 | |||
75 | boolean demorecord, demoplayback; | ||
76 | int8_t *demoptr, *lastdemoptr; | ||
77 | memptr demobuffer; | ||
78 | |||
79 | // | ||
80 | // current user input | ||
81 | // | ||
82 | int controlx, controly; // range from -100 to 100 per tic | ||
83 | boolean buttonstate[NUMBUTTONS]; | ||
84 | |||
85 | int lastgamemusicoffset = 0; | ||
86 | |||
87 | |||
88 | //=========================================================================== | ||
89 | |||
90 | |||
91 | void CenterWindow (word w, word h); | ||
92 | void InitObjList (void); | ||
93 | void RemoveObj (objtype * gone); | ||
94 | void PollControls (void); | ||
95 | int StopMusic (void); | ||
96 | void StartMusic (void); | ||
97 | void ContinueMusic (int offs); | ||
98 | void PlayLoop (void); | ||
99 | |||
100 | /* | ||
101 | ============================================================================= | ||
102 | |||
103 | LOCAL VARIABLES | ||
104 | |||
105 | ============================================================================= | ||
106 | */ | ||
107 | |||
108 | |||
109 | objtype dummyobj; | ||
110 | |||
111 | // | ||
112 | // LIST OF SONGS FOR EACH VERSION | ||
113 | // | ||
114 | int songs[] = { | ||
115 | #ifndef SPEAR | ||
116 | // | ||
117 | // Episode One | ||
118 | // | ||
119 | GETTHEM_MUS, | ||
120 | SEARCHN_MUS, | ||
121 | POW_MUS, | ||
122 | SUSPENSE_MUS, | ||
123 | GETTHEM_MUS, | ||
124 | SEARCHN_MUS, | ||
125 | POW_MUS, | ||
126 | SUSPENSE_MUS, | ||
127 | |||
128 | WARMARCH_MUS, // Boss level | ||
129 | CORNER_MUS, // Secret level | ||
130 | |||
131 | // | ||
132 | // Episode Two | ||
133 | // | ||
134 | NAZI_OMI_MUS, | ||
135 | PREGNANT_MUS, | ||
136 | GOINGAFT_MUS, | ||
137 | HEADACHE_MUS, | ||
138 | NAZI_OMI_MUS, | ||
139 | PREGNANT_MUS, | ||
140 | HEADACHE_MUS, | ||
141 | GOINGAFT_MUS, | ||
142 | |||
143 | WARMARCH_MUS, // Boss level | ||
144 | DUNGEON_MUS, // Secret level | ||
145 | |||
146 | // | ||
147 | // Episode Three | ||
148 | // | ||
149 | INTROCW3_MUS, | ||
150 | NAZI_RAP_MUS, | ||
151 | TWELFTH_MUS, | ||
152 | ZEROHOUR_MUS, | ||
153 | INTROCW3_MUS, | ||
154 | NAZI_RAP_MUS, | ||
155 | TWELFTH_MUS, | ||
156 | ZEROHOUR_MUS, | ||
157 | |||
158 | ULTIMATE_MUS, // Boss level | ||
159 | PACMAN_MUS, // Secret level | ||
160 | |||
161 | // | ||
162 | // Episode Four | ||
163 | // | ||
164 | GETTHEM_MUS, | ||
165 | SEARCHN_MUS, | ||
166 | POW_MUS, | ||
167 | SUSPENSE_MUS, | ||
168 | GETTHEM_MUS, | ||
169 | SEARCHN_MUS, | ||
170 | POW_MUS, | ||
171 | SUSPENSE_MUS, | ||
172 | |||
173 | WARMARCH_MUS, // Boss level | ||
174 | CORNER_MUS, // Secret level | ||
175 | |||
176 | // | ||
177 | // Episode Five | ||
178 | // | ||
179 | NAZI_OMI_MUS, | ||
180 | PREGNANT_MUS, | ||
181 | GOINGAFT_MUS, | ||
182 | HEADACHE_MUS, | ||
183 | NAZI_OMI_MUS, | ||
184 | PREGNANT_MUS, | ||
185 | HEADACHE_MUS, | ||
186 | GOINGAFT_MUS, | ||
187 | |||
188 | WARMARCH_MUS, // Boss level | ||
189 | DUNGEON_MUS, // Secret level | ||
190 | |||
191 | // | ||
192 | // Episode Six | ||
193 | // | ||
194 | INTROCW3_MUS, | ||
195 | NAZI_RAP_MUS, | ||
196 | TWELFTH_MUS, | ||
197 | ZEROHOUR_MUS, | ||
198 | INTROCW3_MUS, | ||
199 | NAZI_RAP_MUS, | ||
200 | TWELFTH_MUS, | ||
201 | ZEROHOUR_MUS, | ||
202 | |||
203 | ULTIMATE_MUS, // Boss level | ||
204 | FUNKYOU_MUS // Secret level | ||
205 | #else | ||
206 | |||
207 | ////////////////////////////////////////////////////////////// | ||
208 | // | ||
209 | // SPEAR OF DESTINY TRACKS | ||
210 | // | ||
211 | ////////////////////////////////////////////////////////////// | ||
212 | XTIPTOE_MUS, | ||
213 | XFUNKIE_MUS, | ||
214 | XDEATH_MUS, | ||
215 | XGETYOU_MUS, // DON'T KNOW | ||
216 | ULTIMATE_MUS, // Trans Gr”sse | ||
217 | |||
218 | DUNGEON_MUS, | ||
219 | GOINGAFT_MUS, | ||
220 | POW_MUS, | ||
221 | TWELFTH_MUS, | ||
222 | ULTIMATE_MUS, // Barnacle Wilhelm BOSS | ||
223 | |||
224 | NAZI_OMI_MUS, | ||
225 | GETTHEM_MUS, | ||
226 | SUSPENSE_MUS, | ||
227 | SEARCHN_MUS, | ||
228 | ZEROHOUR_MUS, | ||
229 | ULTIMATE_MUS, // Super Mutant BOSS | ||
230 | |||
231 | XPUTIT_MUS, | ||
232 | ULTIMATE_MUS, // Death Knight BOSS | ||
233 | |||
234 | XJAZNAZI_MUS, // Secret level | ||
235 | XFUNKIE_MUS, // Secret level (DON'T KNOW) | ||
236 | |||
237 | XEVIL_MUS // Angel of Death BOSS | ||
238 | #endif | ||
239 | }; | ||
240 | |||
241 | |||
242 | /* | ||
243 | ============================================================================= | ||
244 | |||
245 | USER CONTROL | ||
246 | |||
247 | ============================================================================= | ||
248 | */ | ||
249 | |||
250 | /* | ||
251 | =================== | ||
252 | = | ||
253 | = PollKeyboardButtons | ||
254 | = | ||
255 | =================== | ||
256 | */ | ||
257 | |||
258 | void PollKeyboardButtons (void) | ||
259 | { | ||
260 | int i; | ||
261 | |||
262 | //LOGF("button state: "); | ||
263 | for (i = 0; i < NUMBUTTONS; i++) | ||
264 | { | ||
265 | if (Keyboard[buttonscan[i]]) | ||
266 | { | ||
267 | buttonstate[i] = true; | ||
268 | LOGF("enabling bit %d in buttonstate"); | ||
269 | } | ||
270 | //LOGF("%d ", buttonstate[i]); | ||
271 | } | ||
272 | //LOGF("\n"); | ||
273 | } | ||
274 | |||
275 | |||
276 | /* | ||
277 | =================== | ||
278 | = | ||
279 | = PollMouseButtons | ||
280 | = | ||
281 | =================== | ||
282 | */ | ||
283 | |||
284 | void PollMouseButtons (void) | ||
285 | { | ||
286 | int buttons = IN_MouseButtons (); | ||
287 | |||
288 | if (buttons & 1) | ||
289 | buttonstate[buttonmouse[0]] = true; | ||
290 | if (buttons & 2) | ||
291 | buttonstate[buttonmouse[1]] = true; | ||
292 | if (buttons & 4) | ||
293 | buttonstate[buttonmouse[2]] = true; | ||
294 | } | ||
295 | |||
296 | |||
297 | |||
298 | /* | ||
299 | =================== | ||
300 | = | ||
301 | = PollJoystickButtons | ||
302 | = | ||
303 | =================== | ||
304 | */ | ||
305 | |||
306 | void PollJoystickButtons (void) | ||
307 | { | ||
308 | int buttons = IN_JoyButtons(); | ||
309 | |||
310 | for(int i = 0, val = 1; i < JoyNumButtons; i++, val <<= 1) | ||
311 | { | ||
312 | if(buttons & val) | ||
313 | buttonstate[buttonjoy[i]] = true; | ||
314 | } | ||
315 | } | ||
316 | |||
317 | |||
318 | /* | ||
319 | =================== | ||
320 | = | ||
321 | = PollKeyboardMove | ||
322 | = | ||
323 | =================== | ||
324 | */ | ||
325 | |||
326 | void PollKeyboardMove (void) | ||
327 | { | ||
328 | int delta = buttonstate[bt_run] ? RUNMOVE * tics : BASEMOVE * tics; | ||
329 | |||
330 | if (Keyboard[dirscan[di_north]]) | ||
331 | controly -= delta; | ||
332 | if (Keyboard[dirscan[di_south]]) | ||
333 | controly += delta; | ||
334 | if (Keyboard[dirscan[di_west]]) | ||
335 | controlx -= delta; | ||
336 | if (Keyboard[dirscan[di_east]]) | ||
337 | controlx += delta; | ||
338 | } | ||
339 | |||
340 | |||
341 | /* | ||
342 | =================== | ||
343 | = | ||
344 | = PollMouseMove | ||
345 | = | ||
346 | =================== | ||
347 | */ | ||
348 | |||
349 | void PollMouseMove (void) | ||
350 | { | ||
351 | int mousexmove, mouseymove; | ||
352 | |||
353 | SDL_GetMouseState(&mousexmove, &mouseymove); | ||
354 | if(IN_IsInputGrabbed()) | ||
355 | IN_CenterMouse(); | ||
356 | |||
357 | mousexmove -= screenWidth / 2; | ||
358 | mouseymove -= screenHeight / 2; | ||
359 | |||
360 | controlx += mousexmove * 10 / (13 - mouseadjustment); | ||
361 | controly += mouseymove * 20 / (13 - mouseadjustment); | ||
362 | } | ||
363 | |||
364 | |||
365 | /* | ||
366 | =================== | ||
367 | = | ||
368 | = PollJoystickMove | ||
369 | = | ||
370 | =================== | ||
371 | */ | ||
372 | |||
373 | void PollJoystickMove (void) | ||
374 | { | ||
375 | int joyx, joyy; | ||
376 | |||
377 | IN_GetJoyDelta (&joyx, &joyy); | ||
378 | |||
379 | int delta = buttonstate[bt_run] ? RUNMOVE * tics : BASEMOVE * tics; | ||
380 | |||
381 | if (joyx > 64 || buttonstate[bt_turnright]) | ||
382 | controlx += delta; | ||
383 | else if (joyx < -64 || buttonstate[bt_turnleft]) | ||
384 | controlx -= delta; | ||
385 | if (joyy > 64 || buttonstate[bt_movebackward]) | ||
386 | controly += delta; | ||
387 | else if (joyy < -64 || buttonstate[bt_moveforward]) | ||
388 | controly -= delta; | ||
389 | } | ||
390 | |||
391 | /* | ||
392 | =================== | ||
393 | = | ||
394 | = PollControls | ||
395 | = | ||
396 | = Gets user or demo input, call once each frame | ||
397 | = | ||
398 | = controlx set between -100 and 100 per tic | ||
399 | = controly | ||
400 | = buttonheld[] the state of the buttons LAST frame | ||
401 | = buttonstate[] the state of the buttons THIS frame | ||
402 | = | ||
403 | =================== | ||
404 | */ | ||
405 | |||
406 | void PollControls (void) | ||
407 | { | ||
408 | int max, min, i; | ||
409 | byte buttonbits; | ||
410 | |||
411 | IN_ProcessEvents(); | ||
412 | |||
413 | // | ||
414 | // get timing info for last frame | ||
415 | // | ||
416 | if (demoplayback || demorecord) // demo recording and playback needs to be constant | ||
417 | { | ||
418 | // wait up to DEMOTICS Wolf tics | ||
419 | uint32_t curtime = SDL_GetTicks(); | ||
420 | lasttimecount += DEMOTICS; | ||
421 | int32_t timediff = (lasttimecount * 100) / 7 - curtime; | ||
422 | if(timediff > 0) | ||
423 | SDL_Delay(timediff); | ||
424 | |||
425 | if(timediff < -2 * DEMOTICS) // more than 2-times DEMOTICS behind? | ||
426 | lasttimecount = (curtime * 7) / 100; // yes, set to current timecount | ||
427 | |||
428 | tics = DEMOTICS; | ||
429 | } | ||
430 | else | ||
431 | CalcTics (); | ||
432 | |||
433 | controlx = 0; | ||
434 | controly = 0; | ||
435 | memcpy (buttonheld, buttonstate, sizeof (buttonstate)); | ||
436 | memset (buttonstate, 0, sizeof (buttonstate)); | ||
437 | |||
438 | if (demoplayback) | ||
439 | { | ||
440 | // | ||
441 | // read commands from demo buffer | ||
442 | // | ||
443 | buttonbits = *demoptr++; | ||
444 | for (i = 0; i < NUMBUTTONS; i++) | ||
445 | { | ||
446 | buttonstate[i] = buttonbits & 1; | ||
447 | buttonbits >>= 1; | ||
448 | } | ||
449 | |||
450 | controlx = *demoptr++; | ||
451 | controly = *demoptr++; | ||
452 | LOGF("%d %d %d", buttonbits, controlx, controly); | ||
453 | |||
454 | if (demoptr == lastdemoptr) | ||
455 | playstate = ex_completed; // demo is done | ||
456 | |||
457 | controlx *= (int) tics; | ||
458 | controly *= (int) tics; | ||
459 | |||
460 | return; | ||
461 | } | ||
462 | |||
463 | |||
464 | // | ||
465 | // get button states | ||
466 | // | ||
467 | PollKeyboardButtons (); | ||
468 | |||
469 | // if (mouseenabled && IN_IsInputGrabbed()) | ||
470 | // PollMouseButtons (); | ||
471 | |||
472 | if (joystickenabled) | ||
473 | PollJoystickButtons (); | ||
474 | |||
475 | // | ||
476 | // get movements | ||
477 | // | ||
478 | PollKeyboardMove (); | ||
479 | |||
480 | // if (mouseenabled && IN_IsInputGrabbed()) | ||
481 | // PollMouseMove (); | ||
482 | |||
483 | if (joystickenabled) | ||
484 | PollJoystickMove (); | ||
485 | |||
486 | // | ||
487 | // bound movement to a maximum | ||
488 | // | ||
489 | max = 100 * tics; | ||
490 | min = -max; | ||
491 | if (controlx > max) | ||
492 | controlx = max; | ||
493 | else if (controlx < min) | ||
494 | controlx = min; | ||
495 | |||
496 | if (controly > max) | ||
497 | controly = max; | ||
498 | else if (controly < min) | ||
499 | controly = min; | ||
500 | |||
501 | if (demorecord) | ||
502 | { | ||
503 | // | ||
504 | // save info out to demo buffer | ||
505 | // | ||
506 | controlx /= (int) tics; | ||
507 | controly /= (int) tics; | ||
508 | |||
509 | buttonbits = 0; | ||
510 | |||
511 | // TODO: Support 32-bit buttonbits | ||
512 | for (i = NUMBUTTONS - 1; i >= 0; i--) | ||
513 | { | ||
514 | buttonbits <<= 1; | ||
515 | if (buttonstate[i]) | ||
516 | buttonbits |= 1; | ||
517 | } | ||
518 | |||
519 | *demoptr++ = buttonbits; | ||
520 | *demoptr++ = controlx; | ||
521 | *demoptr++ = controly; | ||
522 | |||
523 | if (demoptr >= lastdemoptr - 8) | ||
524 | playstate = ex_completed; | ||
525 | else | ||
526 | { | ||
527 | controlx *= (int) tics; | ||
528 | controly *= (int) tics; | ||
529 | } | ||
530 | } | ||
531 | } | ||
532 | |||
533 | |||
534 | |||
535 | //========================================================================== | ||
536 | |||
537 | |||
538 | |||
539 | /////////////////////////////////////////////////////////////////////////// | ||
540 | // | ||
541 | // CenterWindow() - Generates a window of a given width & height in the | ||
542 | // middle of the screen | ||
543 | // | ||
544 | /////////////////////////////////////////////////////////////////////////// | ||
545 | #define MAXX 320 | ||
546 | #define MAXY 160 | ||
547 | |||
548 | void CenterWindow (word w, word h) | ||
549 | { | ||
550 | US_DrawWindow (((MAXX / 8) - w) / 2, ((MAXY / 8) - h) / 2, w, h); | ||
551 | } | ||
552 | |||
553 | //=========================================================================== | ||
554 | |||
555 | |||
556 | /* | ||
557 | ===================== | ||
558 | = | ||
559 | = CheckKeys | ||
560 | = | ||
561 | ===================== | ||
562 | */ | ||
563 | |||
564 | void CheckKeys (void) | ||
565 | { | ||
566 | ScanCode scan; | ||
567 | |||
568 | |||
569 | if (screenfaded || demoplayback) // don't do anything with a faded screen | ||
570 | return; | ||
571 | |||
572 | scan = LastScan; | ||
573 | |||
574 | |||
575 | #ifdef SPEAR | ||
576 | // | ||
577 | // SECRET CHEAT CODE: TAB-G-F10 | ||
578 | // | ||
579 | if (Keyboard[sc_Tab] && Keyboard[sc_G] && Keyboard[sc_F10]) | ||
580 | { | ||
581 | WindowH = 160; | ||
582 | if (godmode) | ||
583 | { | ||
584 | Message ("God mode OFF"); | ||
585 | SD_PlaySound (NOBONUSSND); | ||
586 | } | ||
587 | else | ||
588 | { | ||
589 | Message ("God mode ON"); | ||
590 | SD_PlaySound (ENDBONUS2SND); | ||
591 | } | ||
592 | |||
593 | IN_Ack (); | ||
594 | godmode ^= 1; | ||
595 | DrawPlayBorderSides (); | ||
596 | IN_ClearKeysDown (); | ||
597 | return; | ||
598 | } | ||
599 | #endif | ||
600 | |||
601 | |||
602 | // | ||
603 | // SECRET CHEAT CODE: 'MLI' | ||
604 | // | ||
605 | if (Keyboard[sc_M] && Keyboard[sc_L] && Keyboard[sc_I]) | ||
606 | { | ||
607 | gamestate.health = 100; | ||
608 | gamestate.ammo = 99; | ||
609 | gamestate.keys = 3; | ||
610 | gamestate.score = 0; | ||
611 | gamestate.TimeCount += 42000L; | ||
612 | GiveWeapon (wp_chaingun); | ||
613 | DrawWeapon (); | ||
614 | DrawHealth (); | ||
615 | DrawKeys (); | ||
616 | DrawAmmo (); | ||
617 | DrawScore (); | ||
618 | |||
619 | ClearMemory (); | ||
620 | CA_CacheGrChunk (STARTFONT + 1); | ||
621 | ClearSplitVWB (); | ||
622 | |||
623 | Message (STR_CHEATER1 "\n" | ||
624 | STR_CHEATER2 "\n\n" STR_CHEATER3 "\n" STR_CHEATER4 "\n" STR_CHEATER5); | ||
625 | |||
626 | UNCACHEGRCHUNK (STARTFONT + 1); | ||
627 | IN_ClearKeysDown (); | ||
628 | IN_Ack (); | ||
629 | |||
630 | if (viewsize < 17) | ||
631 | DrawPlayBorder (); | ||
632 | } | ||
633 | |||
634 | // | ||
635 | // OPEN UP DEBUG KEYS | ||
636 | // | ||
637 | #ifdef DEBUGKEYS | ||
638 | if (Keyboard[sc_BackSpace] && Keyboard[sc_LShift] && Keyboard[sc_Alt] && param_debugmode) | ||
639 | { | ||
640 | ClearMemory (); | ||
641 | CA_CacheGrChunk (STARTFONT + 1); | ||
642 | ClearSplitVWB (); | ||
643 | |||
644 | Message ("Debugging keys are\nnow available!"); | ||
645 | UNCACHEGRCHUNK (STARTFONT + 1); | ||
646 | IN_ClearKeysDown (); | ||
647 | IN_Ack (); | ||
648 | |||
649 | DrawPlayBorderSides (); | ||
650 | DebugOk = 1; | ||
651 | } | ||
652 | #endif | ||
653 | |||
654 | // | ||
655 | // TRYING THE KEEN CHEAT CODE! | ||
656 | // | ||
657 | if (Keyboard[sc_B] && Keyboard[sc_A] && Keyboard[sc_T]) | ||
658 | { | ||
659 | ClearMemory (); | ||
660 | CA_CacheGrChunk (STARTFONT + 1); | ||
661 | ClearSplitVWB (); | ||
662 | |||
663 | Message ("Commander Keen is also\n" | ||
664 | "available from Apogee, but\n" | ||
665 | "then, you already know\n" "that - right, Cheatmeister?!"); | ||
666 | |||
667 | UNCACHEGRCHUNK (STARTFONT + 1); | ||
668 | IN_ClearKeysDown (); | ||
669 | IN_Ack (); | ||
670 | |||
671 | if (viewsize < 18) | ||
672 | DrawPlayBorder (); | ||
673 | } | ||
674 | |||
675 | // | ||
676 | // pause key weirdness can't be checked as a scan code | ||
677 | // | ||
678 | if(buttonstate[bt_pause]) Paused = true; | ||
679 | if(Paused) | ||
680 | { | ||
681 | int lastoffs = StopMusic(); | ||
682 | LatchDrawPic (20 - 4, 80 - 2 * 8, PAUSEDPIC); | ||
683 | VH_UpdateScreen(); | ||
684 | IN_Ack (); | ||
685 | Paused = false; | ||
686 | ContinueMusic(lastoffs); | ||
687 | if (MousePresent && IN_IsInputGrabbed()) | ||
688 | IN_CenterMouse(); // Clear accumulated mouse movement | ||
689 | lasttimecount = GetTimeCount(); | ||
690 | return; | ||
691 | } | ||
692 | |||
693 | // | ||
694 | // F1-F7/ESC to enter control panel | ||
695 | // | ||
696 | if ( | ||
697 | #ifndef DEBCHECK | ||
698 | scan == sc_F10 || | ||
699 | #endif | ||
700 | scan == sc_F9 || scan == sc_F7 || scan == sc_F8) // pop up quit dialog | ||
701 | { | ||
702 | short oldmapon = gamestate.mapon; | ||
703 | short oldepisode = gamestate.episode; | ||
704 | ClearMemory (); | ||
705 | ClearSplitVWB (); | ||
706 | US_ControlPanel (scan); | ||
707 | |||
708 | DrawPlayBorderSides (); | ||
709 | |||
710 | SETFONTCOLOR (0, 15); | ||
711 | IN_ClearKeysDown (); | ||
712 | return; | ||
713 | } | ||
714 | |||
715 | if ((scan >= sc_F1 && scan <= sc_F9) || scan == sc_Escape || buttonstate[bt_esc]) | ||
716 | { | ||
717 | int lastoffs = StopMusic (); | ||
718 | ClearMemory (); | ||
719 | VW_FadeOut (); | ||
720 | |||
721 | US_ControlPanel (buttonstate[bt_esc] ? sc_Escape : scan); | ||
722 | |||
723 | SETFONTCOLOR (0, 15); | ||
724 | IN_ClearKeysDown (); | ||
725 | VW_FadeOut(); | ||
726 | if(viewsize != 21) | ||
727 | DrawPlayScreen (); | ||
728 | if (!startgame && !loadedgame) | ||
729 | ContinueMusic (lastoffs); | ||
730 | if (loadedgame) | ||
731 | playstate = ex_abort; | ||
732 | lasttimecount = GetTimeCount(); | ||
733 | if (MousePresent && IN_IsInputGrabbed()) | ||
734 | IN_CenterMouse(); // Clear accumulated mouse movement | ||
735 | return; | ||
736 | } | ||
737 | |||
738 | // | ||
739 | // TAB-? debug keys | ||
740 | // | ||
741 | #ifdef DEBUGKEYS | ||
742 | if (Keyboard[sc_Tab] && DebugOk) | ||
743 | { | ||
744 | CA_CacheGrChunk (STARTFONT); | ||
745 | fontnumber = 0; | ||
746 | SETFONTCOLOR (0, 15); | ||
747 | if (DebugKeys () && viewsize < 20) | ||
748 | DrawPlayBorder (); // dont let the blue borders flash | ||
749 | |||
750 | if (MousePresent && IN_IsInputGrabbed()) | ||
751 | IN_CenterMouse(); // Clear accumulated mouse movement | ||
752 | |||
753 | lasttimecount = GetTimeCount(); | ||
754 | return; | ||
755 | } | ||
756 | #endif | ||
757 | } | ||
758 | |||
759 | |||
760 | //=========================================================================== | ||
761 | |||
762 | /* | ||
763 | ############################################################################# | ||
764 | |||
765 | The objlist data structure | ||
766 | |||
767 | ############################################################################# | ||
768 | |||
769 | objlist containt structures for every actor currently playing. The structure | ||
770 | is accessed as a linked list starting at *player, ending when ob->next == | ||
771 | NULL. GetNewObj inserts a new object at the end of the list, meaning that | ||
772 | if an actor spawn another actor, the new one WILL get to think and react the | ||
773 | same frame. RemoveObj unlinks the given object and returns it to the free | ||
774 | list, but does not damage the objects ->next pointer, so if the current object | ||
775 | removes itself, a linked list following loop can still safely get to the | ||
776 | next element. | ||
777 | |||
778 | <backwardly linked free list> | ||
779 | |||
780 | ############################################################################# | ||
781 | */ | ||
782 | |||
783 | |||
784 | /* | ||
785 | ========================= | ||
786 | = | ||
787 | = InitActorList | ||
788 | = | ||
789 | = Call to clear out the actor object lists returning them all to the free | ||
790 | = list. Allocates a special spot for the player. | ||
791 | = | ||
792 | ========================= | ||
793 | */ | ||
794 | |||
795 | int objcount; | ||
796 | |||
797 | void InitActorList (void) | ||
798 | { | ||
799 | int i; | ||
800 | |||
801 | // | ||
802 | // init the actor lists | ||
803 | // | ||
804 | for (i = 0; i < MAXACTORS; i++) | ||
805 | { | ||
806 | objlist[i].prev = &objlist[i + 1]; | ||
807 | objlist[i].next = NULL; | ||
808 | } | ||
809 | |||
810 | objlist[MAXACTORS - 1].prev = NULL; | ||
811 | |||
812 | objfreelist = &objlist[0]; | ||
813 | lastobj = NULL; | ||
814 | |||
815 | objcount = 0; | ||
816 | |||
817 | // | ||
818 | // give the player the first free spots | ||
819 | // | ||
820 | GetNewActor (); | ||
821 | player = newobj; | ||
822 | |||
823 | } | ||
824 | |||
825 | //=========================================================================== | ||
826 | |||
827 | /* | ||
828 | ========================= | ||
829 | = | ||
830 | = GetNewActor | ||
831 | = | ||
832 | = Sets the global variable new to point to a free spot in objlist. | ||
833 | = The free spot is inserted at the end of the liked list | ||
834 | = | ||
835 | = When the object list is full, the caller can either have it bomb out ot | ||
836 | = return a dummy object pointer that will never get used | ||
837 | = | ||
838 | ========================= | ||
839 | */ | ||
840 | |||
841 | void GetNewActor (void) | ||
842 | { | ||
843 | if (!objfreelist) | ||
844 | Quit ("GetNewActor: No free spots in objlist!"); | ||
845 | |||
846 | newobj = objfreelist; | ||
847 | objfreelist = newobj->prev; | ||
848 | memset (newobj, 0, sizeof (*newobj)); | ||
849 | |||
850 | if (lastobj) | ||
851 | lastobj->next = newobj; | ||
852 | newobj->prev = lastobj; // new->next is allready NULL from memset | ||
853 | |||
854 | newobj->active = ac_no; | ||
855 | lastobj = newobj; | ||
856 | |||
857 | objcount++; | ||
858 | } | ||
859 | |||
860 | //=========================================================================== | ||
861 | |||
862 | /* | ||
863 | ========================= | ||
864 | = | ||
865 | = RemoveObj | ||
866 | = | ||
867 | = Add the given object back into the free list, and unlink it from it's | ||
868 | = neighbors | ||
869 | = | ||
870 | ========================= | ||
871 | */ | ||
872 | |||
873 | void RemoveObj (objtype * gone) | ||
874 | { | ||
875 | if (gone == player) | ||
876 | Quit ("RemoveObj: Tried to remove the player!"); | ||
877 | |||
878 | gone->state = NULL; | ||
879 | |||
880 | // | ||
881 | // fix the next object's back link | ||
882 | // | ||
883 | if (gone == lastobj) | ||
884 | lastobj = (objtype *) gone->prev; | ||
885 | else | ||
886 | gone->next->prev = gone->prev; | ||
887 | |||
888 | // | ||
889 | // fix the previous object's forward link | ||
890 | // | ||
891 | gone->prev->next = gone->next; | ||
892 | |||
893 | // | ||
894 | // add it back in to the free list | ||
895 | // | ||
896 | gone->prev = objfreelist; | ||
897 | objfreelist = gone; | ||
898 | |||
899 | objcount--; | ||
900 | } | ||
901 | |||
902 | /* | ||
903 | ============================================================================= | ||
904 | |||
905 | MUSIC STUFF | ||
906 | |||
907 | ============================================================================= | ||
908 | */ | ||
909 | |||
910 | |||
911 | /* | ||
912 | ================= | ||
913 | = | ||
914 | = StopMusic | ||
915 | = | ||
916 | ================= | ||
917 | */ | ||
918 | int StopMusic (void) | ||
919 | { | ||
920 | int lastoffs = SD_MusicOff (); | ||
921 | |||
922 | UNCACHEAUDIOCHUNK (STARTMUSIC + lastmusicchunk); | ||
923 | |||
924 | return lastoffs; | ||
925 | } | ||
926 | |||
927 | //========================================================================== | ||
928 | |||
929 | |||
930 | /* | ||
931 | ================= | ||
932 | = | ||
933 | = StartMusic | ||
934 | = | ||
935 | ================= | ||
936 | */ | ||
937 | |||
938 | void StartMusic () | ||
939 | { | ||
940 | SD_MusicOff (); | ||
941 | lastmusicchunk = (musicnames) songs[gamestate.mapon + gamestate.episode * 10]; | ||
942 | SD_StartMusic(STARTMUSIC + lastmusicchunk); | ||
943 | } | ||
944 | |||
945 | void ContinueMusic (int offs) | ||
946 | { | ||
947 | SD_MusicOff (); | ||
948 | lastmusicchunk = (musicnames) songs[gamestate.mapon + gamestate.episode * 10]; | ||
949 | SD_ContinueMusic(STARTMUSIC + lastmusicchunk, offs); | ||
950 | } | ||
951 | |||
952 | /* | ||
953 | ============================================================================= | ||
954 | |||
955 | PALETTE SHIFTING STUFF | ||
956 | |||
957 | ============================================================================= | ||
958 | */ | ||
959 | |||
960 | #define NUMREDSHIFTS 6 | ||
961 | #define REDSTEPS 8 | ||
962 | |||
963 | #define NUMWHITESHIFTS 3 | ||
964 | #define WHITESTEPS 20 | ||
965 | #define WHITETICS 6 | ||
966 | |||
967 | |||
968 | SDL_Color redshifts[NUMREDSHIFTS][256]; | ||
969 | SDL_Color whiteshifts[NUMWHITESHIFTS][256]; | ||
970 | |||
971 | int damagecount, bonuscount; | ||
972 | boolean palshifted; | ||
973 | |||
974 | /* | ||
975 | ===================== | ||
976 | = | ||
977 | = InitRedShifts | ||
978 | = | ||
979 | ===================== | ||
980 | */ | ||
981 | |||
982 | void InitRedShifts (void) | ||
983 | { | ||
984 | SDL_Color *workptr, *baseptr; | ||
985 | int i, j, delta; | ||
986 | |||
987 | |||
988 | // | ||
989 | // fade through intermediate frames | ||
990 | // | ||
991 | for (i = 1; i <= NUMREDSHIFTS; i++) | ||
992 | { | ||
993 | workptr = redshifts[i - 1]; | ||
994 | baseptr = gamepal; | ||
995 | |||
996 | for (j = 0; j <= 255; j++) | ||
997 | { | ||
998 | delta = 256 - baseptr->r; | ||
999 | workptr->r = baseptr->r + delta * i / REDSTEPS; | ||
1000 | delta = -baseptr->g; | ||
1001 | workptr->g = baseptr->g + delta * i / REDSTEPS; | ||
1002 | delta = -baseptr->b; | ||
1003 | workptr->b = baseptr->b + delta * i / REDSTEPS; | ||
1004 | baseptr++; | ||
1005 | workptr++; | ||
1006 | } | ||
1007 | rb->yield(); | ||
1008 | } | ||
1009 | |||
1010 | for (i = 1; i <= NUMWHITESHIFTS; i++) | ||
1011 | { | ||
1012 | workptr = whiteshifts[i - 1]; | ||
1013 | baseptr = gamepal; | ||
1014 | |||
1015 | for (j = 0; j <= 255; j++) | ||
1016 | { | ||
1017 | delta = 256 - baseptr->r; | ||
1018 | workptr->r = baseptr->r + delta * i / WHITESTEPS; | ||
1019 | delta = 248 - baseptr->g; | ||
1020 | workptr->g = baseptr->g + delta * i / WHITESTEPS; | ||
1021 | delta = 0-baseptr->b; | ||
1022 | workptr->b = baseptr->b + delta * i / WHITESTEPS; | ||
1023 | baseptr++; | ||
1024 | workptr++; | ||
1025 | } | ||
1026 | rb->yield(); | ||
1027 | } | ||
1028 | } | ||
1029 | |||
1030 | |||
1031 | /* | ||
1032 | ===================== | ||
1033 | = | ||
1034 | = ClearPaletteShifts | ||
1035 | = | ||
1036 | ===================== | ||
1037 | */ | ||
1038 | |||
1039 | void ClearPaletteShifts (void) | ||
1040 | { | ||
1041 | bonuscount = damagecount = 0; | ||
1042 | palshifted = false; | ||
1043 | } | ||
1044 | |||
1045 | |||
1046 | /* | ||
1047 | ===================== | ||
1048 | = | ||
1049 | = StartBonusFlash | ||
1050 | = | ||
1051 | ===================== | ||
1052 | */ | ||
1053 | |||
1054 | void StartBonusFlash (void) | ||
1055 | { | ||
1056 | bonuscount = NUMWHITESHIFTS * WHITETICS; // white shift palette | ||
1057 | } | ||
1058 | |||
1059 | |||
1060 | /* | ||
1061 | ===================== | ||
1062 | = | ||
1063 | = StartDamageFlash | ||
1064 | = | ||
1065 | ===================== | ||
1066 | */ | ||
1067 | |||
1068 | void StartDamageFlash (int damage) | ||
1069 | { | ||
1070 | damagecount += damage; | ||
1071 | } | ||
1072 | |||
1073 | |||
1074 | /* | ||
1075 | ===================== | ||
1076 | = | ||
1077 | = UpdatePaletteShifts | ||
1078 | = | ||
1079 | ===================== | ||
1080 | */ | ||
1081 | |||
1082 | void UpdatePaletteShifts (void) | ||
1083 | { | ||
1084 | int red, white; | ||
1085 | |||
1086 | if (bonuscount) | ||
1087 | { | ||
1088 | white = bonuscount / WHITETICS + 1; | ||
1089 | if (white > NUMWHITESHIFTS) | ||
1090 | white = NUMWHITESHIFTS; | ||
1091 | bonuscount -= tics; | ||
1092 | if (bonuscount < 0) | ||
1093 | bonuscount = 0; | ||
1094 | } | ||
1095 | else | ||
1096 | white = 0; | ||
1097 | |||
1098 | |||
1099 | if (damagecount) | ||
1100 | { | ||
1101 | red = damagecount / 10 + 1; | ||
1102 | if (red > NUMREDSHIFTS) | ||
1103 | red = NUMREDSHIFTS; | ||
1104 | |||
1105 | damagecount -= tics; | ||
1106 | if (damagecount < 0) | ||
1107 | damagecount = 0; | ||
1108 | } | ||
1109 | else | ||
1110 | red = 0; | ||
1111 | |||
1112 | if (red) | ||
1113 | { | ||
1114 | VL_SetPalette (redshifts[red - 1], false); | ||
1115 | palshifted = true; | ||
1116 | } | ||
1117 | else if (white) | ||
1118 | { | ||
1119 | VL_SetPalette (whiteshifts[white - 1], false); | ||
1120 | palshifted = true; | ||
1121 | } | ||
1122 | else if (palshifted) | ||
1123 | { | ||
1124 | VL_SetPalette (gamepal, false); // back to normal | ||
1125 | palshifted = false; | ||
1126 | } | ||
1127 | } | ||
1128 | |||
1129 | |||
1130 | /* | ||
1131 | ===================== | ||
1132 | = | ||
1133 | = FinishPaletteShifts | ||
1134 | = | ||
1135 | = Resets palette to normal if needed | ||
1136 | = | ||
1137 | ===================== | ||
1138 | */ | ||
1139 | |||
1140 | void FinishPaletteShifts (void) | ||
1141 | { | ||
1142 | if (palshifted) | ||
1143 | { | ||
1144 | palshifted = 0; | ||
1145 | VL_SetPalette (gamepal, true); | ||
1146 | } | ||
1147 | } | ||
1148 | |||
1149 | |||
1150 | /* | ||
1151 | ============================================================================= | ||
1152 | |||
1153 | CORE PLAYLOOP | ||
1154 | |||
1155 | ============================================================================= | ||
1156 | */ | ||
1157 | |||
1158 | |||
1159 | /* | ||
1160 | ===================== | ||
1161 | = | ||
1162 | = DoActor | ||
1163 | = | ||
1164 | ===================== | ||
1165 | */ | ||
1166 | |||
1167 | void DoActor (objtype * ob) | ||
1168 | { | ||
1169 | void (*think) (objtype *); | ||
1170 | |||
1171 | if (!ob->active && !areabyplayer[ob->areanumber]) | ||
1172 | return; | ||
1173 | |||
1174 | if (!(ob->flags & (FL_NONMARK | FL_NEVERMARK))) | ||
1175 | actorat[ob->tilex][ob->tiley] = NULL; | ||
1176 | |||
1177 | // | ||
1178 | // non transitional object | ||
1179 | // | ||
1180 | |||
1181 | if (!ob->ticcount) | ||
1182 | { | ||
1183 | think = (void (*)(objtype *)) ob->state->think; | ||
1184 | if (think) | ||
1185 | { | ||
1186 | think (ob); | ||
1187 | if (!ob->state) | ||
1188 | { | ||
1189 | RemoveObj (ob); | ||
1190 | return; | ||
1191 | } | ||
1192 | } | ||
1193 | |||
1194 | if (ob->flags & FL_NEVERMARK) | ||
1195 | return; | ||
1196 | |||
1197 | if ((ob->flags & FL_NONMARK) && actorat[ob->tilex][ob->tiley]) | ||
1198 | return; | ||
1199 | |||
1200 | actorat[ob->tilex][ob->tiley] = ob; | ||
1201 | return; | ||
1202 | } | ||
1203 | |||
1204 | // | ||
1205 | // transitional object | ||
1206 | // | ||
1207 | ob->ticcount -= (short) tics; | ||
1208 | while (ob->ticcount <= 0) | ||
1209 | { | ||
1210 | think = (void (*)(objtype *)) ob->state->action; // end of state action | ||
1211 | if (think) | ||
1212 | { | ||
1213 | think (ob); | ||
1214 | if (!ob->state) | ||
1215 | { | ||
1216 | RemoveObj (ob); | ||
1217 | return; | ||
1218 | } | ||
1219 | } | ||
1220 | |||
1221 | ob->state = ob->state->next; | ||
1222 | |||
1223 | if (!ob->state) | ||
1224 | { | ||
1225 | RemoveObj (ob); | ||
1226 | return; | ||
1227 | } | ||
1228 | |||
1229 | if (!ob->state->tictime) | ||
1230 | { | ||
1231 | ob->ticcount = 0; | ||
1232 | goto think; | ||
1233 | } | ||
1234 | |||
1235 | ob->ticcount += ob->state->tictime; | ||
1236 | } | ||
1237 | |||
1238 | think: | ||
1239 | // | ||
1240 | // think | ||
1241 | // | ||
1242 | think = (void (*)(objtype *)) ob->state->think; | ||
1243 | if (think) | ||
1244 | { | ||
1245 | think (ob); | ||
1246 | if (!ob->state) | ||
1247 | { | ||
1248 | RemoveObj (ob); | ||
1249 | return; | ||
1250 | } | ||
1251 | } | ||
1252 | |||
1253 | if (ob->flags & FL_NEVERMARK) | ||
1254 | return; | ||
1255 | |||
1256 | if ((ob->flags & FL_NONMARK) && actorat[ob->tilex][ob->tiley]) | ||
1257 | return; | ||
1258 | |||
1259 | actorat[ob->tilex][ob->tiley] = ob; | ||
1260 | } | ||
1261 | |||
1262 | //========================================================================== | ||
1263 | |||
1264 | |||
1265 | /* | ||
1266 | =================== | ||
1267 | = | ||
1268 | = PlayLoop | ||
1269 | = | ||
1270 | =================== | ||
1271 | */ | ||
1272 | int32_t funnyticount; | ||
1273 | |||
1274 | |||
1275 | void PlayLoop (void) | ||
1276 | { | ||
1277 | #if defined(USE_FEATUREFLAGS) && defined(USE_CLOUDSKY) | ||
1278 | if(GetFeatureFlags() & FF_CLOUDSKY) | ||
1279 | InitSky(); | ||
1280 | #endif | ||
1281 | |||
1282 | #ifdef USE_SHADING | ||
1283 | InitLevelShadeTable(); | ||
1284 | #endif | ||
1285 | |||
1286 | playstate = ex_stillplaying; | ||
1287 | lasttimecount = GetTimeCount(); | ||
1288 | frameon = 0; | ||
1289 | anglefrac = 0; | ||
1290 | facecount = 0; | ||
1291 | funnyticount = 0; | ||
1292 | memset (buttonstate, 0, sizeof (buttonstate)); | ||
1293 | ClearPaletteShifts (); | ||
1294 | |||
1295 | if (MousePresent && IN_IsInputGrabbed()) | ||
1296 | IN_CenterMouse(); // Clear accumulated mouse movement | ||
1297 | |||
1298 | if (demoplayback) | ||
1299 | IN_StartAck (); | ||
1300 | |||
1301 | do | ||
1302 | { | ||
1303 | PollControls (); | ||
1304 | |||
1305 | // | ||
1306 | // actor thinking | ||
1307 | // | ||
1308 | madenoise = false; | ||
1309 | |||
1310 | MoveDoors (); | ||
1311 | MovePWalls (); | ||
1312 | |||
1313 | for (obj = player; obj; obj = obj->next) | ||
1314 | DoActor (obj); | ||
1315 | |||
1316 | UpdatePaletteShifts (); | ||
1317 | |||
1318 | ThreeDRefresh (); | ||
1319 | |||
1320 | // | ||
1321 | // MAKE FUNNY FACE IF BJ DOESN'T MOVE FOR AWHILE | ||
1322 | // | ||
1323 | #ifdef SPEAR | ||
1324 | funnyticount += tics; | ||
1325 | if (funnyticount > 30l * 70) | ||
1326 | { | ||
1327 | funnyticount = 0; | ||
1328 | if(viewsize != 21) | ||
1329 | StatusDrawFace(BJWAITING1PIC + (US_RndT () & 1)); | ||
1330 | facecount = 0; | ||
1331 | } | ||
1332 | #endif | ||
1333 | |||
1334 | gamestate.TimeCount += tics; | ||
1335 | |||
1336 | UpdateSoundLoc (); // JAB | ||
1337 | if (screenfaded) | ||
1338 | VW_FadeIn (); | ||
1339 | |||
1340 | CheckKeys (); | ||
1341 | |||
1342 | // | ||
1343 | // debug aids | ||
1344 | // | ||
1345 | if (singlestep) | ||
1346 | { | ||
1347 | VW_WaitVBL (singlestep); | ||
1348 | lasttimecount = GetTimeCount(); | ||
1349 | } | ||
1350 | if (extravbls) | ||
1351 | VW_WaitVBL (extravbls); | ||
1352 | |||
1353 | if (demoplayback) | ||
1354 | { | ||
1355 | if (IN_CheckAck ()) | ||
1356 | { | ||
1357 | IN_ClearKeysDown (); | ||
1358 | playstate = ex_abort; | ||
1359 | } | ||
1360 | } | ||
1361 | } | ||
1362 | while (!playstate && !startgame); | ||
1363 | |||
1364 | if (playstate != ex_died) | ||
1365 | FinishPaletteShifts (); | ||
1366 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_shade.c b/apps/plugins/sdl/progs/wolf3d/wl_shade.c new file mode 100644 index 0000000000..3f1d5a7b3f --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_shade.c | |||
@@ -0,0 +1,143 @@ | |||
1 | #include "version.h" | ||
2 | |||
3 | #ifdef USE_SHADING | ||
4 | #include "wl_def.h" | ||
5 | #include "wl_shade.h" | ||
6 | |||
7 | typedef struct { | ||
8 | uint8_t destRed, destGreen, destBlue; // values between 0 and 255 | ||
9 | uint8_t fogStrength; | ||
10 | } shadedef_t; | ||
11 | |||
12 | shadedef_t shadeDefs[] = { | ||
13 | { 0, 0, 0, LSHADE_NOSHADING }, | ||
14 | { 0, 0, 0, LSHADE_NORMAL }, | ||
15 | { 0, 0, 0, LSHADE_FOG }, | ||
16 | { 40, 40, 40, LSHADE_NORMAL }, | ||
17 | { 60, 60, 60, LSHADE_FOG } | ||
18 | }; | ||
19 | |||
20 | uint8_t shadetable[SHADE_COUNT][256]; | ||
21 | int LSHADE_flag; | ||
22 | |||
23 | #ifdef USE_FEATUREFLAGS | ||
24 | |||
25 | // The lower 8-bit of the upper left tile of every map determine | ||
26 | // the used shading definition of shadeDefs. | ||
27 | static int GetShadeDefID() | ||
28 | { | ||
29 | int shadeID = ffDataTopLeft & 0x00ff; | ||
30 | assert(shadeID >= 0 && shadeID < lengthof(shadeDefs)); | ||
31 | return shadeID; | ||
32 | } | ||
33 | |||
34 | #else | ||
35 | |||
36 | static int GetShadeDefID() | ||
37 | { | ||
38 | int shadeID; | ||
39 | switch(gamestate.episode * 10 + mapon) | ||
40 | { | ||
41 | case 0: shadeID = 4; break; | ||
42 | case 1: | ||
43 | case 2: | ||
44 | case 6: shadeID = 1; break; | ||
45 | case 3: shadeID = 0; break; | ||
46 | case 5: shadeID = 2; break; | ||
47 | default: shadeID = 3; break; | ||
48 | } | ||
49 | assert(shadeID >= 0 && shadeID < lengthof(shadeDefs)); | ||
50 | return shadeID; | ||
51 | } | ||
52 | |||
53 | #endif | ||
54 | |||
55 | |||
56 | // Returns the palette index of the nearest matching color of the | ||
57 | // given RGB color in given palette | ||
58 | byte GetColor(byte red, byte green, byte blue, SDL_Color *palette) | ||
59 | { | ||
60 | byte mincol = 0; | ||
61 | double mindist = 200000.F, curdist, DRed, DGreen, DBlue; | ||
62 | |||
63 | SDL_Color *palPtr = palette; | ||
64 | |||
65 | for(int col = 0; col < 256; col++, palPtr++) | ||
66 | { | ||
67 | DRed = (double) (red - palPtr->r); | ||
68 | DGreen = (double) (green - palPtr->g); | ||
69 | DBlue = (double) (blue - palPtr->b); | ||
70 | curdist = DRed * DRed + DGreen * DGreen + DBlue * DBlue; | ||
71 | if(curdist < mindist) | ||
72 | { | ||
73 | mindist = curdist; | ||
74 | mincol = (byte) col; | ||
75 | } | ||
76 | } | ||
77 | return mincol; | ||
78 | } | ||
79 | |||
80 | // Fade all colors in 32 steps down to the destination-RGB | ||
81 | // (use gray for fogging, black for standard shading) | ||
82 | void GenerateShadeTable(byte destRed, byte destGreen, byte destBlue, | ||
83 | SDL_Color *palette, int fog) | ||
84 | { | ||
85 | double curRed, curGreen, curBlue, redStep, greenStep, blueStep; | ||
86 | SDL_Color *palPtr = palette; | ||
87 | |||
88 | // Set the fog-flag | ||
89 | LSHADE_flag=fog; | ||
90 | |||
91 | // Color loop | ||
92 | for(int i = 0; i < 256; i++, palPtr++) | ||
93 | { | ||
94 | // Get original palette color | ||
95 | curRed = palPtr->r; | ||
96 | curGreen = palPtr->g; | ||
97 | curBlue = palPtr->b; | ||
98 | |||
99 | // Calculate increment per step | ||
100 | redStep = ((double) destRed - curRed) / (SHADE_COUNT + 8); | ||
101 | greenStep = ((double) destGreen - curGreen) / (SHADE_COUNT + 8); | ||
102 | blueStep = ((double) destBlue - curBlue) / (SHADE_COUNT + 8); | ||
103 | |||
104 | // Calc color for each shade of the current color | ||
105 | for (int shade = 0; shade < SHADE_COUNT; shade++) | ||
106 | { | ||
107 | shadetable[shade][i] = GetColor((byte) curRed, (byte) curGreen, (byte) curBlue, palette); | ||
108 | |||
109 | // Inc to next shade | ||
110 | curRed += redStep; | ||
111 | curGreen += greenStep; | ||
112 | curBlue += blueStep; | ||
113 | } | ||
114 | } | ||
115 | } | ||
116 | |||
117 | void NoShading() | ||
118 | { | ||
119 | for(int shade = 0; shade < SHADE_COUNT; shade++) | ||
120 | for(int i = 0; i < 256; i++) | ||
121 | shadetable[shade][i] = i; | ||
122 | } | ||
123 | |||
124 | void InitLevelShadeTable() | ||
125 | { | ||
126 | shadedef_t *shadeDef = &shadeDefs[GetShadeDefID()]; | ||
127 | if(shadeDef->fogStrength == LSHADE_NOSHADING) | ||
128 | NoShading(); | ||
129 | else | ||
130 | GenerateShadeTable(shadeDef->destRed, shadeDef->destGreen, shadeDef->destBlue, gamepal, shadeDef->fogStrength); | ||
131 | } | ||
132 | |||
133 | int GetShade(int scale) | ||
134 | { | ||
135 | int shade = (scale >> 1) / (((viewwidth * 3) >> 8) + 1 + LSHADE_flag); // TODO: reconsider this... | ||
136 | if(shade > 32) shade = 32; | ||
137 | else if(shade < 1) shade = 1; | ||
138 | shade = 32 - shade; | ||
139 | |||
140 | return shade; | ||
141 | } | ||
142 | |||
143 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_shade.h b/apps/plugins/sdl/progs/wolf3d/wl_shade.h new file mode 100644 index 0000000000..690356611b --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_shade.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #if defined(USE_SHADING) && !defined(_WL_SHADE_H_) | ||
2 | #define _WL_SHADE_H_ | ||
3 | |||
4 | #define SHADE_COUNT 32 | ||
5 | |||
6 | #define LSHADE_NOSHADING 0xff | ||
7 | #define LSHADE_NORMAL 0 | ||
8 | #define LSHADE_FOG 5 | ||
9 | |||
10 | extern uint8_t shadetable[SHADE_COUNT][256]; | ||
11 | |||
12 | void InitLevelShadeTable(); | ||
13 | int GetShade(int scale); | ||
14 | |||
15 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_state.c b/apps/plugins/sdl/progs/wolf3d/wl_state.c new file mode 100644 index 0000000000..92b8ca1713 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_state.c | |||
@@ -0,0 +1,1530 @@ | |||
1 | // WL_STATE.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | /* | ||
7 | ============================================================================= | ||
8 | |||
9 | LOCAL CONSTANTS | ||
10 | |||
11 | ============================================================================= | ||
12 | */ | ||
13 | |||
14 | |||
15 | /* | ||
16 | ============================================================================= | ||
17 | |||
18 | GLOBAL VARIABLES | ||
19 | |||
20 | ============================================================================= | ||
21 | */ | ||
22 | |||
23 | |||
24 | static const dirtype opposite[9] = | ||
25 | {west,southwest,south,southeast,east,northeast,north,northwest,nodir}; | ||
26 | |||
27 | static const dirtype diagonal[9][9] = | ||
28 | { | ||
29 | /* east */ {nodir,nodir,northeast,nodir,nodir,nodir,southeast,nodir,nodir}, | ||
30 | {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir}, | ||
31 | /* north */ {northeast,nodir,nodir,nodir,northwest,nodir,nodir,nodir,nodir}, | ||
32 | {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir}, | ||
33 | /* west */ {nodir,nodir,northwest,nodir,nodir,nodir,southwest,nodir,nodir}, | ||
34 | {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir}, | ||
35 | /* south */ {southeast,nodir,nodir,nodir,southwest,nodir,nodir,nodir,nodir}, | ||
36 | {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir}, | ||
37 | {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir} | ||
38 | }; | ||
39 | |||
40 | |||
41 | |||
42 | void SpawnNewObj (unsigned tilex, unsigned tiley, statetype *state); | ||
43 | void NewState (objtype *ob, statetype *state); | ||
44 | |||
45 | boolean TryWalk (objtype *ob); | ||
46 | void MoveObj (objtype *ob, int32_t move); | ||
47 | |||
48 | void KillActor (objtype *ob); | ||
49 | void DamageActor (objtype *ob, unsigned damage); | ||
50 | |||
51 | boolean CheckLine (objtype *ob); | ||
52 | void FirstSighting (objtype *ob); | ||
53 | boolean CheckSight (objtype *ob); | ||
54 | |||
55 | /* | ||
56 | ============================================================================= | ||
57 | |||
58 | LOCAL VARIABLES | ||
59 | |||
60 | ============================================================================= | ||
61 | */ | ||
62 | |||
63 | |||
64 | |||
65 | //=========================================================================== | ||
66 | |||
67 | |||
68 | /* | ||
69 | =================== | ||
70 | = | ||
71 | = SpawnNewObj | ||
72 | = | ||
73 | = Spaws a new actor at the given TILE coordinates, with the given state, and | ||
74 | = the given size in GLOBAL units. | ||
75 | = | ||
76 | = newobj = a pointer to an initialized new actor | ||
77 | = | ||
78 | =================== | ||
79 | */ | ||
80 | |||
81 | void SpawnNewObj (unsigned tilex, unsigned tiley, statetype *state) | ||
82 | { | ||
83 | GetNewActor (); | ||
84 | newobj->state = state; | ||
85 | if (state->tictime) | ||
86 | newobj->ticcount = DEMOCHOOSE_ORIG_SDL( | ||
87 | US_RndT () % state->tictime, | ||
88 | US_RndT () % state->tictime + 1); // Chris' moonwalk bugfix ;D | ||
89 | else | ||
90 | newobj->ticcount = 0; | ||
91 | |||
92 | newobj->tilex = (short) tilex; | ||
93 | newobj->tiley = (short) tiley; | ||
94 | newobj->x = ((int32_t)tilex<<TILESHIFT)+TILEGLOBAL/2; | ||
95 | newobj->y = ((int32_t)tiley<<TILESHIFT)+TILEGLOBAL/2; | ||
96 | newobj->dir = nodir; | ||
97 | |||
98 | actorat[tilex][tiley] = newobj; | ||
99 | newobj->areanumber = | ||
100 | *(mapsegs[0] + (newobj->tiley<<mapshift)+newobj->tilex) - AREATILE; | ||
101 | } | ||
102 | |||
103 | |||
104 | |||
105 | /* | ||
106 | =================== | ||
107 | = | ||
108 | = NewState | ||
109 | = | ||
110 | = Changes ob to a new state, setting ticcount to the max for that state | ||
111 | = | ||
112 | =================== | ||
113 | */ | ||
114 | |||
115 | void NewState (objtype *ob, statetype *state) | ||
116 | { | ||
117 | ob->state = state; | ||
118 | ob->ticcount = state->tictime; | ||
119 | } | ||
120 | |||
121 | |||
122 | |||
123 | /* | ||
124 | ============================================================================= | ||
125 | |||
126 | ENEMY TILE WORLD MOVEMENT CODE | ||
127 | |||
128 | ============================================================================= | ||
129 | */ | ||
130 | |||
131 | |||
132 | /* | ||
133 | ================================== | ||
134 | = | ||
135 | = TryWalk | ||
136 | = | ||
137 | = Attempts to move ob in its current (ob->dir) direction. | ||
138 | = | ||
139 | = If blocked by either a wall or an actor returns FALSE | ||
140 | = | ||
141 | = If move is either clear or blocked only by a door, returns TRUE and sets | ||
142 | = | ||
143 | = ob->tilex = new destination | ||
144 | = ob->tiley | ||
145 | = ob->areanumber = the floor tile number (0-(NUMAREAS-1)) of destination | ||
146 | = ob->distance = TILEGLOBAl, or -doornumber if a door is blocking the way | ||
147 | = | ||
148 | = If a door is in the way, an OpenDoor call is made to start it opening. | ||
149 | = The actor code should wait until | ||
150 | = doorobjlist[-ob->distance].action = dr_open, meaning the door has been | ||
151 | = fully opened | ||
152 | = | ||
153 | ================================== | ||
154 | */ | ||
155 | |||
156 | #define CHECKDIAG(x,y) \ | ||
157 | { \ | ||
158 | temp=(uintptr_t)actorat[x][y]; \ | ||
159 | if (temp) \ | ||
160 | { \ | ||
161 | if (temp<256) \ | ||
162 | return false; \ | ||
163 | if (((objtype *)temp)->flags&FL_SHOOTABLE) \ | ||
164 | return false; \ | ||
165 | } \ | ||
166 | } | ||
167 | |||
168 | #ifdef PLAYDEMOLIKEORIGINAL | ||
169 | #define DOORCHECK \ | ||
170 | if(DEMOCOND_ORIG) \ | ||
171 | doornum = temp&63; \ | ||
172 | else \ | ||
173 | { \ | ||
174 | doornum = (int) temp & 127; \ | ||
175 | OpenDoor(doornum); \ | ||
176 | ob->distance = -doornum - 1; \ | ||
177 | return true; \ | ||
178 | } | ||
179 | #else | ||
180 | #define DOORCHECK \ | ||
181 | doornum = (int) temp & 127; \ | ||
182 | OpenDoor(doornum); \ | ||
183 | ob->distance = -doornum - 1; \ | ||
184 | return true; | ||
185 | #endif | ||
186 | |||
187 | #define CHECKSIDE(x,y) \ | ||
188 | { \ | ||
189 | temp=(uintptr_t)actorat[x][y]; \ | ||
190 | if (temp) \ | ||
191 | { \ | ||
192 | if (temp<128) \ | ||
193 | return false; \ | ||
194 | if (temp<256) \ | ||
195 | { \ | ||
196 | DOORCHECK \ | ||
197 | } \ | ||
198 | else if (((objtype *)temp)->flags&FL_SHOOTABLE) \ | ||
199 | return false; \ | ||
200 | } \ | ||
201 | } | ||
202 | |||
203 | |||
204 | boolean TryWalk (objtype *ob) | ||
205 | { | ||
206 | int doornum = -1; | ||
207 | uintptr_t temp; | ||
208 | |||
209 | if (ob->obclass == inertobj) | ||
210 | { | ||
211 | switch (ob->dir) | ||
212 | { | ||
213 | case north: | ||
214 | ob->tiley--; | ||
215 | break; | ||
216 | |||
217 | case northeast: | ||
218 | ob->tilex++; | ||
219 | ob->tiley--; | ||
220 | break; | ||
221 | |||
222 | case east: | ||
223 | ob->tilex++; | ||
224 | break; | ||
225 | |||
226 | case southeast: | ||
227 | ob->tilex++; | ||
228 | ob->tiley++; | ||
229 | break; | ||
230 | |||
231 | case south: | ||
232 | ob->tiley++; | ||
233 | break; | ||
234 | |||
235 | case southwest: | ||
236 | ob->tilex--; | ||
237 | ob->tiley++; | ||
238 | break; | ||
239 | |||
240 | case west: | ||
241 | ob->tilex--; | ||
242 | break; | ||
243 | |||
244 | case northwest: | ||
245 | ob->tilex--; | ||
246 | ob->tiley--; | ||
247 | break; | ||
248 | } | ||
249 | } | ||
250 | else | ||
251 | { | ||
252 | switch (ob->dir) | ||
253 | { | ||
254 | case north: | ||
255 | if (ob->obclass == dogobj || ob->obclass == fakeobj | ||
256 | || ob->obclass == ghostobj || ob->obclass == spectreobj) | ||
257 | { | ||
258 | CHECKDIAG(ob->tilex,ob->tiley-1); | ||
259 | } | ||
260 | else | ||
261 | { | ||
262 | CHECKSIDE(ob->tilex,ob->tiley-1); | ||
263 | } | ||
264 | ob->tiley--; | ||
265 | break; | ||
266 | |||
267 | case northeast: | ||
268 | CHECKDIAG(ob->tilex+1,ob->tiley-1); | ||
269 | CHECKDIAG(ob->tilex+1,ob->tiley); | ||
270 | CHECKDIAG(ob->tilex,ob->tiley-1); | ||
271 | ob->tilex++; | ||
272 | ob->tiley--; | ||
273 | break; | ||
274 | |||
275 | case east: | ||
276 | if (ob->obclass == dogobj || ob->obclass == fakeobj | ||
277 | || ob->obclass == ghostobj || ob->obclass == spectreobj) | ||
278 | { | ||
279 | CHECKDIAG(ob->tilex+1,ob->tiley); | ||
280 | } | ||
281 | else | ||
282 | { | ||
283 | CHECKSIDE(ob->tilex+1,ob->tiley); | ||
284 | } | ||
285 | ob->tilex++; | ||
286 | break; | ||
287 | |||
288 | case southeast: | ||
289 | CHECKDIAG(ob->tilex+1,ob->tiley+1); | ||
290 | CHECKDIAG(ob->tilex+1,ob->tiley); | ||
291 | CHECKDIAG(ob->tilex,ob->tiley+1); | ||
292 | ob->tilex++; | ||
293 | ob->tiley++; | ||
294 | break; | ||
295 | |||
296 | case south: | ||
297 | if (ob->obclass == dogobj || ob->obclass == fakeobj | ||
298 | || ob->obclass == ghostobj || ob->obclass == spectreobj) | ||
299 | { | ||
300 | CHECKDIAG(ob->tilex,ob->tiley+1); | ||
301 | } | ||
302 | else | ||
303 | { | ||
304 | CHECKSIDE(ob->tilex,ob->tiley+1); | ||
305 | } | ||
306 | ob->tiley++; | ||
307 | break; | ||
308 | |||
309 | case southwest: | ||
310 | CHECKDIAG(ob->tilex-1,ob->tiley+1); | ||
311 | CHECKDIAG(ob->tilex-1,ob->tiley); | ||
312 | CHECKDIAG(ob->tilex,ob->tiley+1); | ||
313 | ob->tilex--; | ||
314 | ob->tiley++; | ||
315 | break; | ||
316 | |||
317 | case west: | ||
318 | if (ob->obclass == dogobj || ob->obclass == fakeobj | ||
319 | || ob->obclass == ghostobj || ob->obclass == spectreobj) | ||
320 | { | ||
321 | CHECKDIAG(ob->tilex-1,ob->tiley); | ||
322 | } | ||
323 | else | ||
324 | { | ||
325 | CHECKSIDE(ob->tilex-1,ob->tiley); | ||
326 | } | ||
327 | ob->tilex--; | ||
328 | break; | ||
329 | |||
330 | case northwest: | ||
331 | CHECKDIAG(ob->tilex-1,ob->tiley-1); | ||
332 | CHECKDIAG(ob->tilex-1,ob->tiley); | ||
333 | CHECKDIAG(ob->tilex,ob->tiley-1); | ||
334 | ob->tilex--; | ||
335 | ob->tiley--; | ||
336 | break; | ||
337 | |||
338 | case nodir: | ||
339 | return false; | ||
340 | |||
341 | default: | ||
342 | Quit ("Walk: Bad dir"); | ||
343 | } | ||
344 | } | ||
345 | |||
346 | #ifdef PLAYDEMOLIKEORIGINAL | ||
347 | if (DEMOCOND_ORIG && doornum != -1) | ||
348 | { | ||
349 | OpenDoor(doornum); | ||
350 | ob->distance = -doornum-1; | ||
351 | return true; | ||
352 | } | ||
353 | #endif | ||
354 | |||
355 | ob->areanumber = | ||
356 | *(mapsegs[0] + (ob->tiley<<mapshift)+ob->tilex) - AREATILE; | ||
357 | |||
358 | ob->distance = TILEGLOBAL; | ||
359 | return true; | ||
360 | } | ||
361 | |||
362 | |||
363 | /* | ||
364 | ================================== | ||
365 | = | ||
366 | = SelectDodgeDir | ||
367 | = | ||
368 | = Attempts to choose and initiate a movement for ob that sends it towards | ||
369 | = the player while dodging | ||
370 | = | ||
371 | = If there is no possible move (ob is totally surrounded) | ||
372 | = | ||
373 | = ob->dir = nodir | ||
374 | = | ||
375 | = Otherwise | ||
376 | = | ||
377 | = ob->dir = new direction to follow | ||
378 | = ob->distance = TILEGLOBAL or -doornumber | ||
379 | = ob->tilex = new destination | ||
380 | = ob->tiley | ||
381 | = ob->areanumber = the floor tile number (0-(NUMAREAS-1)) of destination | ||
382 | = | ||
383 | ================================== | ||
384 | */ | ||
385 | |||
386 | void SelectDodgeDir (objtype *ob) | ||
387 | { | ||
388 | int deltax,deltay,i; | ||
389 | unsigned absdx,absdy; | ||
390 | dirtype dirtry[5]; | ||
391 | dirtype turnaround,tdir; | ||
392 | |||
393 | if (ob->flags & FL_FIRSTATTACK) | ||
394 | { | ||
395 | // | ||
396 | // turning around is only ok the very first time after noticing the | ||
397 | // player | ||
398 | // | ||
399 | turnaround = nodir; | ||
400 | ob->flags &= ~FL_FIRSTATTACK; | ||
401 | } | ||
402 | else | ||
403 | turnaround=opposite[ob->dir]; | ||
404 | |||
405 | deltax = player->tilex - ob->tilex; | ||
406 | deltay = player->tiley - ob->tiley; | ||
407 | |||
408 | // | ||
409 | // arange 5 direction choices in order of preference | ||
410 | // the four cardinal directions plus the diagonal straight towards | ||
411 | // the player | ||
412 | // | ||
413 | |||
414 | if (deltax>0) | ||
415 | { | ||
416 | dirtry[1]= east; | ||
417 | dirtry[3]= west; | ||
418 | } | ||
419 | else | ||
420 | { | ||
421 | dirtry[1]= west; | ||
422 | dirtry[3]= east; | ||
423 | } | ||
424 | |||
425 | if (deltay>0) | ||
426 | { | ||
427 | dirtry[2]= south; | ||
428 | dirtry[4]= north; | ||
429 | } | ||
430 | else | ||
431 | { | ||
432 | dirtry[2]= north; | ||
433 | dirtry[4]= south; | ||
434 | } | ||
435 | |||
436 | // | ||
437 | // randomize a bit for dodging | ||
438 | // | ||
439 | absdx = abs(deltax); | ||
440 | absdy = abs(deltay); | ||
441 | |||
442 | if (absdx > absdy) | ||
443 | { | ||
444 | tdir = dirtry[1]; | ||
445 | dirtry[1] = dirtry[2]; | ||
446 | dirtry[2] = tdir; | ||
447 | tdir = dirtry[3]; | ||
448 | dirtry[3] = dirtry[4]; | ||
449 | dirtry[4] = tdir; | ||
450 | } | ||
451 | |||
452 | if (US_RndT() < 128) | ||
453 | { | ||
454 | tdir = dirtry[1]; | ||
455 | dirtry[1] = dirtry[2]; | ||
456 | dirtry[2] = tdir; | ||
457 | tdir = dirtry[3]; | ||
458 | dirtry[3] = dirtry[4]; | ||
459 | dirtry[4] = tdir; | ||
460 | } | ||
461 | |||
462 | dirtry[0] = diagonal [ dirtry[1] ] [ dirtry[2] ]; | ||
463 | |||
464 | // | ||
465 | // try the directions util one works | ||
466 | // | ||
467 | for (i=0;i<5;i++) | ||
468 | { | ||
469 | if ( dirtry[i] == nodir || dirtry[i] == turnaround) | ||
470 | continue; | ||
471 | |||
472 | ob->dir = dirtry[i]; | ||
473 | if (TryWalk(ob)) | ||
474 | return; | ||
475 | } | ||
476 | |||
477 | // | ||
478 | // turn around only as a last resort | ||
479 | // | ||
480 | if (turnaround != nodir) | ||
481 | { | ||
482 | ob->dir = turnaround; | ||
483 | |||
484 | if (TryWalk(ob)) | ||
485 | return; | ||
486 | } | ||
487 | |||
488 | ob->dir = nodir; | ||
489 | } | ||
490 | |||
491 | |||
492 | /* | ||
493 | ============================ | ||
494 | = | ||
495 | = SelectChaseDir | ||
496 | = | ||
497 | = As SelectDodgeDir, but doesn't try to dodge | ||
498 | = | ||
499 | ============================ | ||
500 | */ | ||
501 | |||
502 | void SelectChaseDir (objtype *ob) | ||
503 | { | ||
504 | int deltax,deltay; | ||
505 | dirtype d[3]; | ||
506 | dirtype tdir, olddir, turnaround; | ||
507 | |||
508 | |||
509 | olddir=ob->dir; | ||
510 | turnaround=opposite[olddir]; | ||
511 | |||
512 | deltax=player->tilex - ob->tilex; | ||
513 | deltay=player->tiley - ob->tiley; | ||
514 | |||
515 | d[1]=nodir; | ||
516 | d[2]=nodir; | ||
517 | |||
518 | if (deltax>0) | ||
519 | d[1]= east; | ||
520 | else if (deltax<0) | ||
521 | d[1]= west; | ||
522 | if (deltay>0) | ||
523 | d[2]=south; | ||
524 | else if (deltay<0) | ||
525 | d[2]=north; | ||
526 | |||
527 | if (abs(deltay)>abs(deltax)) | ||
528 | { | ||
529 | tdir=d[1]; | ||
530 | d[1]=d[2]; | ||
531 | d[2]=tdir; | ||
532 | } | ||
533 | |||
534 | if (d[1]==turnaround) | ||
535 | d[1]=nodir; | ||
536 | if (d[2]==turnaround) | ||
537 | d[2]=nodir; | ||
538 | |||
539 | |||
540 | if (d[1]!=nodir) | ||
541 | { | ||
542 | ob->dir=d[1]; | ||
543 | if (TryWalk(ob)) | ||
544 | return; /*either moved forward or attacked*/ | ||
545 | } | ||
546 | |||
547 | if (d[2]!=nodir) | ||
548 | { | ||
549 | ob->dir=d[2]; | ||
550 | if (TryWalk(ob)) | ||
551 | return; | ||
552 | } | ||
553 | |||
554 | /* there is no direct path to the player, so pick another direction */ | ||
555 | |||
556 | if (olddir!=nodir) | ||
557 | { | ||
558 | ob->dir=olddir; | ||
559 | if (TryWalk(ob)) | ||
560 | return; | ||
561 | } | ||
562 | |||
563 | if (US_RndT()>128) /*randomly determine direction of search*/ | ||
564 | { | ||
565 | for (tdir=north; tdir<=west; tdir=(dirtype)(tdir+1)) | ||
566 | { | ||
567 | if (tdir!=turnaround) | ||
568 | { | ||
569 | ob->dir=tdir; | ||
570 | if ( TryWalk(ob) ) | ||
571 | return; | ||
572 | } | ||
573 | } | ||
574 | } | ||
575 | else | ||
576 | { | ||
577 | for (tdir=west; tdir>=north; tdir=(dirtype)(tdir-1)) | ||
578 | { | ||
579 | if (tdir!=turnaround) | ||
580 | { | ||
581 | ob->dir=tdir; | ||
582 | if ( TryWalk(ob) ) | ||
583 | return; | ||
584 | } | ||
585 | } | ||
586 | } | ||
587 | |||
588 | if (turnaround != nodir) | ||
589 | { | ||
590 | ob->dir=turnaround; | ||
591 | if (ob->dir != nodir) | ||
592 | { | ||
593 | if ( TryWalk(ob) ) | ||
594 | return; | ||
595 | } | ||
596 | } | ||
597 | |||
598 | ob->dir = nodir; // can't move | ||
599 | } | ||
600 | |||
601 | |||
602 | /* | ||
603 | ============================ | ||
604 | = | ||
605 | = SelectRunDir | ||
606 | = | ||
607 | = Run Away from player | ||
608 | = | ||
609 | ============================ | ||
610 | */ | ||
611 | |||
612 | void SelectRunDir (objtype *ob) | ||
613 | { | ||
614 | int deltax,deltay; | ||
615 | dirtype d[3]; | ||
616 | dirtype tdir; | ||
617 | |||
618 | |||
619 | deltax=player->tilex - ob->tilex; | ||
620 | deltay=player->tiley - ob->tiley; | ||
621 | |||
622 | if (deltax<0) | ||
623 | d[1]= east; | ||
624 | else | ||
625 | d[1]= west; | ||
626 | if (deltay<0) | ||
627 | d[2]=south; | ||
628 | else | ||
629 | d[2]=north; | ||
630 | |||
631 | if (abs(deltay)>abs(deltax)) | ||
632 | { | ||
633 | tdir=d[1]; | ||
634 | d[1]=d[2]; | ||
635 | d[2]=tdir; | ||
636 | } | ||
637 | |||
638 | ob->dir=d[1]; | ||
639 | if (TryWalk(ob)) | ||
640 | return; /*either moved forward or attacked*/ | ||
641 | |||
642 | ob->dir=d[2]; | ||
643 | if (TryWalk(ob)) | ||
644 | return; | ||
645 | |||
646 | /* there is no direct path to the player, so pick another direction */ | ||
647 | |||
648 | if (US_RndT()>128) /*randomly determine direction of search*/ | ||
649 | { | ||
650 | for (tdir=north; tdir<=west; tdir=(dirtype)(tdir+1)) | ||
651 | { | ||
652 | ob->dir=tdir; | ||
653 | if ( TryWalk(ob) ) | ||
654 | return; | ||
655 | } | ||
656 | } | ||
657 | else | ||
658 | { | ||
659 | for (tdir=west; tdir>=north; tdir=(dirtype)(tdir-1)) | ||
660 | { | ||
661 | ob->dir=tdir; | ||
662 | if ( TryWalk(ob) ) | ||
663 | return; | ||
664 | } | ||
665 | } | ||
666 | |||
667 | ob->dir = nodir; // can't move | ||
668 | } | ||
669 | |||
670 | |||
671 | /* | ||
672 | ================= | ||
673 | = | ||
674 | = MoveObj | ||
675 | = | ||
676 | = Moves ob be move global units in ob->dir direction | ||
677 | = Actors are not allowed to move inside the player | ||
678 | = Does NOT check to see if the move is tile map valid | ||
679 | = | ||
680 | = ob->x = adjusted for new position | ||
681 | = ob->y | ||
682 | = | ||
683 | ================= | ||
684 | */ | ||
685 | |||
686 | void MoveObj (objtype *ob, int32_t move) | ||
687 | { | ||
688 | int32_t deltax,deltay; | ||
689 | |||
690 | switch (ob->dir) | ||
691 | { | ||
692 | case north: | ||
693 | ob->y -= move; | ||
694 | break; | ||
695 | case northeast: | ||
696 | ob->x += move; | ||
697 | ob->y -= move; | ||
698 | break; | ||
699 | case east: | ||
700 | ob->x += move; | ||
701 | break; | ||
702 | case southeast: | ||
703 | ob->x += move; | ||
704 | ob->y += move; | ||
705 | break; | ||
706 | case south: | ||
707 | ob->y += move; | ||
708 | break; | ||
709 | case southwest: | ||
710 | ob->x -= move; | ||
711 | ob->y += move; | ||
712 | break; | ||
713 | case west: | ||
714 | ob->x -= move; | ||
715 | break; | ||
716 | case northwest: | ||
717 | ob->x -= move; | ||
718 | ob->y -= move; | ||
719 | break; | ||
720 | |||
721 | case nodir: | ||
722 | return; | ||
723 | |||
724 | default: | ||
725 | Quit ("MoveObj: bad dir!"); | ||
726 | } | ||
727 | |||
728 | // | ||
729 | // check to make sure it's not on top of player | ||
730 | // | ||
731 | if (areabyplayer[ob->areanumber]) | ||
732 | { | ||
733 | deltax = ob->x - player->x; | ||
734 | if (deltax < -MINACTORDIST || deltax > MINACTORDIST) | ||
735 | goto moveok; | ||
736 | deltay = ob->y - player->y; | ||
737 | if (deltay < -MINACTORDIST || deltay > MINACTORDIST) | ||
738 | goto moveok; | ||
739 | |||
740 | if (ob->hidden) // move closer until he meets CheckLine | ||
741 | goto moveok; | ||
742 | |||
743 | if (ob->obclass == ghostobj || ob->obclass == spectreobj) | ||
744 | TakeDamage (tics*2,ob); | ||
745 | |||
746 | // | ||
747 | // back up | ||
748 | // | ||
749 | switch (ob->dir) | ||
750 | { | ||
751 | case north: | ||
752 | ob->y += move; | ||
753 | break; | ||
754 | case northeast: | ||
755 | ob->x -= move; | ||
756 | ob->y += move; | ||
757 | break; | ||
758 | case east: | ||
759 | ob->x -= move; | ||
760 | break; | ||
761 | case southeast: | ||
762 | ob->x -= move; | ||
763 | ob->y -= move; | ||
764 | break; | ||
765 | case south: | ||
766 | ob->y -= move; | ||
767 | break; | ||
768 | case southwest: | ||
769 | ob->x += move; | ||
770 | ob->y -= move; | ||
771 | break; | ||
772 | case west: | ||
773 | ob->x += move; | ||
774 | break; | ||
775 | case northwest: | ||
776 | ob->x += move; | ||
777 | ob->y += move; | ||
778 | break; | ||
779 | |||
780 | case nodir: | ||
781 | return; | ||
782 | } | ||
783 | return; | ||
784 | } | ||
785 | moveok: | ||
786 | ob->distance -=move; | ||
787 | } | ||
788 | |||
789 | /* | ||
790 | ============================================================================= | ||
791 | |||
792 | STUFF | ||
793 | |||
794 | ============================================================================= | ||
795 | */ | ||
796 | |||
797 | /* | ||
798 | =============== | ||
799 | = | ||
800 | = DropItem | ||
801 | = | ||
802 | = Tries to drop a bonus item somewhere in the tiles surrounding the | ||
803 | = given tilex/tiley | ||
804 | = | ||
805 | =============== | ||
806 | */ | ||
807 | |||
808 | void DropItem (wl_stat_t itemtype, int tilex, int tiley) | ||
809 | { | ||
810 | int x,y,xl,xh,yl,yh; | ||
811 | |||
812 | // | ||
813 | // find a free spot to put it in | ||
814 | // | ||
815 | if (!actorat[tilex][tiley]) | ||
816 | { | ||
817 | PlaceItemType (itemtype, tilex,tiley); | ||
818 | return; | ||
819 | } | ||
820 | |||
821 | xl = tilex-1; | ||
822 | xh = tilex+1; | ||
823 | yl = tiley-1; | ||
824 | yh = tiley+1; | ||
825 | |||
826 | for (x=xl ; x<= xh ; x++) | ||
827 | { | ||
828 | for (y=yl ; y<= yh ; y++) | ||
829 | { | ||
830 | if (!actorat[x][y]) | ||
831 | { | ||
832 | PlaceItemType (itemtype, x,y); | ||
833 | return; | ||
834 | } | ||
835 | } | ||
836 | } | ||
837 | } | ||
838 | |||
839 | |||
840 | |||
841 | /* | ||
842 | =============== | ||
843 | = | ||
844 | = KillActor | ||
845 | = | ||
846 | =============== | ||
847 | */ | ||
848 | |||
849 | void KillActor (objtype *ob) | ||
850 | { | ||
851 | int tilex,tiley; | ||
852 | |||
853 | tilex = ob->tilex = (word)(ob->x >> TILESHIFT); // drop item on center | ||
854 | tiley = ob->tiley = (word)(ob->y >> TILESHIFT); | ||
855 | |||
856 | switch (ob->obclass) | ||
857 | { | ||
858 | case guardobj: | ||
859 | GivePoints (100); | ||
860 | NewState (ob,&s_grddie1); | ||
861 | PlaceItemType (bo_clip2,tilex,tiley); | ||
862 | break; | ||
863 | |||
864 | case officerobj: | ||
865 | GivePoints (400); | ||
866 | NewState (ob,&s_ofcdie1); | ||
867 | PlaceItemType (bo_clip2,tilex,tiley); | ||
868 | break; | ||
869 | |||
870 | case mutantobj: | ||
871 | GivePoints (700); | ||
872 | NewState (ob,&s_mutdie1); | ||
873 | PlaceItemType (bo_clip2,tilex,tiley); | ||
874 | break; | ||
875 | |||
876 | case ssobj: | ||
877 | GivePoints (500); | ||
878 | NewState (ob,&s_ssdie1); | ||
879 | if (gamestate.bestweapon < wp_machinegun) | ||
880 | PlaceItemType (bo_machinegun,tilex,tiley); | ||
881 | else | ||
882 | PlaceItemType (bo_clip2,tilex,tiley); | ||
883 | break; | ||
884 | |||
885 | case dogobj: | ||
886 | GivePoints (200); | ||
887 | NewState (ob,&s_dogdie1); | ||
888 | break; | ||
889 | |||
890 | #ifndef SPEAR | ||
891 | case bossobj: | ||
892 | GivePoints (5000); | ||
893 | NewState (ob,&s_bossdie1); | ||
894 | PlaceItemType (bo_key1,tilex,tiley); | ||
895 | break; | ||
896 | |||
897 | case gretelobj: | ||
898 | GivePoints (5000); | ||
899 | NewState (ob,&s_greteldie1); | ||
900 | PlaceItemType (bo_key1,tilex,tiley); | ||
901 | break; | ||
902 | |||
903 | case giftobj: | ||
904 | GivePoints (5000); | ||
905 | gamestate.killx = player->x; | ||
906 | gamestate.killy = player->y; | ||
907 | NewState (ob,&s_giftdie1); | ||
908 | break; | ||
909 | |||
910 | case fatobj: | ||
911 | GivePoints (5000); | ||
912 | gamestate.killx = player->x; | ||
913 | gamestate.killy = player->y; | ||
914 | NewState (ob,&s_fatdie1); | ||
915 | break; | ||
916 | |||
917 | case schabbobj: | ||
918 | GivePoints (5000); | ||
919 | gamestate.killx = player->x; | ||
920 | gamestate.killy = player->y; | ||
921 | NewState (ob,&s_schabbdie1); | ||
922 | break; | ||
923 | case fakeobj: | ||
924 | GivePoints (2000); | ||
925 | NewState (ob,&s_fakedie1); | ||
926 | break; | ||
927 | |||
928 | case mechahitlerobj: | ||
929 | GivePoints (5000); | ||
930 | NewState (ob,&s_mechadie1); | ||
931 | break; | ||
932 | case realhitlerobj: | ||
933 | GivePoints (5000); | ||
934 | gamestate.killx = player->x; | ||
935 | gamestate.killy = player->y; | ||
936 | NewState (ob,&s_hitlerdie1); | ||
937 | break; | ||
938 | #else | ||
939 | case spectreobj: | ||
940 | if (ob->flags&FL_BONUS) | ||
941 | { | ||
942 | GivePoints (200); // Get points once for each | ||
943 | ob->flags &= ~FL_BONUS; | ||
944 | } | ||
945 | NewState (ob,&s_spectredie1); | ||
946 | break; | ||
947 | |||
948 | case angelobj: | ||
949 | GivePoints (5000); | ||
950 | NewState (ob,&s_angeldie1); | ||
951 | break; | ||
952 | |||
953 | case transobj: | ||
954 | GivePoints (5000); | ||
955 | NewState (ob,&s_transdie0); | ||
956 | PlaceItemType (bo_key1,tilex,tiley); | ||
957 | break; | ||
958 | |||
959 | case uberobj: | ||
960 | GivePoints (5000); | ||
961 | NewState (ob,&s_uberdie0); | ||
962 | PlaceItemType (bo_key1,tilex,tiley); | ||
963 | break; | ||
964 | |||
965 | case willobj: | ||
966 | GivePoints (5000); | ||
967 | NewState (ob,&s_willdie1); | ||
968 | PlaceItemType (bo_key1,tilex,tiley); | ||
969 | break; | ||
970 | |||
971 | case deathobj: | ||
972 | GivePoints (5000); | ||
973 | NewState (ob,&s_deathdie1); | ||
974 | PlaceItemType (bo_key1,tilex,tiley); | ||
975 | break; | ||
976 | #endif | ||
977 | } | ||
978 | |||
979 | gamestate.killcount++; | ||
980 | ob->flags &= ~FL_SHOOTABLE; | ||
981 | actorat[ob->tilex][ob->tiley] = NULL; | ||
982 | ob->flags |= FL_NONMARK; | ||
983 | } | ||
984 | |||
985 | |||
986 | |||
987 | /* | ||
988 | =================== | ||
989 | = | ||
990 | = DamageActor | ||
991 | = | ||
992 | = Called when the player succesfully hits an enemy. | ||
993 | = | ||
994 | = Does damage points to enemy ob, either putting it into a stun frame or | ||
995 | = killing it. | ||
996 | = | ||
997 | =================== | ||
998 | */ | ||
999 | |||
1000 | void DamageActor (objtype *ob, unsigned damage) | ||
1001 | { | ||
1002 | madenoise = true; | ||
1003 | |||
1004 | // | ||
1005 | // do double damage if shooting a non attack mode actor | ||
1006 | // | ||
1007 | if ( !(ob->flags & FL_ATTACKMODE) ) | ||
1008 | damage <<= 1; | ||
1009 | |||
1010 | ob->hitpoints -= (short)damage; | ||
1011 | |||
1012 | if (ob->hitpoints<=0) | ||
1013 | KillActor (ob); | ||
1014 | else | ||
1015 | { | ||
1016 | if (! (ob->flags & FL_ATTACKMODE) ) | ||
1017 | FirstSighting (ob); // put into combat mode | ||
1018 | |||
1019 | switch (ob->obclass) // dogs only have one hit point | ||
1020 | { | ||
1021 | case guardobj: | ||
1022 | if (ob->hitpoints&1) | ||
1023 | NewState (ob,&s_grdpain); | ||
1024 | else | ||
1025 | NewState (ob,&s_grdpain1); | ||
1026 | break; | ||
1027 | |||
1028 | case officerobj: | ||
1029 | if (ob->hitpoints&1) | ||
1030 | NewState (ob,&s_ofcpain); | ||
1031 | else | ||
1032 | NewState (ob,&s_ofcpain1); | ||
1033 | break; | ||
1034 | |||
1035 | case mutantobj: | ||
1036 | if (ob->hitpoints&1) | ||
1037 | NewState (ob,&s_mutpain); | ||
1038 | else | ||
1039 | NewState (ob,&s_mutpain1); | ||
1040 | break; | ||
1041 | |||
1042 | case ssobj: | ||
1043 | if (ob->hitpoints&1) | ||
1044 | NewState (ob,&s_sspain); | ||
1045 | else | ||
1046 | NewState (ob,&s_sspain1); | ||
1047 | |||
1048 | break; | ||
1049 | } | ||
1050 | } | ||
1051 | } | ||
1052 | |||
1053 | /* | ||
1054 | ============================================================================= | ||
1055 | |||
1056 | CHECKSIGHT | ||
1057 | |||
1058 | ============================================================================= | ||
1059 | */ | ||
1060 | |||
1061 | |||
1062 | /* | ||
1063 | ===================== | ||
1064 | = | ||
1065 | = CheckLine | ||
1066 | = | ||
1067 | = Returns true if a straight line between the player and ob is unobstructed | ||
1068 | = | ||
1069 | ===================== | ||
1070 | */ | ||
1071 | |||
1072 | boolean CheckLine (objtype *ob) | ||
1073 | { | ||
1074 | int x1,y1,xt1,yt1,x2,y2,xt2,yt2; | ||
1075 | int x,y; | ||
1076 | int xdist,ydist,xstep,ystep; | ||
1077 | int partial,delta; | ||
1078 | int32_t ltemp; | ||
1079 | int xfrac,yfrac,deltafrac; | ||
1080 | unsigned value,intercept; | ||
1081 | |||
1082 | x1 = ob->x >> UNSIGNEDSHIFT; // 1/256 tile precision | ||
1083 | y1 = ob->y >> UNSIGNEDSHIFT; | ||
1084 | xt1 = x1 >> 8; | ||
1085 | yt1 = y1 >> 8; | ||
1086 | |||
1087 | x2 = plux; | ||
1088 | y2 = pluy; | ||
1089 | xt2 = player->tilex; | ||
1090 | yt2 = player->tiley; | ||
1091 | |||
1092 | xdist = abs(xt2-xt1); | ||
1093 | |||
1094 | if (xdist > 0) | ||
1095 | { | ||
1096 | if (xt2 > xt1) | ||
1097 | { | ||
1098 | partial = 256-(x1&0xff); | ||
1099 | xstep = 1; | ||
1100 | } | ||
1101 | else | ||
1102 | { | ||
1103 | partial = x1&0xff; | ||
1104 | xstep = -1; | ||
1105 | } | ||
1106 | |||
1107 | deltafrac = abs(x2-x1); | ||
1108 | delta = y2-y1; | ||
1109 | ltemp = ((int32_t)delta<<8)/deltafrac; | ||
1110 | if (ltemp > 0x7fffl) | ||
1111 | ystep = 0x7fff; | ||
1112 | else if (ltemp < -0x7fffl) | ||
1113 | ystep = -0x7fff; | ||
1114 | else | ||
1115 | ystep = ltemp; | ||
1116 | yfrac = y1 + (((int32_t)ystep*partial) >>8); | ||
1117 | |||
1118 | x = xt1+xstep; | ||
1119 | xt2 += xstep; | ||
1120 | do | ||
1121 | { | ||
1122 | y = yfrac>>8; | ||
1123 | yfrac += ystep; | ||
1124 | |||
1125 | value = (unsigned)tilemap[x][y]; | ||
1126 | x += xstep; | ||
1127 | |||
1128 | if (!value) | ||
1129 | continue; | ||
1130 | |||
1131 | if (value<128 || value>256) | ||
1132 | return false; | ||
1133 | |||
1134 | // | ||
1135 | // see if the door is open enough | ||
1136 | // | ||
1137 | value &= ~0x80; | ||
1138 | intercept = yfrac-ystep/2; | ||
1139 | |||
1140 | if (intercept>doorposition[value]) | ||
1141 | return false; | ||
1142 | |||
1143 | } while (x != xt2); | ||
1144 | } | ||
1145 | |||
1146 | ydist = abs(yt2-yt1); | ||
1147 | |||
1148 | if (ydist > 0) | ||
1149 | { | ||
1150 | if (yt2 > yt1) | ||
1151 | { | ||
1152 | partial = 256-(y1&0xff); | ||
1153 | ystep = 1; | ||
1154 | } | ||
1155 | else | ||
1156 | { | ||
1157 | partial = y1&0xff; | ||
1158 | ystep = -1; | ||
1159 | } | ||
1160 | |||
1161 | deltafrac = abs(y2-y1); | ||
1162 | delta = x2-x1; | ||
1163 | ltemp = ((int32_t)delta<<8)/deltafrac; | ||
1164 | if (ltemp > 0x7fffl) | ||
1165 | xstep = 0x7fff; | ||
1166 | else if (ltemp < -0x7fffl) | ||
1167 | xstep = -0x7fff; | ||
1168 | else | ||
1169 | xstep = ltemp; | ||
1170 | xfrac = x1 + (((int32_t)xstep*partial) >>8); | ||
1171 | |||
1172 | y = yt1 + ystep; | ||
1173 | yt2 += ystep; | ||
1174 | do | ||
1175 | { | ||
1176 | x = xfrac>>8; | ||
1177 | xfrac += xstep; | ||
1178 | |||
1179 | value = (unsigned)tilemap[x][y]; | ||
1180 | y += ystep; | ||
1181 | |||
1182 | if (!value) | ||
1183 | continue; | ||
1184 | |||
1185 | if (value<128 || value>256) | ||
1186 | return false; | ||
1187 | |||
1188 | // | ||
1189 | // see if the door is open enough | ||
1190 | // | ||
1191 | value &= ~0x80; | ||
1192 | intercept = xfrac-xstep/2; | ||
1193 | |||
1194 | if (intercept>doorposition[value]) | ||
1195 | return false; | ||
1196 | } while (y != yt2); | ||
1197 | } | ||
1198 | |||
1199 | return true; | ||
1200 | } | ||
1201 | |||
1202 | |||
1203 | /* | ||
1204 | ================ | ||
1205 | = | ||
1206 | = CheckSight | ||
1207 | = | ||
1208 | = Checks a straight line between player and current object | ||
1209 | = | ||
1210 | = If the sight is ok, check alertness and angle to see if they notice | ||
1211 | = | ||
1212 | = returns true if the player has been spoted | ||
1213 | = | ||
1214 | ================ | ||
1215 | */ | ||
1216 | |||
1217 | #define MINSIGHT 0x18000l | ||
1218 | |||
1219 | boolean CheckSight (objtype *ob) | ||
1220 | { | ||
1221 | int32_t deltax,deltay; | ||
1222 | |||
1223 | // | ||
1224 | // don't bother tracing a line if the area isn't connected to the player's | ||
1225 | // | ||
1226 | if (!areabyplayer[ob->areanumber]) | ||
1227 | return false; | ||
1228 | |||
1229 | // | ||
1230 | // if the player is real close, sight is automatic | ||
1231 | // | ||
1232 | deltax = player->x - ob->x; | ||
1233 | deltay = player->y - ob->y; | ||
1234 | |||
1235 | if (deltax > -MINSIGHT && deltax < MINSIGHT | ||
1236 | && deltay > -MINSIGHT && deltay < MINSIGHT) | ||
1237 | return true; | ||
1238 | |||
1239 | // | ||
1240 | // see if they are looking in the right direction | ||
1241 | // | ||
1242 | switch (ob->dir) | ||
1243 | { | ||
1244 | case north: | ||
1245 | if (deltay > 0) | ||
1246 | return false; | ||
1247 | break; | ||
1248 | |||
1249 | case east: | ||
1250 | if (deltax < 0) | ||
1251 | return false; | ||
1252 | break; | ||
1253 | |||
1254 | case south: | ||
1255 | if (deltay < 0) | ||
1256 | return false; | ||
1257 | break; | ||
1258 | |||
1259 | case west: | ||
1260 | if (deltax > 0) | ||
1261 | return false; | ||
1262 | break; | ||
1263 | |||
1264 | // check diagonal moving guards fix | ||
1265 | |||
1266 | case northwest: | ||
1267 | if (DEMOCOND_SDL && deltay > -deltax) | ||
1268 | return false; | ||
1269 | break; | ||
1270 | |||
1271 | case northeast: | ||
1272 | if (DEMOCOND_SDL && deltay > deltax) | ||
1273 | return false; | ||
1274 | break; | ||
1275 | |||
1276 | case southwest: | ||
1277 | if (DEMOCOND_SDL && deltax > deltay) | ||
1278 | return false; | ||
1279 | break; | ||
1280 | |||
1281 | case southeast: | ||
1282 | if (DEMOCOND_SDL && -deltax > deltay) | ||
1283 | return false; | ||
1284 | break; | ||
1285 | } | ||
1286 | |||
1287 | // | ||
1288 | // trace a line to check for blocking tiles (corners) | ||
1289 | // | ||
1290 | return CheckLine (ob); | ||
1291 | } | ||
1292 | |||
1293 | |||
1294 | /* | ||
1295 | =============== | ||
1296 | = | ||
1297 | = FirstSighting | ||
1298 | = | ||
1299 | = Puts an actor into attack mode and possibly reverses the direction | ||
1300 | = if the player is behind it | ||
1301 | = | ||
1302 | =============== | ||
1303 | */ | ||
1304 | |||
1305 | void FirstSighting (objtype *ob) | ||
1306 | { | ||
1307 | // | ||
1308 | // react to the player | ||
1309 | // | ||
1310 | switch (ob->obclass) | ||
1311 | { | ||
1312 | case guardobj: | ||
1313 | PlaySoundLocActor(HALTSND,ob); | ||
1314 | NewState (ob,&s_grdchase1); | ||
1315 | ob->speed *= 3; // go faster when chasing player | ||
1316 | break; | ||
1317 | |||
1318 | case officerobj: | ||
1319 | PlaySoundLocActor(SPIONSND,ob); | ||
1320 | NewState (ob,&s_ofcchase1); | ||
1321 | ob->speed *= 5; // go faster when chasing player | ||
1322 | break; | ||
1323 | |||
1324 | case mutantobj: | ||
1325 | NewState (ob,&s_mutchase1); | ||
1326 | ob->speed *= 3; // go faster when chasing player | ||
1327 | break; | ||
1328 | |||
1329 | case ssobj: | ||
1330 | PlaySoundLocActor(SCHUTZADSND,ob); | ||
1331 | NewState (ob,&s_sschase1); | ||
1332 | ob->speed *= 4; // go faster when chasing player | ||
1333 | break; | ||
1334 | |||
1335 | case dogobj: | ||
1336 | PlaySoundLocActor(DOGBARKSND,ob); | ||
1337 | NewState (ob,&s_dogchase1); | ||
1338 | ob->speed *= 2; // go faster when chasing player | ||
1339 | break; | ||
1340 | |||
1341 | #ifndef SPEAR | ||
1342 | case bossobj: | ||
1343 | SD_PlaySound(GUTENTAGSND); | ||
1344 | NewState (ob,&s_bosschase1); | ||
1345 | ob->speed = SPDPATROL*3; // go faster when chasing player | ||
1346 | break; | ||
1347 | |||
1348 | #ifndef APOGEE_1_0 | ||
1349 | case gretelobj: | ||
1350 | SD_PlaySound(KEINSND); | ||
1351 | NewState (ob,&s_gretelchase1); | ||
1352 | ob->speed *= 3; // go faster when chasing player | ||
1353 | break; | ||
1354 | |||
1355 | case giftobj: | ||
1356 | SD_PlaySound(EINESND); | ||
1357 | NewState (ob,&s_giftchase1); | ||
1358 | ob->speed *= 3; // go faster when chasing player | ||
1359 | break; | ||
1360 | |||
1361 | case fatobj: | ||
1362 | SD_PlaySound(ERLAUBENSND); | ||
1363 | NewState (ob,&s_fatchase1); | ||
1364 | ob->speed *= 3; // go faster when chasing player | ||
1365 | break; | ||
1366 | #endif | ||
1367 | |||
1368 | case schabbobj: | ||
1369 | SD_PlaySound(SCHABBSHASND); | ||
1370 | NewState (ob,&s_schabbchase1); | ||
1371 | ob->speed *= 3; // go faster when chasing player | ||
1372 | break; | ||
1373 | |||
1374 | case fakeobj: | ||
1375 | SD_PlaySound(TOT_HUNDSND); | ||
1376 | NewState (ob,&s_fakechase1); | ||
1377 | ob->speed *= 3; // go faster when chasing player | ||
1378 | break; | ||
1379 | |||
1380 | case mechahitlerobj: | ||
1381 | SD_PlaySound(DIESND); | ||
1382 | NewState (ob,&s_mechachase1); | ||
1383 | ob->speed *= 3; // go faster when chasing player | ||
1384 | break; | ||
1385 | |||
1386 | case realhitlerobj: | ||
1387 | SD_PlaySound(DIESND); | ||
1388 | NewState (ob,&s_hitlerchase1); | ||
1389 | ob->speed *= 5; // go faster when chasing player | ||
1390 | break; | ||
1391 | |||
1392 | case ghostobj: | ||
1393 | NewState (ob,&s_blinkychase1); | ||
1394 | ob->speed *= 2; // go faster when chasing player | ||
1395 | break; | ||
1396 | #else | ||
1397 | case spectreobj: | ||
1398 | SD_PlaySound(GHOSTSIGHTSND); | ||
1399 | NewState (ob,&s_spectrechase1); | ||
1400 | ob->speed = 800; // go faster when chasing player | ||
1401 | break; | ||
1402 | |||
1403 | case angelobj: | ||
1404 | SD_PlaySound(ANGELSIGHTSND); | ||
1405 | NewState (ob,&s_angelchase1); | ||
1406 | ob->speed = 1536; // go faster when chasing player | ||
1407 | break; | ||
1408 | |||
1409 | case transobj: | ||
1410 | SD_PlaySound(TRANSSIGHTSND); | ||
1411 | NewState (ob,&s_transchase1); | ||
1412 | ob->speed = 1536; // go faster when chasing player | ||
1413 | break; | ||
1414 | |||
1415 | case uberobj: | ||
1416 | NewState (ob,&s_uberchase1); | ||
1417 | ob->speed = 3000; // go faster when chasing player | ||
1418 | break; | ||
1419 | |||
1420 | case willobj: | ||
1421 | SD_PlaySound(WILHELMSIGHTSND); | ||
1422 | NewState (ob,&s_willchase1); | ||
1423 | ob->speed = 2048; // go faster when chasing player | ||
1424 | break; | ||
1425 | |||
1426 | case deathobj: | ||
1427 | SD_PlaySound(KNIGHTSIGHTSND); | ||
1428 | NewState (ob,&s_deathchase1); | ||
1429 | ob->speed = 2048; // go faster when chasing player | ||
1430 | break; | ||
1431 | #endif | ||
1432 | } | ||
1433 | |||
1434 | if (ob->distance < 0) | ||
1435 | ob->distance = 0; // ignore the door opening command | ||
1436 | |||
1437 | ob->flags |= FL_ATTACKMODE|FL_FIRSTATTACK; | ||
1438 | } | ||
1439 | |||
1440 | |||
1441 | |||
1442 | /* | ||
1443 | =============== | ||
1444 | = | ||
1445 | = SightPlayer | ||
1446 | = | ||
1447 | = Called by actors that ARE NOT chasing the player. If the player | ||
1448 | = is detected (by sight, noise, or proximity), the actor is put into | ||
1449 | = it's combat frame and true is returned. | ||
1450 | = | ||
1451 | = Incorporates a random reaction delay | ||
1452 | = | ||
1453 | =============== | ||
1454 | */ | ||
1455 | |||
1456 | boolean SightPlayer (objtype *ob) | ||
1457 | { | ||
1458 | if (ob->flags & FL_ATTACKMODE) | ||
1459 | Quit ("An actor in ATTACKMODE called SightPlayer!"); | ||
1460 | |||
1461 | if (ob->temp2) | ||
1462 | { | ||
1463 | // | ||
1464 | // count down reaction time | ||
1465 | // | ||
1466 | ob->temp2 -= (short) tics; | ||
1467 | if (ob->temp2 > 0) | ||
1468 | return false; | ||
1469 | ob->temp2 = 0; // time to react | ||
1470 | } | ||
1471 | else | ||
1472 | { | ||
1473 | if (!areabyplayer[ob->areanumber]) | ||
1474 | return false; | ||
1475 | |||
1476 | if (ob->flags & FL_AMBUSH) | ||
1477 | { | ||
1478 | if (!CheckSight (ob)) | ||
1479 | return false; | ||
1480 | ob->flags &= ~FL_AMBUSH; | ||
1481 | } | ||
1482 | else | ||
1483 | { | ||
1484 | if (!madenoise && !CheckSight (ob)) | ||
1485 | return false; | ||
1486 | } | ||
1487 | |||
1488 | |||
1489 | switch (ob->obclass) | ||
1490 | { | ||
1491 | case guardobj: | ||
1492 | ob->temp2 = 1+US_RndT()/4; | ||
1493 | break; | ||
1494 | case officerobj: | ||
1495 | ob->temp2 = 2; | ||
1496 | break; | ||
1497 | case mutantobj: | ||
1498 | ob->temp2 = 1+US_RndT()/6; | ||
1499 | break; | ||
1500 | case ssobj: | ||
1501 | ob->temp2 = 1+US_RndT()/6; | ||
1502 | break; | ||
1503 | case dogobj: | ||
1504 | ob->temp2 = 1+US_RndT()/8; | ||
1505 | break; | ||
1506 | |||
1507 | case bossobj: | ||
1508 | case schabbobj: | ||
1509 | case fakeobj: | ||
1510 | case mechahitlerobj: | ||
1511 | case realhitlerobj: | ||
1512 | case gretelobj: | ||
1513 | case giftobj: | ||
1514 | case fatobj: | ||
1515 | case spectreobj: | ||
1516 | case angelobj: | ||
1517 | case transobj: | ||
1518 | case uberobj: | ||
1519 | case willobj: | ||
1520 | case deathobj: | ||
1521 | ob->temp2 = 1; | ||
1522 | break; | ||
1523 | } | ||
1524 | return false; | ||
1525 | } | ||
1526 | |||
1527 | FirstSighting (ob); | ||
1528 | |||
1529 | return true; | ||
1530 | } | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wl_text.c b/apps/plugins/sdl/progs/wolf3d/wl_text.c new file mode 100644 index 0000000000..d51117b836 --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wl_text.c | |||
@@ -0,0 +1,859 @@ | |||
1 | // WL_TEXT.C | ||
2 | |||
3 | #include "wl_def.h" | ||
4 | #pragma hdrstop | ||
5 | |||
6 | /* | ||
7 | ============================================================================= | ||
8 | |||
9 | TEXT FORMATTING COMMANDS | ||
10 | ------------------------ | ||
11 | ^C<hex digit> Change text color | ||
12 | ^E[enter] End of layout (all pages) | ||
13 | ^G<y>,<x>,<pic>[enter] Draw a graphic and push margins | ||
14 | ^P[enter] start new page, must be the first chars in a layout | ||
15 | ^L<x>,<y>[ENTER] Locate to a specific spot, x in pixels, y in lines | ||
16 | |||
17 | ============================================================================= | ||
18 | */ | ||
19 | |||
20 | /* | ||
21 | ============================================================================= | ||
22 | |||
23 | LOCAL CONSTANTS | ||
24 | |||
25 | ============================================================================= | ||
26 | */ | ||
27 | |||
28 | #ifndef SPEAR | ||
29 | |||
30 | #define BACKCOLOR 0x11 | ||
31 | |||
32 | |||
33 | #define WORDLIMIT 80 | ||
34 | #define FONTHEIGHT 10 | ||
35 | #define TOPMARGIN 16 | ||
36 | #define BOTTOMMARGIN 32 | ||
37 | #define LEFTMARGIN 16 | ||
38 | #define RIGHTMARGIN 16 | ||
39 | #define PICMARGIN 8 | ||
40 | #define TEXTROWS ((200-TOPMARGIN-BOTTOMMARGIN)/FONTHEIGHT) | ||
41 | #define SPACEWIDTH 7 | ||
42 | #define SCREENPIXWIDTH 320 | ||
43 | #define SCREENMID (SCREENPIXWIDTH/2) | ||
44 | |||
45 | /* | ||
46 | ============================================================================= | ||
47 | |||
48 | LOCAL VARIABLES | ||
49 | |||
50 | ============================================================================= | ||
51 | */ | ||
52 | |||
53 | static int pagenum; | ||
54 | static int numpages; | ||
55 | |||
56 | static unsigned leftmargin[TEXTROWS]; | ||
57 | static unsigned rightmargin[TEXTROWS]; | ||
58 | static char* text; | ||
59 | static unsigned rowon; | ||
60 | |||
61 | static int picx; | ||
62 | static int picy; | ||
63 | static int picnum; | ||
64 | static int picdelay; | ||
65 | static boolean layoutdone; | ||
66 | |||
67 | //=========================================================================== | ||
68 | |||
69 | #ifndef JAPAN | ||
70 | /* | ||
71 | ===================== | ||
72 | = | ||
73 | = RipToEOL | ||
74 | = | ||
75 | ===================== | ||
76 | */ | ||
77 | |||
78 | void RipToEOL (void) | ||
79 | { | ||
80 | while (*text++ != '\n') // scan to end of line | ||
81 | ; | ||
82 | } | ||
83 | |||
84 | |||
85 | /* | ||
86 | ===================== | ||
87 | = | ||
88 | = ParseNumber | ||
89 | = | ||
90 | ===================== | ||
91 | */ | ||
92 | |||
93 | int ParseNumber (void) | ||
94 | { | ||
95 | char ch; | ||
96 | char num[80]; | ||
97 | char *numptr; | ||
98 | |||
99 | // | ||
100 | // scan until a number is found | ||
101 | // | ||
102 | ch = *text; | ||
103 | while (ch < '0' || ch >'9') | ||
104 | ch = *++text; | ||
105 | |||
106 | // | ||
107 | // copy the number out | ||
108 | // | ||
109 | numptr = num; | ||
110 | do | ||
111 | { | ||
112 | *numptr++ = ch; | ||
113 | ch = *++text; | ||
114 | } while (ch >= '0' && ch <= '9'); | ||
115 | *numptr = 0; | ||
116 | |||
117 | return atoi (num); | ||
118 | } | ||
119 | |||
120 | |||
121 | |||
122 | /* | ||
123 | ===================== | ||
124 | = | ||
125 | = ParsePicCommand | ||
126 | = | ||
127 | = Call with text pointing just after a ^P | ||
128 | = Upon exit text points to the start of next line | ||
129 | = | ||
130 | ===================== | ||
131 | */ | ||
132 | |||
133 | void ParsePicCommand (void) | ||
134 | { | ||
135 | picy=ParseNumber(); | ||
136 | picx=ParseNumber(); | ||
137 | picnum=ParseNumber(); | ||
138 | RipToEOL (); | ||
139 | } | ||
140 | |||
141 | |||
142 | void ParseTimedCommand (void) | ||
143 | { | ||
144 | picy=ParseNumber(); | ||
145 | picx=ParseNumber(); | ||
146 | picnum=ParseNumber(); | ||
147 | picdelay=ParseNumber(); | ||
148 | RipToEOL (); | ||
149 | } | ||
150 | |||
151 | |||
152 | /* | ||
153 | ===================== | ||
154 | = | ||
155 | = TimedPicCommand | ||
156 | = | ||
157 | = Call with text pointing just after a ^P | ||
158 | = Upon exit text points to the start of next line | ||
159 | = | ||
160 | ===================== | ||
161 | */ | ||
162 | |||
163 | void TimedPicCommand (void) | ||
164 | { | ||
165 | ParseTimedCommand (); | ||
166 | |||
167 | // | ||
168 | // update the screen, and wait for time delay | ||
169 | // | ||
170 | VW_UpdateScreen (); | ||
171 | |||
172 | // | ||
173 | // wait for time | ||
174 | // | ||
175 | Delay(picdelay); | ||
176 | |||
177 | // | ||
178 | // draw pic | ||
179 | // | ||
180 | VWB_DrawPic (picx&~7,picy,picnum); | ||
181 | } | ||
182 | |||
183 | |||
184 | /* | ||
185 | ===================== | ||
186 | = | ||
187 | = HandleCommand | ||
188 | = | ||
189 | ===================== | ||
190 | */ | ||
191 | |||
192 | void HandleCommand (void) | ||
193 | { | ||
194 | int i,margin,top,bottom; | ||
195 | int picwidth,picheight,picmid; | ||
196 | |||
197 | switch (toupper(*++text)) | ||
198 | { | ||
199 | case 'B': | ||
200 | picy=ParseNumber(); | ||
201 | picx=ParseNumber(); | ||
202 | picwidth=ParseNumber(); | ||
203 | picheight=ParseNumber(); | ||
204 | VWB_Bar(picx,picy,picwidth,picheight,BACKCOLOR); | ||
205 | RipToEOL(); | ||
206 | break; | ||
207 | case ';': // comment | ||
208 | RipToEOL(); | ||
209 | break; | ||
210 | case 'P': // ^P is start of next page, ^E is end of file | ||
211 | case 'E': | ||
212 | layoutdone = true; | ||
213 | text--; // back up to the '^' | ||
214 | break; | ||
215 | |||
216 | case 'C': // ^c<hex digit> changes text color | ||
217 | i = toupper(*++text); | ||
218 | if (i>='0' && i<='9') | ||
219 | fontcolor = i-'0'; | ||
220 | else if (i>='A' && i<='F') | ||
221 | fontcolor = i-'A'+10; | ||
222 | |||
223 | fontcolor *= 16; | ||
224 | i = toupper(*++text); | ||
225 | if (i>='0' && i<='9') | ||
226 | fontcolor += i-'0'; | ||
227 | else if (i>='A' && i<='F') | ||
228 | fontcolor += i-'A'+10; | ||
229 | text++; | ||
230 | break; | ||
231 | |||
232 | case '>': | ||
233 | px = 160; | ||
234 | text++; | ||
235 | break; | ||
236 | |||
237 | case 'L': | ||
238 | py=ParseNumber(); | ||
239 | rowon = (py-TOPMARGIN)/FONTHEIGHT; | ||
240 | py = TOPMARGIN+rowon*FONTHEIGHT; | ||
241 | px=ParseNumber(); | ||
242 | while (*text++ != '\n') // scan to end of line | ||
243 | ; | ||
244 | break; | ||
245 | |||
246 | case 'T': // ^Tyyy,xxx,ppp,ttt waits ttt tics, then draws pic | ||
247 | TimedPicCommand (); | ||
248 | break; | ||
249 | |||
250 | case 'G': // ^Gyyy,xxx,ppp draws graphic | ||
251 | ParsePicCommand (); | ||
252 | VWB_DrawPic (picx&~7,picy,picnum); | ||
253 | picwidth = pictable[picnum-STARTPICS].width; | ||
254 | picheight = pictable[picnum-STARTPICS].height; | ||
255 | // | ||
256 | // adjust margins | ||
257 | // | ||
258 | picmid = picx + picwidth/2; | ||
259 | if (picmid > SCREENMID) | ||
260 | margin = picx-PICMARGIN; // new right margin | ||
261 | else | ||
262 | margin = picx+picwidth+PICMARGIN; // new left margin | ||
263 | |||
264 | top = (picy-TOPMARGIN)/FONTHEIGHT; | ||
265 | if (top<0) | ||
266 | top = 0; | ||
267 | bottom = (picy+picheight-TOPMARGIN)/FONTHEIGHT; | ||
268 | if (bottom>=TEXTROWS) | ||
269 | bottom = TEXTROWS-1; | ||
270 | |||
271 | for (i=top;i<=bottom;i++) | ||
272 | if (picmid > SCREENMID) | ||
273 | rightmargin[i] = margin; | ||
274 | else | ||
275 | leftmargin[i] = margin; | ||
276 | |||
277 | // | ||
278 | // adjust this line if needed | ||
279 | // | ||
280 | if (px < (int) leftmargin[rowon]) | ||
281 | px = leftmargin[rowon]; | ||
282 | break; | ||
283 | } | ||
284 | } | ||
285 | |||
286 | |||
287 | /* | ||
288 | ===================== | ||
289 | = | ||
290 | = NewLine | ||
291 | = | ||
292 | ===================== | ||
293 | */ | ||
294 | |||
295 | void NewLine (void) | ||
296 | { | ||
297 | char ch; | ||
298 | |||
299 | if (++rowon == TEXTROWS) | ||
300 | { | ||
301 | // | ||
302 | // overflowed the page, so skip until next page break | ||
303 | // | ||
304 | layoutdone = true; | ||
305 | do | ||
306 | { | ||
307 | if (*text == '^') | ||
308 | { | ||
309 | ch = toupper(*(text+1)); | ||
310 | if (ch == 'E' || ch == 'P') | ||
311 | { | ||
312 | layoutdone = true; | ||
313 | return; | ||
314 | } | ||
315 | } | ||
316 | text++; | ||
317 | } while (1); | ||
318 | } | ||
319 | px = leftmargin[rowon]; | ||
320 | py+= FONTHEIGHT; | ||
321 | } | ||
322 | |||
323 | |||
324 | |||
325 | /* | ||
326 | ===================== | ||
327 | = | ||
328 | = HandleCtrls | ||
329 | = | ||
330 | ===================== | ||
331 | */ | ||
332 | |||
333 | void HandleCtrls (void) | ||
334 | { | ||
335 | char ch; | ||
336 | |||
337 | ch = *text++; // get the character and advance | ||
338 | |||
339 | if (ch == '\n') | ||
340 | { | ||
341 | NewLine (); | ||
342 | return; | ||
343 | } | ||
344 | } | ||
345 | |||
346 | |||
347 | /* | ||
348 | ===================== | ||
349 | = | ||
350 | = HandleWord | ||
351 | = | ||
352 | ===================== | ||
353 | */ | ||
354 | |||
355 | void HandleWord (void) | ||
356 | { | ||
357 | char wword[WORDLIMIT]; | ||
358 | int wordindex; | ||
359 | word wwidth,wheight,newpos; | ||
360 | |||
361 | |||
362 | // | ||
363 | // copy the next word into [word] | ||
364 | // | ||
365 | wword[0] = *text++; | ||
366 | wordindex = 1; | ||
367 | while (*text>32) | ||
368 | { | ||
369 | wword[wordindex] = *text++; | ||
370 | if (++wordindex == WORDLIMIT) | ||
371 | Quit ("PageLayout: Word limit exceeded"); | ||
372 | } | ||
373 | wword[wordindex] = 0; // stick a null at end for C | ||
374 | |||
375 | // | ||
376 | // see if it fits on this line | ||
377 | // | ||
378 | VW_MeasurePropString (wword,&wwidth,&wheight); | ||
379 | |||
380 | while (px+wwidth > (int) rightmargin[rowon]) | ||
381 | { | ||
382 | NewLine (); | ||
383 | if (layoutdone) | ||
384 | return; // overflowed page | ||
385 | } | ||
386 | |||
387 | // | ||
388 | // print it | ||
389 | // | ||
390 | newpos = px+wwidth; | ||
391 | VWB_DrawPropString (wword); | ||
392 | px = newpos; | ||
393 | |||
394 | // | ||
395 | // suck up any extra spaces | ||
396 | // | ||
397 | while (*text == ' ') | ||
398 | { | ||
399 | px += SPACEWIDTH; | ||
400 | text++; | ||
401 | } | ||
402 | } | ||
403 | |||
404 | /* | ||
405 | ===================== | ||
406 | = | ||
407 | = PageLayout | ||
408 | = | ||
409 | = Clears the screen, draws the pics on the page, and word wraps the text. | ||
410 | = Returns a pointer to the terminating command | ||
411 | = | ||
412 | ===================== | ||
413 | */ | ||
414 | |||
415 | void PageLayout (boolean shownumber) | ||
416 | { | ||
417 | int i,oldfontcolor; | ||
418 | char ch; | ||
419 | |||
420 | oldfontcolor = fontcolor; | ||
421 | |||
422 | fontcolor = 0; | ||
423 | |||
424 | // | ||
425 | // clear the screen | ||
426 | // | ||
427 | VWB_Bar (0,0,320,200,BACKCOLOR); | ||
428 | VWB_DrawPic (0,0,H_TOPWINDOWPIC); | ||
429 | VWB_DrawPic (0,8,H_LEFTWINDOWPIC); | ||
430 | VWB_DrawPic (312,8,H_RIGHTWINDOWPIC); | ||
431 | VWB_DrawPic (8,176,H_BOTTOMINFOPIC); | ||
432 | |||
433 | |||
434 | for (i=0; i<TEXTROWS; i++) | ||
435 | { | ||
436 | leftmargin[i] = LEFTMARGIN; | ||
437 | rightmargin[i] = SCREENPIXWIDTH-RIGHTMARGIN; | ||
438 | } | ||
439 | |||
440 | px = LEFTMARGIN; | ||
441 | py = TOPMARGIN; | ||
442 | rowon = 0; | ||
443 | layoutdone = false; | ||
444 | |||
445 | // | ||
446 | // make sure we are starting layout text (^P first command) | ||
447 | // | ||
448 | while (*text <= 32) | ||
449 | text++; | ||
450 | |||
451 | if (*text != '^' || toupper(*++text) != 'P') | ||
452 | Quit ("PageLayout: Text not headed with ^P"); | ||
453 | |||
454 | while (*text++ != '\n') | ||
455 | ; | ||
456 | |||
457 | |||
458 | // | ||
459 | // process text stream | ||
460 | // | ||
461 | do | ||
462 | { | ||
463 | ch = *text; | ||
464 | |||
465 | if (ch == '^') | ||
466 | HandleCommand (); | ||
467 | else | ||
468 | if (ch == 9) | ||
469 | { | ||
470 | px = (px+8)&0xf8; | ||
471 | text++; | ||
472 | } | ||
473 | else if (ch <= 32) | ||
474 | HandleCtrls (); | ||
475 | else | ||
476 | HandleWord (); | ||
477 | |||
478 | } while (!layoutdone); | ||
479 | |||
480 | pagenum++; | ||
481 | |||
482 | if (shownumber) | ||
483 | { | ||
484 | #ifdef SPANISH | ||
485 | sprintf(str, "Hoja %d de %d", pagenum, numpages); | ||
486 | px = 208; | ||
487 | #else | ||
488 | sprintf(str, "pg %d of %d", pagenum, numpages); | ||
489 | px = 213; | ||
490 | #endif | ||
491 | py = 183; | ||
492 | fontcolor = 0x4f; //12^BACKCOLOR; | ||
493 | |||
494 | VWB_DrawPropString (str); | ||
495 | } | ||
496 | |||
497 | fontcolor = oldfontcolor; | ||
498 | } | ||
499 | |||
500 | //=========================================================================== | ||
501 | |||
502 | /* | ||
503 | ===================== | ||
504 | = | ||
505 | = BackPage | ||
506 | = | ||
507 | = Scans for a previous ^P | ||
508 | = | ||
509 | ===================== | ||
510 | */ | ||
511 | |||
512 | void BackPage (void) | ||
513 | { | ||
514 | pagenum--; | ||
515 | do | ||
516 | { | ||
517 | text--; | ||
518 | if (*text == '^' && toupper(*(text+1)) == 'P') | ||
519 | return; | ||
520 | } while (1); | ||
521 | } | ||
522 | |||
523 | |||
524 | //=========================================================================== | ||
525 | |||
526 | |||
527 | /* | ||
528 | ===================== | ||
529 | = | ||
530 | = CacheLayoutGraphics | ||
531 | = | ||
532 | = Scans an entire layout file (until a ^E) marking all graphics used, and | ||
533 | = counting pages, then caches the graphics in | ||
534 | = | ||
535 | ===================== | ||
536 | */ | ||
537 | void CacheLayoutGraphics (void) | ||
538 | { | ||
539 | char *bombpoint, *textstart; | ||
540 | char ch; | ||
541 | |||
542 | textstart = text; | ||
543 | bombpoint = text+30000; | ||
544 | numpages = pagenum = 0; | ||
545 | |||
546 | do | ||
547 | { | ||
548 | if (*text == '^') | ||
549 | { | ||
550 | ch = toupper(*++text); | ||
551 | if (ch == 'P') // start of a page | ||
552 | numpages++; | ||
553 | if (ch == 'E') // end of file, so load graphics and return | ||
554 | { | ||
555 | #ifndef SPEAR | ||
556 | CA_CacheGrChunk(H_TOPWINDOWPIC); | ||
557 | CA_CacheGrChunk(H_LEFTWINDOWPIC); | ||
558 | CA_CacheGrChunk(H_RIGHTWINDOWPIC); | ||
559 | CA_CacheGrChunk(H_BOTTOMINFOPIC); | ||
560 | #endif | ||
561 | // CA_CacheMarks (); | ||
562 | text = textstart; | ||
563 | return; | ||
564 | } | ||
565 | if (ch == 'G') // draw graphic command, so mark graphics | ||
566 | { | ||
567 | ParsePicCommand (); | ||
568 | CA_CacheGrChunk (picnum); | ||
569 | } | ||
570 | if (ch == 'T') // timed draw graphic command, so mark graphics | ||
571 | { | ||
572 | ParseTimedCommand (); | ||
573 | CA_CacheGrChunk (picnum); | ||
574 | } | ||
575 | } | ||
576 | else | ||
577 | text++; | ||
578 | |||
579 | } while (text<bombpoint); | ||
580 | |||
581 | Quit ("CacheLayoutGraphics: No ^E to terminate file!"); | ||
582 | } | ||
583 | #endif | ||
584 | |||
585 | |||
586 | /* | ||
587 | ===================== | ||
588 | = | ||
589 | = ShowArticle | ||
590 | = | ||
591 | ===================== | ||
592 | */ | ||
593 | |||
594 | #ifdef JAPAN | ||
595 | void ShowArticle (int which) | ||
596 | #else | ||
597 | void ShowArticle (char *article) | ||
598 | #endif | ||
599 | { | ||
600 | #ifdef JAPAN | ||
601 | int snames[10] = { | ||
602 | H_HELP1PIC, | ||
603 | H_HELP2PIC, | ||
604 | H_HELP3PIC, | ||
605 | H_HELP4PIC, | ||
606 | H_HELP5PIC, | ||
607 | H_HELP6PIC, | ||
608 | H_HELP7PIC, | ||
609 | H_HELP8PIC, | ||
610 | H_HELP9PIC, | ||
611 | H_HELP10PIC}; | ||
612 | int enames[14] = { | ||
613 | 0,0, | ||
614 | #ifndef JAPDEMO | ||
615 | C_ENDGAME1APIC, | ||
616 | C_ENDGAME1BPIC, | ||
617 | C_ENDGAME2APIC, | ||
618 | C_ENDGAME2BPIC, | ||
619 | C_ENDGAME3APIC, | ||
620 | C_ENDGAME3BPIC, | ||
621 | C_ENDGAME4APIC, | ||
622 | C_ENDGAME4BPIC, | ||
623 | C_ENDGAME5APIC, | ||
624 | C_ENDGAME5BPIC, | ||
625 | C_ENDGAME6APIC, | ||
626 | C_ENDGAME6BPIC | ||
627 | #endif | ||
628 | }; | ||
629 | #endif | ||
630 | unsigned oldfontnumber; | ||
631 | boolean newpage,firstpage; | ||
632 | ControlInfo ci; | ||
633 | |||
634 | #ifdef JAPAN | ||
635 | pagenum = 1; | ||
636 | if (!which) | ||
637 | numpages = 10; | ||
638 | else | ||
639 | numpages = 2; | ||
640 | #else | ||
641 | text = article; | ||
642 | oldfontnumber = fontnumber; | ||
643 | fontnumber = 0; | ||
644 | CA_CacheGrChunk(STARTFONT); | ||
645 | VWB_Bar (0,0,320,200,BACKCOLOR); | ||
646 | CacheLayoutGraphics (); | ||
647 | #endif | ||
648 | |||
649 | newpage = true; | ||
650 | firstpage = true; | ||
651 | |||
652 | do | ||
653 | { | ||
654 | if (newpage) | ||
655 | { | ||
656 | newpage = false; | ||
657 | #ifdef JAPAN | ||
658 | if (!which) | ||
659 | CA_CacheScreen(snames[pagenum - 1]); | ||
660 | else | ||
661 | CA_CacheScreen(enames[which*2 + pagenum - 1]); | ||
662 | #else | ||
663 | PageLayout (true); | ||
664 | #endif | ||
665 | VW_UpdateScreen (); | ||
666 | if (firstpage) | ||
667 | { | ||
668 | VL_FadeIn(0,255,gamepal,10); | ||
669 | firstpage = false; | ||
670 | } | ||
671 | } | ||
672 | SDL_Delay(5); | ||
673 | |||
674 | LastScan = 0; | ||
675 | ReadAnyControl(&ci); | ||
676 | Direction dir = ci.dir; | ||
677 | switch(dir) | ||
678 | { | ||
679 | case dir_North: | ||
680 | case dir_South: | ||
681 | break; | ||
682 | |||
683 | default: | ||
684 | if(ci.button0) dir = dir_South; | ||
685 | switch(LastScan) | ||
686 | { | ||
687 | case sc_UpArrow: | ||
688 | case sc_PgUp: | ||
689 | case sc_LeftArrow: | ||
690 | dir = dir_North; | ||
691 | break; | ||
692 | |||
693 | case sc_Enter: | ||
694 | case sc_DownArrow: | ||
695 | case sc_PgDn: | ||
696 | case sc_RightArrow: | ||
697 | dir = dir_South; | ||
698 | break; | ||
699 | } | ||
700 | break; | ||
701 | } | ||
702 | |||
703 | switch(dir) | ||
704 | { | ||
705 | case dir_North: | ||
706 | case dir_West: | ||
707 | if (pagenum>1) | ||
708 | { | ||
709 | #ifndef JAPAN | ||
710 | BackPage (); | ||
711 | BackPage (); | ||
712 | #else | ||
713 | pagenum--; | ||
714 | #endif | ||
715 | newpage = true; | ||
716 | } | ||
717 | TicDelay(20); | ||
718 | break; | ||
719 | |||
720 | case dir_South: | ||
721 | case dir_East: | ||
722 | if (pagenum<numpages) | ||
723 | { | ||
724 | newpage = true; | ||
725 | #ifdef JAPAN | ||
726 | pagenum++; | ||
727 | #endif | ||
728 | } | ||
729 | TicDelay(20); | ||
730 | break; | ||
731 | } | ||
732 | } while (LastScan != sc_Escape && !ci.button1); | ||
733 | |||
734 | IN_ClearKeysDown (); | ||
735 | fontnumber = oldfontnumber; | ||
736 | } | ||
737 | |||
738 | |||
739 | //=========================================================================== | ||
740 | |||
741 | #ifndef JAPAN | ||
742 | #ifdef ARTSEXTERN | ||
743 | int endextern = T_ENDART1; | ||
744 | #ifndef SPEAR | ||
745 | int helpextern = T_HELPART; | ||
746 | #endif | ||
747 | #endif | ||
748 | char helpfilename[13] = "HELPART.", | ||
749 | endfilename[13] = "ENDART1."; | ||
750 | #endif | ||
751 | |||
752 | /* | ||
753 | ================= | ||
754 | = | ||
755 | = HelpScreens | ||
756 | = | ||
757 | ================= | ||
758 | */ | ||
759 | #ifndef SPEAR | ||
760 | void HelpScreens (void) | ||
761 | { | ||
762 | int artnum; | ||
763 | char *text; | ||
764 | #ifndef ARTSEXTERN | ||
765 | memptr layout; | ||
766 | #endif | ||
767 | |||
768 | |||
769 | // CA_UpLevel (); | ||
770 | // MM_SortMem (); | ||
771 | #ifdef JAPAN | ||
772 | ShowArticle (0); | ||
773 | VW_FadeOut(); | ||
774 | FreeMusic (); | ||
775 | CA_DownLevel (); | ||
776 | MM_SortMem (); | ||
777 | #else | ||
778 | |||
779 | #ifdef ARTSEXTERN | ||
780 | artnum = helpextern; | ||
781 | CA_CacheGrChunk (artnum); | ||
782 | text = (char *)grsegs[artnum]; | ||
783 | #else | ||
784 | CA_LoadFile (helpfilename,&layout); | ||
785 | text = (char *)layout; | ||
786 | #endif | ||
787 | |||
788 | ShowArticle (text); | ||
789 | |||
790 | #ifdef ARTSEXTERN | ||
791 | UNCACHEGRCHUNK(artnum); | ||
792 | #else | ||
793 | free(layout); | ||
794 | #endif | ||
795 | |||
796 | VW_FadeOut(); | ||
797 | |||
798 | FreeMusic (); | ||
799 | #endif | ||
800 | } | ||
801 | #endif | ||
802 | |||
803 | // | ||
804 | // END ARTICLES | ||
805 | // | ||
806 | void EndText (void) | ||
807 | { | ||
808 | int artnum; | ||
809 | char *text; | ||
810 | #ifndef ARTSEXTERN | ||
811 | memptr layout; | ||
812 | #endif | ||
813 | |||
814 | ClearMemory (); | ||
815 | |||
816 | #ifdef JAPAN | ||
817 | ShowArticle(gamestate.episode + 1); | ||
818 | |||
819 | VW_FadeOut(); | ||
820 | |||
821 | SETFONTCOLOR(0,15); | ||
822 | IN_ClearKeysDown(); | ||
823 | if (MousePresent && IN_IsInputGrabbed()) | ||
824 | IN_CenterMouse(); // Clear accumulated mouse movement | ||
825 | |||
826 | FreeMusic (); | ||
827 | #else | ||
828 | |||
829 | |||
830 | |||
831 | #ifdef ARTSEXTERN | ||
832 | artnum = endextern+gamestate.episode; | ||
833 | CA_CacheGrChunk (artnum); | ||
834 | text = (char *)grsegs[artnum]; | ||
835 | #else | ||
836 | endfilename[6] = '1'+gamestate.episode; | ||
837 | CA_LoadFile (endfilename,&layout); | ||
838 | text = (char *)layout; | ||
839 | #endif | ||
840 | |||
841 | ShowArticle (text); | ||
842 | |||
843 | #ifdef ARTSEXTERN | ||
844 | UNCACHEGRCHUNK(artnum); | ||
845 | #else | ||
846 | free(layout); | ||
847 | #endif | ||
848 | |||
849 | |||
850 | VW_FadeOut(); | ||
851 | SETFONTCOLOR(0,15); | ||
852 | IN_ClearKeysDown(); | ||
853 | if (MousePresent && IN_IsInputGrabbed()) | ||
854 | IN_CenterMouse(); // Clear accumulated mouse movement | ||
855 | |||
856 | FreeMusic (); | ||
857 | #endif | ||
858 | } | ||
859 | #endif | ||
diff --git a/apps/plugins/sdl/progs/wolf3d/wolfpal.inc b/apps/plugins/sdl/progs/wolf3d/wolfpal.inc new file mode 100644 index 0000000000..1d087ff7ff --- /dev/null +++ b/apps/plugins/sdl/progs/wolf3d/wolfpal.inc | |||
@@ -0,0 +1,52 @@ | |||
1 | RGB( 0, 0, 0),RGB( 0, 0, 42),RGB( 0, 42, 0),RGB( 0, 42, 42),RGB( 42, 0, 0), | ||
2 | RGB( 42, 0, 42),RGB( 42, 21, 0),RGB( 42, 42, 42),RGB( 21, 21, 21),RGB( 21, 21, 63), | ||
3 | RGB( 21, 63, 21),RGB( 21, 63, 63),RGB( 63, 21, 21),RGB( 63, 21, 63),RGB( 63, 63, 21), | ||
4 | RGB( 63, 63, 63),RGB( 59, 59, 59),RGB( 55, 55, 55),RGB( 52, 52, 52),RGB( 48, 48, 48), | ||
5 | RGB( 45, 45, 45),RGB( 42, 42, 42),RGB( 38, 38, 38),RGB( 35, 35, 35),RGB( 31, 31, 31), | ||
6 | RGB( 28, 28, 28),RGB( 25, 25, 25),RGB( 21, 21, 21),RGB( 18, 18, 18),RGB( 14, 14, 14), | ||
7 | RGB( 11, 11, 11),RGB( 8, 8, 8),RGB( 63, 0, 0),RGB( 59, 0, 0),RGB( 56, 0, 0), | ||
8 | RGB( 53, 0, 0),RGB( 50, 0, 0),RGB( 47, 0, 0),RGB( 44, 0, 0),RGB( 41, 0, 0), | ||
9 | RGB( 38, 0, 0),RGB( 34, 0, 0),RGB( 31, 0, 0),RGB( 28, 0, 0),RGB( 25, 0, 0), | ||
10 | RGB( 22, 0, 0),RGB( 19, 0, 0),RGB( 16, 0, 0),RGB( 63, 54, 54),RGB( 63, 46, 46), | ||
11 | RGB( 63, 39, 39),RGB( 63, 31, 31),RGB( 63, 23, 23),RGB( 63, 16, 16),RGB( 63, 8, 8), | ||
12 | RGB( 63, 0, 0),RGB( 63, 42, 23),RGB( 63, 38, 16),RGB( 63, 34, 8),RGB( 63, 30, 0), | ||
13 | RGB( 57, 27, 0),RGB( 51, 24, 0),RGB( 45, 21, 0),RGB( 39, 19, 0),RGB( 63, 63, 54), | ||
14 | RGB( 63, 63, 46),RGB( 63, 63, 39),RGB( 63, 63, 31),RGB( 63, 62, 23),RGB( 63, 61, 16), | ||
15 | RGB( 63, 61, 8),RGB( 63, 61, 0),RGB( 57, 54, 0),RGB( 51, 49, 0),RGB( 45, 43, 0), | ||
16 | RGB( 39, 39, 0),RGB( 33, 33, 0),RGB( 28, 27, 0),RGB( 22, 21, 0),RGB( 16, 16, 0), | ||
17 | RGB( 52, 63, 23),RGB( 49, 63, 16),RGB( 45, 63, 8),RGB( 40, 63, 0),RGB( 36, 57, 0), | ||
18 | RGB( 32, 51, 0),RGB( 29, 45, 0),RGB( 24, 39, 0),RGB( 54, 63, 54),RGB( 47, 63, 46), | ||
19 | RGB( 39, 63, 39),RGB( 32, 63, 31),RGB( 24, 63, 23),RGB( 16, 63, 16),RGB( 8, 63, 8), | ||
20 | RGB( 0, 63, 0),RGB( 0, 63, 0),RGB( 0, 59, 0),RGB( 0, 56, 0),RGB( 0, 53, 0), | ||
21 | RGB( 1, 50, 0),RGB( 1, 47, 0),RGB( 1, 44, 0),RGB( 1, 41, 0),RGB( 1, 38, 0), | ||
22 | RGB( 1, 34, 0),RGB( 1, 31, 0),RGB( 1, 28, 0),RGB( 1, 25, 0),RGB( 1, 22, 0), | ||
23 | RGB( 1, 19, 0),RGB( 1, 16, 0),RGB( 54, 63, 63),RGB( 46, 63, 63),RGB( 39, 63, 63), | ||
24 | RGB( 31, 63, 62),RGB( 23, 63, 63),RGB( 16, 63, 63),RGB( 8, 63, 63),RGB( 0, 63, 63), | ||
25 | RGB( 0, 57, 57),RGB( 0, 51, 51),RGB( 0, 45, 45),RGB( 0, 39, 39),RGB( 0, 33, 33), | ||
26 | RGB( 0, 28, 28),RGB( 0, 22, 22),RGB( 0, 16, 16),RGB( 23, 47, 63),RGB( 16, 44, 63), | ||
27 | RGB( 8, 42, 63),RGB( 0, 39, 63),RGB( 0, 35, 57),RGB( 0, 31, 51),RGB( 0, 27, 45), | ||
28 | RGB( 0, 23, 39),RGB( 54, 54, 63),RGB( 46, 47, 63),RGB( 39, 39, 63),RGB( 31, 32, 63), | ||
29 | RGB( 23, 24, 63),RGB( 16, 16, 63),RGB( 8, 9, 63),RGB( 0, 1, 63),RGB( 0, 0, 63), | ||
30 | RGB( 0, 0, 59),RGB( 0, 0, 56),RGB( 0, 0, 53),RGB( 0, 0, 50),RGB( 0, 0, 47), | ||
31 | RGB( 0, 0, 44),RGB( 0, 0, 41),RGB( 0, 0, 38),RGB( 0, 0, 34),RGB( 0, 0, 31), | ||
32 | RGB( 0, 0, 28),RGB( 0, 0, 25),RGB( 0, 0, 22),RGB( 0, 0, 19),RGB( 0, 0, 16), | ||
33 | RGB( 10, 10, 10),RGB( 63, 56, 13),RGB( 63, 53, 9),RGB( 63, 51, 6),RGB( 63, 48, 2), | ||
34 | RGB( 63, 45, 0),RGB( 45, 8, 63),RGB( 42, 0, 63),RGB( 38, 0, 57),RGB( 32, 0, 51), | ||
35 | RGB( 29, 0, 45),RGB( 24, 0, 39),RGB( 20, 0, 33),RGB( 17, 0, 28),RGB( 13, 0, 22), | ||
36 | RGB( 10, 0, 16),RGB( 63, 54, 63),RGB( 63, 46, 63),RGB( 63, 39, 63),RGB( 63, 31, 63), | ||
37 | RGB( 63, 23, 63),RGB( 63, 16, 63),RGB( 63, 8, 63),RGB( 63, 0, 63),RGB( 56, 0, 57), | ||
38 | RGB( 50, 0, 51),RGB( 45, 0, 45),RGB( 39, 0, 39),RGB( 33, 0, 33),RGB( 27, 0, 28), | ||
39 | RGB( 22, 0, 22),RGB( 16, 0, 16),RGB( 63, 58, 55),RGB( 63, 56, 52),RGB( 63, 54, 49), | ||
40 | RGB( 63, 53, 47),RGB( 63, 51, 44),RGB( 63, 49, 41),RGB( 63, 47, 39),RGB( 63, 46, 36), | ||
41 | RGB( 63, 44, 32),RGB( 63, 41, 28),RGB( 63, 39, 24),RGB( 60, 37, 23),RGB( 58, 35, 22), | ||
42 | RGB( 55, 34, 21),RGB( 52, 32, 20),RGB( 50, 31, 19),RGB( 47, 30, 18),RGB( 45, 28, 17), | ||
43 | RGB( 42, 26, 16),RGB( 40, 25, 15),RGB( 39, 24, 14),RGB( 36, 23, 13),RGB( 34, 22, 12), | ||
44 | RGB( 32, 20, 11),RGB( 29, 19, 10),RGB( 27, 18, 9),RGB( 23, 16, 8),RGB( 21, 15, 7), | ||
45 | RGB( 18, 14, 6),RGB( 16, 12, 6),RGB( 14, 11, 5),RGB( 10, 8, 3),RGB( 24, 0, 25), | ||
46 | RGB( 0, 25, 25),RGB( 0, 24, 24),RGB( 0, 0, 7),RGB( 0, 0, 11),RGB( 12, 9, 4), | ||
47 | RGB( 18, 0, 18),RGB( 20, 0, 20),RGB( 0, 0, 13),RGB( 7, 7, 7),RGB( 19, 19, 19), | ||
48 | RGB( 23, 23, 23),RGB( 16, 16, 16),RGB( 12, 12, 12),RGB( 13, 13, 13),RGB( 54, 61, 61), | ||
49 | RGB( 46, 58, 58),RGB( 39, 55, 55),RGB( 29, 50, 50),RGB( 18, 48, 48),RGB( 8, 45, 45), | ||
50 | RGB( 8, 44, 44),RGB( 0, 41, 41),RGB( 0, 38, 38),RGB( 0, 35, 35),RGB( 0, 33, 33), | ||
51 | RGB( 0, 31, 31),RGB( 0, 30, 30),RGB( 0, 29, 29),RGB( 0, 28, 28),RGB( 0, 27, 27), | ||
52 | RGB( 38, 0, 34) | ||
diff --git a/apps/plugins/sdl/sdl.make b/apps/plugins/sdl/sdl.make index 98346389fc..871eac77d8 100644 --- a/apps/plugins/sdl/sdl.make +++ b/apps/plugins/sdl/sdl.make | |||
@@ -12,12 +12,14 @@ SDL_OBJDIR := $(BUILDDIR)/apps/plugins/sdl | |||
12 | 12 | ||
13 | SDL_SRC := $(call preprocess, $(SDL_SRCDIR)/SOURCES) | 13 | SDL_SRC := $(call preprocess, $(SDL_SRCDIR)/SOURCES) |
14 | DUKE3D_SRC := $(call preprocess, $(SDL_SRCDIR)/SOURCES.duke) | 14 | DUKE3D_SRC := $(call preprocess, $(SDL_SRCDIR)/SOURCES.duke) |
15 | WOLF3D_SRC := $(call preprocess, $(SDL_SRCDIR)/SOURCES.wolf) | ||
15 | 16 | ||
16 | SDL_OBJ := $(call c2obj, $(SDL_SRC)) | 17 | SDL_OBJ := $(call c2obj, $(SDL_SRC)) |
17 | DUKE3D_OBJ = $(call c2obj, $(DUKE3D_SRC)) | 18 | DUKE3D_OBJ = $(call c2obj, $(DUKE3D_SRC)) |
19 | WOLF3D_OBJ = $(call c2obj, $(WOLF3D_SRC)) | ||
18 | 20 | ||
19 | # add source files to OTHER_SRC to get automatic dependencies | 21 | # add source files to OTHER_SRC to get automatic dependencies |
20 | OTHER_SRC += $(SDL_SRC) $(DUKE3D_SRC) | 22 | OTHER_SRC += $(SDL_SRC) $(DUKE3D_SRC) $(WOLF3D_SRC) |
21 | OTHER_INC += -I$(SDL_SRCDIR)/include | 23 | OTHER_INC += -I$(SDL_SRCDIR)/include |
22 | 24 | ||
23 | # include comes first because of possible system SDL headers taking | 25 | # include comes first because of possible system SDL headers taking |
@@ -31,14 +33,18 @@ endif | |||
31 | 33 | ||
32 | ifndef APP_TYPE | 34 | ifndef APP_TYPE |
33 | ### no target has a big enough plugin buffer | 35 | ### no target has a big enough plugin buffer |
34 | ROCKS += $(SDL_OBJDIR)/duke3d.ovl | 36 | ROCKS += $(SDL_OBJDIR)/duke3d.ovl $(SDL_OBJDIR)/wolf3d.ovl |
35 | DUKE3D_OUTLDS = $(SDL_OBJDIR)/duke3d.link | 37 | DUKE3D_OUTLDS = $(SDL_OBJDIR)/duke3d.link |
38 | WOLF3D_OUTLDS = $(SDL_OBJDIR)/wolf3d.link | ||
36 | SDL_OVLFLAGS = -T$(DUKE3D_OUTLDS) -Wl,--gc-sections -Wl,-Map,$(basename $@).map | 39 | SDL_OVLFLAGS = -T$(DUKE3D_OUTLDS) -Wl,--gc-sections -Wl,-Map,$(basename $@).map |
37 | else | 40 | else |
38 | ### simulator | 41 | ### simulator |
39 | ROCKS += $(SDL_OBJDIR)/duke3d.rock | 42 | ROCKS += $(SDL_OBJDIR)/duke3d.rock |
43 | ROCKS += $(SDL_OBJDIR)/wolf3d.rock | ||
40 | endif | 44 | endif |
41 | 45 | ||
46 | # Duke3D | ||
47 | |||
42 | $(SDL_OBJDIR)/duke3d.rock: $(SDL_OBJ) $(DUKE3D_OBJ) $(TLSFLIB) | 48 | $(SDL_OBJDIR)/duke3d.rock: $(SDL_OBJ) $(DUKE3D_OBJ) $(TLSFLIB) |
43 | 49 | ||
44 | $(SDL_OBJDIR)/duke3d.refmap: $(SDL_OBJ) $(DUKE3D_OBJ) $(TLSFLIB) | 50 | $(SDL_OBJDIR)/duke3d.refmap: $(SDL_OBJ) $(DUKE3D_OBJ) $(TLSFLIB) |
@@ -54,6 +60,25 @@ $(SDL_OBJDIR)/duke3d.ovl: $(SDL_OBJ) $(DUKE3D_OBJ) $(TLSFLIB) $(DUKE3D_OUTLDS) | |||
54 | -lgcc $(SDL_OVLFLAGS) | 60 | -lgcc $(SDL_OVLFLAGS) |
55 | $(call PRINTS,LD $(@F))$(call objcopy,$(basename $@).elf,$@) | 61 | $(call PRINTS,LD $(@F))$(call objcopy,$(basename $@).elf,$@) |
56 | 62 | ||
63 | # Wolf3D | ||
64 | |||
65 | $(SDL_OBJDIR)/wolf3d.rock: $(SDL_OBJ) $(WOLF3D_OBJ) $(TLSFLIB) | ||
66 | |||
67 | $(SDL_OBJDIR)/wolf3d.refmap: $(SDL_OBJ) $(WOLF3D_OBJ) $(TLSFLIB) | ||
68 | |||
69 | $(WOLF3D_OUTLDS): $(PLUGIN_LDS) $(SDL_OBJDIR)/wolf3d.refmap | ||
70 | $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DOVERLAY_OFFSET=$(shell \ | ||
71 | $(TOOLSDIR)/ovl_offset.pl $(SDL_OBJDIR)/wolf3d.refmap)) | ||
72 | |||
73 | $(SDL_OBJDIR)/wolf3d.ovl: $(SDL_OBJ) $(WOLF3D_OBJ) $(TLSFLIB) $(WOLF3D_OUTLDS) | ||
74 | $(SILENT)$(CC) $(PLUGINFLAGS) -o $(basename $@).elf \ | ||
75 | $(filter %.o, $^) \ | ||
76 | $(filter %.a, $+) \ | ||
77 | -lgcc $(SDL_OVLFLAGS) | ||
78 | $(call PRINTS,LD $(@F))$(call objcopy,$(basename $@).elf,$@) | ||
79 | |||
80 | # common | ||
81 | |||
57 | $(SDL_OBJDIR)/%.o: $(SDL_SRCDIR)/%.c $(SDL_SRCDIR)/sdl.make $(BUILDDIR)/sysfont.h | 82 | $(SDL_OBJDIR)/%.o: $(SDL_SRCDIR)/%.c $(SDL_SRCDIR)/sdl.make $(BUILDDIR)/sysfont.h |
58 | $(SILENT)mkdir -p $(dir $@) | 83 | $(SILENT)mkdir -p $(dir $@) |
59 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) -I$(dir $<) $(SDLFLAGS) -c $< -o $@ | 84 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) -I$(dir $<) $(SDLFLAGS) -c $< -o $@ |
diff --git a/apps/plugins/sdl/wrappers.c b/apps/plugins/sdl/wrappers.c index e335e7fee1..ee512dd573 100644 --- a/apps/plugins/sdl/wrappers.c +++ b/apps/plugins/sdl/wrappers.c | |||
@@ -21,6 +21,7 @@ void fatal(char *fmt, ...) | |||
21 | va_start(ap, fmt); | 21 | va_start(ap, fmt); |
22 | char buf[80]; | 22 | char buf[80]; |
23 | vsnprintf(buf, 80, fmt, ap); | 23 | vsnprintf(buf, 80, fmt, ap); |
24 | printf("%s", buf); | ||
24 | rb->splash(HZ * 2, buf); | 25 | rb->splash(HZ * 2, buf); |
25 | va_end(ap); | 26 | va_end(ap); |
26 | 27 | ||
diff --git a/apps/plugins/wolf3d.c b/apps/plugins/wolf3d.c new file mode 100644 index 0000000000..cb4bf7e664 --- /dev/null +++ b/apps/plugins/wolf3d.c | |||
@@ -0,0 +1,31 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2017 Franklin Wei | ||
11 | * | ||
12 | * Duke3D stub loader. | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or | ||
15 | * modify it under the terms of the GNU General Public License | ||
16 | * as published by the Free Software Foundation; either version 2 | ||
17 | * of the License, or (at your option) any later version. | ||
18 | * | ||
19 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
20 | * KIND, either express or implied. | ||
21 | * | ||
22 | ****************************************************************************/ | ||
23 | #include "plugin.h" | ||
24 | |||
25 | #include "lib/overlay.h" | ||
26 | |||
27 | /* this is the plugin entry point */ | ||
28 | enum plugin_status plugin_start(const void* parameter) | ||
29 | { | ||
30 | return run_overlay(parameter, PLUGIN_GAMES_DIR "/wolf3d.ovl", "Wolf3D"); | ||
31 | } | ||
diff --git a/docs/CREDITS b/docs/CREDITS index 43adcc5955..c9196e2e7a 100644 --- a/docs/CREDITS +++ b/docs/CREDITS | |||
@@ -708,3 +708,5 @@ The New RAW team (Piotr Padkowski and others) | |||
708 | The Fabother World team (Fabien Sanglard and others) | 708 | The Fabother World team (Fabien Sanglard and others) |
709 | The sgt-puzzles team (Simon Tatham and others) | 709 | The sgt-puzzles team (Simon Tatham and others) |
710 | The Chocolate Duke Nukem 3D team | 710 | The Chocolate Duke Nukem 3D team |
711 | The Wolfenstein 3D team | ||
712 | The MAME team | ||
diff --git a/manual/plugins/main.tex b/manual/plugins/main.tex index 0d192eedeb..5b13829b65 100644 --- a/manual/plugins/main.tex +++ b/manual/plugins/main.tex | |||
@@ -105,6 +105,8 @@ text files% | |||
105 | \opt{lcd_non-mono}{\nopt{iriverh10_5gb,ipodmini1g,c200,c200v2,mpiohd200,clipzip,samsungyh820}{ | 105 | \opt{lcd_non-mono}{\nopt{iriverh10_5gb,ipodmini1g,c200,c200v2,mpiohd200,clipzip,samsungyh820}{ |
106 | \input{plugins/superdom.tex}}} | 106 | \input{plugins/superdom.tex}}} |
107 | 107 | ||
108 | \opt{lcd_color}{\nopt{lowmem,iaudiox5,iriverh300}{\input{plugins/wolf3d.tex}}} | ||
109 | |||
108 | \opt{lcd_bitmap}{\input{plugins/wormlet.tex}} | 110 | \opt{lcd_bitmap}{\input{plugins/wormlet.tex}} |
109 | 111 | ||
110 | \opt{lcd_bitmap}{\input{plugins/xobox.tex}} | 112 | \opt{lcd_bitmap}{\input{plugins/xobox.tex}} |
diff --git a/manual/plugins/wolf3d.tex b/manual/plugins/wolf3d.tex new file mode 100644 index 0000000000..903a057365 --- /dev/null +++ b/manual/plugins/wolf3d.tex | |||
@@ -0,0 +1,7 @@ | |||
1 | \subsection{Wolf3D} | ||
2 | |||
3 | This is a port of Wolfenstein 3-D, derived from Wolf4SDL. | ||
4 | |||
5 | \subsubsection{Installation} | ||
6 | Copy the original data files (e.g. *.WL6) into the | ||
7 | \fname{/.rockbox/wolf3d/} directory. Sound should work by default. | ||