diff options
Diffstat (limited to 'apps/plugins')
65 files changed, 44152 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 | } | ||