From a82aba6b94e47c9f0a9b7a08a61a5929ad1e4eb4 Mon Sep 17 00:00:00 2001 From: Travis Bradshaw Date: Tue, 31 Jan 2012 16:55:36 -0600 Subject: [PATCH] Source release of Wolfenstein 3D Classic Platinum for iOS, 1.1 --- wolf3d/base/iphone/0.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/1.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/2.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/3.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/4.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/5.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/6.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/7.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/8.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/9.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/FACE1APIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE1BPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE1CPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE2APIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE2BPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE2CPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE3APIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE3BPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE3CPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE4APIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE4BPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE4CPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE5APIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE5BPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE5CPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE6APIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE6BPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE6CPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE7APIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE7BPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE7CPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/FACE8APIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/GOTGATLINGPIC.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/L_damage.5551 | Bin 0 -> 21902 bytes wolf3d/base/iphone/R_damage.5551 | Bin 0 -> 21902 bytes wolf3d/base/iphone/advanced_button.5551 | Bin 0 -> 10982 bytes wolf3d/base/iphone/background_1.5551 | Bin 0 -> 43832 bytes wolf3d/base/iphone/button_back.5551 | Bin 0 -> 5518 bytes wolf3d/base/iphone/button_control.5551 | Bin 0 -> 10982 bytes wolf3d/base/iphone/button_ep1.5551 | Bin 0 -> 87446 bytes wolf3d/base/iphone/button_ep2.5551 | Bin 0 -> 87446 bytes wolf3d/base/iphone/button_ep3.5551 | Bin 0 -> 87446 bytes wolf3d/base/iphone/button_ep4.5551 | Bin 0 -> 87446 bytes wolf3d/base/iphone/button_ep5.5551 | Bin 0 -> 87446 bytes wolf3d/base/iphone/button_ep6.5551 | Bin 0 -> 87446 bytes wolf3d/base/iphone/button_levels.5551 | Bin 0 -> 21902 bytes wolf3d/base/iphone/button_new.5551 | Bin 0 -> 10982 bytes wolf3d/base/iphone/button_resume.5551 | Bin 0 -> 21902 bytes wolf3d/base/iphone/button_skill1.5551 | Bin 0 -> 43750 bytes wolf3d/base/iphone/button_skill2.5551 | Bin 0 -> 43750 bytes wolf3d/base/iphone/button_skill3.5551 | Bin 0 -> 43750 bytes wolf3d/base/iphone/button_skill4.5551 | Bin 0 -> 43750 bytes wolf3d/base/iphone/button_web.5551 | Bin 0 -> 10982 bytes wolf3d/base/iphone/diractional_01.5551 | Bin 0 -> 43746 bytes wolf3d/base/iphone/diractional_02.5551 | Bin 0 -> 43746 bytes wolf3d/base/iphone/diractional_03.5551 | Bin 0 -> 43746 bytes wolf3d/base/iphone/ep_1.5551 | Bin 0 -> 43750 bytes wolf3d/base/iphone/ep_1_6.5551 | Bin 0 -> 43750 bytes wolf3d/base/iphone/font1.5551 | Bin 0 -> 87438 bytes wolf3d/base/iphone/gold_key.5551 | Bin 0 -> 5518 bytes wolf3d/base/iphone/intermission_256.5551 | Bin 0 -> 43832 bytes wolf3d/base/iphone/kills.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/layout_1.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/layout_2.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/layout_3.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/layout_4.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/map.5551 | Bin 0 -> 5518 bytes wolf3d/base/iphone/menu.5551 | Bin 0 -> 5518 bytes wolf3d/base/iphone/music_off.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/music_on.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/partime.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/secrets.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/shoot.5551 | Bin 0 -> 10978 bytes wolf3d/base/iphone/side_2_side.5551 | Bin 0 -> 43746 bytes wolf3d/base/iphone/silver_key.5551 | Bin 0 -> 5518 bytes wolf3d/base/iphone/stat_bar_1.5551 | Bin 0 -> 10998 bytes wolf3d/base/iphone/stat_bar_2.5551 | Bin 0 -> 10998 bytes wolf3d/base/iphone/stats.5551 | Bin 0 -> 5518 bytes wolf3d/base/iphone/status_hud.5551 | Bin 0 -> 43746 bytes wolf3d/base/iphone/treasure.5551 | Bin 0 -> 2786 bytes wolf3d/base/iphone/up_down.5551 | Bin 0 -> 43746 bytes wolf3d/base/iphone/victory_256.5551 | Bin 0 -> 43832 bytes wolf3d/base/iphone/wolf_logo.5551 | Bin 0 -> 87438 bytes wolf3d/base/sprites/002.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/003.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/005.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/006.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/008.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/009.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/010.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/013.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/014.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/015.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/016.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/018.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/019.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/021.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/022.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/023.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/025.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/026.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/028.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/029.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/030.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/031.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/032.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/033.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/034.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/035.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/037.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/038.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/041.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/514.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/515.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/516.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/517.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/518.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/519.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/520.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/521.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/522.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/523.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/524.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/525.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/526.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/527.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/528.5551 | Bin 10978 -> 43746 bytes wolf3d/base/sprites/529.5551 | Bin 10978 -> 43746 bytes wolf3d/base/walls/000.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/002.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/004.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/006.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/008.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/010.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/012.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/014.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/016.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/018.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/020.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/022.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/024.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/026.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/028.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/030.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/031.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/032.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/034.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/036.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/038.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/040.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/041.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/042.5551 | Bin 10978 -> 2872 bytes wolf3d/base/walls/043.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/044.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/046.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/048.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/050.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/052.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/054.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/056.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/058.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/060.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/062.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/064.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/066.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/068.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/070.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/072.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/074.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/076.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/078.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/080.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/082.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/084.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/086.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/088.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/090.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/092.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/094.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/096.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/126.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/128.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/130.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/132.5551 | Bin 10978 -> 11064 bytes wolf3d/base/walls/133.5551 | Bin 10978 -> 11064 bytes wolf3d/code/.DS_Store | Bin 0 -> 6148 bytes wolf3d/code/Tremor/CHANGELOG | 19 + wolf3d/code/Tremor/COPYING | 28 + wolf3d/code/Tremor/Makefile.am | 38 + wolf3d/code/Tremor/README | 46 + wolf3d/code/Tremor/Version_script.in | 49 + wolf3d/code/Tremor/asm_arm.h | 243 + wolf3d/code/Tremor/autogen.sh | 120 + wolf3d/code/Tremor/backends.h | 130 + wolf3d/code/Tremor/bitwise.c | 265 + wolf3d/code/Tremor/block.c | 453 + wolf3d/code/Tremor/block.h | 24 + wolf3d/code/Tremor/codebook.c | 371 + wolf3d/code/Tremor/codebook.h | 102 + wolf3d/code/Tremor/codec_internal.h | 92 + wolf3d/code/Tremor/config_types.h | 25 + wolf3d/code/Tremor/configure.in | 131 + wolf3d/code/Tremor/debian/Makefile.am | 6 + wolf3d/code/Tremor/debian/changelog | 9 + wolf3d/code/Tremor/debian/control | 22 + wolf3d/code/Tremor/debian/copyright | 37 + .../Tremor/debian/libvorbisidec-dev.install | 8 + .../code/Tremor/debian/libvorbisidec1.install | 1 + wolf3d/code/Tremor/debian/rules | 151 + wolf3d/code/Tremor/doc/OggVorbis_File.html | 132 + wolf3d/code/Tremor/doc/build.html | 111 + wolf3d/code/Tremor/doc/callbacks.html | 113 + wolf3d/code/Tremor/doc/datastructures.html | 61 + wolf3d/code/Tremor/doc/decoding.html | 82 + wolf3d/code/Tremor/doc/diff.html | 67 + wolf3d/code/Tremor/doc/example.html | 205 + wolf3d/code/Tremor/doc/fileinfo.html | 95 + wolf3d/code/Tremor/doc/index.html | 53 + wolf3d/code/Tremor/doc/initialization.html | 101 + wolf3d/code/Tremor/doc/ov_bitrate.html | 72 + .../code/Tremor/doc/ov_bitrate_instant.html | 65 + wolf3d/code/Tremor/doc/ov_callbacks.html | 78 + wolf3d/code/Tremor/doc/ov_clear.html | 64 + wolf3d/code/Tremor/doc/ov_comment.html | 66 + wolf3d/code/Tremor/doc/ov_info.html | 64 + wolf3d/code/Tremor/doc/ov_open.html | 115 + wolf3d/code/Tremor/doc/ov_open_callbacks.html | 110 + wolf3d/code/Tremor/doc/ov_pcm_seek.html | 81 + wolf3d/code/Tremor/doc/ov_pcm_seek_page.html | 83 + wolf3d/code/Tremor/doc/ov_pcm_tell.html | 63 + wolf3d/code/Tremor/doc/ov_pcm_total.html | 67 + wolf3d/code/Tremor/doc/ov_raw_seek.html | 75 + wolf3d/code/Tremor/doc/ov_raw_tell.html | 63 + wolf3d/code/Tremor/doc/ov_raw_total.html | 68 + wolf3d/code/Tremor/doc/ov_read.html | 115 + wolf3d/code/Tremor/doc/ov_seekable.html | 63 + wolf3d/code/Tremor/doc/ov_serialnumber.html | 67 + wolf3d/code/Tremor/doc/ov_streams.html | 64 + wolf3d/code/Tremor/doc/ov_test.html | 89 + wolf3d/code/Tremor/doc/ov_test_callbacks.html | 90 + wolf3d/code/Tremor/doc/ov_test_open.html | 82 + wolf3d/code/Tremor/doc/ov_time_seek.html | 70 + wolf3d/code/Tremor/doc/ov_time_seek_page.html | 83 + wolf3d/code/Tremor/doc/ov_time_tell.html | 63 + wolf3d/code/Tremor/doc/ov_time_total.html | 67 + wolf3d/code/Tremor/doc/overview.html | 61 + wolf3d/code/Tremor/doc/reference.html | 75 + wolf3d/code/Tremor/doc/return.html | 77 + wolf3d/code/Tremor/doc/seeking.html | 74 + wolf3d/code/Tremor/doc/style.css | 7 + wolf3d/code/Tremor/doc/threads.html | 50 + wolf3d/code/Tremor/doc/vorbis_comment.html | 70 + wolf3d/code/Tremor/doc/vorbis_info.html | 80 + wolf3d/code/Tremor/floor0.c | 435 + wolf3d/code/Tremor/floor1.c | 441 + wolf3d/code/Tremor/framing.c | 1126 ++ wolf3d/code/Tremor/info.c | 356 + wolf3d/code/Tremor/ivorbiscodec.h | 202 + wolf3d/code/Tremor/ivorbisfile.h | 130 + wolf3d/code/Tremor/ivorbisfile_example.c | 86 + wolf3d/code/Tremor/lsp_lookup.h | 136 + wolf3d/code/Tremor/mapping0.c | 322 + wolf3d/code/Tremor/mdct.c | 510 + wolf3d/code/Tremor/mdct.h | 52 + wolf3d/code/Tremor/mdct_lookup.h | 540 + wolf3d/code/Tremor/misc.h | 244 + wolf3d/code/Tremor/ogg.h | 206 + wolf3d/code/Tremor/os.h | 64 + wolf3d/code/Tremor/os_types.h | 88 + wolf3d/code/Tremor/registry.c | 50 + wolf3d/code/Tremor/registry.h | 40 + wolf3d/code/Tremor/res012.c | 342 + wolf3d/code/Tremor/sharedbook.c | 439 + wolf3d/code/Tremor/synthesis.c | 113 + wolf3d/code/Tremor/vorbisfile.c | 1586 +++ wolf3d/code/Tremor/window.c | 83 + wolf3d/code/Tremor/window.h | 27 + wolf3d/code/Tremor/window_lookup.h | 2084 ++++ wolf3d/code/env/angle.c | 172 + wolf3d/code/env/angle.h | 53 + wolf3d/code/env/app_def.h | 50 + wolf3d/code/env/arch.c | 60 + wolf3d/code/env/arch.h | 273 + wolf3d/code/env/cmd.c | 1195 +++ wolf3d/code/env/cmd.h | 150 + wolf3d/code/env/com_string.c | 518 + wolf3d/code/env/com_string.h | 87 + wolf3d/code/env/common.c | 593 ++ wolf3d/code/env/common.h | 207 + wolf3d/code/env/common_utils.h | 62 + wolf3d/code/env/console.c | 811 ++ wolf3d/code/env/console.h | 86 + wolf3d/code/env/cvar.c | 765 ++ wolf3d/code/env/cvar.h | 162 + wolf3d/code/env/fileio.c | 302 + wolf3d/code/env/files.c | 162 + wolf3d/code/env/filestring.c | 161 + wolf3d/code/env/filestring.h | 55 + wolf3d/code/env/filesystem.h | 134 + wolf3d/code/env/font_manager.c | 492 + wolf3d/code/env/font_manager.h | 78 + wolf3d/code/env/glob.c | 207 + wolf3d/code/env/glob.h | 22 + wolf3d/code/env/math.c | 224 + wolf3d/code/env/matrix.c | 158 + wolf3d/code/env/matrix.h | 43 + wolf3d/code/env/memory.c | 193 + wolf3d/code/env/memory.h | 57 + wolf3d/code/env/mymath.h | 95 + wolf3d/code/env/myopengl.h | 872 ++ wolf3d/code/env/myopengl_extension.h | 716 ++ wolf3d/code/env/num_type.h | 48 + wolf3d/code/env/oggfile.c | 154 + wolf3d/code/env/oggfile.h | 29 + wolf3d/code/env/openal_binding.c | 335 + wolf3d/code/env/openal_binding.h | 186 + wolf3d/code/env/openal_main.c | 247 + wolf3d/code/env/opengl_draw.c | 256 + wolf3d/code/env/opengl_extension.c | 1024 ++ wolf3d/code/env/opengl_local.h | 254 + wolf3d/code/env/opengl_main.c | 400 + wolf3d/code/env/opengl_texture.c | 253 + wolf3d/code/env/random_number.c | 107 + wolf3d/code/env/random_number.h | 48 + wolf3d/code/env/renderer.h | 100 + wolf3d/code/env/share.c | 189 + wolf3d/code/env/sound.c | 730 ++ wolf3d/code/env/sound.h | 93 + wolf3d/code/env/sound_local.h | 111 + wolf3d/code/env/sound_sfx_id.c | 287 + wolf3d/code/env/sound_stream.c | 516 + wolf3d/code/env/texture_manager.c | 1430 +++ wolf3d/code/env/texture_manager.h | 192 + wolf3d/code/env/tga.c | 783 ++ wolf3d/code/env/tga.h | 49 + wolf3d/code/env/timer.h | 44 + wolf3d/code/env/unix_file.c | 286 + wolf3d/code/env/unix_timer.c | 67 + wolf3d/code/env/vector.c | 650 ++ wolf3d/code/env/vector.h | 125 + wolf3d/code/env/video.h | 68 + wolf3d/code/env/wavfile.c | 241 + wolf3d/code/env/wavfile.h | 54 + wolf3d/code/env/zmem.c | 191 + wolf3d/code/env/zmem.h | 75 + wolf3d/code/iphone/EAGLView.h | 58 + wolf3d/code/iphone/EAGLView.m | 360 + wolf3d/code/iphone/Info.plist | 47 + wolf3d/code/iphone/MainWindow.xib | 223 + .../wolf3d.pbxindex/categories.pbxbtree | Bin 0 -> 1320 bytes .../wolf3d.pbxindex/cdecls.pbxbtree | Bin 0 -> 423156 bytes .../wolf3d.pbxindex/decls.pbxbtree | Bin 0 -> 421664 bytes .../wolf3d.pbxindex/files.pbxbtree | Bin 0 -> 6000 bytes .../wolf3d.pbxindex/imports.pbxbtree | Bin 0 -> 15568 bytes .../wolf3d.pbxindex/pbxindex.header | Bin 0 -> 24 bytes .../wolf3d.pbxindex/protocols.pbxbtree | Bin 0 -> 1604 bytes .../wolf3d.pbxindex/refs.pbxbtree | Bin 0 -> 339040 bytes .../strings.pbxstrings/control | Bin 0 -> 524308 bytes .../strings.pbxstrings/strings | Bin 0 -> 881443 bytes .../wolf3d.pbxindex/subclasses.pbxbtree | Bin 0 -> 2184 bytes .../wolf3d.pbxindex/symbols0.pbxsymbols | Bin 0 -> 1613736 bytes wolf3d/code/iphone/default.png | Bin 0 -> 182887 bytes wolf3d/code/iphone/default_wolf3dlite.png | Bin 0 -> 186653 bytes wolf3d/code/iphone/dist.plist | 8 + wolf3d/code/iphone/gles_glue.c | 134 + wolf3d/code/iphone/gles_glue.h | 69 + wolf3d/code/iphone/hud.c | 249 + wolf3d/code/iphone/iphone_loop.c | 1192 +++ wolf3d/code/iphone/iphone_main.c | 339 + wolf3d/code/iphone/iphone_menus.c | 1190 +++ wolf3d/code/iphone/iphone_qgl.h | 2392 +++++ wolf3d/code/iphone/iphone_qgl_enumerants.h | 40 + wolf3d/code/iphone/iphone_sys.m | 74 + wolf3d/code/iphone/iphone_wolf.h | 228 + wolf3d/code/iphone/main.m | 46 + wolf3d/code/iphone/victory_wolf3dlite.tga | Bin 0 -> 262188 bytes .../code/iphone/wolf3d.xcodeproj/cass.pbxuser | 309 + .../wolf3d.xcodeproj/cass.perspectivev3 | 1544 +++ .../iphone/wolf3d.xcodeproj/johnc.mode1v3 | 1524 +++ .../iphone/wolf3d.xcodeproj/johnc.pbxuser | 9317 +++++++++++++++++ .../wolf3d.xcodeproj/johnc.perspectivev3 | 1884 ++++ .../iphone/wolf3d.xcodeproj/project.pbxproj | 899 ++ wolf3d/code/iphone/wolf3dAppDelegate.h | 39 + wolf3d/code/iphone/wolf3dAppDelegate.m | 127 + wolf3d/code/iphone/wolf3d_Prefix.pch | 8 + wolf3d/code/iphone/wolf3d_icon.png | Bin 0 -> 5935 bytes wolf3d/code/iphone/wolf3dlite_icon.png | Bin 0 -> 7126 bytes wolf3d/code/wolf/wolf_act_stat.h | 1619 +++ wolf3d/code/wolf/wolf_actor_ai.c | 968 ++ wolf3d/code/wolf/wolf_actor_ai.h | 73 + wolf3d/code/wolf/wolf_actors.c | 471 + wolf3d/code/wolf/wolf_actors.h | 172 + wolf3d/code/wolf/wolf_ai_com.c | 1315 +++ wolf3d/code/wolf/wolf_ai_com.h | 65 + wolf3d/code/wolf/wolf_areas.c | 170 + wolf3d/code/wolf/wolf_bj.c | 136 + wolf3d/code/wolf/wolf_bj.h | 59 + wolf3d/code/wolf/wolf_client_main.c | 91 + wolf3d/code/wolf/wolf_doors.c | 506 + wolf3d/code/wolf/wolf_level.c | 1376 +++ wolf3d/code/wolf/wolf_level.h | 292 + wolf3d/code/wolf/wolf_local.h | 150 + wolf3d/code/wolf/wolf_main.c | 87 + wolf3d/code/wolf/wolf_math.c | 341 + wolf3d/code/wolf/wolf_math.h | 147 + wolf3d/code/wolf/wolf_opengl.c | 518 + wolf3d/code/wolf/wolf_player.c | 982 ++ wolf3d/code/wolf/wolf_player.h | 179 + wolf3d/code/wolf/wolf_powerups.c | 385 + wolf3d/code/wolf/wolf_powerups.h | 85 + wolf3d/code/wolf/wolf_pushwalls.c | 175 + wolf3d/code/wolf/wolf_raycast.c | 373 + wolf3d/code/wolf/wolf_raycast.h | 74 + wolf3d/code/wolf/wolf_renderer.c | 96 + wolf3d/code/wolf/wolf_renderer.h | 61 + wolf3d/code/wolf/wolf_sprites.c | 287 + wolf3d/code/wolf/wolf_sprites.h | 429 + wolf3d/code/wolf/wolf_sv_ccmds.c | 95 + wolf3d/code/wolf/wolf_weapon.c | 194 + wolf3d/code/wolfiphone.h | 87 + wolf3d/scripts/scrubBase.pl | 35 + 421 files changed, 68803 insertions(+) create mode 100644 wolf3d/base/iphone/0.5551 create mode 100644 wolf3d/base/iphone/1.5551 create mode 100644 wolf3d/base/iphone/2.5551 create mode 100644 wolf3d/base/iphone/3.5551 create mode 100644 wolf3d/base/iphone/4.5551 create mode 100644 wolf3d/base/iphone/5.5551 create mode 100644 wolf3d/base/iphone/6.5551 create mode 100644 wolf3d/base/iphone/7.5551 create mode 100644 wolf3d/base/iphone/8.5551 create mode 100644 wolf3d/base/iphone/9.5551 create mode 100644 wolf3d/base/iphone/FACE1APIC.5551 create mode 100644 wolf3d/base/iphone/FACE1BPIC.5551 create mode 100644 wolf3d/base/iphone/FACE1CPIC.5551 create mode 100644 wolf3d/base/iphone/FACE2APIC.5551 create mode 100644 wolf3d/base/iphone/FACE2BPIC.5551 create mode 100644 wolf3d/base/iphone/FACE2CPIC.5551 create mode 100644 wolf3d/base/iphone/FACE3APIC.5551 create mode 100644 wolf3d/base/iphone/FACE3BPIC.5551 create mode 100644 wolf3d/base/iphone/FACE3CPIC.5551 create mode 100644 wolf3d/base/iphone/FACE4APIC.5551 create mode 100644 wolf3d/base/iphone/FACE4BPIC.5551 create mode 100644 wolf3d/base/iphone/FACE4CPIC.5551 create mode 100644 wolf3d/base/iphone/FACE5APIC.5551 create mode 100644 wolf3d/base/iphone/FACE5BPIC.5551 create mode 100644 wolf3d/base/iphone/FACE5CPIC.5551 create mode 100644 wolf3d/base/iphone/FACE6APIC.5551 create mode 100644 wolf3d/base/iphone/FACE6BPIC.5551 create mode 100644 wolf3d/base/iphone/FACE6CPIC.5551 create mode 100644 wolf3d/base/iphone/FACE7APIC.5551 create mode 100644 wolf3d/base/iphone/FACE7BPIC.5551 create mode 100644 wolf3d/base/iphone/FACE7CPIC.5551 create mode 100644 wolf3d/base/iphone/FACE8APIC.5551 create mode 100644 wolf3d/base/iphone/GOTGATLINGPIC.5551 create mode 100644 wolf3d/base/iphone/L_damage.5551 create mode 100644 wolf3d/base/iphone/R_damage.5551 create mode 100644 wolf3d/base/iphone/advanced_button.5551 create mode 100644 wolf3d/base/iphone/background_1.5551 create mode 100644 wolf3d/base/iphone/button_back.5551 create mode 100644 wolf3d/base/iphone/button_control.5551 create mode 100644 wolf3d/base/iphone/button_ep1.5551 create mode 100644 wolf3d/base/iphone/button_ep2.5551 create mode 100644 wolf3d/base/iphone/button_ep3.5551 create mode 100644 wolf3d/base/iphone/button_ep4.5551 create mode 100644 wolf3d/base/iphone/button_ep5.5551 create mode 100644 wolf3d/base/iphone/button_ep6.5551 create mode 100644 wolf3d/base/iphone/button_levels.5551 create mode 100644 wolf3d/base/iphone/button_new.5551 create mode 100644 wolf3d/base/iphone/button_resume.5551 create mode 100644 wolf3d/base/iphone/button_skill1.5551 create mode 100644 wolf3d/base/iphone/button_skill2.5551 create mode 100644 wolf3d/base/iphone/button_skill3.5551 create mode 100644 wolf3d/base/iphone/button_skill4.5551 create mode 100644 wolf3d/base/iphone/button_web.5551 create mode 100644 wolf3d/base/iphone/diractional_01.5551 create mode 100644 wolf3d/base/iphone/diractional_02.5551 create mode 100644 wolf3d/base/iphone/diractional_03.5551 create mode 100644 wolf3d/base/iphone/ep_1.5551 create mode 100644 wolf3d/base/iphone/ep_1_6.5551 create mode 100644 wolf3d/base/iphone/font1.5551 create mode 100644 wolf3d/base/iphone/gold_key.5551 create mode 100644 wolf3d/base/iphone/intermission_256.5551 create mode 100644 wolf3d/base/iphone/kills.5551 create mode 100644 wolf3d/base/iphone/layout_1.5551 create mode 100644 wolf3d/base/iphone/layout_2.5551 create mode 100644 wolf3d/base/iphone/layout_3.5551 create mode 100644 wolf3d/base/iphone/layout_4.5551 create mode 100644 wolf3d/base/iphone/map.5551 create mode 100644 wolf3d/base/iphone/menu.5551 create mode 100644 wolf3d/base/iphone/music_off.5551 create mode 100644 wolf3d/base/iphone/music_on.5551 create mode 100644 wolf3d/base/iphone/partime.5551 create mode 100644 wolf3d/base/iphone/secrets.5551 create mode 100644 wolf3d/base/iphone/shoot.5551 create mode 100644 wolf3d/base/iphone/side_2_side.5551 create mode 100644 wolf3d/base/iphone/silver_key.5551 create mode 100644 wolf3d/base/iphone/stat_bar_1.5551 create mode 100644 wolf3d/base/iphone/stat_bar_2.5551 create mode 100644 wolf3d/base/iphone/stats.5551 create mode 100644 wolf3d/base/iphone/status_hud.5551 create mode 100644 wolf3d/base/iphone/treasure.5551 create mode 100644 wolf3d/base/iphone/up_down.5551 create mode 100644 wolf3d/base/iphone/victory_256.5551 create mode 100644 wolf3d/base/iphone/wolf_logo.5551 create mode 100644 wolf3d/code/.DS_Store create mode 100644 wolf3d/code/Tremor/CHANGELOG create mode 100644 wolf3d/code/Tremor/COPYING create mode 100644 wolf3d/code/Tremor/Makefile.am create mode 100644 wolf3d/code/Tremor/README create mode 100644 wolf3d/code/Tremor/Version_script.in create mode 100644 wolf3d/code/Tremor/asm_arm.h create mode 100644 wolf3d/code/Tremor/autogen.sh create mode 100644 wolf3d/code/Tremor/backends.h create mode 100644 wolf3d/code/Tremor/bitwise.c create mode 100644 wolf3d/code/Tremor/block.c create mode 100644 wolf3d/code/Tremor/block.h create mode 100644 wolf3d/code/Tremor/codebook.c create mode 100644 wolf3d/code/Tremor/codebook.h create mode 100644 wolf3d/code/Tremor/codec_internal.h create mode 100644 wolf3d/code/Tremor/config_types.h create mode 100644 wolf3d/code/Tremor/configure.in create mode 100644 wolf3d/code/Tremor/debian/Makefile.am create mode 100644 wolf3d/code/Tremor/debian/changelog create mode 100644 wolf3d/code/Tremor/debian/control create mode 100644 wolf3d/code/Tremor/debian/copyright create mode 100644 wolf3d/code/Tremor/debian/libvorbisidec-dev.install create mode 100644 wolf3d/code/Tremor/debian/libvorbisidec1.install create mode 100644 wolf3d/code/Tremor/debian/rules create mode 100644 wolf3d/code/Tremor/doc/OggVorbis_File.html create mode 100644 wolf3d/code/Tremor/doc/build.html create mode 100644 wolf3d/code/Tremor/doc/callbacks.html create mode 100644 wolf3d/code/Tremor/doc/datastructures.html create mode 100644 wolf3d/code/Tremor/doc/decoding.html create mode 100644 wolf3d/code/Tremor/doc/diff.html create mode 100644 wolf3d/code/Tremor/doc/example.html create mode 100644 wolf3d/code/Tremor/doc/fileinfo.html create mode 100644 wolf3d/code/Tremor/doc/index.html create mode 100644 wolf3d/code/Tremor/doc/initialization.html create mode 100644 wolf3d/code/Tremor/doc/ov_bitrate.html create mode 100644 wolf3d/code/Tremor/doc/ov_bitrate_instant.html create mode 100644 wolf3d/code/Tremor/doc/ov_callbacks.html create mode 100644 wolf3d/code/Tremor/doc/ov_clear.html create mode 100644 wolf3d/code/Tremor/doc/ov_comment.html create mode 100644 wolf3d/code/Tremor/doc/ov_info.html create mode 100644 wolf3d/code/Tremor/doc/ov_open.html create mode 100644 wolf3d/code/Tremor/doc/ov_open_callbacks.html create mode 100644 wolf3d/code/Tremor/doc/ov_pcm_seek.html create mode 100644 wolf3d/code/Tremor/doc/ov_pcm_seek_page.html create mode 100644 wolf3d/code/Tremor/doc/ov_pcm_tell.html create mode 100644 wolf3d/code/Tremor/doc/ov_pcm_total.html create mode 100644 wolf3d/code/Tremor/doc/ov_raw_seek.html create mode 100644 wolf3d/code/Tremor/doc/ov_raw_tell.html create mode 100644 wolf3d/code/Tremor/doc/ov_raw_total.html create mode 100644 wolf3d/code/Tremor/doc/ov_read.html create mode 100644 wolf3d/code/Tremor/doc/ov_seekable.html create mode 100644 wolf3d/code/Tremor/doc/ov_serialnumber.html create mode 100644 wolf3d/code/Tremor/doc/ov_streams.html create mode 100644 wolf3d/code/Tremor/doc/ov_test.html create mode 100644 wolf3d/code/Tremor/doc/ov_test_callbacks.html create mode 100644 wolf3d/code/Tremor/doc/ov_test_open.html create mode 100644 wolf3d/code/Tremor/doc/ov_time_seek.html create mode 100644 wolf3d/code/Tremor/doc/ov_time_seek_page.html create mode 100644 wolf3d/code/Tremor/doc/ov_time_tell.html create mode 100644 wolf3d/code/Tremor/doc/ov_time_total.html create mode 100644 wolf3d/code/Tremor/doc/overview.html create mode 100644 wolf3d/code/Tremor/doc/reference.html create mode 100644 wolf3d/code/Tremor/doc/return.html create mode 100644 wolf3d/code/Tremor/doc/seeking.html create mode 100644 wolf3d/code/Tremor/doc/style.css create mode 100644 wolf3d/code/Tremor/doc/threads.html create mode 100644 wolf3d/code/Tremor/doc/vorbis_comment.html create mode 100644 wolf3d/code/Tremor/doc/vorbis_info.html create mode 100644 wolf3d/code/Tremor/floor0.c create mode 100644 wolf3d/code/Tremor/floor1.c create mode 100644 wolf3d/code/Tremor/framing.c create mode 100644 wolf3d/code/Tremor/info.c create mode 100644 wolf3d/code/Tremor/ivorbiscodec.h create mode 100644 wolf3d/code/Tremor/ivorbisfile.h create mode 100644 wolf3d/code/Tremor/ivorbisfile_example.c create mode 100644 wolf3d/code/Tremor/lsp_lookup.h create mode 100644 wolf3d/code/Tremor/mapping0.c create mode 100644 wolf3d/code/Tremor/mdct.c create mode 100644 wolf3d/code/Tremor/mdct.h create mode 100644 wolf3d/code/Tremor/mdct_lookup.h create mode 100644 wolf3d/code/Tremor/misc.h create mode 100644 wolf3d/code/Tremor/ogg.h create mode 100644 wolf3d/code/Tremor/os.h create mode 100644 wolf3d/code/Tremor/os_types.h create mode 100644 wolf3d/code/Tremor/registry.c create mode 100644 wolf3d/code/Tremor/registry.h create mode 100644 wolf3d/code/Tremor/res012.c create mode 100644 wolf3d/code/Tremor/sharedbook.c create mode 100644 wolf3d/code/Tremor/synthesis.c create mode 100644 wolf3d/code/Tremor/vorbisfile.c create mode 100644 wolf3d/code/Tremor/window.c create mode 100644 wolf3d/code/Tremor/window.h create mode 100644 wolf3d/code/Tremor/window_lookup.h create mode 100644 wolf3d/code/env/angle.c create mode 100644 wolf3d/code/env/angle.h create mode 100644 wolf3d/code/env/app_def.h create mode 100644 wolf3d/code/env/arch.c create mode 100644 wolf3d/code/env/arch.h create mode 100644 wolf3d/code/env/cmd.c create mode 100644 wolf3d/code/env/cmd.h create mode 100644 wolf3d/code/env/com_string.c create mode 100644 wolf3d/code/env/com_string.h create mode 100644 wolf3d/code/env/common.c create mode 100644 wolf3d/code/env/common.h create mode 100644 wolf3d/code/env/common_utils.h create mode 100644 wolf3d/code/env/console.c create mode 100644 wolf3d/code/env/console.h create mode 100644 wolf3d/code/env/cvar.c create mode 100644 wolf3d/code/env/cvar.h create mode 100644 wolf3d/code/env/fileio.c create mode 100644 wolf3d/code/env/files.c create mode 100644 wolf3d/code/env/filestring.c create mode 100644 wolf3d/code/env/filestring.h create mode 100644 wolf3d/code/env/filesystem.h create mode 100644 wolf3d/code/env/font_manager.c create mode 100644 wolf3d/code/env/font_manager.h create mode 100644 wolf3d/code/env/glob.c create mode 100644 wolf3d/code/env/glob.h create mode 100644 wolf3d/code/env/math.c create mode 100644 wolf3d/code/env/matrix.c create mode 100644 wolf3d/code/env/matrix.h create mode 100644 wolf3d/code/env/memory.c create mode 100644 wolf3d/code/env/memory.h create mode 100644 wolf3d/code/env/mymath.h create mode 100644 wolf3d/code/env/myopengl.h create mode 100644 wolf3d/code/env/myopengl_extension.h create mode 100644 wolf3d/code/env/num_type.h create mode 100644 wolf3d/code/env/oggfile.c create mode 100644 wolf3d/code/env/oggfile.h create mode 100644 wolf3d/code/env/openal_binding.c create mode 100644 wolf3d/code/env/openal_binding.h create mode 100644 wolf3d/code/env/openal_main.c create mode 100644 wolf3d/code/env/opengl_draw.c create mode 100644 wolf3d/code/env/opengl_extension.c create mode 100644 wolf3d/code/env/opengl_local.h create mode 100644 wolf3d/code/env/opengl_main.c create mode 100644 wolf3d/code/env/opengl_texture.c create mode 100644 wolf3d/code/env/random_number.c create mode 100644 wolf3d/code/env/random_number.h create mode 100644 wolf3d/code/env/renderer.h create mode 100644 wolf3d/code/env/share.c create mode 100644 wolf3d/code/env/sound.c create mode 100644 wolf3d/code/env/sound.h create mode 100644 wolf3d/code/env/sound_local.h create mode 100644 wolf3d/code/env/sound_sfx_id.c create mode 100644 wolf3d/code/env/sound_stream.c create mode 100644 wolf3d/code/env/texture_manager.c create mode 100644 wolf3d/code/env/texture_manager.h create mode 100644 wolf3d/code/env/tga.c create mode 100644 wolf3d/code/env/tga.h create mode 100644 wolf3d/code/env/timer.h create mode 100644 wolf3d/code/env/unix_file.c create mode 100644 wolf3d/code/env/unix_timer.c create mode 100644 wolf3d/code/env/vector.c create mode 100644 wolf3d/code/env/vector.h create mode 100644 wolf3d/code/env/video.h create mode 100644 wolf3d/code/env/wavfile.c create mode 100644 wolf3d/code/env/wavfile.h create mode 100644 wolf3d/code/env/zmem.c create mode 100644 wolf3d/code/env/zmem.h create mode 100644 wolf3d/code/iphone/EAGLView.h create mode 100644 wolf3d/code/iphone/EAGLView.m create mode 100644 wolf3d/code/iphone/Info.plist create mode 100644 wolf3d/code/iphone/MainWindow.xib create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/categories.pbxbtree create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/cdecls.pbxbtree create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/decls.pbxbtree create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/files.pbxbtree create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/imports.pbxbtree create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/pbxindex.header create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/protocols.pbxbtree create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/refs.pbxbtree create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/strings.pbxstrings/control create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/strings.pbxstrings/strings create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/subclasses.pbxbtree create mode 100644 wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/symbols0.pbxsymbols create mode 100644 wolf3d/code/iphone/default.png create mode 100644 wolf3d/code/iphone/default_wolf3dlite.png create mode 100644 wolf3d/code/iphone/dist.plist create mode 100644 wolf3d/code/iphone/gles_glue.c create mode 100644 wolf3d/code/iphone/gles_glue.h create mode 100644 wolf3d/code/iphone/hud.c create mode 100644 wolf3d/code/iphone/iphone_loop.c create mode 100644 wolf3d/code/iphone/iphone_main.c create mode 100644 wolf3d/code/iphone/iphone_menus.c create mode 100644 wolf3d/code/iphone/iphone_qgl.h create mode 100644 wolf3d/code/iphone/iphone_qgl_enumerants.h create mode 100644 wolf3d/code/iphone/iphone_sys.m create mode 100644 wolf3d/code/iphone/iphone_wolf.h create mode 100644 wolf3d/code/iphone/main.m create mode 100644 wolf3d/code/iphone/victory_wolf3dlite.tga create mode 100644 wolf3d/code/iphone/wolf3d.xcodeproj/cass.pbxuser create mode 100644 wolf3d/code/iphone/wolf3d.xcodeproj/cass.perspectivev3 create mode 100644 wolf3d/code/iphone/wolf3d.xcodeproj/johnc.mode1v3 create mode 100644 wolf3d/code/iphone/wolf3d.xcodeproj/johnc.pbxuser create mode 100644 wolf3d/code/iphone/wolf3d.xcodeproj/johnc.perspectivev3 create mode 100644 wolf3d/code/iphone/wolf3d.xcodeproj/project.pbxproj create mode 100644 wolf3d/code/iphone/wolf3dAppDelegate.h create mode 100644 wolf3d/code/iphone/wolf3dAppDelegate.m create mode 100644 wolf3d/code/iphone/wolf3d_Prefix.pch create mode 100644 wolf3d/code/iphone/wolf3d_icon.png create mode 100644 wolf3d/code/iphone/wolf3dlite_icon.png create mode 100644 wolf3d/code/wolf/wolf_act_stat.h create mode 100644 wolf3d/code/wolf/wolf_actor_ai.c create mode 100644 wolf3d/code/wolf/wolf_actor_ai.h create mode 100644 wolf3d/code/wolf/wolf_actors.c create mode 100644 wolf3d/code/wolf/wolf_actors.h create mode 100644 wolf3d/code/wolf/wolf_ai_com.c create mode 100644 wolf3d/code/wolf/wolf_ai_com.h create mode 100644 wolf3d/code/wolf/wolf_areas.c create mode 100644 wolf3d/code/wolf/wolf_bj.c create mode 100644 wolf3d/code/wolf/wolf_bj.h create mode 100644 wolf3d/code/wolf/wolf_client_main.c create mode 100644 wolf3d/code/wolf/wolf_doors.c create mode 100644 wolf3d/code/wolf/wolf_level.c create mode 100644 wolf3d/code/wolf/wolf_level.h create mode 100644 wolf3d/code/wolf/wolf_local.h create mode 100644 wolf3d/code/wolf/wolf_main.c create mode 100644 wolf3d/code/wolf/wolf_math.c create mode 100644 wolf3d/code/wolf/wolf_math.h create mode 100644 wolf3d/code/wolf/wolf_opengl.c create mode 100644 wolf3d/code/wolf/wolf_player.c create mode 100644 wolf3d/code/wolf/wolf_player.h create mode 100644 wolf3d/code/wolf/wolf_powerups.c create mode 100644 wolf3d/code/wolf/wolf_powerups.h create mode 100644 wolf3d/code/wolf/wolf_pushwalls.c create mode 100644 wolf3d/code/wolf/wolf_raycast.c create mode 100644 wolf3d/code/wolf/wolf_raycast.h create mode 100644 wolf3d/code/wolf/wolf_renderer.c create mode 100644 wolf3d/code/wolf/wolf_renderer.h create mode 100644 wolf3d/code/wolf/wolf_sprites.c create mode 100644 wolf3d/code/wolf/wolf_sprites.h create mode 100644 wolf3d/code/wolf/wolf_sv_ccmds.c create mode 100644 wolf3d/code/wolf/wolf_weapon.c create mode 100644 wolf3d/code/wolfiphone.h create mode 100644 wolf3d/scripts/scrubBase.pl diff --git a/wolf3d/base/iphone/0.5551 b/wolf3d/base/iphone/0.5551 new file mode 100644 index 0000000000000000000000000000000000000000..6b1f2699192ccbf29167e48c93ccf493612ce562 GIT binary patch literal 2786 zcmdT_A+Vz`5KZnI>cG*No0~&cBC*uUY~YNs@4d#m@mtrvbnR=`zIE+$31{m0+su`x>b;6V9$WvI zq>bn#ZH~#r!|W>pyUbpn;Hk?oc?AJBPDpWeZ}gudzEYbTU8m`iRt!s9i7wYCz1qD!W+3Z0F#0p?IJ8|R1==ei#A z$3)Kn91I0<$Z8s!dLSS#DJDK4=~2e~^$g7QDSsIQ44I;GLk?pMNamp*=7;R`UBK8B zIyLYXVtpFZ6SrhBrq@?EJR_Vne>LjP?>c|KD9&u#yoh0JO!B4_V2`sdAxtJ}B0891HeoNn^A%52>NTK@v{iC4DR zckGxF%7TV)%kf7rrbm7x zR~PzeEbV3Gzt3m}qBzGx7al$zW5J- v>taU?&8@ZyYHy?X0t0IIEDxHCyIjP%6FQ-{SuUIqy95-=TQ2rd?%#sn1=OP$ literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/1.5551 b/wolf3d/base/iphone/1.5551 new file mode 100644 index 0000000000000000000000000000000000000000..08c580f98e44d6d956caa895e379956f9ab8c411 GIT binary patch literal 2786 zcmeH|EpUS{6vvaP;DQ=6yG0@^vCJW6=kK_O#t;yVv%p?Qa!Ipw2CZp6dg+hfJxw^#t}5CT6!+ zUuF2f@vyt(ePd|2?p7ETDA}!w-qK3>F^>1+L+%Od0n3~FpUcDZ1`i8ADuB~}(QkQw ze&!F%OfPPJx`%7NN~;w26};w^DtgEPT>QKp^GDVt$IvE&{1|vyo5<5+8+8g=042=;nNX#- z)~j?QOYYVmGn;MeO5gRl>9XqM@%Fk^!<1vp=~46GOlBZK0@@4ZanFSm>TBn_F){oY%x)6Fr8f z_{C}7GqG4bkn_3aj&1eZk~Wn zJaDIOr07`1Fbgur`PVZipZZFhA6O!DDd`+hRP?r#=e3Ce^mKoOsX_uvYo=NPv6>+E zHR%%F;nZ4*l=A8qL^sYtxs*y?rbyFPq5qW3gT8xG>eL=x|-@+hH2muCG|q mnG92f{~BWWzje%qt`E(4a9-n?codm`e#eaM`}uG*!1w_vx8pbf literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/3.5551 b/wolf3d/base/iphone/3.5551 new file mode 100644 index 0000000000000000000000000000000000000000..d745e4dad84b0fb08cc90e4cdcc351a46fdf1cb3 GIT binary patch literal 2786 zcmdT`A#dX_6t*W#%2>nN1JeQx3rkbBvV$uO3=A~wSjX;I3j_NTLRZ$ou>=Mh2Kw^J zdvcPdv8R(xx@S4{v)||M`8_|YoH6z^=)BeM+kV&fA8mhZ`~M@HjWu8Y$FOG3X9rj& zdwnIx3^AP+!=j2Sa69o3x$r>0&a%rG8tl{fzeBSL?qu)c2AZ?&zE#uwcUIZHYKaWj%8HKo-bDQ`$V32>6_W*b$4aG^IQLhMi8{ zMPuwAN6v;=qa%`TF;V2~_s?M!AUi%nJ0J($DEi?EZL%1~_AGAy4fdG5Esdwpsh(5; zZCa@Q$WtIFlQegG2V%3CviSPoVkg_Cw3hG(HPn=@vjek85UcEhF}3=D8o=F~K07gC z2UQ?`oP{x7GO3Jq``lQ;eF1hTe&}2Hru5-9{5DhMLwfRkJ7|YRLT`6{K)zj31I~)E z?|$u?@5rKk5&y={`ZacsILm)g)I~nD=w_xV&-1>=oQb?XRI-w)z)kJ1;%00F*w;Z* zqKd`^yTF50{jnOe_G#OgNaa|FJavG3Ncu|(>iPO yQc11JvuJmof2@+dSziZuk4VGZL$nbV8^+rdS{NI~jWD*+E{GTlqFMYb(Eb4Y{{;*H literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/4.5551 b/wolf3d/base/iphone/4.5551 new file mode 100644 index 0000000000000000000000000000000000000000..0df08a93efe3d24211397acb9d32ebff54e7c764 GIT binary patch literal 2786 zcmdUwEpWmx6vva@1h~$XyWMU`WF?k4a7-dAk(ITpD-ImUN+hzDI&esk$VgPSf@5gPyKU+Ty&pJEpp_&I&ygAj-BGR z)8Ox$z5!wCvP~Je=kfB8DElrCuJelB&P&BdyLOi{aJ|a)rS5^+0~P&y`^d;*tXL^U zUXP}FQhZ(8hzs^m^U=;;^RD=>&(yurriBl6a%S7-@8;e9aMsKAeVaATPO+3WJ!g|C z&da9X_vtjN^@Se`ynMvpddXR^?PahIJ!jcG@wAtmb-$#{=D`;F&7prj#b(xTUk22o z7Q_rrNjCpzX)Q){iYmU(p-G!7=^s<%ozR@su+#Dnq5e*U9>(f{h-`~Lmk4O(2A?3Ir{E)m9%exRzC zN4o~X=IUe6R0Z2~gU5EJssZ?;tG6>78vEr3T|I{O12^_D?xX;>ogMt!ndZ+`t_bOd z240G`B>hQ&89mck(^h!%3c7k1eg&`fLkF)wb4-oEXJ$Wb=MlcUH0+;=$DCGTk8lg$ z)ouznU%BEevKp7#hdz!VMN%*peVn;vfY*pPml~SA%L*ps+|MoLD_6YRsCL@1>2>RD zaK_DEd)P@L?bt(m_GdvtO zCNo7^dA#SUT6t!4Ay(cgef>*5%k{C6AZKQ+i6@m)E+6p0~e9@qFfuyzl^~ z=wBAg4ktl3ueR;m_NQ(CpGbk{T4D6H48X;1Q&z9* z8Q8NI5&7?-wl)HwL#-}|>H_F>c-U_Z{~f-09qaN3bWjsD<@%M2*0&V!P4sN7T{)wX zHKJ>?t~)>zZ4HiH{VvG?Y?~5j_O3gL??s8v9G4hiwfBG~(w*4lEI?~YUd=p1=N*`# zEZGYwRO~}6YsU=yb0P(2{wFlXbY~6^_AcVYN9Kl1UNnynHDzBHU>nE7r+F%ZzO_2{ zQY60OBns-e40L-31on$hBcBJ1t-%>g!qA9-~)JV~sgQm1A){!gY3ICeZe3ldCpSq)TAwKL-Q<}3m?eOkJ_jl;)qAt*% O1Lzy$w2NKMiL7s=_cB5N literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/7.5551 b/wolf3d/base/iphone/7.5551 new file mode 100644 index 0000000000000000000000000000000000000000..66ff538b31dcc3243c77682e04e2eb8f9f502170 GIT binary patch literal 2786 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 WwvQ)#cQh6EBOf|9k}r;Z68s;E9&U~R literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE1BPIC.5551 b/wolf3d/base/iphone/FACE1BPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..af998f2c549f7c15c065fee2ad0838183dc2832d GIT binary patch literal 10978 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE1CPIC.5551 b/wolf3d/base/iphone/FACE1CPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..5aa5f6e8245bd6ebfea30992f4f25715b63b32e3 GIT binary patch literal 10978 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE2APIC.5551 b/wolf3d/base/iphone/FACE2APIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..d301d2a48e501751aa8426225397f5f9d5bff119 GIT binary patch literal 10978 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE2BPIC.5551 b/wolf3d/base/iphone/FACE2BPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..c5c3d26be58f4f1c5c35ef23313e0fe0885cab20 GIT binary patch literal 10978 zcmcIqUuav|nYT%clQJH8R){nR5%OfjP*^_{v8hw4GsMxe*U@dXBfYKulMsKe7=Jp^S`&R{T=BS zZ~wxKXCD6@(XYMz3iwk#GmUvRT!Yh?$GnaloA+xTn`fO2eZwX3$2_F|HO+YDasRth zKBC{9crxQ&9WFika^c~^!$)5Zmq_lKyVm>Mavvu7Z1wD%nFBMPdEAdL(H{eS;j>3y zKKetCBnRrSDmYQeNsspVsPXB-L-*>)9A&XD12dj^ypJ!@f9WPV=;0pz9}F2tN$mYk zPPP`FFFY6WIEDi=o_Tx_-{(9N73g0qd_mbC)PY3iw{_5QwX)nB3cuqU;M!XTj2F!TovBa0U?`fWB0^J?^{+zc*??rE~lC!0l zKO!g^UyLt)9OHf$dib|#39wB*F?3+YGmj1YyAwXAdsT2C(A}$NA|uo1X3z0wc4U@( zT#hY#@m^GNqEo`n^@Sa<dZRO=*P7{Ot)13V^J2@SpUlyAea^cRgPuPFADV}pB|i5) z18iqkQiJD%hvLV@o~~AQwNZNE~I`K-`Q<+Xp=VBfwdCUq;4c{+pxi4{iOIG zxj%AG<`Vf(rP}g&PLGBJ8cYn`$R=lhex+%M)L_)+gTZ zT=C8P`r9r&1lJ)xJ%Bmhna9j|iBHdV#(BnREyJn{iCk#x!Vu|CA6}ckH+64{Jdj6& z&Rrt;oz&6St`*72oiO8>#|A#n4d+p-KBpPaJT~y*H}a$KozlZwD{l@t1%3E`|MaK#HzvLs{(Sgz z*k(T1R7;cr$8Qe3iJJ1AA>$qREa9QKk5n_&92|c%6BIEorTzAYhw*J?TRGL=}Bj?pAjP!MB!el@x6nYbd(X3G3lr+%fzR;!w-cdeGexzKLfp3lAk@lZX+R zrRc<8PmX31Ikhkdeo%wN+Es86(irm&u8oyJGr)V$z2DvHTo-5l;5%92t3z74Ihp}} zUM&uSkG;2pb;v-gwI9IOkv@P=BN3DM+$+Dox#tOQ;z|E|54yEBiJEwI`(w>n-3`_Q zkXg0q=-d~pKIqb?(yz^9Jktsz_8!LPGvhtZllrjh)a0w}pC@3ov{MlJe)c+79cqft%g^cjpnAh!3mKp~?2E;**1?$oQCfRgqt0J95?g zSX;{aVoNQZuQ*y+p?`kIbCB)hK)%ZeL~^uv{$9=humTwKAl^iYuNKnvTC)KTjGa5X zVLjLkua$*gITju>4!v0BRY5&#aqyH+33@O>N>V$;?CIJ6h@bw!V#QJlo+p2t!x2 z0%Kl$k@bh{0GRE~JeIqc_#4O?xPOVhkDsn5V0{(^nPEAEoC{P5Ar{^K)$kow3wG#= z_+i1dqhsVAT-A(c9{1xj58=6$K1|{_I@M+fnYP4N3!#b)q?XizS{S}V{7J>ol~F1E z%cYoe(Ef`&gFdGf5x@=&ljNyVz(E>SMs*j}V2k@?E_@5L`IpVV@Ox(9@~q4V|9AEh ztzYiUykGO!ynnUCoR-!v^IG!2eG$i~1@`gJ|Fyd7z?<@{8nxnS@GXd(;)ILyCnX>w zJ@;nUVT;WWC+dK=oT|hIPZY-4y4LxyE691(LrB85zFfZ-Fm4 zNFfg)2Qn5Jd4R++mxI3 zA|w0G2lBQuf0y6#e|V)ewV24$Vor@co1wL~C8+y`#d{ua;ZIOW?ThrMcJsmzd*hg1O#9};xc9D0`zLZu?)cNR1 zqf?pESSQK85c6-fcv^h+(2c!gzePj>(Z` zm&sfMSy9tg2~~(sZeS7lNt}v7@CUqqKXjjOVDao8M?6=@#X~uN%oB6DW4P6ncdfX? z>$~B_t>(MQvRAHfRQzHGPu!czJKNrkHE#uQFCy;b@LTfedW`sE9&zuQAyFl9ePMpOI373;NN#_72ataH=liToc!6ibH#UU{=p6-LId+{ z=$VWocf=0r?1>+qPwiP0_MH>6%TX_+=10F@)Vg}Ay^_bb6IbW|_gSdUp7K%iSu=^g zap64r#h<>kKI_V{XTqhwY{y&3Sk`c*^@eY z{<=3Fvz4hS>K(nFoXl!08P-6ItKpVfh{vqu!}2FSJ15mgaW{l6#AZ8GXJ^EL zopXg0a%1)+j+)OE{89K=*zP!bT`BZBAOZ9_wjt4KdkZVDui=j#ZU3AfgKlKU;-YRV zBWsp*`WowV2j)``w4S5<2j}~ov{dQY(L3BF*Q~KwU(^0s0iV6}UGpuOP=!d4KVkv; zpKa8rs8AK29#I>8_k5mzTZJ7()>^lO)G2w6*y(ZT-_1Ys#!;-`XfZ=*=;2n1aS^|7 z!*bZaIr=_S`rnwd6!S((h`C0+VMUc;Ez|DN?I^#3lt}g#R0hW|R zU%52C^9u8E{zc{?B0qODnX{HD(;BRc=tt{MSP*h`FSC~9q{6=zka;5WLuQ9Of1G{X ze3|!gHv1p;7V~%oa%1gv3pVX&7+ID1{L582AGHAaR#NTj$dqUc?A!#QQ-^L_GqMu% z{LiO8pZa%SKmEq{8{hv-8}Ci|UjOl#s1cX>7f+AA{K3@zIU4i)C;n#0oxHrbu)367 z!rx*PpFjSr|M}X?yXYH_uB^vKP)!vdo+&IP`=8%&S(IAyx_+@0!i~1K5Ngc-fjIQiI-*EXOiCn;yn7+4iwfsrc;>mnyiNC(b|AtE~rZpw% z{PR7vrak*?{`WT;mdr-fSpW4OC-PZ%yIVVs);#WZn9JJr|5`Mjk9mGFo7U(F*mJ9) z@0isCxu4A%&!>E^`S_O#H7$+1;LTFHp4C^B{rye(He9wcx~KYe#MWnR-WLBu{NQu` zwM7FSJB#x&zZ2F&D+iy;3J4NhlvQRe)Bk+T!%Sm6hRhT9a$)oef-C!WM*CouXf0O} zA!^#i#xw0{bpQFk`FREmNuV#{MY0V>#TC u&wn98CTGvDRk5Nqe#gC;du{rY$o~T&ByLs! literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE2CPIC.5551 b/wolf3d/base/iphone/FACE2CPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..a8294a16a6baa9f5de25a8076da5d40130764de3 GIT binary patch literal 10978 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 P9{!GFFLie2% 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 Ss;1)m@SD!{bvpD-m&70OaP;nJ#xu`*-wpbR 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 GJo^9mJZ+)? literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE3CPIC.5551 b/wolf3d/base/iphone/FACE3CPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..5cbfd2daeff09593a53f21421db404cbab9d4ae9 GIT binary patch literal 10978 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE4APIC.5551 b/wolf3d/base/iphone/FACE4APIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..244a004656ac0e3e0299039948ee9823686c0e00 GIT binary patch literal 10978 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE4BPIC.5551 b/wolf3d/base/iphone/FACE4BPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..72c74ef3d57dd983996312523913210c9f5dcc55 GIT binary patch literal 10978 zcmcIqUuauddbdayPs%uQDnuHL2>TSoP^ejkMe{IQDTG0CyIwgJB2I&_7ZxIu7v*6< zvoCgVXGV@Yl}u1=H4mN(+u6|u7wc`+mqgCEAlaGh)!-G9@qn+^vyH@Vu&!YfOX=@- zj;^g-+imQy`B0=I-E)55`M&Rb|BfwPU0r{R*WY!#EcpBv?bqMn{YQA2|Gj_h&qzOi z|L0~r^Z3t*e(n9&z#sCNsn@gWIzIJ!%H@ecj8O*M?fF{{K3Nq zziyM{K((lX6P28_X`hcWe;r?R&vl0>i+vfG@yz3We2MMtZkjVU&gpn%o$-!;VC1`;%=#+pN&phtL z|H`}U-$N${M-l9T^6BK@(bLJz@oo1edGvV8%0#4g5R(KBs$5a3Ij#bEhKR!>312^EKK%Nf z#=ra^Dmfa6N|N~F+uhi|z~4NTo0?dO(SuP3W<2xw5Pa;t1ATbezw9R`#GM2OmnX_vh>&Mth1=uXki?gi4S9MKeD~bts9gW_DA2ti|LM`GCJ8#&XAU-*; zsMOD!;&VTjC%oaQ39AyQ7-TENvxDiC#Pq~el)GQ{Pr4`F9i^xwvJJ@R%B4@9P-v^nnGs#sH$5oK}`d}^8) zpoG0pZYX-SIii=EXMls~p%X zYEI23YkiQ7f$nVC3bw+D@o~~AQwNZNE~I`C-`T1*X_I!?fvp(Oq;4c{Td=`E<)ru@ zyFYdhrsJ7lu~a*^q(-Lur~Cb$wc%@H_ijCFEp$j>9yr*4K2V(1R=bteU$rbH#Vo(}{occh6cE_h?>+1z`WdN(uPf`-d;zeR-qR#)lkVU;h%_ zn)0U&{3}y4zWDGoJc&2l4PQ4fd=3)0cZ;WyB+hyx2@Zml^Go(yk6n*l=f{4z@~l-A z^5;6o!DsCAr~T>6uFI}?_DNP9eiH3T<%O>!KI!~V4SYq|TWL4hh^GgKr~4nf&U*N| z;v4z*XDxaNu0wo!0CT)EkD2olpPucM^OVz8fK_MX>0s~qF4D$F*T(J+-5nwiNz55JM=f$x+a-d234%PHuiKm2gx)@uJ(mM<({z&101 znwqB!IDV(=9n_RR>e|}f+CBUH>~raZlN$GttR-v5$L~o6M9fQSzx?Zi`1XRmkZi0q z?1ldyzqDK0Jr2IDU@s#GZ8ooqGjGNpYu$v02sN!K;Ahm_ zaqzMCMxX*2XywKNd>!dS_%sqR$pQJ{_c!)D;SKy^Johd<&^AVVj$ZKf?Tu zLuRF#qj_Jfy3nFerC%Gvc%&Xe>^&UccuwNqXgQjFIyL!v`{xPh^{81tGMbeb@vBWD za;NvPSCX@JwNlm`bt!+2ksCCe_~m}<*&d$~e*qeB=+I>2b@9o;*U0#od6ke~%r|ee z$iaR5FJ*n9uIA4b9rbyke||@OF&>No{|Ar}=?53sjWDZrd-Yb#ylpv z^g%H<>lWgdGzT)z{b;uaS^G0qxj_@Z88_Md~5mEUbGka&hKSrMh-5vw!n!&e&i5mW{#JCQUk0T`h% zzz429Uwgjs;==9-GSjsNbtO5V*Wx_lA20uwHh@}2;4|xH-c7_2Iccil5^1PS~LI(2gec z$Q4QE^JX3!&&f0BbJ`FA`rzkC&bCaMZBs7LMxFcIc(L(>t{KlfHlEwZ2M4Hr%e9bB zzrwZYiKQG4;#1l`>}h~C091%na79WOAeCAL&$-QMIW~FfE#-IPI zFLv)}zV&^c{*&SJ?68JMrddI41sM>33^A5@fDsQRHvhk{Yv3bi13q=~rugJRauC$$ zUyWGE_pK&tza%)@>aY(d&K`BMCVCc(yYxLIv%Jk?v-}0Nh_8|ZVma!H&b_k#P|`|> z06Zf&B^}=QRTOhMDHm_{5X0KuY8aCg*6Q2bW(ig04s^93G`ft=|frn z;w-cO_$v9?l_i&qSj>j3${?ZxYS-MG;jg+Vb>gG?o$yA``IYtW0eo+Soxg!dJ0nY2 z6@Lc(h)NZfV#L1V>Ys8m@VS5Z@v!J{3Tt3z#-MfvsGwT{J#fz?L@EuLOVfyb$Hiw3 zl#k_O+<&{jjXerm6#1rs-hM|!rX2=~hM!cB^|Mz=T!YN#%{(@q<2(7LOoHRSm+bfxU)UDBA+YmU z7hO-F3w&mwcJ!qEnUe5OGXH`H*4Z8HT+@ta9(O(~@yWqHx|$~z;}Nur&M)mtsh8oE z&;diAB3Maktdp3Z%{Sqjz-8x}W<2w_^H~F*J#=I5*l!Mz0P&dp<)AhqJRxHZGj-7| zDY7#sVn6C0`%*m9xuzM&3NW<=d+#o@F~V=Q<(d(x5E9G8_dg$T&GmC7lTFOlN(q>W)P>Mb4@dz zd3?CGt@On(n7x$jLcS9$Ck8sC`dAQYl^c1&CxYazYo{;GB=Fpw^ zo;bT7;11V|*f9|Obb_~oxS8B^tMX3pApgA{-u&UtEx}th=8iaj(c6du{KVTW+%Yfm zR*gG2YX0qnH`>0jD)JU)Ai_H;^ll@N!D3Ge??M8H&tLY_+LM~1kD$9%LT5LC?zX77 z6P7&c{~}jB8lU$@YL0g{vL>#I(_$-Hm1GTfBjR3U*&lNr#XtN0xOG4^yD2IuTDU_G zYHGfOZV3GQj=jh`jictXZ;t#UJl#LzyEeA4!-!DDd^>t37m+(+2Nm|j56-9USQYl2 z)$mHx3#kpD-!E!iJ=vJa%!D7iuHO3nda%Nt@?rB?Gl{-&_8j`f_inLQEW5;?5>`D9@1ygRb4|z$*e!l=Uq_% zx(gxqb-)X=dpWjq9iEa^l)M)T>Ffy}Hvdk4vZm%rHFmt1W#2~>ap=Zv$9?hLHZt!% z$nfBN+P@$9dbxH{bgZ1MEgc?7zYm|x4wYP!eL+W^9bq&7oL}%x#q0%Yih4({CoQuY zc9@))$==RFOU?O}gYxHmc1}vQ5-KL@t&DDk<=Y^-G^mGl1r>zsjQG=U4;?n2D-1;8 zV`00SkX#bI4oCo9j*S;1=*Dbf1=fC6(Nj3cKj+7w8+I%%LQ3|6RbibjdIabXI53~R z+ixg)dH(IidDskVt(#&UuC?*v-IrqjI<5a`eCCZkSiwBYNFFiQs5fk=GHeA|Ss?SuvZ^>5pLrv5cAj4&SC@aE082`subjWQ z^BVJU{zc{?B0qODn6?!t(=x1!=!frLSP*h`FSC}!pu)cvka;5WLuQ8x&JJfEHDBg^ zoX!46U!8e8<;L3UCUP4`)yS$2(?8c`&LlDxCE2)+Oo6tbASVbwrw-k|WMn1g`Cklu zG4wNEC;h_r3*UFc#&biyGw+>>8gZF_@$}%~Uv`|MUeAByZ-(57%M;^slZi=0tK8E^ zpYNZuUeD6VCG?GZW>#X|sHSp@r?Qjijv4FsdOmSkm2&O6exV-3jkY%%sxwk{{*K6^ zgns4Rsp|GhNO$h^ptoxLzUmr?%%uIU`0(ACtA)>^R?qrv>(rS&{#RXUZdOyG&fnct z%i8+q@BG(BBd)AQjrnKZi)ZHH?QZTk>SMUuVK=|3e?4LR-s|~?(OC`ltgk#ASX|ef zJ7cZ&;!pP0AM(BJD>az;&K7Ou!H2UIrDMoGV}uQ%4V)&HqB*%>$1 z=kNS$iz+hH1wf&?dIm03=8{@&|hrm+%3=81c`5PAZEnSDExwy_ek z6-tN@W$i+BU3(JU|NWnQ{}@TceghgFB2RA*O(s50T#jDK`@$R-+}~tJs=;Dk_3uYH z{&D!+Oevkr+)F(cGWwUWqOWV~+QQEHU-9=d9^R7O-CVEz)khrndaS9`($%HeVo|I| zUkmS82-Oo}{FCr>>@%$NBzkQrkm~AMQ&QT!CE$#nTPi7CUAC!D+-vE#hd+z_F9J!9 AS^xk5 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE4CPIC.5551 b/wolf3d/base/iphone/FACE4CPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..df38e164c58242ab1b1b851e3033bbbfe891bee6 GIT binary patch literal 10978 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE5APIC.5551 b/wolf3d/base/iphone/FACE5APIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..337c9d1f90be5295d10555c6d1675cb5a5221023 GIT binary patch literal 10978 zcmcIqUuav|owmppC%bjz)M$qwE++KBh+$z($%FeaT{(n7^0KZx6=IwXLLO)tn>^I> z5UTBq9lSFmC7nvfXlzj!^$sPB#suunOSSuu*r~fnPMDEWqe{cH_^KX=1oc`nCF3ji z`_9pgcX|$#s1wNfxaxQd^Qx{DgnDNa0CcZ@fZzs{wmY(DP%Fuz- z#Pi>jWOM52)Kj64Vz`xz^b~qP=1OnZ;aAvY|^xW7v z{)}~wQI4yjsgGU_N{NPovPt}@oldM@;BTH;2~V$w=)t%LW;}EM2z;!)1$}hQv*w{B z#GQczSEngeCz@+~Xp%AuE8LmdfhInpZYa}f@SO`+gL3|JV?cMIdCrZ6gKUss;T&ZW z-?_$}QQ}hqOP2d{T70hO>a=S-JZ)9IMWgj(BB|lzdi2h8ILOtnd1jn5PD&+o0DP{! zOSP)R=NuB(i&)P^^J(pBBBD|(^o(_&~oO0XjF`K~oidn10K+>?P!(VE>p7@DcsTNrtPSSSWj@$k1 zo<9RWrp=d2HHm5dUE(^c^JOn&7)}l+V`bt$TuMMwd^eJcq&UxM@Rb_&vYOwsL+gG$ zA?9t$VMt&rW>>Q5SlNy@40K1mC)1NTF+NT@bxM4@p5IfB#COz7I&IPhJLt)IHA*Pg z?x=6U2EE0T;=k>D+c}(!Ec?CebhN z-`r0?uG8X2mSKGYU+TSyzujVwi5e^b>-QD&z^6<%A>*6%20rw7lKtoUiBJ83=-Hp9_Ppxf365*XbcR5Ao>% z%<<0LH*((jqN1O1oN@GIe7TMI+{ni0#W#98>>XFmS~`qIT^Q}$B{pj4PQT@+mJbqo zUY&K%jZk--N73htxBGARoAJzj;xqQc+g3S_9`?!D#^|+)pS{)F(fb^mG8owWl=$+u zrypr&{Sv<`Zr1|>S7H(Y{zveA_mOaRSMQ+Ia5E-I1?!Z&ISCmAydyt%GpYL;Cv%fL-jr!v!lk3rN zC_L@c@`$~RHO=g61G@GsTh)X39<>kn(hlWb@%IgUL*00i=i}|esB4`EoaN|lV^|bPy+e@qj9&qnisa$ZvGi^vTjrwXbIS`jCXe7 zZ>Uq^`Vezl@g2aUy%>!-kgsUVwG)4h7)X3SY$p#NYoIH&jcNe)Oj$ObZ9HTC%TMl( z^!NEHWuO$&?&gu9+j8yZ-^>9}%S>|)u2p)z65|QZ9kp=~pNPmqD)br>A9jkde&k>_ z)Cbi5i|@ao0k=c0!45Q59&c2#DcdURD$8%s-nYCj^p8(A1BlPlOZ2{aL7Oig#25D0f*)B%rKSG|QhYf8KcZ(oVjtig?I~NV{SFeNuepPqZtp=sMQJ z?EYB%KUw}nTT~Dajd)Bsf$w@WASE#S8*|@~)6joRWA1;j=3#!tbGd<>*M}A>Z&aBB z@EjVpM||VVp1nltKN&uA?Lyfvs!z^M5By^IC9!W@|Jh6QJ}1Lx^~)Su`d{f^8QGY3 zya{<)8}mNa9sG{yv|IXx)8NC$MP`jiSYAyd@=+?w+p*DjsA%*CGd$j zNc|gaOK05|gJfF*hv$H6XM|vkVvJy)ahJY_&1`SxzI=jBn!@aq}+Hd}^& z%WwIc{+2$HYiBzxKA1*Cg09)fa&`q3egjGHPAkNZfOly99-Ir%Pmj+$3|YuDIahGV zmttvb~>g(zbil& z_{;)q;G{jvdEup`KY|yok*RK-(~M{Cx4tX!DM4e;fzCapR+$NKhsjH-l>$5y7_baD zYIrHe2F7XyRTnwQ);Z01=6>tD2EI61@Ic&itak;`05O^TGI?3*nXwjmI=DV^fXw@e zuIRQ5t)g{KGoHEM`fd|H9K^m0ix(WL7ONWgU}ioMYY4~lzF z-n)Uxf8KD%h;g{peE1Z%OSsiMs-BQ>TizTxqhAwe_f_2Cx^Pc36nuA@w}ZHu+;nE; zo#0{ly9asmhdZ|@Z`tVWasGn05C!-b?vi-Nyu@2IuHd-wx1z3K1b$3H=aH zYfsLq#>%)G5%(f%o{-}>`N{hO7n~cdTb^*G=F_t2d^y3Ka@UsQoyKwF$y?7CnKhFU zl1zCC<89zf`tS`_P$VaQ+<5TL%Z1{Tan~j4ko*VoS=@olF3*mW+kW|vz9Kp0!{cdt zh4L8(yyV2iHxMXiT=y4WUEb$t)^)W0k8U{pj`60+2PLX5iRil{uKq6PX_}UtnIw(Z`LKc^^k- z)4rm;LSKqI2t;>paS_&&FB@5f`TWaSIi71p&Y;Gs*Wr6<4P?Q&tBTId;As52BX>u> z?{00saR0*n<*0!(;y(ZFGeILR^M5?ufAEhZ&2!W}_#6D6A!qdJ^wh#kbOzCC<>|wp zw?1DDTmf&~HM<__#Qv--ok`6^Tc5u(;7O`jt-s>KjkYW0uP{;?_}zo=4A@rT&tRFQ znhjpUvD-D>M^OM&#hob|I$KbuP{B~|woo9i2KKN{ev`1E&(K|AT~OYqTiV5W`nd_Ju9Rwi~! zwM4~V?c0U_nmzcO6%h4D+Zs+5a)krqy9a5t>md&^Z%@)+2~@nZO*`YR^Jz~eufd|U z-qO4lnQT7)PxtpGqoL2xM#Y-GJ~9)1J9;&ECG8%kj2Y*A4v{oxFa5jF>DNc&s!!cm z`8@e}n$LeaxmEjI>-~JEZvQ3w=LZ9|xx%Nv3)H^xU+m*%L5;7zv|1?s^MvdV1+yt% zMkz(beBT|v6M7Fb_1wCanTvOHT>SW=_J`Guj-QObw3=7(efS+$EO~zPy~)1-$GVUi literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE5BPIC.5551 b/wolf3d/base/iphone/FACE5BPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..377a02ce0cc5f78c21f768e52a7c2220f4f3205e GIT binary patch literal 10978 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 Mx|Mvn|AXNF0t}F!-~a#s literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE5CPIC.5551 b/wolf3d/base/iphone/FACE5CPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..b39409921a42f5de09b72ef2871858a10c98b64e GIT binary patch literal 10978 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 W)fJf@ST892{$pos<>W+U_J08-4x#-3 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE6APIC.5551 b/wolf3d/base/iphone/FACE6APIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..b51e3f0c54f25b4f06fbb047896f43b22a763503 GIT binary patch literal 10978 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 O#Gg19v#-odMgA9oLDWV7 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE6BPIC.5551 b/wolf3d/base/iphone/FACE6BPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..61f8c19d4d7877d7f94ae366a6bc458758a207f0 GIT binary patch literal 10978 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 nFf}ur$VCSRwiBA) literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE6CPIC.5551 b/wolf3d/base/iphone/FACE6CPIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..ce63b1234ec04867cfe892f83befc0fd5f3ffd9c GIT binary patch literal 10978 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 MoQce9(^rE32aYG(`v3p{ literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/FACE7APIC.5551 b/wolf3d/base/iphone/FACE7APIC.5551 new file mode 100644 index 0000000000000000000000000000000000000000..257f22a0a76c6238ca33a1d6fac7a2f8cdd7444b GIT binary patch literal 10978 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/L_damage.5551 b/wolf3d/base/iphone/L_damage.5551 new file mode 100644 index 0000000000000000000000000000000000000000..288ab43bdcfe666fabbee1cfbe7a9a4cda51280b GIT binary patch literal 21902 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/background_1.5551 b/wolf3d/base/iphone/background_1.5551 new file mode 100644 index 0000000000000000000000000000000000000000..6d893b7b84467a4314814e9d4702c58835eb82c3 GIT binary patch literal 43832 zcmagGcUV*BA2#l&+5&=Y5vy2H>u420`_))Sr7EKpWjMl8sFk6j3ibj|2>0u|8@~&PLzQ>+j3sQoh52t9xM_E3lt7oetH& zID0ypEM1uW1hsa`tB@0iFS{KBuXBi9A9jV9&;syVhu;ra(|N>gAIvs{&Be3d-00@Q z{N9^Z+^wS8hb~OS!u(E4V!Qp}xhXe4)T8^mPpx`@`oGTxZ=&aD^5T>lsy#N%SrLHdUlO>kSVIZK(kyd6YN)aJk&4W@Rq(#~ z;?jaDA^_`?Z2Q3oc7AlO)d@H^ctd-*u8Iwp;s^Btu&gg~hfhJ6U%xXu( z4hT3{7E_V^O_ON z2YiooR8<+m%E1e^6P~cI@SX&`$eKyugMJ6099I(35z?P32|MPVT< zE^$|_i4*eVgzrz`=R;U>BK4~1Z)=zruho0%(L5<~7fuT~CNxdX%Q7naJ*BEa)k~JR zu@d;Vu6s&N>2ZfX_K4*)PV!*OJ+j1c}^VJLS#!nlT}*a!VJK&@><^;!TC9L>ft4|%$*gmX?ZG1V$0;8 zdGG*z9(u*c4E7oJE@FFB6%mI|@@$vMVc(^4I+=1fkHy91wP-(X*d>+1dJy{eWfD2; z$B4JL)6scsX(_vc)~T~=qEjrlWj1Sj)fS@pG}q89S2)j@>ptiBY_Ma3u=`xG+?C$^ z;ik6>D+n{5=i$SJbxeQ$P*X+W653nk!(4((h&!2m8fbsVu5~spun+78%F04m{giHA zA0O=()?jFv4Lt|Hc;VG4G_P0x5sic}O=yPVlShqcT;lM()QfVM-|eDzX6W;M$D<+( zIU3@B#UlqzXmP}9Qc%W!-zyDYyPw6wgAaFg+0bJNOjZ4oB)LJnd|A^U!k&qZ7Zsfg z;jF|;#F3FE%#~PUQ%^@2YbEyaU~r65;DBA-x%1CLjsrH`IBP9KW=cC9ett(HJddY2 zf1JuD@XpRxpG@g{vEHuXt}s>rP9-mMHy6r@aYIp&3DX|yY8x7b`NuzgyqkmUvz?t? zOks&VUIu^rIRSW2%ApjC{6M0mzP>|J!6V9If(xp^-wYZC2YXXv@s9eZ6=VGOl)8o{ zrKG|E>(0&TDCE2+QVy;$z&XGM&a(EQ_45!8Ifk&}FoR!G0r(Z%yCBpmGJggZf8(~? z8v5~gSF~RFC=ipnn3-DBx%m8j-b)i%HuMQ=1{uwp7x!)>m1RtGwJZxo=PT>*5g&#m z2=6#jMT2!AmR}HX!dP*5!JwhwJ;NW%%F4_{>pD2#aAPGt6XQ>R`qXS zq>vSe>j$6Lfc?V=cVl zRhcBL#EA+Sj$Su6sJb+;?^Q=`Od$I?aq`T`Drz+@+QKe^&+%f9~7=%R+g#aFXAVk250wmJIJ3iQ0~SH>c(!5(TJe9O0o^?GpI zS8osNB=w*P>>(Z?(I1>yi9>t@`x5*m_W3uLCDve1&X&a(P+T&0IMO-<#{2jP^O>A- z9d94&`5W2$o%crDHE<3md!IdlD_)^$(IG!p{^a2?YkDA7SJ{5oh-QyfPi~n7b_9Ra zA7d593?%%lYz++Aci8^d^Y@!e{v~=puu_k(@fN|qieg~epfPX9OVBe*(+Qs=UtQyLl zzTV!}<9Hw-u|v|+(IT(*R2k)>jjv?zLY~ zArAa`^7^0P*XXByaaDz|m# z&8jun<9m_)Xo_fDg&79*1KFtoSbkZlE5wIbds}B`lxQ!eYD`aqI3CL?u*^g8cUkG+ zOK2ZgYx06o{1;qSkdNMP7#^C?@@uHN;gKOXk zbpg4k|FOFRo&DkUz@R~I!nVit4}+Rwp?xr`b}q1faPc!?#u6~DL2Hw=repB{`~%o?lwZ(f1A6p2 z@%p(kf4CY9pQgM%m4Tj{3Ks5gbwIY@%GYkv}d9j$L!92GL`dj<^@q;^C zRs6K)&cId)Dzi;^L8V~Lh8pCOUE(>ryo zHHDm6m_F1j3ys?^X+VnRD?P`@81gO5*wr=3g#H~C?K3qM2=V`5hId*Z#Q(9Gf6(ml zRhVFSYz*aXO)2gDf%slblwD@vrmn=s$0qf$*h*Z}7yTxXG804n*7wKZWroMDCSb>$ z^O`*5kjDkJziszAgp3P<}Dp>gs{= z70I|^DiHDy&Sc*;bicEinUx9M9{01gwWYFyFghzO8QHxwdRN*>cuuI<%Noy$8p@)1 zPH{TLNnG94Ch>>;d^;o8ko*7l&s+raTUIt0Q4xUY%DErZ%6}<_4T?Ep#dt}+L?;hp zy3iT-hlV8bA|CfX_oV)#m+WwPpCP)VhLYe#xX$4UMDbLO0gImS1P8c&4-&5n8cC7S0wwn&{gs48lhJL&u8wDt>YC{S1a|BXjP| zV(rcj3rXQn?R_Pmhx;6`o=oPL(pneI-2GKP_z7=M6-nsE?9|p(GUO>dk7oy#DS5U` zU#TIFEK>1ejmU#bTl%Sn>BV!+^Bpjwi^FYHHV@wy+Lir zBj;Toif20S6!Q{U1RiQ?I-3gd%1-|~#Y&D1{epk;Ym^6ksQ*`t?)#;ow^_;CKtI#D z%38>Cp|`aSXq57G_|jU<8}+jf+~RPy9_YAWNX7Ur+5a}46g zSga(#e_}sfPPlz_dYcmZ{o|%{1yr^xv#$IZ_^&`rsj6*2=jzc{IbKSBIQxTh&%u%aDb!?$p+`d&*py;TO*&6tXwa6*l+Zhp^sL z2Hy0RxPYIV?A1iLFg293m!nS!*)B{6&&PuyEFRG}@Gyr8{^=Sv*5ksgCeCTO^>RQ^9PmNpgh4Eij<1>%U_PZQN6 zJPjo%G<1C;yM{Q?)AtGGqX#(+?OJ|6rS{2_n_9jNUElOPK0+eL&1~(;cDBeVUcJ@c zXg;$wxf-(M94p*y#c?fv1Koeq`HM?$+|%Ssh)OQxY13-O ziXvXu@K9T%Y*et!_pM&1w2;`Dxd_Dyh8(u`Wec+MQc}4*%}Jt7S2WcdTY@Cd9bgjO?BKx z*zdH8gHN6#J7i>JX$IpWOkK^qVZYE1a~Tw{b97c;`U!KP4L!=(H45Pr##kmEv+%Z!~{$o`k&>@?3<3D56*&+D}ixiH%qiF>H< zJ&zn0OJw)$Y(ss~_kXPpJC9z+Q`|V{x#XwMeYB8|=Vi`YKf<%6TPV$h& zRB&HYgDhCcb7St>m)RXz;m*#d|3E_i^<2PpHAChp{bI>q;i$b$U+;EP@^0Xirk1zp zd^2+m!tz>OJl?58l2 z$d!5cn+5(Vz9}91@uDY+d8#1XJh zM{1r>m2l3Ferl&9KM<9!Z1j{u{2)#}MV2J9kIrB6CBnCsr$0R&SurZ`*~7B~Kf~UU z_Vo^gN8RFFBO)up*(ZMzYnHZ-mh3yUdYcOJp{@0mo5)~~0s}5=)G4)s&DvUbh(~z> z_XuHRg&XU_hI@a*l|6c{{Q^lE%Dm71^0Or^^*q05Ti6c{n5pS9)6J64F#83+Tvs<1 za$*CwZ%6T>pYz`A5y2_U*Ua*fSmDMrl#;G8WCVUyJ5=i_4a6qJVy?I%nUl*s96*+W zHC8^YAxmdsEpJ-~$&y*vAIZtdWEh|OmtRsPjY3wirE4D8Iri;@n-NMlACaq1or>-` z&!)u}6cln!VsiPg);#|PUc7PBxd@2^=Hz}jl`N9u_wPT-7d734Km&usuV_~-I=KEzv0iKhDwLsrCb|FQ(^ERB8HH_2JaPi8Ovxx~vt zn9T9M6wb7OeYHBJLrDg^%8Lp-7+Im^cWFnNB*|70ok}e=7n-r$-H&8z1smy8r89qF z$W;78a~&$xN;kI5(Wy}^FBX*7l@BxIBngi|@U#MD9FNitqwm{cd%=0gy z&Q&WtD@JR7f&Fw6voo8$Tdk1eoai04a9&so4wtOXe0Kl9BO%eP5SQyoH4JeR6!NdddUtgBU>4g>o-sCn`v z5aQm(rlzKB!U6X)vouyKZ0W{UF^1QTv3Outr5xe1WqI}smNbo)glt>q5g|=sH~CtH zs$idf`R=i)PU%tcwDrI~k|c$b#~mpmOKEIsrE2HW79p>#t__crrEn@7O)bgNBEC!d z_-!F4nNwC8x>ll4@$(+PJtBm29p&Q_s^p!-7HlXvva^+`a6g#bt%m(0^2Bn`IsJ>Q zPTMSWWiGs(aO}0xmTAGf&?tm+mwfzAg;r2Qk)`fV2b>wZt|>WYp6|x|{cv@wIh?D< z6P;}mxiu~M#qFJ1DLikI3{LMj> z_dTZuIBEITw3b1iY=rZUb`|PS9BnY<#`?q6@yJ36%A2HR1~VnUns9avi6%=3tax-t z47dt@%yq-g%_2GBv*-6>6kp`$_6(u(J;TnFW#3b8N2rQ@Od& zmZ`ieq!+SHX=}Id>nBT!Inh#IuBi+DR?h7l$a+N^VP~jO_q2fR0N1l{G zJmUS;XSNJ^y}!T9OF<(K2&j zF4#NHApfvRPAtdD|LSI__~3_XJ!{EQcXnL^XN^Rj%<<=NC?w&0T4GNBbs?;mpTXOA z1oG>656gLDg7=ig`pyXpVHm4{cX=~eqT*RjPaK2!r1LZ9vB3Va&24NSqjeVj@p&Th zYs`UxXJYw65w&oXDwao9Xy&L9RG*@f3My>q1Go`el!< z(W7EqHaABs-y%IQf6prh2*3~5x=kc>2a{P{9k8$Sq1G&z9EGz z7t8DUCz&ai#EOL?k*fVWwK7uX?r3J$ET2y^^vA`U&|rS^c_(l8FOquBTvVo0#^IGE z(Q<3LhSC}r>jLYF8Lpi6b%Qv-(#pzDE9j>zKav@*Q--q_E|{TXLj@B0g{lNQSX12CbTHpz;yfm|ec8PusPisw|1^L{>RaozY7(b7%Ns>6s{f_p6 zd44!s5+!N7-D4p-`dM2$_!Z9AQTZn%3Jb{sgS6nQYz;BeaQz#|PZKE3$~xrN3i{ua zAzaJHdA1+Ig^m?S8&I4#dpFNe$c`m~$H&L4fp7C)9M``e@(x4U!Wn9XBer{v@(Z!z zQiY*$#_CAveENd&ATu?@(HMJMI0^joXq3kuEg$f`V$s4+5PyHEq~|I5DV)>&S<{5<9%RvIAgU~pb++}NW@cZ7JZ`q(UCR|HeP8GrE7Pv~iJ{nOf0L&9n*%&?%F7ivz+-V4n&qmtGtOT!Ba{912T@ z{7w>mHJ}jkwmAp8LX>|IvCV=1G zJ;$y`uh%ek$07go@{ReLLcnv^Hs0N0p5IUPv2W>dVVNWZ-E{u05bRUQt12pLH?o=X z7`3Nt7ac_S_g=G`cOeePuWY}39`IvATso3n$g#&3|9nx1@bZn@?Mh)hgj9I^I6Rl& zEc*2y4K)zEf9saDHSn`3*>^`wXk5G`)GrtD!m};ktI#^rNOn3Cz>`@?FM!_&z<(gLp+L2)YCm^+=KnWx6x~PW_2Zc-RbB-p!550 z)vG$dk?>hxm4#S?A3S#Z--i9L-ZKu&&jKDEbG&z{+XQ&9Jdc{U8o;l4W9LQ??>#yu zdkuIX<~kKoh;T;_t2{O0-*eAj+5+>BeeBm2BKskcmX#s<@z3Nx`vLF7`4ZBP{(y&e z`TsQZ-+X&(>X5!gGQAG)%Dq^KNO%e19LoMza=A~y@4JL2)`XPoDN1f>Zb>f zV6)SUd4X)`L>HF|DNOiYy#n;ht4f_CP{>xyb^(6 zX?-$h^wa3j2=6*xd@|oah4T%3uMY5c%)MP=7g_NgX3%t%*|26}wre|?Vp%cA%HyuT z{^J6=e_*Ky#Q}2@CL|Jwe+veBdz%#->HcS=-Fkyp#l*r{R*|xL!83<#Je}G@wlKEx zfLfs~8I(TwO)a;jfALMg;w3FxrR$cybs<6AGlP2AJQDoFn#G&AYNfX1R``mq)DU-H zj#{yWAscwo9KeS#NshpJ}4cb12pJlw2YD7}^80PkB! zX{!CP&Ct$ouO57^R+6OO;Lj*x1xe~*wR06}_s7LwY=?Y^SK}Joe+KM*k4CY?g&BnT zco&{Pd3}0Y+oZX018s+$t*wyH1-yRHupf~ATi=K$B0#6Wus<{b;wcl~eb3BA8(C%h=IkJeOqt#$zd>G6#C!4k7MTBVcKZ1tE*bJr zgCR?e_G7N)JRh`A4TfvpDBd`A!)zJaXAjOEs782yC+RrvNHm4H-XVUaPf6WD+ z)L`gjgYE`9Ni_AK_+jPqcv&PoCpO8|mMn2+_8X>EVX&^xX66_YA%7?{IA@{zJ~zJ- z4E7DHu6F4|@oLHMM|db7UTE_24T{q|f7`#BELHKt&iyrm4EgM5y%7+Z*`R-Qf5XcpN-}m?I20bS8$JtWkvk1+IBaFTr0SCV}CP> z3xD;x{AfvwM+N7|-D6_KR%v(GsVkn4H-(3J-jv8wI30g%J_UFMZ*nyI9(vxQvX(ld zggERPE(YA1i(B6P{edUs`>fjV0EAztGAzF}7Yw+Bgy)57^k0bd5Q_^8^|7!& z)Wd(=9|8NKdXvW<0iIW;I%b1(ZCP*E41|D^>OQ@z7~!#j$L~OV7>J)eowLK5Sxs4+ zm%A3lP3n&Fa@4M>_U<=mea*~**H?jmT(HX037zjZRrkI_`yh=Lvj%uwjQlODsu$v~ zUyTlYi}WoC>I@qck9?b}$uxm|sW+tkr&}#5H4Gp>9}_KS1cJYE=olHPqQ((14?FtN zI``$<08a|K*sJZJe+j@#Uccz!!aDxx;`al54{J{QZVg&@wdceb=w0xZBvxK5^Zv9(aYg>m z56+gY3Q9(0J!HF$DO{7Z>j}+S$XjI6c_X^4yke{q<^%t z%a{`a@ubD#g*m`45x}~7qjMsEH?BbA;eV$a105{(=5*8FX#SHlp;3X*FL7T#%=1d@ z#_QZaL1&EJZ(Mv9%^N8|ZzYF3b5~i}2DILGWm5}XfY+P(c9M;BL)^MX2D%TkX{gDD zd1{J8(<+VlE8!T!T1bFa@ap;r-(l|54^FIcl=i&zObTBz-gk1q6nBFX3BD8xNP z(BjYn4e(AAZ}$8h0{!kTd=7D@aRQxPS%>^6+x_#4$dAlfx#9pxa*m^PIJ6}a^oZlK zdGjJ=1F4JbGMvzTt5$4Uhj1RR!=I6KjW#Urvd8yrU|;U(E6YN0W|zp)+nT1K+*dDJ ziR@XXg}4`;pZxWfu+E^9dhky$(gT%AhPtZYI&UGf1#ls{y6^sBD&Sk;_{^CM`TNva zn_RpZ6&50|+LTlm=zm^Cp%VIpa1Me^$&kmAwIurpfwiu2VVO4>|jaGzuP)S*B)7uS-n7|?o` z4CV#q&+`mJs}R)hAh z;LBUZ==l*Ixu6CDd;X_MULcI;ekwXAkniXIPDb%v8YkNzhu3#^1gD|%DVfsc%0d5i zv9J9*JQ|K?0AAIU*3jZYcfekC7C!)$BX<1cgGrJ!g;R22;t|4G202ZjqmIQ- zw)gy(Z*36PXQ2I>8ha%T`HRx2gWhOdk0&32KG7fdxr-9ki=<$5J2l%?)3O;K|Csm8W3hBKfe_RSd_KzVdS zT}~;A%Z@HRd`+UL=if{Azqqs2mPP+IB=>0R<%+Wbo3)eyw&=ivd@6 zICSU`ihF5s8AHHplo$+MyEEi9ly#>=qOSIMRv6xTl%aDoJu&i8E$0%Fh|8CkLcEn; z9{{+AR?y|RWc8BPa5lNV1#lDOZVawX%KD|zR=W5$O&iN8>>r3_;+YQ z-a&*L{zZ;>2s|f^RyTTiNqr4vUtQr@CFscTe8cTXsfu@V_CC2zd5)c&j8`Hav6g3* zNftR`9b;F4_j1DG?tbIUke$SaVV-o#erj%K7l{P(mY0|O9K0LW)1q$CfSr6(W@`rc z7G+V9a24pi@L<2B1askR%uCaJZD-3yx_#FrV{=%Sn_ZJJ8M0Z}^QLFbz}Lch+nP~1 z_PBTByW!1}AguSo8U^r-)P&lxAmFFyCr*1s2zh3-=Oe|ZBPw!<7Y#)#KsQRXr;t7u zD`>pWvycBSmTUO}&dqMf52PKlk8frGPA;Gwp2>hb#_Md}X-`QwXVu}5MLMO5?|73b z&XvX`?*r3{Go%j?2s zL{yBH?0Nq6W3^(TWSMK61K1;)`|s{^P`ujJxW^IUw;orL-jOAv0zqBFQmvqvH^cq# zVZ?W(AN4Y3$ZeT(XYbw3ke}oGp1!bjhIskT*w-snz~i51vJOCg!fYBZ{+9v9scJOJ>-I3A(qHWUP zVJ=#Q-TK^KB~jQgdq0F&01wBU`8l)OJfBAx2KUTJ23|PvuU~jd9?~_1&LM+t=&-5{ z@>d=aS~@(0^fWWP3kuMFFx>nM_(+okZF~E02^!Ja8JFU};N18`-hyz5=41m4^K@ggV0SDINSWg(r0UskXm z=xwp#;o(uE1kj6>l$XoF&zTuJtA(KZlX&EnX*orlS{g0QJU5rpJu)&HA&bLzowl_# z&kw}bi$fNfi{kLtU88-f5;@UTDXXM1<0xDHj44Gr&5s{X-VR|0;uRdm@8&`i+Lmn* z(a;aPj`1QZ1oCUM5Xo2}FAmG{Ez=?$ytsEFq7ZPro+MX4r0)u~-SzVbe-`GE=@)83 z^T%V#^hmFP2WLL-K;!KExBgxT`v&&yG07iVK`857gmA8tt|`iFg*&<+8vfVV5_YlOT2?BwIO3dCnq zj%@TQ1pk{}ZI)oOpGWwpwE7ul!WRu{+ZAwqqt$Ob8sn&-!5(4x{eIIZHU^*sSxTn z(hnU;&<)j50}vOkI?^JVKxq|=l4WkVgy3QVKXOTpe@1%nEh z2N<`(P`0ZDbf%%k-;sfrTKQZ4XU;Y#Y@S} zjo^u`Y|F?JIWZVKdpF7_q&nTO3-Bw4=B-UP&!0~_^7ouvBU%uqkG7qsQ_iOq*jcV4 z%YZN3bS@k588OlM1=j49SV0J{Hy74l`stH4gcgX8^wa=#6o=P6^;xUr$f;ZJtCX8X zH}E7Y+g)1F(O#bH?incoz0#^*u0eeV`^XVi_0lHoBTx7AOom)R&HAm64|Y}PPCs*0 z4E}NP)xf#vdF}}>65-0respUI_(LhJ;mGQptwMJ4;bXa=>*T-mE0{*{`b6Zqb+ZLgtxPYGdlN2R;>Qa0`Lj@{rip} z{37jOa3)!DkaaHL(J4;}jqOzu<^=padvLVA+gzyPSuFWB9_=$H$84pNA4YF1YGXhg zL5Q3C_>c$UnZ{0g!QK*Sz1Yk> zOb^t*%%FXW{mg2db0jUrh5nveP?{t8?>?Pw-3aKz>V_o7BcLx?x36sy^xRn4756*H z9>kbgE;ARIBsf2RQX2xe$Upy_x&0n=q*+->c?cIC;!Z%`y%)=n%hFI@-v3-ah~l;w zpS#iK!erK*1w)`u_&}L=4dHEp*hogwQ8=9#tE}{8AjFx`W>23U7R^r>8C`85r|iKL ztuGbU%$eBREHg8u;1sSNC<}%0;kH(0&XEvbocb#H_nm-0xrK$hBYbk+-oNYA%5$tc zZo?%zTOwr_cUM;WG=Ep_NJ^qCkM^1kGGjP5aMEOos-pw0PJgH z6UrB$Zsil`Eo1RrG15W6v+%*JtgJwY<0n286v!z-Sb=VMl)z8mAiM3)#ZF*`)|Z2z zPQd#o-%rFs{Myzq`3~Y&VyZK(3E|?cgSQ6>d=L1$cEFDSZ^-nqGEKm-ti;6hSg@;E zSs7I*FR-$jKFh@%iFHeI4OPT!?BBZfW~39WdghRUbQE5V4c*z4S(qlYUt@Y>2Gmy_ zy0^3?jCH(tVnS~KT(7gX!dx^9b9VK!9TNm%qk`AQK(odlW1dzix zIhd$_z(v=1S?*$G?8A^X@ZDqOjfjU%zJI4ptc+^jPcKNycyDDR;VL<)d zBgL=)#qS*(mPVmC{LeoYf8GrCtReGAx(;~M=j3mq#h^#r5ODXV4%&P6oIikGXMYh; z3~{2U(bVN{6wk4IHC{VgR05Z}iBDvy0~Wn3r3&TMA-7-e5X_Z_s>vw%}_TT0i56ZGY$* zwSujAaeI(n$}H<+mJaapC#-oR$S%&E|NR}34opgLs-#`Dlu>q-mijlg1#q~n}IZ;kt&Iq?pFu#2i-S0Lh)PVeSWpz{w(htleUd$6$xG}vV zmoEffK``IG@~v7~FUURdPdS?B@VaYbfKT%mhyArh4e{`%1wU;EeG=~ujU0;jU*CpC zd@0PsteI}t7_wZ-_3M?_#fpC^g9XlJD2_2Rb9F`b%E8NG(a}~nI@9aoYKdZ0;F^if zE5rl*2mct+XJXQfUk;e-+!A|zS|$a&}z-_vUKLdk@7?44Esc%Z5x*<5H!Tm9SV?U5BE z=|X#l8IdwAkGDREoFN+%Ft5|YB4uvu_;{oBvEc85ed2E;Tr+AwCpLn*7VS{1F{+0w zD|q|B2=Z@jTj~Nvg(=Oh)X@m#?a@-hvs6{+hLuKW2Yua8s&B@`I3-D6M$WJn$&XP!=Q1wVJ zG|e@c192GGLzfd9QIo8#9?*M)m zd$oQ13h?NZfaPte&`;vXq91dRj?8u~$s6(+{NWDQbtrE?wRz=rbI=XFTfH+I=}RRd zF29g%LJJExvlHofu4ET(*$n!eb(^mSAiv6J^7tL}@Hj&{Jx~a*ckTMA6X_l|9@+do z=su}iY!rY4a`7F0R>w@he|w)Bk%3-=_6>9R;s_t=o-%eoJRXPrd3O7*TJYhLWv3wIvL6xR(RAtol#S_2$Ahl+W+7S!Rj!!z(viLA(L| z9O|DQ;oCA-{BM&R8i$@kgSrYX_DAi|N2K?@G;j4H;QOgfe%_9tYoNE^&yF((JVZu) zb`$A<=a??~5p=G!(x`n0k?vvEU#eoj&xzZ7e>c$Yvwp{RgKi-Q-@WJNvoILfxl6}h zTL^7veM}#3vM8KYURhoXI&1vh5D1Rg!1LFFmH^`HIIM9JbiFj?%|SnexBQh-<21sr zAyldN!S6!-1E<^`_5WV|e8~Icl$2eIm{6AobyDR@^ZfUe;pX3t!FZ_e-qr0!^<@sv z>mcrr!(P0hQ9(bPz_`8pnUKe&j!(RQ@50`Tk8ib`hj{y4yXJ2|>w8g>0Xm?5%Hglq zfS&d}<-7GZ3sHT6&E+>NR8QyUU8_R%Xv23H^T>ey#@Lk{xTjYDPepfBbIvmJ$9*+kV0fY*;g&<_b- z{*d%?1nM`wK9LP|63OgMTQ>S@1@Eb=&k44Dl@A{N(0OljnD>gO&odytVUxZ)w*~1@ zNLx0q(F&Zfwz?MtdfqIW1MtQ3X#*if@2D`}d(D=d(!x2|x@rcA$~L7Jg|F~O`^sZ3 z6YB6>nbo5360|<$wQbrk;D;wZu`&u_e!PS8-l2J-D&LJ-Ks*;4D|;n`eQW6MybblW zm~OBi;-;CHovo`GN%}A4(v@|;6@m_3X8NrW+K)OZYd^x>f_nP(NRO~+Z0sY_8+R<; z2t17&OFvxh33W~Q>Xdta=zKb2s%F4*Fm>kBcrJbdTYPNUK2OkFIe1A6Tv(2H)}Y@U zl%M|6*eLgu3{Z^sxL<^N1y*3t+BD$*_{@l1%ODPi_|eLeEP}eeNo{Q*esm^Auw%QU0Y{8MUyj?x@ z{6{4h?*on}izyqN+7GxT#B(oo${I@8^1tfQb*j|Z66p-O3#@Ek%V%KgNn0{Uc)57y zU+ogW$#C+kPv1n!g7Em8vAB@qh}qAi)6H|MDcLzzc1!DX2_3yAo(ktN>A-JuNs?8V zv6;(F5>(g+XO)F!gFTONHMK#wb=t6Y+Ct<2`QhX+73zV1X7%S05C=$fYS3W>;4|hd ziH?LgBOqGuz>sZ~9wd`9)S!#v4di908!uJNV1(N0l#WGPKtSxCkn%{uy4itp*KTw4Cs-c>1FLtdQ!%&?X)FEC$_3puI(`(3*Jp4&zWjFH2knb9d zpx%1kqC=o>Q*lTZ%C-#9um1Jq*|ui68}o;j@h4hA5Pr{b!!8wnHfC#EW=N9(@8NE- z`0YnCdI0@?#P-$<`QTvEhm+U}Oxs=#em@Ws6sKN;dO0k;=J_G0i^84rrlyqqSbS=9 z_~TbXh&QJP?g;q-nBdZ%7sw(9Y`oy+O@znmr=?Ok2DnJmb0;e3w*35TV~i34arhm8 zR`9QQtD~_F>6Jr1DM>|_QWMLQ1 zaGI5uWo33{hI7Dc_j9gY_s3>n{uhexNCz)h?46fkfG8EqP^kT=c%` z$&J2)f(!8_JVZ-S_HtwtS!#PrZAfhI9Du z_lplm6e+xAi>dc5z+U%OWcsOFT-(6Z}33YkQ!NKc}2w#YcYkH#P7xOOO_T2*hgT1BP-5K=BJkwplHxa+{ ztUk>K<;~BYTzi4)!d~2PPe#8V!ro@>3DGw@P2=nb`3Rq;l7l`5exGDs{0rdyN?81m zeJBs`Uh^a1>dBm>lFkT(Pj5MT{|?~e>?_XK<;Xs}2C~nQfhQV%);$+=DXiZ&esPLX z5yqZvVH0lw{pr6w2kOe)S${uK9s#{5XR+rT$o7hOe{T)njd1p_E-F(biiVPU0Y)ZQ zr0}GEYS15Tm8KLuI=r+=#lQ1$s7))76Lfl4t&ro7scPlr@R|}4<-Ko&XO9^z`C$_3 z+c6o`4eW<{ytmaI<0iBmT-4PIe8dL&&yws@L*NgVNyi#coROT|t5Sj;aJ#`e#E{Kr zS{X)$sZf_xcXxEeQ(8kA5(vkkJ`BI>ae9qdYMLO-{Oer^3+$Q-yY5->AvLw3>2P$1 z8!J~Y{lCsg{xUv6J&@W&*0FDszvsmeXZ`)yG6Hze>TNW=<9c^*KuAV)X?b|w^c_{tR*J8zd z=8_Y_FqD5Tx77D7t#@TsT(k0KDBL)2N*Lp6g=YnQ+Mxo~JxiB49TLlGh(l%t-eRbC zQNA1cq!r}iRb6MHt|Nu_%k_1O8FF`)Zel`00$$}*pvRFg$dBBUyUS3$g`u@Z!^M|l zJ>yR+3PE2*%V3`J1p9ydf_OsO;mYjQHZw9LafD%fq@$4MfW54)c`26j2;TP9ht!IH ziQ}tItx_vSA4L~44S`@MT=$OKLw?OlRLI|C1OB4EadQCarjlG-`A#HbdT7_xB>m=Rv=AVE-?k70J9tjRt;)#vWH^IOb)8 ze>AfUjoA-;bIkO8J%L{*3I_Fn$J=A&pRKb{D;ouRgLEcIaueSJ3q^%`LsO@TPN+AK ze93&p6odXLO%nMHqoRmE6YCo!Nopuq>VpU7qFg-G)hrnBC@fDC{VEoV!yobP{|V2< zj?CGO!8xYnhL#!7?{^H^8ao@&S73%uZnLxk_p zQQOx6--`u1yZ*Jz|XL^<)tyG zP9W6Bc@e^04StSuK^IGW;q{x33v&a_wKW%hzowel744X2O*cu19&L9Aei&O&a%C~- zoN@H=L>nO-*qr4R2VigHmMxk1|0h4enuRe_BoU_XjJ<`kgcBgq?t-)Vty z$klJ(0)7bkdd*wl({ZVx0Djjl0FV9<9s}_N1~h~o^asSGF5U;}U)>*^tOx-;$kVv2 z0(AZATT_QH_`MWz@$@THXBL`KV8wv-avk*ZwWc{>8F~FjBEUb4mU(&FK;E90l4(GC z7sKd~p%#=A|A(k|k89%0{>M?PcEO5m5m!)Y>!s@jXm^!*1#ie!ETBSEsL~6dLIvy! zMNk-ZgsBEilpui(NF_jm5THOIYNE7KjI9C!Dts!apc0gT4GIA=zxSd0ef{`nUgR<} zd7fv^bI$v`&-*NQRcBJXd%BJ1p+Cj(g*IlI&k^w$#IZLyKH)?-Q(7a1M_EBkI)?mM6AgJeVTQ_%Re$n)Qy;={X5eYDZ8v%@_(o50*-6xeqryp!2g# z(iY%U{pD=DWFV%-w!&hHAQd=QX`n#9jc_r?Dew7$2U&8Ut1c%^XRAJux^7(z@V(%3 zyNB?3wZ-c8lC+vq`Ojw>FA(qajn4}egxmS~?*BHrdTPZF**`uaf4Jt$^AgGrZ`mLH z`90LVOkMZkOu{M4`Wo)WKklzOCrCN{dD~eFf zIxCCvvCoWUz|Uf8^0O~^WIv{Fl?_5d0WZHR)Yui z+*oH*s$_p_tZQ_s$Yjg~u;XPwvyn$dz49sO>m{-qJ#TKr zdSFlg{u_AFbD4+Y<V4^`fB5^tQ)G(b4pNP(3#=>v8bSXq&Nm9<@L7U@!L zOfN5oZW-HjUjp5<5VjBb@RnO|iTmoWUAqT8HeQ9#gSY5uWshSJ({6nJg7P_9?Rg*K z!F#tE07VId_1~-I^0+rlvEZ}iu?RQ6qt~N)<=wShK0DH{j-dY|5?m8% zsUAsd9;E+MzWI45pUdYM39mAigWs=Qy}B0jrz)_ugB@T5N_8$hXTHJa<@7!ElSg-H z+;*pa{I5hdiT&=oDlO$vHR?Gl$u8{Mb#PTJ?8M~nuL3vB<7$836+*w)DSTxxUT0=H z9$tlPF#EE<6L@1D_u_%{3fYx{+=eGK4?{yk+I(C`dkOnk3hwjiYo!iMqzI?I;2lBF zOVfk;)ub#W`_z`|LyYs(78S#Tqj)3?uk&SnC3fu&q&FR~BACK~j_;UPS z9cNa@yZWNu@XwchMnT0S@xbu#$Qj^CW|J7JJ&0+}@b9WkN#vZ}!j!epUC<8kuk%^x z)}b7d_(R}0$CziIg0Y|5U!(eyhOK8=e&euni`?)!$`-?J(l{G%Y& z^yHP1#w~YGaS4sX!U(NfEqHVb{B2{&E{(`52Wa2u_=l*8erLf*A@&F0!zU7T^m~nc zuV2x5`}@_ggwG0gzj{UUqAt96k?Kj@&%J^!U=o{<@KXbH?AX}Y@Le_u~MMa#YSO;F;w66)5b#z@;MYtn#v=e%p&(-@#^rvC-vocqLY^X*ov=|0t$3iy1ii~RKN*L1(7AoA9Nx5t~6 zdGvdllY55fbG(^1>wxE~di3CLp$@03ql0*~kZpioS{`>csTDkS_$e7}1$6ApHV#u= z#QM!@_&14&vuzjB{oQPBy-CLktseQSL{{#z8g&@Z|IBPdoe2D*bMgRs|H0G#0lNMG z2yS#gR&H@vXSk2dte#wqTfCdA+akoX5rLr#>HLK%m5QzxmXW@T_VKWvN|zCDbJa>m z@N$zFr}^{V)C+HLbEg0C$0Cet_S%A0%JWBP3r<0mQ5ZGD@i1N&u5vsqrSX0HU(Pf1 zcn&S5`nTctGv5al=g@P!<*O?2RD;yTNoNz@f`EV{(j>@58YSy{N=Im`?$O(j|=GhMVTt_0fO0mGxkQ& zKA!O1PZwx?{wFrwMC0RnSX)HLRjZcLbIbM=UcQKR#TFJsAde8t*0{Uhpzk%GJC{!D zccCg_A&u9(PiB9D@nlkyZq^{L!CpTi#&fU^bqKamwEjNW7CIm6npHjRj>9@(FWk*2 z!1tKgsO6ekjDKjH2KiL*-a|E7@QATr7d|JxeB7lg8k(1)eJ@7wil;xl#Ca3huC5X6 z*NNzaKI6>V!}j!?PLma0 z(x>FJ&dwM&=sP+&&2qqaGtn^z^`!Txz7$tP_U7-7OThPserJMPf)4g%#I)iv*}IYN zT*IFspP|*NW5}=mX6NDMH16r4aTS#3s514SJ}aNYazVW`>U=T+XOVq_JBWB7pEHki z!0w>_7=@}hAL|g2kbrf7*Q+k+asJ%ni0E)!t}ztR=dTQ32Hpu?`4fF1eXgrw$rF0L zIml*%7xE6NLHqyXg-S5Z?Y36>-PQLReaLS`8e01t_odAe9m(fvg??kkgP*yUNzGL% z!%;W-`;%;}3)t5`FKi+Epv*jVn&Mb*?|Iv>-h@R(@#K%Q-pQeGbN zE{|EZ=yONn`HH^$7WEU8#4Q5Bx8brELdR833%%f%F0>7fg1(aYEAi2ia2)r4FyUSJ z|B{e{LBS&Eq%4^Jxs>p8+vCO`yd+lQn|bSQc|pe~RIRok9Nyg3l}^udq0F?}2K>C^ z=5r?|i8*FVF5gY_a_&mOBj~Tl0wThu)`1T+{(60#5%^hj9FNb7vrUHb3gS03U7x$; zCF=QCY_6-1(X3;DO#5!4=U$5%GSuPz&135}$_oYvjz8tL8Xw&(rImL&{zg^%?2=rV-+I1+(kUh|j+&%;nmf zelbP@$K&y!tb9C&0bk{90-n6&Igx ze3x|Zwyw+IXSDt%MEGT{13t1^q34Z-NvzA4QFC`FW`O z^pZq6$1V^7zjljFc&ZZ}XO*Twi^UaQ5}%PU|8Uex8%`!wA8MP!+<946ruoxHrVX_O zF9r8GWH|=)XpC{-;z*h%m;o%x7ePmWAMzaC7q;cTd`)&$6IRpD_mIVSkqkU`&EOJC@Cu@0v|1hPjC%8>0^&JMh<=6V7<#eGZT;~av4#jcw?)_= zyOpO-(DRUm3*yMRIn6|!uAYmqpL>|>ugdeYU1Ya2cJ0cb`7nisgpl2=P^;y1JX|Sv zrF}A99fvpt^{A%K(fu;rG+04)tZLceDms7VK#t?+=N+AQ(fVw;sdVwe^AZ@5xRLCT z^w+!h$=-yyy8cM(`Nsu2oJdcyaq!heviJWj4BCPGEmILP5B?c+NMkc*C&I6C+Oh8- z&dYr8$qy+sj@{~)ujsk9^3*@2`w7^$3v~pE>`xI9E65%k3Oc`^{*TQ$9!sA$==HE$ zSXYIX)5(s<$Gf`G`w8EzSWf4ODJtqBzn<4BNBQ@jr%!v+`(X}&_5vky3s1CWY=gckW1n$2lI=np^fgB?qba`aNu_i}bj1Kwekyu2cA8J-Vz$v^)&pZ>4!D$60>m_pt;LVCaN zJb5N3+~d0nE%voU_V4qm%*gMvFA6L3X#`(HC}NbKh%Ewzp-vY zm~+i?4dD+(v@hcGeDk>$`dp9scho(=@50|A#b3wT|0Z$@jmAj+d|7dEAMw^R3sna4 zSBeZh$e+M(tZVP1`+M2fKQM|9DGR6`fp8S?BS+5@pNsQe>26j1?|+_j9QYv~xB}u6 zt#$~0Jj*9!p$;R7?a}M8K7n_=&=2WSf*J1m^;%Q&2~N`A4;;R+WV`$K&(*hnl&3Xz zW|D44$Fpa5;=4bRC7o__v#H>?&#vFkSL>W*?Z4bBGd2GRb?K~AnNNFCGP)h-63#9t z8J|shAQhi{;zGFf*C~xTb~ta!8ykDTuTfvS+qAk;S0LOhx_ZCmRspwy@9x&8STH@U z-Os45=!={So-t*`ZMy`Oy}V1R(d{eS``fGQ{Zp?QG1PeDM`2PU0#noRJlM` zTY0OsdAber^SxUqxn1Lb@gto4himnX+kv~U^K@`-(dpRO&>rZq&Ss2V1I3iDD{HLZ zx)OB&>-R_55O3!Fccw^Ep_jHPXTc=YVJhYw+%el$t>n)8)Uw3q`Dnj)s6 z;q^0jrYu#1H$U%mx~j?^sfTiFC@gjcpimf&Tc}u^Ydr)cIu3nG+m! z5B0lN$NhGbo=V=IC%~Wbkx90T@+*NW%-BBRebhTtEc@rb;_U7=mZ$`8C8I8)M0)+d z$;8|IRsW_BaGH|);h%+&J_~3$mL>3&T+iDxzA%`uxPpRj)Em#7cEQ*!KGS$P`t zOuqf+JMXA*eZS9UAiud^?(*)>t(C|ZWNh^Ku;te8!l9z9Kt1Zxot?oy0UzPsv&s?h z_*k?4)*$hHdH(+MMARh=4|LSIKv#Qs_>$XV=m&!~Yw$rux!!QIdp$m9GVeMW4jgqG zgxUnaM^B$}<4d8Z@N{Iv6bb%Jf8RCXCh%(c?kw;cEtuQgH}y2%*Y1P|dS%aH+B)@v zK%v*{Z=;sB>exTdtds2Sgm!30~iN z=F*4R0~o*TJ?!=r6ZBFA6aMx$)IpSgHfh3L?LFq)@=8e4q7zkKY;yR&J%d+hi(@~n-8v z)f}Gpp(@2ch_5#{{Q>HIESTB51tBx;iWR|rYr;?$p50?;{jc3!TlIzu8dX}gSjMaD z97Vu4?H7hEBtArLYU0(H>fLN#@5|Sb;1SFlvuUTX@O#ET+<$|*<~LD^g?SJ>BJsUk z^&VU3mhA94zJ_#pCJB90D)D^VIC}au7Jek1^_Iv7I{#8XcW*E9e|Gfu!hQv@`Bj5! zsSapf7|)j?U#ag{^H#C!t>k>4Z4S^qRPem}_|oh|P9T--CHpYb_A3|g(@LWnKl==M z1sQw%;Ku^sk;>3zdt2ZKPZ=|5lMCuV_}Cyd@t*yoL`Q%}D$YE-&bg?cb8m+nx@c5% zbAL4bP)d31oIOEPqN_Jccz#1@2=XBsjrn;)p*yq2LuJs3#(>w)hc+nkI18U1-cmf9 z*>_k4-mQ}aJOJb)*0EFFcc_rRlbR%-+C#?xdcfwKMtLG@6WY@yfQ}q!=H_R>3oOQ~ z)s%nt-5VP+d~32eKq;vcs1?kPiz8;6T+$KnOoyHfo32$lkZ#U&-{&JM~qZ^C%3N;TYE zD~$W;waTUf`7_y}rLg1d_WWL>pmaAIKJ)YcRzeB;Z(n75lYLlivv@J(FF!gzelCtO zhaf>F_z;SnIRpFCpo>(gJkf>cqh#RQ7256Kd-4J6*Bi^fXVzG}=EJ@o`bV z5c&T5lk3%d_uO+j%THj{`U-z4-6OP)H{>Ig{_nI3Jk5oBXTha40?Wp(}`~rrz zc=MpKkdUcCBRR=eC=N8=Pb9zUK^qR8mzn!kU<()lZ?(a;$wVS;$b#ea6yFDrHjh*GY+I(a> z|4%N=xZ@+6J~_FG>a8YueEl)>G_sRUtUVcxJmYNJkJIe#{#fYgmAZY`W3gN|d){wp zy2(=aO+u`nvxVs)RgUqG_h&cNRh2{cy0GTc)z|Oc>Q0&Y=I?UKi~D?e5xPT4@a2xI zA^l^&&>L4tw@P*J4C=%`V0z#%C5qfxX}D%r2=ax?0==`SzNRf>p=v#N<_3PG1G@Q4 z=FYGos+$StSMbEoPw0+6NO92T`Q>WbFJBhFeUx-oel`C$jm{GRJfG@h!tIyCKU>EP z!fxN|(z}6m#vGaYLD#Of7ebB0I@B#-+(u%?#?)-!e6}C*ajDoZ)fX&TVN;sK zjHHDg&jlae&3sv9iTtd}Y5A*S>7dl%62d33Hi3jyc-bo65 z|1EbKTq+XT<0q8%(VDlC1J<}lq+ws-TOYK9X9qERL}Rq1$HWhfm znQKQ|k>6uPXRco(J)P?Mhfq~n&xATUxfVlr_s|T>&t4Y35PGlaHA6QE@oKy)@fSND z-ZT*I+q7xzK;Z8sCV^8dgqjFioD`s}8$eO5{H8HcS;Lbz5k3%;w^XO`zJ(K>}HxedIt&jC||xJ0C{63!m95Xc&)N_f$ zBE&_ndPToLO`7ZPdzO=?(Q$scb)8txtaDa`hGWn#%4G2P2KjZ9n=|SUq5D&iVW>qu zW~|?<*OzOcLz>{GrM&2C(_obzcyT=XsDS6iUD)!T&vx~1LI6$e#=`Z$N$jEPn#62P zHAOZ4E01@yb|{t~XFa~&{3h{8f4N%!N{_l@q}9BearI8abLcww zy&bHLZ);LCj#xRrEWz_M$gFRWuVd$%0w<<{2LiJ+Ncq_DV|U7mk%xnMgw9VA8+iJ5 zs}cF)VHna#@C5O>Ho_;KzV3gB{61^w@rw)j~m~@PO{MV`( zh#%P>S~{xg8X5*3Z zf@+REwd(?HX}w2o!V*(7m7o>wF7;`OEZe6 zMB5Zi7Hi{eL&)FBP2cfpL!pP<{{W9DyKp#V zk6r6Db>YLD;+UFkng(Ocj)sx~&U2$Q7P>p~OZ|P&PuChlYQ-U7WxFuW{OUpv`VY_kXao0uqg(0z3BqMMk93cFTbdSo{nwlqq80xV>H%M z?@aAT9ry;u-gZ1~>zG}x%cD`xCefb^&_d0HSvPj1J8(S(91<>rE{6pYq!~gpTy1lEIIQfco46iW`v=xiOIX!7Liu-TnPCL5$y|B z&f3uU$InxCT6!Y?fW8w0_3kTM72LG3-RRQ*JhK0XyHqb_@F*GMjfb=*qyob z(@%=Zn(tY`#~Sp7*e_eLymDYM{ImW)=WcQWjK7Z?oNZ_#>YBfZ1TnH^HBf z2L*?K9~ddQc`EsLe2)D?@XlnyRWiN2pc9DtG>zi8NUj%7dLyF9SaL^kxJRk6skozX zexF(yZ^7g2M(w!b7wp~GM@guG=vq`{?>tda`t7^ z(nZiOWgk6khpsemaMSP==<%>7eq?0n567{8+`diu65Y8AFEb6`d-V?RFRPN++c!Pn zkLGiNPNUDPHt-kBj0N$pr)ooO7gu~Fnfcad8*M8**rb{p@zI*yutUxcX*I!&gT4L4 zm8~4Nd_nT9)S5|RUCqyTqBY}~iN2jrTWUO*?x6syM&O~M^Swq>%a3wnWg2wX&&qQ{ z9WomgKgz>hmP=7zmt7w29bi-Xk@V7QW^t*)w)DQF3OM(V^83Ai{u!ewm8VZYoB}_c zk8tqzlGJj67CcXJ>QKdIKeF4CCrrBxTuoH@Lj(ALPLf=CnThbS*MGi(9+RWQ&f*DA zI8W$54=$s9La>?#?yKXJ2mAWNWnR*c_kTQ>aJi_j%0DLjvZFCFDiVF64le&TioWj~ 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_control.5551 b/wolf3d/base/iphone/button_control.5551 new file mode 100644 index 0000000000000000000000000000000000000000..db82c758ca75e72be929a629e33ed1d7c0fc55de GIT binary patch literal 10982 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 A%>V!Z literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_ep1.5551 b/wolf3d/base/iphone/button_ep1.5551 new file mode 100644 index 0000000000000000000000000000000000000000..d7bb11ecb120779f6c4205161151317bced0de52 GIT binary patch literal 87446 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 VeQh%}I{)ANum9t}|JlF&{{V+hdoKV0 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_ep2.5551 b/wolf3d/base/iphone/button_ep2.5551 new file mode 100644 index 0000000000000000000000000000000000000000..0f5a4bd82f3eccc4089ef61d1269f3788a4b09df GIT binary patch literal 87446 zcmeIb4NRO@n(ql4wNl7xrAo*$buE@DM;5n;BDz498|cyAp=@1+!fJ&NdCiAdR9If7 zf-+3CmCa(Ls|~F0olrr!F+r?NEQ=-G7OM31vLv1DOQyAw%~(A#V|i@`SvH9fVp~~M zJF+Zp)M|PEzw^{ffj>Iko4y;*x;Wyk_dW0Vdd_+N&w0*s&U;Q_K|#U4DJ&@Xfqo1A zi-LlGr5`^1Kl`Fi(TDg6=UQCbRZ=^6#3 z=s7Qce$Ah}X0IiczlCvhXQ}qe;l*~p*>Ib8BcEAWb9J;MTsF_Ar94^6AF2r}G3{(r zIEuF@#P^e1pYVLwS~Hu9e7sssUORa$k$&)u{}mSebCm#~zp&uzTQw_R->q3O$5SFb znMg$nCH)Eu7D~n%#u~UrJ|ooEcfY>1DQBVU6zl6-?s|7%-SZ`lTx#xascxN+HA{Np z-^JsO^l(aJ$>MR{SsoYqu0p%mg#L2C%9o0)pR-aaZ^g%1C_QCqvQ)EaP=;*Yb-H(s zaM`@M^PW`VTuC3IXYJe2I~yVS4OKCUGk^;T|su37oy zn#xbkpJ*?*uQy=5QP6*7j|BE&PQ>H&%eFLf6(2#R96Ved-*PL z|F^o&q}$`EaG-W2p?8E|(tp^TK1hQ zdo~Z{#`}4rMR%0R`RPrzHnQa=_TW}rX!NKx8i_@Yj=pUreLBiB;OfPdk@|3yP+I$qNg9``Oo@efsfluhcEnE&P1)Y6*Um$;`aT_07AJNyZ3ck_taP^~uLye^$3x zxA?W6Y)E@Y#ZsE6AwmH33y7Kv2&iwT&zq&=2)8h54e&KS9fBNx(kFv3e zw^bf;`SdfzSj6{hm2omoj8w$*&iDvV&9%x+xsbMU5FN@jo7bnrbAG?Q@~KKs87!v* zA3?Qq+4rJMRFIdIop)A#%I@N3Y2giF$=9X7RU_05wd6uPCFOBtcO{1guXcayYSz)1 zEv-=`3LIUul~?aZsn^DDd`zvr@zH?~L#JLG%J=_;1>Y~&{r|$fQ1Cr*uer6R2W7aGE?44@w%71qv_ow}23PwZ(Y zjkm+E)*p)>i%&Exl~CUAySzXB`2N^|_dosU(~mBt7L+<@r%gjc!+MJP#+o+orsueS zdGNsd2i||I z_U}UK-sP=aa2ES%D9;;?Cf8!w)=?XNP`5x!*gNPn>a(F}B@64q9QXhZ!RM2l?}rCe zv*NZ>xwd#V@8HO9!v6~ekGkFRdl>(qdprJrT#GZgU`Vs;Wq&I2UISP*{I8!|*GSBh z0rd3okwki9u6(k4sO;2a@@(S0hQ*r2njhEhX>U)QZ5of<^n3WvwzPO*Gz|K!72_jO zpO@pxKyyQ3!D3iEE#9{)cdbHWDl(8kHz+Jvu2)LNABO)Ajb{|zaTo6_?!ga;xqgnE z9R5S%FR+eO*-As$vS*VjdNZ!^%CH~JWFV8gHos{lT|ZY?a3tj7ZN+s`!<80kl}(AX zv*|mGIy;0~t`2NH5las{1KqLVB(}QCQH~d_=wdk(_y`CF zy(!`U;0NRNyMj3x0>>HR9Pf!wSKE;?N!jZcYf_OweW2b_c;GBBjz5V*Ec##P%vULR zn9Sn9y%+xPrRb^A3_uBGb53PTni~m%VhdNhz zvZ&_XJ?r`=RAwcB;{sPt3Y!fLost!zQ6XJ?M>#2|zAmL^Q(q3``+vCd_x1mVey=a} ze!nM~fK>3F?bk*Drv2yoee*>+;5_{R{M*c<;U5Vg+nzLj&~Fw2@bBpb@sYAqXEkEL zdU!T5(ct0#AUrS47&P0czh*r?f>wRvHPZafzku-qccp)hDpiL z0~Tw7@kE-rs0G<9ULOYcj(4;CNt}BrOM!RJDeVLAI7B;rLv*JOyyK8BF6S5C=e?YI zZ5uoAl*NxifbRqEC|x8$7F!mNepP-}ewU6?b1s|WcTyfvNcpoRvAWcgYaOGUw{NPh z9o3@9(dd4;JMcc}&q_E_akX?mbty&vKbbHs?Ag7-jZen^^ zFXN-axZ%IBV65rE1GBiLBFSqzt?-9^#Z}OOT@Fka7M$0Z{Dj8&Al-bB0Qbj0x|frM z9S!40nnlWOygrLnao%idcKE(9j6**$Ni*y_EO|5RpG;!s3{R7XP%TLTCgD_Y?YY_E zS$g@b6FF{K9Cypi%JWe=pPJS8n#%xeR|4+ z40P0?nW)UjQ)e_WFH7d+6WYj2>@mj?DT85|9CQ^>lx)?`Pg`HH-g{vlezGw(u`B z9C)W$=(Q2~g9ni-;6LXK|DM$iy&K9m?^+0Nb^t^suUVZW(!zMv>x1CbLYoA*_!?3I zn}Lnq=QpkYH@^oD7)KNq?C&vL3ID^Fg#UX^23-7!|Wu@$K(HxLqF-{B!Hnl*YA68y_o?I|96tzS~U>YssR4c1ep1YTuIO6EP|#T zluvd^|390+HW(kt;a^x#`{u^-v?Tb&1>>O0@Lv>4&v~tERs!CcR4`ePNN?UH2D6yx z57-XS8Rl*gZ!(D=QeyLNEIii49Ao5)$%UfO=G~fgLZM&8f)07&#@XR}k^n-nde-}? zi?5Z&F1}`XL@!xCho-`K;C8)-PD3B@6(bwl@wHNuFSN>Ea%Iq^={R0-tUlGkIE}-FcG3Xf@2Wh8Zlu}lu-AK22Ua>E zU064YJSjn4g#?B|(^Z0)P{yp?BlrTOuht8jh>~!1T zdlF!KpYO#*HoRJIR=?cXzw8wF@0QhXsco!@IYH3Ap>e=={HL8Qu zqO{)Y|L25+*w#fAGe7-S)&n$x<7Z0&Mq_Ns|R*O{oZRupBOwm^}b{ zVrG7!WU*%Y4DW2jkeNqgFA4?Y;b{;5q?(GDra-8RuiYD-9h_Ck;8L(9d}i<85O=;j zXyr|~wLq~T@3N?Ly}V+%7+EyBw3MRKm>YB{$wzSQ)q`OFR;_+Zx2sj{mdceU&4Oz%YxG#+@z=?YogJL=oekeRy`o{o=DuBEnMoOu9m{GXni-yFzHpTX)Eo~F%*{egOP{>{5fZHqP5 z&s&c^8ltby%<~lWwI`S-aH9gvFWTsW+5gSEybr1mVI?xMYyBK|T`|f8nj8Z4dudR; ztK&a>iYtgUkYQdzZ)YDWRN=J#I5lTQhcdnkYnvJU|C*ybrg}g=U zN6O7Q4(V4N5X)+@Ut_RKsqvT<1~wK-QjvEf*GoDZX3j*e;K1bE zEfDgs1n@8q>OE&`cR;-1-_Xz4-`4w#HJOZIUC?B*^e0`?3v8qh{;>>{Po7WgtsReO z<}W-RVFl2Z{ZG9Yd1mG_^K-Z8lbP?&xt;hoM2DvbGR*u3>OuY7t>%WPZ$-m;qym~g z4vhdE0lVG$IY#`$e(ZyWT72d=(FKS_ug{uBEP#atU%dvd45@})xOn!Y`R(tpQA8qb zdPcwe#jWbo437$Rl4rv`yl?TO@w=W+p&Z7Q-pN^q1l|i9Cx!ZVobTX0aXL?yw&Q!3 zyX7Q&I3!rS*^@30T^0J|{nS%doX+u9+`rNIW z^(RXJv-a5qrC_QZZFm z@)3Q*FZc1g@ml4{Vy(h>maz}*kHbIO|K}wy)Oz^0^>{WzZ!`1Z>GH{$bj|ue=5Z3h zdVO05yr-SfzK7?sQ>@|f(9g&pi7?j0ni#DX`ZwUe@C)V#a`?B|KQsl&4z2w&{EtT# zon69l!O5et%a1j!pNm|fU&jj9S_OBcgt5orfBFm~1yAdryJc$ti$Y^fkt@^+&$;nD zX(RPg5wrla@_YS%QOM>3YSsNa;5Nfhz_zufMe@!VxgR56iOxY#b^yYO@O+vF2znn{X+tbYdk{P z54@A?iyU8VrvF|Um_D<4cYf2Y=L^6iPr^U?KX|rLzlVQx{$QN3KK*{XTN`3%57cMo z({oXu%@BfJ!~gV|s1KcCAhXm)Y4&$mdB8u|bEtI)1CjkF0~-0WN-;f0XmhCuql{Dt zTslmOZwc*sX2-+*eQ$9ggX{9FpO5#nio}LvQYA75|E-4bKV#j|=;ffk+Q& z%PH}=kgk6@Fwa$E{P&Yen{sVAhj8LM{7XJ44W+2mNY~`bcV3=;(JzD_2lI}azL$?* z5}nl2y+Qi_r1PiDSsCYKnxq((15xbgaXN$U9IXf6sXV^XGt)uOlgIyd{Cjr)q7W!W z25d+F^#4)#pB_B;Z3a92QXBJW)E@XpH$Va~hsP`)4qLz1?}K4O|L$fF|7KaR*@Mge zPuE}m_`(qQzx)f+|IJ3YT?+_lv~VoGyBP^E7B>Aq>DqmE@V3_1Mt#iHd4sUBXxEK;Y08 z`x_k_uU%|;C2X_4wDGh0x3mBEdjA({L2368j`=tGe(B4W%OWDMa`+ z8jfTowhzTpT-AWpVDjXf?{5xgI%ZGGx}i85JzsTvuC*-N+u~WghktkK|JO@y)QmOR z7=7)`{;_TNUzT>R@ZezK-$ws|?^$}M`(+u&>SlI;oe}_RKN`O|vj?CV;QwAjDxz7x zUlsn9r75eS?0;`hY)8K*MNIcc8h8?5cP+YoVL^Xirlqo#mfq-CaO>(*k)<~FgkzKr z;x_Lh4Whp3Gs$a)@$KV%R^W%H3CqYO7*Ef|M-2V8+HbL@xgk(*(uDMjLVUZIimlK-|)E*+*MKM0Iehw^`Ra<$49id5BbbT?>32tMpP_uSGp%z%9V5KbYP$=VAP@Tm( z9PFhM>8xzcv>;jVahxq}K)=LtlE8&Mp6TG7a4ty#@0)Begm5({L`j<kaay z(n$_{pO*57sy^s6TAV~XS=pKC*icOt zYlcYmSo~(w_hs`hEQoaeQw!Jt6}>GW6eP#OlgY>x)AFM}_8daU^RBJ2b%&m0t-JCor-#4ykFD!E!1KSPtk%zqgNh>EQircC!;}zwnR28~tuY zP$GRth{tvxa$^U^_&CF?NdP3l7WxhU$N;%V`+g(^YyR!qUz04R0~~G7;vb%Myf5yR zHJG(^k9XidJ!dn0`cAK+vJ-sgT<-hd1z&j!e1lEFa}!l?Y?qS&o*%yp{)-(Tz}#tH zuh5?>51i>ZxR3t-@h%liX0`H6hj?}nJ_jM9r&V{d1IQ;!W#qWf?|OIq#OLB?-AM~T z0#XBL5%hZ2yDOExC)LPd-$svmR`dt;r;;$8nU-`TxcNiNGt)AfoxOyz{f&P}dFZ2U zB!j$w(%F-*pS%$56`oyB|4?}{jT?>jFA7yBnZ}Idy~b0LcsytA8sK`cvX%Nka`7)m zU8v@$BgxO!E$OD55{(-@N5XmgKP`8?WKSp<+FN@^);`1j39Y#C&~LVX*85=tnEw0J za?#a2?}2G-b2I76&&K}u!Y_)hPR_7y9}As*ql1l~wLZ9De5vidhF9yo?|-~K!QKu_ z|99BG{EMCAexwV1zRe)gG|uuydxw4A?1$Gwa94M%cwbSV zwcB||{i*uz( zNVkD^;b6u(;2->Obv+wW!uospQ9@z5Gt-DP=?_Jh41$Q7gSyL$_-F z*;821T}MBvennx#ZNeNq5!Nr}z=%=m`gvyNZLDOr{dd(<%kD1j(I{IX!KpY;nlnhv zwEUCO`@_lu2Sz$~?_<^>XQ_<(TBViH!r1V%v({s$9 zj0V4{Jfu!eAW-FWHC=f;R|~zO0NQtyM`bZzqOyU*kw3En!a6OdQtA$wM{VdC zU$ht}8=;JlNC*76iyWV6`Ksfz@4fK$vGB8aZ><=T#%~S@@Kt(7>+Ko+gZi}Fmjivk zyPq2AI@Kln0O+UAewld^{>xVSu@-hM#a(NC|R3%^qWm?kevkdP7n z(afQYe#JQ*l^PxD3a{wbxfXcL+^)cdI^JwF&NTAAQpjO`jF@(p={V{_)30IGG_J7u zzjuRhSf(Q_jEa-g^NTx=OZqqjMqDc2RGt}eI9NOCMk=;zNNyj(-4$rIE)S(_)MXlH z4uyYY)NO!NNgvBqxzqQF!&M^D46movizE3W$C>@~R=Dom5s|vf?>mH?b|pSO?yNXg3%#mGEPHC1t@0>$ zlR|18#{9%IS&asyl>u9GfNDk2j4Yt`cpFixP*WP+n2gXnYN=m-y)C_smwm%NYu#t} zO4~7O-Ys38RekKTy)oB+Wk$&7-&XzF*SLJ&#@(IdM0_F+{(t9ovAnZd_ys$3c)h>d znH#NMJjNIGsSDEb9sa<-_476^*m=z%-}-(J{YVBZ0XYjI@9irec$B_Th;ErV1oAgp z5@4kx)3YH|$WkPyUZ&!ze|N=NY@=i5kizk=SPHH1X~jeq5dP&(<4ES|7fP@XwkK?b zuStO075m-DU{|24j#P^RH-avACq;_)kqaqzW$j|Ot8Rp@`il2ao~h`&!D02ty8^ds zZFIr<0{Z{lK7?0&DoIai-SyzR!P08crm{^%k7#^wBp{w`;ZEZW(Ug`{Q0aS+cL`A= z8PF8}d zT#&~<_5W_}%=d5&- zS%EpXGuU4l{#RyG%o_fchkw2V%*_xyjQH*H!0^7k&-Ww%@tH*<&9r))#Gyo^`kju% zq4FPX^au@&i9<6&zOd7xb{4iPH9IaYf@}1zz9&Qz+6~`(_5jarL3A%(fdum zSSSh9uMAlKz}i8^`9@1&!PTt&uqZ(M{fE5gU4iX(F$?XXfK>(NevCWP*QAHXvJ%&xJ6KheAGEnSMZ!4y#nfXn#kk}ieuXRh~%7xc1tWip3 z&eGgo3%mCzXUQ7nekk#y^=iri`e{u^7o&Ffo-l;MpH%?(&osU)9$-x{@(R?a^#(4` zRVnqKOsJ*^A(^1nf8~uu!6PAS*=P4kTP&8`%+C8^X-EI>zXJY2|NUFP+x*?;{aZN+ zz#4uVvv-{;pRD|B_FCm!!skUkT~GjhfdH>cfY)Ccs2X`H#dQk_y~! z^n?$kI}$Cuk{I^vLUkk>dmAM+lm`6GdcJ{-hf}@^^7a<9o{p7*J9iSKN4_e~_I3dT z<)p%%0qf^XyM=mIBY3_Z&#{Ksb5X4xDs>Xb+jY>;&pst4j~H?1##4;n%SDUIf5@Q( zD%H1b^e}hf>HfAO;#J>N-9!cRfZmE|%N2csyWHM~6BUU@(4V7*d*)9F$5+tM#V_lq z6KRvgyvxzYQ)b@QVHu^i@|seyTEu9um6N>Z?JmhtAyYIsdRo#QVYMjj$20z4(Ym6~ z?#z$3k_zI3uaFLkpO!q}ox68W$N_0ek`Iy^@=>qQQrs+npYiC!E-I4%h1$&jM9P0#ZZr|+} zYI}w*l)R^1d~ELzB!J!J^a>C4+kfpVB9j2*jhZF&l!|_8xsOdX`GU{5 z*S--3SN46dp@dyQyuX_DU_2&HWB(EJGyH_7Sv6^E54?Q{ZI-}N_7G#5`sQ8Rf56+7 zfK`mhgzKU5Ly~-wX;79x;}ONoH+oX*@jD`dL^~M?EN|cYa5RMF;BnOOopVm-kNVcn zvG$vmc$7ZVJ*Y>c*(7GJUQ7Z+eYslLy-#vm$fVU=3yB`JtdQI*`-fTz3f0EEm!IAu z4fI5-gK7DAzHq^eBt5c%`XH?2f%^S~i&@^dzwt=;NFM(V|2N&-zs>%YX=QGgzV1N+ z7}wK&CIJln?7`(Zvj{L7IMKkV9ESfF4gXtL_736<5%vtf?Duv9VE&Mv-^La>y<$7^ zz59nHz_GaDU+wLX8%73567)8naM&068|_&kTE6NL^65W%;1@e^3}N&W!*Z&ymCTuhj#n*<_PU6Cjl4(c=(4; z#Q#51>&u;xRwsApM9T?qp7lA=^3`j!{7jEH#l08Tw5-+j>PhlISIG_+Hiw#;b+C9s zq3{dF<0GtcHmktnb`s=lkDa>!rrmyHwp)ifF}XoTxWN!$D{x4@UQ)4LO$n$m;~@< z1NikUgQZysU^W1+=Lh}h_SpAxF1JR=TO(i+06CGv|NcYM)oayj(Q+ZaT&;UioFT61 z=oQ}aS&Obk_aB;ht+(SMvcF?LIBCQmX~A1U>0i9X`d;f-!6LZatCX)xlja*g#=7hj z$oTouodkF80*G#6q1Y|(NN~K$))KOh0BLXDU98!Te@5E)GLQb~u7ftJPF`CmK@!;R z0er2%%t5r^g7|yC`ZFk^2B3Gp!~gH!5z)&N4Fw!~Cm%49d6b&DTl1SW>rj)PW3BhY z_#fAN03!;IKEB09(xIV{y2Z7fRK3xEmquGV@L!j0577W6=;-?!h2JO=&9xhCcS!H7 z#Ry+Viz<|;55ob(qZaB;w4fcRHuT=5(J~dYG>{t?>MjWXSKaPS(EhCcZQ;NEymt30 ztq+E7`q^c3QY-t*Cwp}g_sbviJ-pRVjU+%~Yc7B>0N=2@*I;Y;%XE@3eLWJOEV~xS zL%#i%N(bQFK(hgC$3Llf_@{rLh;!y2D~A?qawm!+0lc+oWi%p4l><&Jes>|^s)S`PI2~1VrmNlMHD!U8v zC9sEVM(6l*8i0KljKs+80+_@9XlSonPlV=AFUl9wIsBvld;5@RuJkdx4jTUFZWV>v z6STzk-9siSri23h$5x>xCOovzE7GpNe@8?w&&Tb32#R-7V;Dw<&-M8`@6F!e(f4@# z2kLF~vw0WUg_U7D{%==-R%o#nqP5%;&(6=V4u!Pbs>Ax4;uq$OPwK-hmIXkP;V!ny4>5 zXSOi2>vh$wMj4Z13#Dg*#@Nats zG7GtXZ2#EWndvjESKlrHY(>D)2HXE@RcHq9aJ^gyD8Q{XbDa_wU5Iv7ySE*Z2+bGt z9t`QjoLejNU-mJ17xR!vE|84{otN}v$?|IQr|j|6#- z9bzZ`O_Sfg_u<2P8j{yH_5Tmk_ayxDt@MgpPhs;U+wp(9miC}kycW8kJ{+1Z)OA;{ zs`TBCI__{?)q0=3hiW;=@Hd;F2pV7h z`2MXo^_8#b|Av0;*Jb$stLT5Qoqx7V0JHgl{)f*GhM!mmu+)Y&&-jyG75sZLXKLhx z8+-Ilho`YQZkGV)2NMn6{+}1b6RXW~w7#z5gXXE|i!H0o7leFs3Zb{4-`*=uHGXi= z6kHM`+*GW)?#DvvV$EdI&IhnH0LA;jKd1eKhRl+`9sjnI;9?ECfq1)$Ow{hgKYA|x z`uyg0t=}8}Z`c1hvjC1XY%rQ;mvGyYaA*IIh0cvY3c7>=%D*Zqy49=cPBk#0QOnL9 z5f^--G0G~1$KfB_ytntES^GU|Y@PBq;s0U!9*=*d4|}|ultaF5uZ88RshCJYHM||b z&kRxNgF&T4RSG(}ulyGpvH)X|p&W3mC_n{_pK17>u)Xu;DfqG>rj? zVD>+=sA1pF@q6wrH~!~Df}Oh#f{~>*X7YC8-{b@(I$F^!YM{wE&=9*&*A+zufx_I5 zh!YiM)sN!;aeE&!+u>1TEB?L-|5lzHeIEXqt7PnGHDMeO3$s%zC$&7J|EuTr99kO^ z`2w;4^olNYc6%y)iC@~Dcil$05U*N*eq^DZcQmtqhpvnnS-y0B`P} z_UE0Q9nLp_IQo7M{hR>UJ3XUs4J$vZ{A^=xCfzIimz{dA!J7rxiT|?dGPSw1xoUBN zklz*UvR`R<=fyGRF2r8!aXi$_bJRbU>joItK8k-EA;d?RS7(Ip&HoK#w)g+!@#wCD+xvg=#y*g|X8W2&wMJMN*+!`- za}+Uev2#bnt6I-f3p`-6O5G6aThn>2~|yqx9MQA}avtV+S(W4u<{6 z&iF{6e)>#&1ZqwHw^|slQrTULL4#T;+j?qScUM*|-|8-qulDY$E7iZ8IDn_JmvnWK zo%%p7IC+6|5Px*Ju$B_>&sN;7V*iJH|GyLeH~q^s9{!JNAK%v6iH19EI{8Ci{NX&! zAN1e!)3@&`cs{$*H?^$Q{=xzne__j(;Mo)io5R0J0G`nS7i(_19mnh(VETR}0O)6R zVYgO{g*%f++d>scIfkV6GJ+LhP?H7+jkPAuQdta?G>0C|J!Oh^aEzT;5g>Yi$Zo< z0T#E#8rz4EvG}9A4(9NW9Kznf&gFr6#;>tpSL{NwQD0gO?aoQNHLO2*M?}s(d-C3g z4^w0KxB0)#yK}cp`@z@d{}*c>rY{(0zcqGWW9-EG1*Dc)RxhwarR9=;{lz!r*Hly+)jSB1Fx<2Gt1sC zzV`9luO5$oz6@|*24*z?PXh3b-DEN@4TIT6``U;*zBuM9=Vpav1i!hb`k{P zJ9hzOw=ce&2Hi2IQ?w_h&oGOCMH7o>)Q9zh`BTQ;why7%;)ea(cO66{uyfJb*NmN1 zn6Wd-dD=(mp+@}g?v@=@@OYi96{_Mc5CTUD2>Dt_-Z7)Avh0T01mEN=C!>S}4-jhqRg@lwYA;RJoSQ z`hx%4^2c!p?RG^v+^Lw@rxvb4Mi>vk8LAuV$F;Z@cS7y_7g{}$$N!`Fzv;i}2mRom zllE*zPQnp1SkqEwRO9bzd^k@ z_8nYxy9{{xhPN)r^bYd0^S?@?jO5hfj{Cc!ol$($ThL#~Pj_{t!v6VYp+8n8-#bh z8gP{YUo7mU%~~Z- zX61HNT<~FypgzoMbUox+M>K7IYB(6illrMyF8rEum4foZXf@HeZB^oXaN65>ph&~zuoOb|Mn--2%h^D z`oQ78dof-be>YJj)Z$ZU)0b9(KE@Jsj&fNuTY0+v&moxh-mu zCFZoZ+P)mEvB2$$?bMA1D8FkFhftoNz&U)>PKJ2edvD#cdpfJD>cI2_*ZNRDj$T0h zs7-mkLmRs^EY*pMWBVqmqWS$l9y$L9B;WLN!q!B?(fUXG`Rz#mefNg{=-;{hKO&wz z013bvVO9uvc0kYeSC+LfU}NAO^n19s-(25M&es3CR#nS76o?BtWAy)WuHUEaOY8O; zFPJn?*t3ooCe%|pl)y*oV~kUj9vr8Xj#eCTyLG^|=1Xeud2T1cU4iSN>^r5kE5KW1 z#YDx`?6>+0{$j_QCLc%(JY4lJ*B*7f>{b6n)kGD&IqtM?TvAKBg9M|#U4h~XQB${j zpNF*5zU$geW5IVMh;*Zrq73aXVkEIHrq;ygEN|RXK&5N^aR!SKH6MQP6A9+?EV*?4&h{g zVx6^A+*KN$B*t>>TmHB5{l8lE`)-a7tsNKh{kr7WC7+k1{4rn5=lTBezeVZ;Jp2B0 z+7ZA~_`Y)EJ|Op8wwFLBj)gyuJnY^MZ+EfKuS;^}c_EAc>!Hyg|D)nB?#AkiE3Su% zE8f-p_0Wy5uKb6JtF-U+KFwIV(1frU_WZ7Pv>|>#ab4(&MHioErJ=X)%3n{~y9P_& zLWya!u^_1zYmXmt^~&ZpuEe2tgGR+zeKt+)D3VK^(kn;eWNEW^ zE)7S+yVOOHw2Y!fmmco}k_CkJD0WYhG+ydYTX`1MvXoveY%VaWx)==}2^?|1*Fy>+ z2W_LG<3^Z!_BiKC%R$+Z05xi@#E!5xLc8~k=k0$oejwGYH}ebe@mM7WnCBa6~fh$T@LG4ORh?z(5}Od!xu_uY29nBfw)E( z&beX5W*oTS=gyw+dCPZLA>VTU?pgPG%4+rO#1(ZiYuHaH+-0Q^m4^JsmB(pFD&4S3 zXE?{gNBP0+uFzHOnoOFPl{Pez!)2ErWg8aFY|9cxUek1-$MIPQEvKYo|>%zNV#7fb%)DmkH8 z2qYw7NzMJ1D0RY=L|tt2=Z(F8-sKi`;X$K|F&~$z z!cY>zSw7^tQ1X1pD~m@JDN14vyV6=*_QQDE%3~$7t1FvY&uYM^ z@@hkMLJdKy?zYEr_pZ*&ml}|KP#D$jGe7=+*5zNG{(KGOYam|(`5MUAK)wd@HIT1? zd=2DlAYTLd8pzi`z6SC&kgtJ!4diPeUjz9X$k#x=2J$tKuYr6Gb1Nj=r*Fe4o z@->jJfqV_*Yam|(`5MUAK)wd@HIT1?d=2DlAYTLd8pzi`z6SC&kgtJ!4diPeUjz9X z$k#x=2J$tKuYr6Gb1Nj=r*TB~eFtS_$0yKT$f{ z^B`SU7Au=d(B3#ce=dJ}<5J^Ep?-Ts zZ{!BKx)3h?Y)*snCssCR7ynO^j-~3#>C(4y%a^ja{IVfF`RGM=7V>w=1KQ0}d+Ba> z#RWOX9(_^Y+dAd%`QUpEyPG+M>v`=>%kGy8B};9`;$^2e$tga<>3@mz)W~G=W>YG1 zvuU~QW(j-!zwzN4AG|cY;O7Jwc7x~Si_YeQAK>3NeA++OwBY}FN>6&0FYZJ89o30i zbGH`!_s8_?-n$UGdwqD=A0Oc)tohAY_{3|(edEIeE|kS3{J{@gOqZhGlRDun7t(W2 z-u2)IF8-e&9p$044}9>cQRL-hzvh=M)4j>isqeDw$@}5dIYDE`L`R#~qaB!26d{D>@bSyZzhQ{hb?c1P9(tF+MoCNAZ_op{_bY_ z^N>#NNVrqFW^_^)l3?u&QXn*RKKY(@SUd2}#n(9VYV+=5O)3;qo24R?NzTd6%yTwI za|63>t)D|W?C;qXB!#Q~i?5ybb51txe_Ch8E!K3#XtCMh`>Fe>>ng?d@TktOSU(r2 z?`rm1jCZrc2i{l6cMiONKgCt<9o4lxXZ^hQ2NhB+@&5fW7n-oneVcUdrAXtA5A62< z+^2uhcXV!3NT;(+ zCKKuO96iCbq`>M(uw6U2Cusls!+T@x2`EgYR|euEwEt2Yr>Szb`C<*H0Zt|}^UV!K zp(DZOhR{&Wy3PjD9_yT_$oZ>WYu1PTmxk{-cYpZO@K--M@J?wg7!M5{_Eiq5Hs7Jm z?t3A0cYkb zXqf*0ermZk7@xbvc^RAnW9>h`$qAdBhh4M2evXqOLqqKA#%Zx|0Ox6Q<`k!H(nCxp zhy5Erp+(*Q@V&wQ!C_x|ZlPpv)LQl4AhnteL8}jn8wO{c69fIA-L z)q*EoE4p^Q9-dUrqoMKIqCn+I>Xa7eJ)!P#J*lhv<$m^LQvR3R-By@vioBs+tZlws zI+l;+;PQhLT)Afl`%lg(M@rd$vj61keH*V8*FP=o|3bklI`ww3=4@i^OlCfOIrSSf zx`E6X8sOo>*<3J?UCjZ&b5=gq>AgyYPdveaVwa`StfD`}&W|uTLq^@?NXR zC+jEQZ<|hk-|H?fyOMG)zx#vt2jKv6m;cF)p4O+N{fi5pm+Yq>pBmYa)J^^7;L1YD zWODQFn>uZjQw)O|?}K|JKCOSW9h<;X8@wh<@-Oy?H;g;tBglu=+JMe3qvmyf zNQtaIw}$*pRk-~@1u{Yp&!&u^jyaAw-(UG&0*lJwl%EgYvU!T}Ri)SGHe zEx6XaP-15=qg6-)pk-aH^Oo98_T3w%wN=l@@k@#a+#T)Dzk5e4_@)1NWoPo_tWx;) z=|qkv#Y6plmCB{^_{+y5E;p53rMD6#Pu^Dv?@I=J)$_JH4feZ~0Ve-jeK$*%n?ggJ z^37?jsb%%|KV0}lXsCC3^KQ+0dd~WL&f%r)cQ<4Ic~81R;V%k*Sm=N2KivFF_`^7W z>m7v*)JleTMp`R7b&`%h7{_7BW*v> z+c?U(sRgCcBRaWYEw&ar?L(p*t=j0}^dSBF)|!iT=Hh5D(~+%z)$a{=8mo;{qXpeM zt*Ek-8mI2%T-#T+(%$YLo>9%yE|tfND;7%H6DtE_P11Dz#H>{KpEnYgFogBe$#jec zv2wi|dN>_IlcuCfUu)HJmAFGPgmf~E8~T?-QT{4bAF?2MQt4Xw+P04eoAcBxu-g zPwZ|+I+zb9%V%2Bs*!YKWoM>Ct|fB3tD3!+cLiozR8uXqoNI&QIt5EopEI%-Yj#&e zjw`J2Ua4QjZFx8y#cAzr92UPsePd0hedUd$U)gE75uR9;jvvTXPmPhz(IA>8C($pI zte+c}^-(bok$;A=w32Hsog;zC`yDd4L!?W zWw5**&wzLF0d&9vP=vF)nU<^H`To;|1>;R$I-Rcavkjf_%czf0e0&5X&tCi8=I7U^ zhC&4)EJME%8vcFsXXtCM)?1r<*Y*T%Pqt?;>i{PkZ*9Se7A^gff0 zT*=J;GV{xfM(|F<-yiph9U*XT>O0W(ulwf@c4Vgv=<~?_`{f_#7 zBmnK7Xj!l8ZR|ZX)6(0R(0^~^Oh>vyt)ja`Bfk8X3(44h)H`UbFu%#je(n~hW2fg1 z>kPTECM-cK1B?&iBlI8hn`je^4V?|q-&#==N?y|`v$7m9u9&;Usj?a&2ECkSI(7w+ zFYD)?Q_B&~Vh;Pv`gpWr*jXBpLh+HYCiK3LKQY#<*jCbE&N;gl#Gn zDXpGqNr)m*0;T%bv;Lt@uEVaPmplD$^x#w8cqIH?_Wk5tSn#Uvj?Q0RQGY#?PF|be zeDL6xs^!UK*(ut0`b^oWv4*3*-8#G3?7`2uv)lf)Bmk$j<3dB=9!HOWZfG1p|6i^e zky8twaJ6%y@uFH^?caiLZ;O8QZbEhekj6=ci#3re4<68($!n(jGh%={7z=W4I%hCV zCXo^YnfM4T5+8|5Ck#thjrzjVj45i?m)ekH(ktr7fl?F})U4CLa29zgGJVEkde+D1 zwk(Y`>yaz8D_ZG5CKiTn@>^=FSr5k1hEtK6b?jOA4`dcfrlO9HLq-*OL7CAey5W2G z&zrS6=OenO>WZEU{jV$Dl{gkYTHif1ldk-XI;vR*XJ*@#mha!I@nNz0fEV>25+{_3 z2d+v2So;UF=XBnbE#Q^Vk86zsj<(bOYjxAE{(C#hTTXQBZ(NI>XzA_YiTkzaeznb7 z^xfdf0Ao3wq%G}0puYuzk<{=&d1w>G#b4&cPl=knTQDEN^kV(tdG)4Jxe1kOgqQI?Frg{IGZ2*2M<{L zXXepjto^%{hohy1-||MNaujCsb{y!+!27jmx9Vgq)?K&o6!iarf^q-2&V0V<56b#C zrMY`JVD8rXxw2EcHPVj$S>ew(dHgwdetR%GSNwub;CWBhdPZWguvvyK40WAqPb}8J z0cZfN4TS}()Jx0$mQ`u@Yq8bXRCFr3zhi$3zk1ia>ilj<#?IZE-;_PKPCDZ}7C+jb z`>@tXU=iZ9aoWEq(4L4~X;0+Ze;~7dE^-B}j+0r#(?|(gN~cZ+x}(ZLc`3Kpu&hjT zw-V`S!S&E#*Z$kBkDjFwDS^$4miMlfU#|T%YL=ej^+^jQT~Ok3QBHOIuZp^<=!NX> zYP78Gf_Q;9YpxD>+g117pFfnd|1OoZ)?(kA8hQES`>G|ZJk7PT1N>s?uhFtOCvdl< z!1MaG8DjcZY&e(wyPHEpt0NcP3Xt|hDnc)?+=l(PyH0H$TW!8TJB#BlL@z{Fn^&8s zgaI7S7j)t)mVkjwBF#BX%nKD3Y~H2)BUgfP<^c+2owoKrExSK>r!O}A(~4*WoNq-C^+xR-~Nuk+yDb;B?-H+uzG?tcgAVizq!%Fpf=|ax9dT zI$FBb^2!IA^xVaNwdF24^=^w|M|GD@C5{$+_x-=E|5z&NtY3tn&Y z;eWnB=>LbwnFVQmFF5QM>zDTD6ldmx;DTl}%x!4w7#daM!3 zXt#L%LX129FT^gy%BtNPd~kI-*I46n+GDA0tV!B^XnxaXiK9MrY&gSf|LHTEcUk|D zifrD+UR<+IThg-ek-`Gx7xI5)fb~Je`^ejJ=JaN)%E5S1;5pa++pUkDrP11-o5 z4pP9&Z>$NCs$2Lx?NomvaI^7P9S|c z+P~E|7Css}TEE9dLgmTPG>CuNsb7w>ycwnlmhv_s|<$F{7GIup-X8kvC%#urM^G{JXK z$jc8uP8K5$@T#!Fe<=Ki()h2%0YP!VbLt6pWwiioMe&iYQxkC;2^jA%|I3-*IGb5qpH?$tmaDj|L|yh^sTsp~1DeyL$J^_pCdcT)bXqCE<+nv)Pan6>mKS_%G5~ zytseof5qqBKmPZ5wK;kKr}yG^x%%TAHT3?RD++oksn^yCy0PGq;G)*+90`twMnfsN z(NIjM(8uhZu1DljdT)+r5Jugn6z2$Mwmu;pFFi|rF?@vceqDHSOFfjTrEfVY7ni1$ zO51OmdI)^PT=E= zQ5^5LpXWzt&L{NVy7xNG^NHzr>22k}xra(oalDjCP4RI`eMidKC(ee=mg`%l6Xm=} zS6a(Q_mV}9Qg`)EDJ3^(`mX!`eE#_w$k#x=2J$tKuYr6Gb1Nj=r*Fe4o@->jJ zfqV`8|Gx&V*K{Xxu2XBc?r1fbt?c3JPMhJM(i)G@(3i>UH8o3fS0=UEFBs3veSPbb zYso8L-}?Gi%@XdDYg#Y!u|0i#YxCN9t>5`4g{oQd{BmLO+v&UW$x_UPvG876Uf7?f zzikT@ZOv!zl0CCXmaxnI7ixc8`%369oQ)s5c4(-4lGUuo8jAEiYp^|XWmIzj%k}$T zYp!i>c(Lcjo&)c%#t*!|H

-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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_ep3.5551 b/wolf3d/base/iphone/button_ep3.5551 new file mode 100644 index 0000000000000000000000000000000000000000..106001d00d6d82b3520811fdad9bb7058675f3a1 GIT binary patch literal 87446 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_ep4.5551 b/wolf3d/base/iphone/button_ep4.5551 new file mode 100644 index 0000000000000000000000000000000000000000..4393d735d8c89411062ab3410bc1f9eb956c696b GIT binary patch literal 87446 zcmeIbeN0?emM==ZC<@5Bx|EP*YJ3r0ju2Bs5mO*57gt(ups*%Qf$j`d$ZZ3nNrBv? zjMBK;a;Gs;6T2=+#}$$Z*rpAMX_{_xnM%jQB_E?E(|&oT;(Omf`}qc9SvH-AEV^Z( zy7MeV=k*`Hzu#JCQw7HPXlE4nbFsy#bN1)jYp>thYk!=xZ5bIEKeAO(`}KTlU5vRABLpPZYV(<|>L=fX3Sb1U#QeiP!OVRv2` zi~r#n_xmQrq~w_zclEl4tzKWTN?_>f_3+HZj0t18=6)@wFF_CTLTt@fYrq_hGv)JF z{aMz;Oc>>B9I3ZeYeR=gEx%U0)$8u}mDVJW*2S~RykF?CYQBLJN-^76YaumWt08^g znR|!N*R?gRT;OB48lE{c6N=q_!2fI+f36yU=(lBjI#;&v>GiS&b$klNhC)%d4cgC^ z5zpaXI}{XS!Tdi~S6RXC09L8?#ZUbdU_=Gb;Op`8oz9Qb?(#aL!sHS#!zDN)9WZ3>FG2Uo~$})u2vqT!7AH>dvT0s zmCZZz1d5ZCZm7@dT;~$=XCAyV&$0#b1vv_r?jL$c*{9dZU(-I)5>k7mTc67o-kBj! z`NWv-2&YV#!~e!fVr|2eb+(=VT?bIf6FE5QJ*O( zSM#1iYQ0+s8yds!GoGZ99Hi8xskPj!FrnQl1En#Xx#=Bgk~@T0+_30|?^4%VTGr9j zR_n-AEK%y0N-5)g?eugCUxY@|A~hkk{HK$9{>qd7cFv<_2r+R`Gl^}*m3vS8y*D2{ zmd3xx;Hl`C|DW#a{ty3G>+UQ`^Z#%D|J(on`2S!3|A+GaDd$(0r}B>NuWGFdRy9{O zRW)vK1MV%-!~gO9Pv3v>qB9V5&EGOesScTw?BQ~ zGwYfC6lr)@`lfxCH`Bgr=bN7RAE#3sLXj_gK7~_%{KC&OD<#cdvg`{fE%@HsJKwZY zGu;|JEakoTkz$sUM;<+v?*Ac&KeD}IJ9URUV>@Fz`&ll2 z%74%ibOikeh$mg7O8XqUdl!( zbej5ppy#mENm@+n3Vs}Z-4mCZTlJM1DfhJ2Qgf|8>qrS<{CC#41-^o_&STCaY5Z@3 ze}l)*K)=C0@y{8={^zrX?}GEY=VHo9YJsE%I13FBE05h>11SDQ4%n`*_qvFFZO`Cw zZ>D0~ma)+3ud-##x**e#4!!cOZkH`1>h4U?Hn3$}sj%b)c_9vwCo;o(!JPU_4otZ; z$dUyAPRJLrPOV}j4`o@;s#Op|yeYNkq7hIx6lM-AeYjrIt)&&Mp|K^koy4axj>*a6r1A0RC@9*;CUpAWBG^IM6OB1s|FlX-5sH(-22+!#u52 zNsPUNyhyR6zc1)vO+k-^YTnB;uFtWS!X*jSSQgFnVLhQMP)Ed+^ip%?0Dhf|PDDTH zO!xoNOB(!}{`fP|Z}30AZ(BXx-XQUxf8<*DTKIIR9xnRgXX}qULO0U@e>ne#^40RW z^4Q%*0gC@8DD$w4iDn)3mn{X4)85~IKy3oWKYLtt#_H$qY?-~n=c27}a@R@p>c+i+ z9+{|Ggmtd&lX^vsjxtRDPyF{fpN;q&8mkvp2I&#G{P{{0D2)=ObVMLsPKnwbM88@e z!(#uN@WUdXOmQo!IZ!8vL*6@I7DS5;fOQ#t6Ij^NbnI8*r}Rrc$W0te{JQ8t4N1R6iSiOp(mGmmhCT;gD~+U|yq0Pruh^_D-|B2ix{@3^W>!0q>2=P<)XFjU!hx@3OBY@K(;y?e$Lg!HU zE6@P%p1-Y*_}^RuDE_6bPb}6aZU4m7LMQw4$GbiW_5$OIf9-LD$64Q~J3M1n2o<-x zGl@!D2G@g$X&saA$2gxzS08GCm3|`Kj50KCuZw=nGYh4itgx^Oshx;UL{@-db?k{~ zW7smV79n#Kw{K6*iT&>fs-Y=}NlGelZQMj;g1x-uAmc9+y%s7&>KV2YwJ?Ev7{?%% zBVS?xq0}l21wN=XgqoKTDq4UTIv3GY484Eop$?SV(J}#Vs87iyqX}4Fsh#+dFXSTi zCVipzP+!DlR@xKx88=vpc0JgJ{S7w|2RsFT| z`)CUoJAnAF4}IzR0G5{=1)MebC;C%0Kyn_?!avZk^JPEKt0VH;x82jkf6^)bb+mo^ zw!K2vd{(b(46`~wREB3%8bUE(yyV%g-LMNZwrYT}1E%k$?SK3B)T;LXra$L6!j@6c z0{lSIfd9xj;QyBB0HSgwIwl&0TE;aRig8bh;{TKSx?P|64d$7i_e^;%G6BhDZcIoC2p!f$C(7wsBJX@0ZrQ-~R>Ho8wu}Ra)I!nMX)e5Q$h)1TV52^jYxdV>UC+C=M z2&?s5(9g5)_PP3NxyI<8R=tqrT)kel#8|X1d=5b#q;Vp03mO0@M$alJdYP62%jBG- zYqV@h@vqd{GCrvn2^QoM<(gXL8o41?))oHHD_xSONIcTON5Ulz%7c6}F7KF+NIbZt z{?rBRQRxqDK&>ME7!CIl_>MNO9M#{x`z)Y5Wr@FRbC87*tJQe!l?zsSmQAQ|z3^NFX^U zn4A}Q?Tf4tO6lGg;|F_=di%-;Wi{}(w%-{WATPs_v2|@FQ1L$rBuqqzpt2>!AaQ8^ zlK7{6!2P=Qp?L26KF$Sh|w9L95XK7jLyiK%$*Y}sfZ!*s-um~xFW z#1V9j8vHZYs9P-s#u__tD>BhF0m>+)#4YfNd(JShoWxWldnin5I}@aknu?mFuH>-v z@<=5q3}TrVazq}JU6K=WH~7Z0qMcVMiy>N`mVApb@Xy?6JpfCBDI$TIfT&_PY1Wt$ zTf)A6derin=-T=Egwzu>qaPRU3jM^mh3l8aR@3)X@c3|5vXw z+<`uXJCW-{oGIX4lMj7A@vqp&?>XSNpn+7fJlgzb=Q(yOheNT>L>xPphA|HSv_@_r zHl!7KppOP>H7`Y{k!WfLIzg_a1^VF!oJgO^wC6+@(O2yd;+wJXOFXbQ6(@Ni z){2%3zptMjQb#?;IwCZ(EIKQx=n!Ax{@fCo&aT=L@S%tnojrycOyH6H|$)$vO7PT<=f1_4rpryGA<`oO`!d5cQLD{wiDZ&I24aaaR@Sxo|$Q-50|`P@k`H#SimP^!3h!=57;;a)W0mgUAG|V zeCjwvDn#yaN5`Cj4?%+ZOdOIja7FAxD^X3uKK8z#r%SYva)ULIT99&L8GC!8w=6ng z2|@=@FKC#I0<7^2YjP{nafo%}|3n1%k6`w?YGYeGXwQ^avH$N8{gGF+ufJ0RaDI?G zgz}G2Gklf?=zg#J|16Jn_fZ1~+F^m5AH*)8x$;$LfPbRj)^C_O0L4F~6s=BdIgimI z=lfj-!C3Ey|DE_JddrqL+E3zNZTeIVz;U{nC9DrIXYLl_&cY=AL$OFUCB_ltOo5IN zFpn1@3Pn=Ums9q3p15k+{_Eu{JQJH73i~kAfc=R;z2I6TTzh5Yp)yZoqUVF;67{&p zT^B|JbmD`nJars8C(mKY4YE#u2_piK68s`^_|KH|BdWp@rvv!ce85%qs8SAnzAkz? z+E+j)>I8~~ub>6G4OjTfz4rN9M_#oC#5y&C#6(K)3O=Y`h`dKwht^|JA-9?c+$n zSp8-eF3Z_p>z-!Y(?U;<=b5*A+C3e0(+bd8e$)SFIdv^S`*7IsKGHLBDBMo0Q66tm zUL)Kyl$a`8TIi%*R3CEU-4ov1E7WEf_7QC=*_2_Xq3mid%uQrl^5(sTP25>{Z$C%* zZtrNHjD&Gzj4+-jfNY^fdOzYwXky;LKH`f8Af?5UhN#E<7)riB=wW|NDp3ck?w}ZV z&};~K7PTg=;^dD0(#IbP3&*q_i2q4)pdB-R?a#si|Lt{Evth-Br+0SREjNA?XwEu}`9rYXh)8=;sIo4;tUoU$@6z%qk z#8hn3o2e^=9OEngNBg{)v>7@R^ZUrjf`*+!5Ajdz5vj!4%@)3k>^x>ik7HbY$Thk& z$QcTb{MkP-KCM(x4lGK~EHd2DPAPV`hTCbWLy|?_JKC39Xan4mQW!(E4%1Q(@LJre zI)VK-?v*0;{W5Z3e@Z{iKhXjWfZTw4=z#l%o=9%$=EkHE@!?7l~W&v3CKUy{nY32%`y<&bJ zkw6oVW_P^p(`~Sq$>UF*&5OwSLU(rim%F}D*+t$ zkMz?VPlS;-=~{E5ahP84 z5B-2VkRx(qzN%Ngc6vHce;~Y-n3vkLKi+!I(r>rA*#C#cpEO%KPIMZy7-tSpW2ukW z47iiJKJjvK>vGF@Lw{|${}<^?UH|_R?EkFi4Ej0ePqZiJ{r3iSmoVr4xJNLl0aEq^ zV4web^mE+r?dv&8{2L8G^mm`;7(hn=ivO^*`$QMV*WOHj)j}uN)rhL7qqtqi|B5kP z>5ENr4S#AiHp!mX;Ge5-9Ko+%kGkzxT5RkL=9 zDdL~2|ExW~1>gu8d!4&>r&c)=&|hnI4-ADz`*cPwlI^bw9;e=*USMAFTw3ki?K3$? z3&1^1-{hV`#wx5Igg<@Q>&eQ?q4{JvY2fC7TA4r9?;DB;4eCW9otC2** z#39UXAkA{i&4zz*r}0nO!~1`CyuTkm_1Z!9*6a&6ce=)Ikgu!#+vr)8IdtN|GOceE!0#dU1y<%T%=>_~Rh zJ-?6NgySfkJA78JQyX|QNBhDvit*I(zH5|@apSoh{l_MQ#})ltQ;1~Gmiep993At| za&r70b@R&t&SOi1T(`$JMDP{G;PFt5`Q(=>J-`mo1T0EltWxWi=e7V#Tj-qM$G4A2 z<&|BCr4noD3Q9dC*yQ4FEUrrgs9ESEk_~GBzf2{XK;pJ08W;wgLz7VURW~R?cvS~P z!I~gV)EG#Q5bBp=(H!)>U+6)t+F4Jni)ge%#f^!EW$*&F66(jkpBe(RvsRe(XI$kv zwI(@69f{FDbSpaA+>=7R%;7ohh4?#6!&5F12ATYv~9wtTLkuzOmqd~YTx;EtQ{jBAuT{nR$N1bi!+ z4GQ@jb<>JZI%)vz`;DIuRwM6CTn`4W8ps3g3wQ}jnyyPrIztf?J2G+vu zS$2*+>=o1=wv0_K=uWlL^gGb)-+MAh?QPZPDDG%wZ^$R&;hgvpBZ)wmGk_?S*nnlwNc@n8d}hu`dPo;n8Bpq%qQ{~d z^;PZir_tj^%XYLv^D!TCh`O&e7FdRrbxU*@$3v>ev;>w0UCL5X6SvgI-59GD+eY*s z=TgQS#v8Jn7t;8rl=AJL6#U0etw%rC?T5ldID2_IApeJ1!`$~zyet0I!cXq{p#{MA z0l5<|75_#9FxQkhfRysff2uQr<+0=(05yQn2>jblZFy=9|CCC|1my#5eJH2M;B@0J z@gJMy${yXxqT)u*875uo`@c!w&%29fk2Mf=>QeU}7(e~3akN2(IdY{9T9-oQKuOrL z$`cJ8t$Rw6UoOcng+zCuR;-)U(%lO5OYcrU$T_jy+5yeCb%*LcEe#sQvhUd^>d1kp zCPHW(6Z6y%=vkq0+|V5yNhAWXYT_o9o{6sIhGFl`7QtTK7o`W5gy0sri`HX0mM6O9 zOVN|4Uar=EOV)+29;`1pNsO3SLpWfsRo1 za!ZXXJ^wHA!Y^;7;Lm?h@vqz&?@A{@Y(Q+Z=ht#K${;Z3h3`bW&kk!`He*cd) zvGo3R#dOdF1=Ry329Z6Pmz|fKJ()eQ3r73+)(!ja%g!bbrKqsd#M@%Od7z_x#CI8S z*|Y0h;pUbg=L+kJhJ86j>}e^}#qBJE{XIt+oPDG-d2o(jZHgOSH_!z;6>_FH>VHK-j^;~=L)BxKGBmoz-uF=^j76|IbxFI?e(lHGqC6OjiVTKLB?G zrsl(YgZ}clB>v0QKH>WSr1Dfb<_5N64*+F8R!Q3q)?M8)dWu*jH2``aNHisfeFUEB zXm8Wn*1omb16;6QK^#cGjFj0U!nH2qJ3=NN^N;6p=TGWBF|HL}D`6_ms6p~zITIO) z09PAyKcH$3j_u8R$NHYn4X@He33NC95>yx0{St`A6H(quI(3f$R~B=26gS2yS+C+c z))6(WOa%TFR4WoO`fVQ%s19=kH62UV_aA-s8(xeII9h&?_29^+4W)iQJ<1j2)C`;%r4K&^EKDzI{v}&rHlhr9}2cC zEui1`VqdNO{l-3jBWC#=eNpkB-21m)15lf2pT8HD#QeS?(F~aTPO&>u(NFw;@H4Cc zVBC-Xp5qgx5;Fjt8{CFB0ZBV%f`AOyljD^M{6dl&iZMFGm9m0gaj=f1o`}E2KI~!0 za`kvM!;2xQTpwdfy`u$S9N+A{eS3aiJlCMBY>6X?t3@JH==mX?tk)BS*y zAle#{Y<<^A*Ccx~g(lHWu5 z>YS*XRB|7&BdGfq%^T2{9K?5fCG}!Vc*FWKSJqi;zZ?K3zzcE=dUG8;dt{uVUp6VM zWD0Wov*;;iPYlFKX}}roU{z2PyMa5^%U^~b&;`APbV7AUJ8Po4niddt2CS_CqDG>R z`O8^QYCAeoP5VIdVV$7|id)+PZPgbtBbg5l(l@WENcyjBzk&PE(gN!cxgMXN^%Q+E zb$x%m4Um6?vje*JKNO~BF}A_F9LG5BN54NuXPfT9tUu@dQtC+DaExT>i0ga(uPmf)VE<-mxS z;|1!Xt0kcTDf4FZIxaaPkVo!U;(Ln3|7GXZl4ef`v`I}wL$NL>S7;rtyn=ntX0$@v z#^ZnDPi0?#mSP;?O^mm2%4DE(E(qBqf! zXxO?V%f7WJuawpZS59x=X8%80N**b%?nV#jYN7rGcc5Xw8|oEkDrqB94iu8_j4_TF zq(?aqF0!S7a)#pxEreDMg!{*`kA_6qXyuZfujI@^GD|cIUm5;fNk}s zL(~VUxpUS(iGJdr=*PG}+5dkC+RoDc=Nj^_Fn+d-MW3QxeWGsN z@5FV@tvgtH;giru4R@o5{1~rxRThFbS|{k-Fnh2$V4fG(C3z6;@|C zYMh(*iVu#jwDY^bJ-)OfjygcKz-MAT6}QRzR1Ls>o-2Q}`*l>H8i2L{cLFK?Q}zI0 z&EMdk?*e@AvxiP&#ZTw^jQub8r{8vb3xu>Uw}h&fJfo16n?QP7HP&??SHPyAnAgH5 zAtBHTykBl{RmK`Zfi`FieJ0k&8$#7>kk1hEz#VcK0A_T|uf6z2{0|f{HdBsMmY6sC zlY;8a@IPA?n>2fi)FRMb31*zmy@j0#Vpewpb6=6Z!^C%riM$%ec=c%Mk|zXo+-yKS zty(U(&|ctMMJli18OEklt%6z221P%2aKJZX#KTbTe^TwkvHkkeiGK4fL-R#7{m$VQ zyVkO;@+R=QIX&cuat0hGI)yXBBT(&PO4!}d3P3M^mE+2Nreq5-4O<};h&8y-7HmI0 z)1T>ChTf?kL!lKQ2REr5kUqxT5nt}*iFyE*3G@TB27J(3fx_xuS8sa!PkBkj|L>p$ z?!gX7Y5-mN<6J+-`Z_OYYysU1%vHtyJ*3cY*X>0E2(7QE&#}U7#O+j%>yM zIAo--a>-NpBzxpB${Va&$QG`U9^MH`(Kob&0?P;Z+*Uni#b9a;Cw_Skhp=S7s%MAX zf&Y>=l&UH9ItGa;#;pl>->6s(inBkJ1`bFaNm+95X6JkN5(4VmpCi(#Ven@gIgto46 z)ui#S`2SF>e~tj~y^VXb12$>^j`hvDps@wah=BfC&(VG;mo@(s>;J!6R)ykUMgWoF zZ@pAL*ZnWVzwH(5S_JKAaY3$&IzTYFU$77KSL-uk1a7tf`H;Drzz*e)*oBNW$Q|W@ zc~lo71+nF-WWTERKELq6G4^`jnovx4 zBIS8#-*W|m7J}}H&Vt2j^bvE`FCZjKU;iyb)|=l);YcRW1I`Lhmpm@$TICviQs}wi z6`r6a$bWE@x&n^(%5R2?27tCD*AOaUYyoW<)=bMuwiQcbJ~upLY^?w&5snuiwUw{% zgDHV`v^4Y$?p@F$pcQGE3jQsc4mo+7OXIoZ#)JJw=|<1`YxJxi$|%5$15)jPFF6ue zuK_sP=lUU65t8%%`YjOsP8c;n`A<#Xud{#M?+O0Z{^#|K_eJgjl9@q1TliP0D0~v~ z0kE_pSaT;bQm^echHzhcOY z|4$a(5E(D594XblnPoPYZjOJ|9i54?CDkU(-J3~FmMw9KcZx zFMa*D3{&xcwZ!m~n7bQ2L_VohKC(T4QFY*T0l1_H1lNIGaNetJ#ui`*uV@*zorLcf z3qYT!ZP~7f2e%(N7gR55Nz(ENL24IL5c#BojvN~)C0%1iCQ$B(x7oABk?#K~13(jP zYw7^b1E@>d0XpXXQaWIx1~4m$X5L@XuR8*`Kad*W{6CuB|H414?e$|%FX-=nC4O)X z|FR2M`~QN<(b5~G=!Jp!LP*URBm;V&p$&Ma&kgSlZ$ahwfwqP*>i&iT;=h{y)D{e7 zEc`>Z==fV$O;pkHWzS75KtyssF_BC>?kOsuTzQ!rM{*$Ha*nr~){g$C0C#NU-|7#`SA@!$l`fl_T zkdGd4M|jB=A^)vs^4o{>4Tj?k)tK4}yw|p1O4{hi4|NwLOReEsi7;(3a>c_oV5zVp zC;?2zQlTZuskJtOgpBx@CplP9J?t3<{x8bco5-yP^-ttL_tzLJz*qv*0Kda&oWGS( z_m^A~Fd88Lh?xhZ4$$=g?vCR(Lb-2{?-bOB{8eHD$hsfV9~s!t`=9-wgI@#4>V*CO zk%XO6{1;XS9~(hG$o8iL##<<1`+@WuJ~;0pWU8%&8eu=K1<(yDb2oe=kR7>)T-@-E z0LLP4cmIlK!!QHNQH1nLfb6H!;xIunU0 z=C>LC&38(Pe~$hyX0wcu(%@sLVL%a~rLy$A(m1HqF$Fb%>J!Q{pUfI_~!|PBj4geeW4xH+KXR z|3~|d_HlGT+dc*Tv^b>i=XxK%2h{V-1=tCev+xfI0rDsx`&%FhY+X3WT;PVEcZ|O(|IUPd>rcNc7MqOc@*9MA$3J)QgktQgz4$s1%0ewiDAg#numSifHD%Xf z|A0*_2V60)KnasCsOnlTYm7FF9`b>#)k1 z+W*IM*MG}UwV9d!yHY~Vp}y33ccq6MBz<(kOYoZM^dEG??lvvMaK=~evvn9kewr4d zwZQOU%yldxcC+NhJGv%X6V^R*f8vi2sM4 z6WT}_R{?)S+J_+%i+(t^KCX}h|A_a|z@mQ`$XACL2vzxFIMS5Tj}kOODe*Dhh_9J5 zYP|E-V4ZBCQ`ghE#-^tWB=`U1>|iX!^&l;J5~dpV=50FvZ?Dj?Ki{F|Spr-M;Jd;) zvNra*j{g<^{D!I7Ma*42y-ul{zZoT&vRGoXN53h=9YAJmL0b7`0%{w+r>V0Sl=S4< zA7=!xhj|y@HcG|+`fnL>bdcKr50sFz%H_@JQEmudKpnIqC?v&9r+fmAJx$uIZ2`b%t`=x-t*ViN7p|Pi#-NEK|T~TS9XPJ*0y<$+fw(sWcz>e+XQ7 zkg?CYQxa^}w|3E|(iuB|^8u+g05!nxU=w_a-9dbl*sT6>w6Fj3`;zYuMqhLU+3!<7 zY{0*w|4jFY_WwXXX*(-3m23E?Gzr#y!@$2tlH3hj($`Fx@F1+7GPno~QO4+J9ArWr zq%Oa7i+wlt+pz!Vc>uJTxfA$K{3ErMjuOn$fd5VHe_elbjdGTQ-xMR)`9{s%@n5zS zo1~pYE1niWPbTvx?X0bqH4JL`<_~Rq=BR(V2hb5rOpW%{ha%ZNm%e?#IZH2UVfOPe zUL=$6N~hwV;{#HqRtIxmkAId-9^!XXdWc!NW^k807DvvAjwHXEN}D`+kL5o`{<8-8 zK;l}Bm@=hRsGBtwuFOMhcE$jwAJg3QsaZ<`;!!Hgqwc{IL**(t4*fd=p&O!oZjk2s^9-1DP|C;q7=*5RM!6Ys-Bzkc`6!ap^@ zn*E<&nvXVzHCGBLfLu0toAehJ-W!k@b;G_#TSSKZe9nIiajY=N1RQ;N)pzNLch1s@ z^`FgIy-o0sQkaU;)>L}62(s|&&t|9Kdi?ubsoyd*`0q?`{r_Z%;cc^*bZn$Y5idOPDM$4l{1FbLeS~LH2dRa1 zC!8n$8G~ua)g~`mN$#a>g{t0h;({^wW3?G^s2r9tBVGO)n>scrbHa-M_T zcs|!?pIM3L{#u?%#$EixqgQ(1`p{@!Y?6BcXbW-OBNSsVZt(9KjZNw|%lm7&YntWN zI8Zm%k2Mp$#!|21J15i_bowPTe-+D8O|v_5&kmND<>Xh9gU5%$ly^RJUD2FX)?b?} zowFY1TZT)6oF$~aKq~nTRF*x@^MA`^ZhkHG#L?5%zI@Vy2^i;Mt2loUxRGJ924()eXg z^PMpEdHMzoztyQuX3yyl3zGell>_=N&c+$Lo4qn^?cj0q-4QRoIVLN0_(n0mN6KEC zT0xQ9U(0)FBq5FUfN#h z$oEP+qs5qxTIFidK*=8PrYF7s2l4^ST2c3JrU5j6_Vb(Jf35WOR8R+C?tg9Uzp4Fy zZ5Jg7?Wxj0se+{7>cv%bfyh`1B$t)}d=Yz1k|b>jk#cnxrE#Fh^rys4FW$eW<8Gk! zZVywG4D8smgXPg7z4wy!9j^6p^(l_sHYj};d*r*hp3Kzwhh(f?2YWS0x`(xeLq1w+ zo@dVvgaPLdrR2(;Jy%PJ9HRj=uNr)BKvy&LS-WM4(E*~+f->$r0*%GJBB^ zWnaHN(vwLl>vkBtgCZ$oJ9fpA0#cUeNm5B(p#O&sWgeeTkCrW*74$Qe`e~b(XVisl zB)a!%(G|pM^eR?QTdjncbXq6eX{h?Boj`p=`tZbd@eCAg{R??QY&^4ttTvaN&}y_D zuIxIReKg(wv)_2Z_5<5@*4(#ko4N1UzH9p);{6D*UlI2L?tcKk@4_Whf5si{N{*pF zH@24lo$|fs_jPZi#pF*~K>H;pzMO;qUc27)SL763a^@7h3g1i4%Pw5`@60L5DazSV zw@YI)hNjTxR~`CmM_P$pG%M-(j64wfD*W*zzFJZakOYU^b4o5FKR%hlj-?CGyeZu+kf2P{>rxAG5oLLp0fQdoWUgTpA!F#={I}+t4KEAxWs63v(Qca zy4~IGP3SN&pCbO___psO_IP$YJIeuQ_c^ohRhJrPmOabib8Lb0Iq1i5_&RzrnZjJ@ ze~~UTo{d~Gv+za;!VuT`xBK9O^i~ORgfds=gZz=-Be?fD)hCX;zbrjU6-)Cu4ZW;~ z)PW_S9;Al!k!md=i}hM7U8!MB5kqLl6`TO&$jPb+^61ID$WY2?q8xiqEUGU2q$5~6e)-=oTOzO?{1&{4$ExXU2vm=u2O|Sp6|Nk>~ z@$94ce%%FJkIKJ1;~q~E`vP)h`lFc_vLkQ|!9DWuW_($CNE6bb9Oy>Dd6v`XBK^ee7U#uW zmd27;o|bSy$|G$N)S2~XxriY(5NhOJsgGpuMtp{8IBO}jmDo&c9P-1g1FYbg_J_)eq=G-B3Jxd+0vVHWnVbCPB6r5g^-5~> zXNZPBg4}Q~@rg!BBk39Ai_k-wST>|QJIfit6Y2K3lpghwToH$qFrJpfQscRgIO%67 z;xBU~wGuz`DCtY76ZMSN7BQ_nH3l>!xO2bJL)wiK+R%E+0j-tc26)2Su&%f>Db{|4 zXZl1AKtCW3xck75{~vVym#%-B18EMVIgsW+ngeMLq&bl0K$-(-4x~Ad=0KVQX%3`0 zkmf*|18EMVIgsW+ngeMLq&bl0K$-(-4x~Ad=0KVQX%3`0kmf*|18EMVIgsW+ngeML zq&bl0K$-(-4x~Ad=0KVQX%3`0kmf*|18EMVIgsW+ngeMLq&bl0K$-(-4x~Ad=0KVQ z_X7uJ%lL)&e=9dzwt5|IZgnn<@7?qCpV2<&vB??wz%dLC&x|ASQhqfK{NFKgjSqg` z5yvm->mAZ1os@}GCPx!uo~1M?RVk40uPC3?GMKN>qO^e`<0RJPOlb7$mI0gzHs<(X zo%`>OFXEDE7<i=PUgMZ5Ry7iO}o)Yr0?SFQk@*W?^-j-p{`1j(r;Jadne}4G&$0G4; z_q3j;!&5XG{ZG73|Mo~vHolji{mUqx@C;wNpX+Zg&Z5G(G}$Ztc$RR9fxDfOy7fRj zmwDbi!nBsJm6q|JcwJITjtFP&jHjhAKY23OCtlZF?>!&V!d%|d8kv&xSN$xSZVfq) z+&AriM;p&Sy{&#*{a!ht{dCCxL+>3iEIH7V8YlsOD4$D}0BL{lHOs*>jUB-n=VJZ* zzNp)W(+{@$_zgpQ1H^ zZRZJfhhKjjvcq$Y*#2l)xMW!Jc_m7J%7Qw^VO-=UcZ?~qtr!fsw|q2zEk|-k>3EXz zg%*(xQnT~Kx#&XpzG#2bvgX(N4u9m-Y+HY=ezkj{bN=96^?)S-=WoLeK6H#afEs}9 zzw_m>13c?$_4;gC)ai4w{fEM3OFZ3<=VSS+_|+|*bmemuv}|$k%<7BTV+VS&c}f-A zzXxaN%$7C!*kTirmFP-z=ZRa| z!LarlIpu%49;dTW6F86MA3=YR`n`CKcc%Q*?jLs#+J0mEEhS*P^Z{)DmB@A<&phVI zggpC!?LWV-GvOL_PxG8Io=Y|qPE7G+^csi1%6Y78sXpY*813U(ggl9f*RrKZ_PNL{ zaVwC4x?Ma)X|%61K?@+uId*_;wqj!7ZY46&MW2=EEs+`eSdKA`Y^bC}ZmA!h?lm7u zlD0NWS6QUQ8pnH;;+5#R$bHfN{MNpnth3hUDLp*=;-{{K^N;WpsE=y*28Y6@L$BS@ z8$A3>}8ZOrxxHGs5#^vW(raB_|(>O|dHg8%t_Q>#3wisxXLEiDZ?f}IKH zF@D$0J#EXN1k9H4jB1{e#S^!vF(TQ^-)D>Rzn~$@Ikn2x=UI25SS0h=u3KH?suhE+ z-UVssnh*yGfHW}dmi$h1iA;#Jz*j>p>A2T?m>Wyce~~`sOeuteuEBMp>zvTl5t*;O zFYy1Ft#3PPe}>r4Ke9K-licR_@qSx4X%BS2SN^N>KimB@z6yWl{Ljkg&fl<|%K3&} z+W%J9us`aKP4c8uewADC&-V9MtzP$6btXppyqT1Rq3~?k)GALO;@N1EbG8ij|H0#{ z*OvypnT=kw;2~+nNS2)^q=jPcY1gPD=*=AVlc#KPhBMYJUJv0azr3F~6o&sfxm$~4 z<;W1Wi?+?Z<)h_j2~r*Nqrs5=mvpp^ih(wl5#Zskjf?{{_+gcfr2xY~&T5 zMa@=U=%fUEgj4C*53ET*?EHo9e*oss?tZ%GnZG&u!Ov{d=YRId_qJvHJLvz3L&fbp z^`56{4(w|3CEK6pTl-vWe}0EmQO|xMp6eRrDY^EF@QfSh*mfrTRW(kwU`KlguZJR# zkt}DH(-CA27qjUrEeq~~v+ayK0bWb|u8H>Wp)mY9+QaP~t?+9{>!@5P3gKh1cme%F-)yPL{XQwbDfiVCnEbwA@m6KeYcV>$Uy*r^qYzeQbTY)1hl&N04Izp5sJI zfN{@XI6vMk($hWoH%H?KdtN#!XEtg3lk+D_;<=dhnTuriLjTW}Ee+njz0f(@$FtH@ z|4*&b3eeNYX&1(GV>myV&YMX+@2?stA>Y6?v|wRipakcpWIK;hdg8e^ThOw?b%v6= z;r3e*wl?_OO205%Ug}d(XV~!)rJfGU*mNG5SZ_a~#-TyRH5jdj5Gx z1D~i5oX6IU2*zxq-Ge>PWOequbRHH(&NqmEccZ(mxUt3&$#w)e1IWGf=z3IUuxyqd-2R+p6r4XUJ3)+egh>uPsE#fvV<+`ZXNLz zRP&c5;vY^B-|lWKZd}CaJmU==Xd6opKuRbn%!%#ci9n?TfCz1!5fMiYp|Bv8w;IH=&ytYPt{)0nd>i8jGoc+B0VEhzEfZOUF zIGg<==zX0Fpfr4B*#RGk2A~$`KHL2d&;&oD2FNKF-`)62NDlLHw=Vi} ziuMQCiYh}UAB2lz9BJRXzDcL~nP##D`9OPzFSU ztlfu$djaToPZ5aR2{#OY&9ikNQG-uQP=SOVQ<#V=~o|m$; z{Xew5)jhZk?Z4bGUcKB9s+9jgEHEBOwB&hi_+o)jC3xHbpXz1GNMOl(F_W_b5zOnc zUx$7`su;vclO3iH97W>v6THfI8`~Gxf^E#)Hp`Gaa<$WqkT(*|H-Zt zlXA@mG&F!3(h8sP>f+W^%Ezl29;-%;@GEift7(@T5-qrEDQ-`|2mh!|ajUD6XlT1% z+W)t<-(vRmH+Po-l>oLmQBOO7^8u$}1@ZVNF-VkdTZ{S_1n!fy}%lB|Lh^JJqwLik>LV=v3p>St{r_{%DIWHKB zu@51pIf8VJhG*FR{k6g4{k3~`EO|nK@do?{u9k2V!C3;Hr+YE8+0&CrOS8rv&z+p( zSN0QAI?CYPY#GNXOM@4)K~rU0buu4PVJKGG`D7^PFQ}AS6tbrHC)MhY`vyLPBGg@< zmRsmkSY6}#dV7C4|M^|C{Kt?0BLka`1dRk}@2|Rlp%b>;)7~@Z$BBNpb7*yG-+)GGS@?6M`|-)Fz! zDXixI{_0B()BfH}wkKzYct$(t5jbB+8?iIto}Qdr8r))+@=#J?b#p1tGhgT|Te^Ka zHW|;o2zzsBaB4N`4j$(SB%Uj4Ou1&3F`mnrs9uNAq;yL@h7$OTFY1CeC)EI>h5b)I zG>kc)fBBo&kV<9}FFcpkiS|E>kwwN0&nQ|DoN6cx>~AQjzTw>;XlvmU?{9bu5T?I- ziu!94Q{0J=m?~Qu?c0L(M~Dw`Dql@$|H-+sCD$lhfAxCV66Xh?Gob&u!r%yIIdgW5 zdTw|MstYQadH~jAmUFf&czkNLY$?mh5hb+*CFmh&evU4^nP!$T%c<=T`aoA|KFABy zD9xmI5%+YwFSLG9mw1(huEsakeEd;%Ny|&G+cH*gdA-dJ{PqBrGWFvoN0_?H+i?%wf)U3qc@Z7U*kZz zpgA=k(n2ahHR`}S{CliBgrO!9iWu-6@hnQ5Ve5C%o9`KhEHDIgX=-ni=j%Uz2)ubk z`fQE@-?AjY$iN+1Abx5u=6|+f6_=v~+gb0K`Dbi1+v<^4-5J~P`N4;uDSridz03A* z_JCi$MgK6{84^G29riBz7yTpNW)B^ohrP|ETX8ZY_agCxdTswKyN2<~_Agsv|F1KK zoKbd-E_8M#6#s1h)$6qK(f^k$TICF5Tp4wDCTJblGPwF=ub^h3M(9igkH@o3`_qc> zS6#$OGur;3)(@)J@<~#ncg>!rQqrDM1F6jjYr{I>sfqukCjKy_Vy(tf>n5B^?9I3j z`hQ*j(bJVbR|5X-Alu%7^#HR9SU$HmxYqiox=&l@wOjblFKzNPd7B~Y!#>{ef7mzd z%P*A>`oOX64D2bOK}$tzV# zK)cq!T(umj0mHOTQZ~+I&c{D#=Uu)Bj=3OTUKumL^fbo2_d)yX%CGJL;!Ymz1@58) zyk}Ybzl@=wLkJ$JFnZqKhI;%6Ta~z<~;BLeDyVXui;E~@<+l;dmY4n ze{Cf5Y6;uMUeRBBF)|1J$*IZb- zQm)kS#BDi&Th5l}$<^Y|x|OcgNlu)W)2w+8y*Qpkov(RHOrAsy+vI*}f3@7cpbkKr zr?h{H?uYib(9bcT^#45bTTTHd7kOqnW^fyEuP1Rc6b^pW`#qVQ-_?0STgGLazs{79 z6HhNrHud3rR`%p^oSmMBaXaqhyhZwP7J%vbkJH(a3hgB4finljy_j7m zbLJ6eyyMDo;nkuoxXZ#B(wtMk$>*R`&KXb1hv$^*Y32OAx=XISGj(81)Txh@cUsOS zXB`GWHEVOVczZmud~+~h3j?t>2v?`i>K8?t8lKsD zmwZfqn)|G)hUfiCe3llyORmftrAVGi$yb$+)CttmWo79vD6*Tn(TDfFj;JGN$9;i+ zAmHE5;T%JpNhs$&LuYgTh9~yn*E*w*;i>2OF*eU9GIPY zNOK^~fiwrw97uB@&4Dxr(i}*0AkBd^2hto!bKw8~9GLyP`qP#hso&@{WTbvP|5$UV z3GPx^+5F`65Z>c=1QU~=&b>1ep8j<1)48&Fx_7WH>wa6Gc>Q$Fd2Fdq?-IyD%U7?@MC9acz&OM*V3RL?|HeWYh13;#d^M9_4uL2Pd)ae^n`sSUy zW4HDOp7`OdxzCOx@6XBmoYvcP@}}PY@85I#KZW);tJm`D$1eE!eU9Miu&!`+pL-~b zw;cXQ_gGHm!x>{O&SSyjy;y1D4))PL?pWbI*r=QDvGL8N{@P(5-~YOTJtmWLL*Yfg zz71x*ouu!c$eSm|$9nGw?*$nj**Cr}4t&Jv8*G~5T-PV}{QfB9e_ie4FK~5t2pkv+ zU+cVZru!eyPn4hC-5Gi5{6GA=zkVd6qkYyLiscmfs}fUuBQP;Fzi(-9e&1-{{Jz*^ zcm{jIg4kz`UC%isHBQ&)Y#DaI;)(C*aPPh4xF6d1$X@u*i=*lIRt57>7e3VJ`wH6s zY~<8wdB4#Swm;vGmj9@h`t2j|Vg7k?ryFlJ#1CE=c=!j8;C+U|>RFe);u6*y>#8m} zqi(#_jA!hZufVE^i$47o+x=Inu+J%w<-Af-+`=lXxg_Up(QU$?K@?D>A}`Dp>pK%I?_t3lB|3UbVej{?jcPG3@2$9@g=|W#@>8`(2l@%QA}HHJyp=^?YjbB&N7l z|3}OGzPi`zEmau^xGj_Vv2BmkN7ByaR|ajCCSD>Tm&o8->O$vM8ox-_`Z=^9-cJXys( zfg|4eT4JQeQ6C(_x;bO?*K#*gV(My%3%d(tpP-gtu2P1p(q-)_)G}rFDc*y+=lVZ| zn*UmM{-x~u>wli_0$_dpV1MVsKYMr_ycynou=||tDc#M5y-~jX4cN=ZU0qnsWlbjM z=4-jz>uL$>KNOBla*x*1;B1*|bST{Gl-ORZ;$qL`(%=$yjSYqHCI@!i@?G!5)RhwM zxMF_HMfP6Fua-d{>>m@Kk+tjPd)_~Z{*V3tTe9=*H%Td&e;U2oLEG62}HUC42@o{vvZxCIMukd6!Z?5+n*8MliHO4n=*;r$= z`bGpe>^)J71#TZj*7o?{StllP{`H)`@YgQOW*u` z-(%5t-hSup$A;Sb`J3Y2Pq|lrHZn zy=kpm7CWqXdBczI`tEP|Jjt@1ioE5;2sCnLZ>lg>Rri?--{!kfH+;168vU-( zPy9E$u$lTA>l^EX$La4pcBOXMpXY0;Z}fi>Wb8FpJ`vKk*`mXJ}k#9%7+uZ3K4UP52% z!%nVCuoh}yQEb6~FLqABVqhO^--2rtp*cGkcg;C2IWObs-tD8$qyNu6Jn}-;u>Z%t zfu6D6vesjtbpGP_FOL8I*e{3Lqxg2!26y=9xB55M*Lwy1T#2J(YDO{S_xGu3(S( zo}!#x_FevpD-~BuuD}fx4V3KpTzT3^-{(Dp`sd@_i;&^{M;`Bbyz5zfo9A3tN0&*r z@Imlb&A)0NdTb~(8X9up+72BUTI0j~Pp`eSbo{aCvv5o^`jdjAjW30!{=@Ts@zekE G!~X>UZy{Cy literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_ep5.5551 b/wolf3d/base/iphone/button_ep5.5551 new file mode 100644 index 0000000000000000000000000000000000000000..496649abb7c77fa1f6470842a05b2c54cc5975ab GIT binary patch literal 87446 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_new.5551 b/wolf3d/base/iphone/button_new.5551 new file mode 100644 index 0000000000000000000000000000000000000000..f97224cd63b6b37391e9729065d687c036292e74 GIT binary patch literal 10982 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 CC{dgM literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_resume.5551 b/wolf3d/base/iphone/button_resume.5551 new file mode 100644 index 0000000000000000000000000000000000000000..e03ed44707efe59f92f5b3820df91857c215e852 GIT binary patch literal 21902 zcmbW9Z%CY3zUP&BF(qNSC84?21__lQQU;MyBxvQb8_Rw%mf^Bm5;m5EP$eQNK`Igk zBfCp1@?ujHhKZ5TZGr^Th*X9kcE}6!<}w!HG7)Krgpf!Okw&CwL?rZ!?Dz9K&!b8A z%6*2$$PhKOKz`Lj(8lr_aqgkrPpJgR>TR1 z(s*engNGrFiP=*z;-jyI3L7`mx6_j!U&PiYHYPTfw|P#uC$WuxSy#$S8;s(yb;Y&~ z_OQ(G9EH!Y1*6pX`XQ`?=P7(j`58yc^LRT7evVJo&qXeWMa)kf<+zxG_965hcbfS5 zdVgHGayvYU{?{M>yyDS9V;{?h_0r?(|;^&o*CZ$nySd@4%$*0nf!h8PW`S;CFX0kKcjqwlT&5xTO zUw?f4fr8%8pXm4f^#^B3lk-I3@$Vl$)6;_G3hIf2SKfo?PyVIoK|2_z+3)%H&~h-> zADFHa@S_s$yR^CxE?G>iK0 z4YK(`^F4>rd{20imC|O>7iG!b^muP3Jozx2o=i_RJ&^uBXWkC>-eDd%hf*r86p~?) zv*HfTpI5GnqvA+u`Cw2cYNGV)F|s-CCXw0Ms45>xy;7rnRyYp#x~HF|Oop@f4BssI z{K>}`(o32?|9*c87*R6IU4OhkWfI(b<~TjDa+608(tdI3^yJ*#^yEf%Z)$H!mQk)K z+uNQdFY-Gn?TG{re(&Tk36Mt83PwLP_2KQkKZUGT4~BF7i9r~ZL#k#U^n??Xu;1^c zhgVz5qc))ox8{5MQ;T`t#>*!dHsJH+HXdZ^MN~`w1=S|E?dgCYI#6k_c&O+2tsKjvwAffSzl?s_cZ@B|1jG-w2=+p z*qa*7?dO3RxYpBH4ED5scjHalhxAohWiMYpG2NO7ueX^bvRthu85nN9w{xSfd*=pH{&=mgml!gheK6g6EcB-BsW@2c zkkq2~2l2Q^FI62&9%=&Evky*m--*Nnm5o;==e}3>^%MDUd08Sf-6m^17#KD=qE~Z! z`7;xz6|vf z^*KLhx)mDe?uYr|&0asA3-~d~B)MET-ss+|kqcg4U!wUB*B|)#Uk84gay4Z7tNxnr zjiJA6)cglYE=m8KUyb`B?r*9v;&q>Gh?NC~^Y*L5P*;ioqXVAW~?cn{V zPn5c_{q1-uA1yDN>S8{b$&#Co9=uQAcI7kK3Qu=eb~$mpwY)4B%)XlHDlfYeF+Hu8 zX-}?pl_%}#i)Y5*SrINRJ1)gwea^S#RM)3Z*;hXG^zHGIi|3=hbd_zDZL|?ri@qKM zY7=TFQ_TN;>4(`xjVJs0<8^5LNq<9yP@1=+=Hh7Mw5NnWr_J`a#IcWyeforj$OAu= z##RUKE5b8ba)t`drfC1^lau#E-1T$%^`hE0dZYhS#a(-=Y#T3u{pl0hIPG)6p@PeE z^;KFXwf${H*vT=I%|~4xb%W$bdb|woPtpJThCYn<(*CFFCmJTo%i;lt;pnz(V?}gv z+~J*%qD}ht`la5X?hfjA?(Xsd5Wek*^$xXcI~u=!I-B}@O3TowAKT9<*I;t^c1$hk9p* z7V{eaa`egWj_AsGDf?>s+Zm0G@jykGR=0i$J_qm1%bd-px+=m&>sz$??5pw8((CfF z@FZFjD^?YjTDG&VsDsE{%XW07yJP)QVF@_&Pv74DcC{ruiL}`GL}K5@Qfd7Mvjo=2 zHUEJYiN$GYQ(eviuGP7oRjdk6@;$gQPVHu2wQLU+id8dNzAPhix!~Mgz7Hw=r5?9} z^<&MCPo&o`q5sqT)rtN5Y`4>0haK;rF*spOz1t{;u^^gd=m~B`jTD1_rhHYdwlV_5WOV$DcZ;y4El4O+C#m<}O=p zIxdXNjyoe;E?8J{IY_-RP8)Ee&i{}8j3!W<$wuaAW5+^hz9$P{g{u?R2l9J4v<8-% z{8E26dwlv7nWJ|tz5c)Hj}^bvqc5?j@$XL^|D2xc=;^pBu6wz@_z@SUt?Qw=U}@R) zI{ITgkdL~t+_jAV_xi_rw2b8gH-_vCtJTW_PXDK4)(^&Z)cT86)amlUuk~jfip<3W z>D%mN{A2y+?z$P_NRJ;PTJhwrPK46k9hGfsEe&Hk!wn<9*5B#Ltbzp7jm`IHlUQJ5 zoKYXEtY7+j{r~T^e>XQQAJBt}!TF5Uz3Gn~8b;^=S@lOaG3G5FxYfmH?ce5C>WKP3 zun}%!{O`4Y?QqzveyB&=*?Wt*rwZ$r*3PfCOm~%rcZWyEs()4g-5v1!^a=iJ;l;7+ z*ohcpPcGQq!Mw-V=w|r8HU9l={fkvY1tg8kVbg^SZGVwEAIXl;3P$a@I5s+Rtdf}& z>pD9h>EAnqRE!~oC8YSr^&g&Gzx0_Nk^TJdA1_Wk)taYAv(oX_wP?eLdcer9_0I)a zQ_*)ArH;-aQzb6xcT4J0PPlje^3A3AvagMHQHu(!$?#*@8_~3 z*)jAU9nm;2mL2KQ=$eQ`=G@F1N+0R(Rx()SKcfFkwpjIr9*z4`*|AZz|LLxO?(J#& zkloGfWJdch|Dyh>>8URG`xc<)>3QQN#`EkeH0bU?YubqGWvmh^!v9GBM1;8t9M1xY z-ORq`yHT}(?8t70H&$3k(L$Wwp>!zitP9TiC2EDWB$ga6g(r_zAHN>|UF-Q=k7J=| ze?x!6*gv(dozF*BTLx3Rsc64H|Fiy~Z@sZqdMNEM58l%YB6IY6_s6_~{%!{yIkK;4 zjkzHDFCQ@TGXFCd9nF7?d8;j~QJ})A`o3nrv-eDMNj2(+k%s;sG(zNpSbDsazU|r> z+T^2d9mZD%?Tj@_^~EpeKYB;8>PtNaQVk>ZBb9B5$X{FjcXT1uFt(fe&`W)9 zf6I7@{+AQS)B=iCm2K;nHpW>EG9rI$V-TS!yRO1QGESVf7xr^nYX(Z`vaHpW+5 zct_?~|3v173arn-%15EW`mnsLI!5bPeMob)|NbcNkx|lPtbd^!N~dpcXj*rDfflea zK2*rQDlCO3-8UDrDI6-ob9Z?cmgpUYrJ({A`=uTYYG+r+?nEoXe~n82$a$Sxy2T=pqi5R0lHb_KVx}uUXij=bjt47*HJTTP-mDLtxCji5Hs*7?0X%`<% z?xs}h(irWfcVDz`v|l|`d4ov@&9frhJ48!>H!@X(b3xwDqN^=FeQJX`!%D>5TJCc_ z*1`?_yTiMgo{qkuMC6}ZcQcItuD>1en@?rc2amq8*CLA(^TYnylNq6*zdGi_`(NF% zw5Oq8^2_&y(3;ti{I3I=0i@^RSk%*gaU$AR5@+R@9cY7o=`g#Ac_m#xw zddR+N{S9MlE!2>{Rx%9}rR1WtO{hKziORuLv`_UhGM_@@MCF^t#jz!gQHvAz8!uF@ zg{$L>TCGLs3!#g3rR3YjweYb}PhD*%t%7hNr-#&@ZU@|-Qrj_)C&_c%5 zxmtbSsK$JFY9zGQfd1du7myo!XaV6#X1!xZH&J;x29;x#kK&hOKBr@qN1QxeLYL!e zNh!ziexrExjB1^6b*v(^s`mQ3$WU@2MIT(0c8tLdeG8q@K8?cai<*i0WgE#x9YxhH zkr>OcZW$F8Blm7{p_3llpq8sy+%$=*Eu%xUe>bUbS*2*>4Lw@tihHs*><#_mcr`AeQ!kO+`6Zv z`U+?-DI|}$N}kR_=bt+lI!m1ml1@Fke^)WXmEFK<=y9_=ZC~=3rOgVCat>)nN9bRC zg);}t-F15h)p65McxaDBm3FjEOZYvNJ+q>KeWkx@9L;47X>t95tlYPd+RePI%16Iy z{r9S!)IzG1{7JGCWL0UeS`bxi=WGCG)aaKwRhyzLJB~cHCp96ROmA$9_KwPK=TJM; zOhbEWg=^MW%2|y|CR$vUTI-|sp{hJVWvw0g?b@~FuLJK|%`(;!;iMKRtw#GLf$D+U zmDJR_ev(&oMmqQPZ2_EGf!0>kYpHXnb0L}2NdB(tKZSNv8vj+-Xf5h$@8}{rqD!4o z>u6xP8aot|j8Dg~G7!`uoT&?|4eDQdqj^c~K&?P6MD@~xgpP`91xU!KVl<6@gQS8&{RNeTIk zZ&6{x8#x-(ACT-R5^1%fUM2Z=(OvcwhJHXRs7(#FlUq_x8ck zq5UV5f%Ze5?59zM7_{^gAInYsxwDkoO{xWmU*sI{3+=n20YA798l;P!8Y8I%1#wlY zmE^VU3(1$7`*ML?V6byg6043LM}9OjeZ&!)sxCEakt^F7 ze~seK2JJ)b(AYJLscnlFa_))~6wpNY{cz>2SaMtSe=M8}+zR}rY%sZy+0DSQlsb84 zt7&u$2^YkDR~Avf5(afg3)oH8i!M10{q?ewR+8e<&?h~Wi^NJPuh2Po&Pw`+B%P?~ zH`ETkXv-eJlVcV$&Q31}LFq#KRoO~Xbk_G7hUi0kLG-{EZ|Q+#!W307;8^H9gFTJD za>Pxr{gTNvr;gEWQ2jp_EC!Eh%@XNc$Y=ym?e3<|oI7*QrwpbjrV64dOJvlVWSM$2 zCS(?*#{xPiUN3trbn2@@&)pRD0dLh;a-n@YW;RHcGP}~p;-c9g%a9fo<%yR{Wm(BE zcupl5q}WxEID+U#di@w8ypKMB-NM1F(?HGEBw=@(*aamBm)7PC!NweyKn!b34 z2a~sg7b0uX3*p-KL1-F(eSb~}#`H$Ag=7IL))oY#Rr79Uuw6FDh(}80%p{sW7qo`L zBGB0pSNN+}f}M(-i<}b$N}bJ2s-aG}N_X+F{LaDlos`xh?M7u7>XKbHhKrL0KEM)c zMHA|~sqNTSY)9`QS=uC#&R{5LW`iE};P~ujuz&5jt@vEit>D*z3*mo_)OHS<29i=Z z*Z~Q^E=UIWNt29eYdWH-tRTI2l&g1AZ$Y~_G$QB7tvx3`l1MzIrAC?dUDIku797%; zJA{OiRT2uf_MFCH)r71iiOB)lK}60WJ@7lqA0pg|`y5owaZkO@bs1E-klXPX9sKStX_)_CPvmshG1{MA|wm=qQzR6eMwK9x0&f@>I%*B{;PvWSlp? z(zNr(Sfu?&^$s*JE*=$OwhJmbZ+vO7YH!2!6WDb=Q)X8;xqusT69$ zLm!n2!}I_~(BL{A^C|FDCc1(F+o&PSe5zI>0HyR*=_DNKC*2sk)n;U4I3t_oTfKnk z;59ytVSn}C;d#}TBL!W$?~Wvg2kXA-r!;zM^jpm&Om{H1&m|6@LjC4=A7uNT=gl96;l`>Z4%bD zKWci^q%!3Vrnc1Y;pM1VjJV-AIYnQVtL@y$z}s54_WBf0ZYDMp+B*o|iC&02iqFPt z9Ht~5kR7&SSHx#4?pZ;&NV6SBHtM-nZ`FNrGd7@pq*zL=K~%TmXyl|f8%h?FQW$eh z1L&WE#+L9zQ@AFt^mmj+7rUAUJS9u2roBcQ$j-n^qAN{inR7}@rW%bfk~F5;Q=kr= zWVNbekAm`dh8HsP8U56+REMd7)MjEfo{uIXxw2#7+1PAsDCjzaKqbgSEjgLDWFM0j4dYvJA7Vm0JcxpeOorfNpL zBLfzikiV%C^w>&(Ycb`hRjVI8YN}SNle{Liq%jQgH{lbTRf{A~RN(`*G^9t&Nebf_ zm*&F*s$W?VITD-V_((0!S;LhGJGt3=TKfN$-IVa7#O2tglUmd_>U@on5p2;;Vh41q z>D-LZqPxikeMV1d1q8w9fC&ti17j09YPr}{d4f`oSq{E}lMdLxaokE=fv4I7IcNX` zE!5JYt#T++Ly0SA9yO)0jE!l^Bcx2iZYP(s7l9->X%Zgmq&D+jwjlJ-ahj0=XD07LoG z7j9RYcw12J714%zjqENhBpIdp#W%abBStN;i)u z)-hdGnt{6oEFmok>Q#a;-PP-nUG*QIO}PE%c%ZuJa{RI+o{e2mt9T?V)5Ew57D)|f zR#t+l>4!#wtUiPOPD57)btIF{W+Uq4iYQB0L1RCaDFA^U zq#+J9AIhgpuH@2FmXwuGQ^Srwyo4qFGgt{;;+&{%>Wjq#H?;!zjq1NTb{Pp1S4=W6 zk&E=yy`ouQYuS1h#c4 zgR=5Rg1Zv?V4NK;Pg%t3$fIm>&(a#Czga5r!Ns784)k@iGUf0PRN`{ttZ-+CngQE%1ssCjSjEMW7><`cIgPT>7N$6;jfo%F&{3&j%UQA;V~@JQ$D%4V80n`R_(?Y7RFe^e>|%N< z_O9`*d695l@wV~)DKtew%Hb#cZb>UhD5=b1)L8WywfR`}8H1G6>OIPRXx!*Y9t9|w zmCD2zeaI<^| zH=8j1%gWmCzqNJa&fpKs0r9Z9OtSN3l0k2@O_(QWOHU;{!#xBayNcDksvfGvTe?Mh* zHVZlm4+SAelkTB-z}->c={TZ2lxGt^gzlfB{r_7qt{!l|?ta}{3-9Wr8G0Q`^iF*P zUhnD%)2C!3$y9A=sHt3i-`>h4#fX!#SMN?Q0Whui0LjmjPtsnY`LZUA*U3Wh4Z&h)P zfcG1H{gL*q^sH8W!^h_gH%eR?r6;ACgRX9J*gQ?krgx2!KCYA`S4)GMauh^^JmT*f zog{Bep8LkrLCAV>dgr^wzSu>zOT!Qr)V(JfNE@FXvPo;CJ_uBkk^=nm&cJ)2B!&Z4hWp z88TSDu--OGFD&8N;LtK=5szxqTfsXBjnUE>J&*_<)yU!SO(NMK{?=soF+4kX^^Zkd zjx31Hzx&R{(u~wmxOnQT|6ENy#L&8r`d3g(6U=={ z!JBeXiqnP^CuN%SnfAhRCI8JJnw>s?|yzpfW)2G$Ra8dK$&8nM$c#!_@$>eePM)aIio>r|&n`GbA zNebCOx}&r5-21-jmzMB`Jd+WLE@BhvM%dG*`t%K9r4GV_GWnos!C~u(mf~~&lw=0J z^@Q|4p&D^zpS29*iM;n!u2!L1LRX_FDo$r~#|F@c#zlqmf%EDC^6aZSerhdzCv+#2 zmv6!!LpsryXGfy)PWVFQ9i{GsSHnEXS&JO2ydby>l?uYR5K2^5RFIcYj{EUkjR2EZ z?wxR6aFulqLpY*(L3q4Z!*}2-s^X-$(xFwaJg*o(N}#kRilQW_?^JNPj^|UXuu^fODy$^oQ4>W`ZGL312r-F8(q|j33(jxs=^92=d_Q ztVAAMoP~dagAve zVHeXGm#uN25fA(}{Ff^DBRf(ez3)#{)LPJ&l>A=@avg7H3$uX-C!Q*eYc@I32?{!4 z_4GHnm4mE~ezD5EUHZJyc09mAzw=*6abC7{`jYQcaaw?fh7N+SI%Gi_r$10R;|HEE z<9T@)+dXpcF1dHt+`B>U-z@(!_b8QJ`TWkgf7|`2+`pl2Ilts!chDnq+&=ejG5hbs zd)8mvMfXb&-`j_`sK317?594z3+>0hcz;|uIT^m8+t0eA`~3Tlx)ZFRJIp*udpY0# z{DS+XE_iuLyK*1KFa3C!-~8C8@bSengMVf`z_@Ponso#F^yJ=*yPwBRKa08BmE74= zu$znAOC{wXT*(pamoZX;;Fg@-AB2Vnp*Qy-U0SsEratKQGj|Xb)7`|K8@d;&dyH3g zzp_5Zy~VQ+zPt7z{WSmMwffvhZZo}@AIWoDwq7@tu0J@Pac|vP;;x!kodsG26R0#mz(o-S^v{I-L=Z$4~Pc<0nLYFJBSDUvahNP9zcT?#Kmd zbkh#M<>QSNN*Al})4L^KYsRQs)~2fy)AG_RRv{z0x^PzaAa4bGhi(P?hx@u;2B*4K zTQus2E8A`{GT8VzFq{a%gBxJF*P`1$eF<*T;gO4vrGKBQw2XHy9+%x6pFVAj;|GlY zuP&G9eoZczk1ih+mWn~{t@&Xfb4zzc@C3#)b0&))a7FmwJvWo^SROCom+E+Qw~BwZ zH~lm>kO3xrySpPF4Nq>2FTGyB&05pg_n!4cg6cykH}Huh1+1E^zs4s;!4XtkBZRK{8U$WTf^9ZcH+lNcrkO!N_T<+J+037zF775_~Q>f zcQ+o`?1sAw(~aENKz8`!FWlX6@cx(lv#*RtaOc|7+*H@`)`pRRq|cw4sch?MoNkP3 zzX|tERe&RbQ*0;h&6$ zoLW)q6+cSmV?V;rAzS`+V$aWE^}!jt&# zJ02%uyTixZeiz;yZs^CyHeNOxkB;04#dXtWbnIedF>t?C9=Te<^wix7tc7XMoY-o| zMzKGJsiQmcL3Y~XS2x-(pFZ_FJfBxv^kpmG*m&6=MbXCuyE+Dsi*@qm8Ouk17m@Gl z1YUCTO%et3cl12`@M^<@P(i+U@`%He%6!Y~4ND!dn+ciia6rdq)Ex1lsAs|9&= zK=vh@5ArV=nICoqmK{aP^Z>Ql?(WN8b?=-ZupJi+2++N z-d*^q$p?yH-dLV*8#v}wB|Y)R#D~sso&T6p@~XmPOL)MktcN!|YTH@Y4?SZP58bv|s zRL-49>I}-^aSp}ab#+W%VS%?gbr27QD}pA>YKLEY`Pw(g@U+jRonk-k0H?a?a#qIO`<2QJoq zb?U2AJ^K9+vKVR0`$0QX$4{;4xfUW01UU-Yu_Fy!Pu*8_`dNOD<-437n#`s<=NYIwOmX)I~Aed zRg!mG7peM)A6vkulIDO zxA$T1o37sOP~t?lLV}V#{Z}WxWNU^`bnjg2>+b7*)4@~UcfH?To1YxG@uq{DsB?FF zhf2$d2>-icW4y2w)qe`CY#l1-e@p1=tR}^}m{l$}#<>@080r3No9Q=g?tf_{!s**n zUC|Z(_r*{ls{c=@dypNo`o7r9g}V8gSZ(2UBWm!w9ogm&`=xf`gJNkv#|+UQzKBFvgSALUE=ZR_Rk>bSfAVyimcNg3sif>v5QSsilY zLw6EV$6HsUTM4c72%<>Hj%eqJ`12!`OXiWM=m8Mr<3Yt8JEGG*`?UcS$i%FdKN!Chgg4 zAD+O81ZQfB>(qptX~m}XoNnYv4z)$>4e!P`tzbc zBbrhg3luaGkZOAJT>la8~^ed+Y%hwOK^9}ZpB z{|!jrIMJP+?4SHFbXq-~v9wv*{g_uu%? myA@}p>j$+M)s58>HPm>#uK(JPlRw`0Zj!o%JAQ>f75)zbL7Zgpd36bMs(gfL(Xvn36s z#I%$@W|TCyl^R> z{jBGG*?@Lt&YVuJtgzqrUGG}!eV*t0tY@uvy=y%yW0n3gR;_ww$x)Y!fA@9v&x=>- zlbmgJ(UTp2pHLUg**1D*d04nUdWHXu=S$9WB%JY%OHQWpt$_<;%g2XFMtSoWi-z z9skq^rE=$9t_vf&LV|xjbXoqB7RDAh zr@W;{&bc2Q4StZ$ZD)1IbAC$M-7{U2WAoiJ-Sb}X&c@~y>;6~VJg*I@h0k)(CTsJ^Wt;t%fM3lSBuh;l+t(nSd)Z%hLfP; zEnWHKSLd1!8U7hR?0vcNbw5nLVy!{&(AnhKWO6Jy_VRpJ^6tXj1@I@1<6UV4dXXH9 zkG2lA4h{V*@U~w9$KIDSe(3P`IZIRL^JCP0-LK>Czgupf*ClDo{c>HL$GiUwpKCw2 z<+HnfK0mD;AM%71i2S|ifwtwepsDFN@66-SlfZKB9i<)zPGWzVo0&hJKk)t{{?BFn zKxnzp^GqbPdFJlI*<{%~EeyXS7m{Pqcyes>3^o&cLyE2>=UvJB_ZO~*hOigGLo;0y zW#iAel75i!9Qc<{luzn^T>le)Jpae@92JO5hw;Vube!`1@tl{|Pwh%6pZMrp=PxMD zO8n#bug+QdTz|zgCY6_8N+XYV_SLzscs^H;3_V|^sb8e4d{Wep^Xs@VnT&sR4*40^ zi;Sc(e&|TH* zmxViRX4(Aanc{Q9@z79c2%W&*`}o`aF=@if^U*l?2M-0BJq_^i|L7MV{o=s82i`yM z?nfUUcz^S|2j12H`v>0t=tHg#ynE)uGrC#~?jBd9R2r98Whk|uUX;Hx(&xqL&Zc)Z zyObY&xcS{pD*a`ba?`t;-mx5;-cflU@?6Ee`>4?aP4FrT-xsCgAC5M;CRi^DJ8?Fdx`G|3i#iSP@aK7(#n+kl9iQMT z{-DmG1M=dZbKP;M>&`DWD-YMA)Wg?ZIX&6@j?3>f>7x(7IwxG6TvC0cfqOLP!278_ zp0fF!Gxnr+-F;W)BSnw67p0E!Golunp*+n8_dyjs|LPoi0EcLcrFLA3W8{FIBSoZV z`k>TKvR*zXLFBsW{f+O+{x7TlkEQ+)LUG-J8nMg^IB;@vG&>0y z2ku%Hus0%Z9GB#j)MNuyuKu}}9GzZR878Go@80ga-8a**9RK+f&4&}CXOmcT zy`Ks7&=56yL~j&6{_`h7L)ZZDCr)pz7mCj%$Chir{E4h4!{4;fB##EenRHW>=_uTx zhja833=LP($qFciVm;hE%HO%&o9ZPW*Up~#a*=LXT9?aYAs#9LXCF0#R9=o!fQcJD~<7hS>eId)e4KH}&d#z%+aHZDW%`}gCc zL&pLghCe(&x1-3}0Y`zT-}I(YlGgG~Z^A7tqUv}roRC{_DuLgRenGr)ihjkI_HY+V z;k7GpX4>IPR(GJl$x~?`F?yiLVGms{EY^Z|9llsBvxUZ~xJE9>z+~ZCOHV>7f%>I8 zx=+tScyD?WX>o@(#3YgGZST3=7kqW5!^gklN>|dt%kwX*&xifT>cy?c%9gy|#5%aLrCp9+G>W`VD&!^iqeBlo8Ff%8u4M@w z?{C6~aYU@gg_DZUy)O^$VHx~dK+QsilBAQUhdvvg8;pr1;$S(Jedzlu|=acy^9YL#Hvk-|`hLo1y&@pO-5)91^Fc>Q}) zAePjR7Cn9~HY$x`U%%nxbkB%U?Qw!+9OsgbdWzB=WM|SrD#)0l$? zgL9AZ}?Q6JCtzsPY;B~s^ws=BLjw@GJNT*n& zr)%Ti)fHr_e@S5xet!&SVylqvCt zG@K+QSCb4m;55ZOm&4?xR4&&0b+v1=B=uA`{r|c}{EN?x=u3ic0cN^Rs%@yg>WAFV zj-LJg@S5YFzy8K6JARy1n^l|fX*&Gm-z)^0Pj+BE2tNLs-f8bPiqK)NCaXPweqR@% z9L+>a;L*Y&zn(Uj9>Aee_Kb9o!YAoWOZTYJ<5Pt!)NWHh zo!-KM!&V&KMj{@Ua5pOMeI7mBJ;Y7RO>)X(5^{1#OV4shvwBZP19iUrH~h;qzC-<8 z|Eg?zN6iiJueqV)<-E@>o&C%BACF=?2=pH)8)O_O-Sj-sW%x523@)C2lB##4n}8&4 z8_$azI9`+nz71(oa_s`xyKD0D#M7kHktdiQ=&IY%!jq8fqe2gKiZYXnqu)_(960(N zZ)mr1>v8Q#$VtTUw6yjhKk|AxxbNzS5a?FCWb{J!>1Ft1|LuLg{6AO$YJYwrKh-aNVSLC&3xjTK$)_2r zvG?e*Xjc1W6k_KL$@b2X?shP8{esa&d~b_l(+!YM^|W^@##szX8g*Kr^16M@Z>x;c z%B^FMONky}57PRAcKluG>EE(CP+fXzKN|O!=rPJ1h0+3}dIWC7lfzBgOc^7(GN~B% zw~>}7Pu-K$ZoArGQlW2vEM16dD8XK8UKG-?{>*Czuhm4 z_urVh6T3U75WAc2!t|Y*8~qA3Xu!v64PxW}8x8p7{{{cSyZNbsTh&*iar%Mu4sC2X zrDsvw&~WIx-LtQyrgU`x+ps#&zvWcRNOxlYY~>3cjW2+(*M3=yaj@yl(QbGp4OsGTfttki>F(lA z=+9WSD=@VUjyJve0=(-kDHgSWeDsp~CTsilK-uJvPIi=>-#oK0+J)$9b6+X zbVhASs%ItoR(5Ww%b`+LV_f>%J~oNYQbB3r?7%*IMA8mbY;JOiNud|Kh>%FzLpZxe+$<$R=t)vBHP3J<)$~4 zPvvZWXDK~SHhKzj_bDUacs8ZF@Hf%Zza?W;IFtD^Hj{#Hh83`U?G}&?8%6P+C{)kwG1|A{inN8Tb3_)PC);S@HzM0|vcs-z%xz!2 z(Su#$Ox)_s=!Kg=bMxW*_ra&23eE>38LP5_$SOG|$pzsAZRyZG)qUN~SVa!|TeyyV z6D_)jezc9KRyl4Q{*q~DVt;af{~mp(bNJ7n=-X4dle`XpAwPX%`UY12LHtAa=F~UD z0$lnO{HOk8`2XQveyZBNF;LEqpy7YJr=%^}(jjT~imRM$+$)>6dl{?jn_@H$TCoV| zwzoaCm-_Ccuj>&|Ff2GzT|gh~J}umVcRSij+FI))D!sSF=BHs<;7dJ4m6Yn~XmdU6 zH#e(?l%@ySNTZNY_qwo;PgjzhmW$fM)Bf}H3`?KJ*V?Q(IELSz?9dSBXgoGXqcYIb zz1fX)rMg9>sJ-2j*bmZ{5`6Zxz-?}kFD>xj6)?)6eWWwdg5?K&EU)Fnq7Fu!q?DVI zOWKSda=y^^f@;CVl3ZCT?0@VqV|wKL{_xR}n#(nM-^+PB66!74y{&H#A@B0~Ilm1E z-5aE@cVqX+?h)pT5c==*-}%G6Sc3XbInj8`%`F6-;=S!{1L_lH19*pFdH$>9vUYU?RXEtwW zC^<&X!EnOWy!JNUo3IAz{R#_dz}}lJiIy)qs-69x{88|bkN?q;qi1E;KR$Z)ANMTB zUmB1oyl0^?Rdeg@kJrR@4;%WuCAn|+--)H#zFdj_NO#HJ;=R_sCdc5tY@ROzpx=|t z91_~9NHD(~jqi3u1htp#{6279CHkzHS+!>7{0op%G z@Jlm}8zRs;D=Y1yQd%K5s4?~&omjCJ*)quUP+H>R8KZvaG*4jQ$qcaq>2@= ze(mmhr1QYLiTdKs;rcg9K3Dk)-&=yeuqS-KHfLMp#WemqUi|#6w?D4Ar9NRoDBoBU z`}B3`#SX)N$B!#_UV2fzKQ}^v9xdYEkdzi)Qe8If<=gONEl*8jFjY!j4-L_8^xI72 zgJh6GPqs`{g{X*ppzz#rN4 zmiUqxTL=yLTDY8^>Z0~G+LC$A-KX}iFE4hIa=1$liTV;JHF|=@dvDecR|$VfSwZ;w zc02bo3%}X(n>~S5fmQ!p_s?}RUB^4dcSl}a6U)=60Cha?GT#A?cg%G8X(nqYYc*zY zV_F&lKaGj$tCU^bAo)1D49zjk5CeZ&xQ+|1BJGGng!@IF6U%HR@VPyy;3#ML%`}OsJ}O>CylSQz7A#D6R=2i(WUht3XKx#CMm7e z4reCEx{|!FFiKD&Iw*N1J;UmaJc$4JTE3*)ym=cPrL{AgXMIF;lR4CrwTz$}{-jyB z9trjBIoZLCysxEaL!q8Zn~GjU0&p*mU7at%4p0}=Rvvg?7FqrOM9Z2jyq72le^7@< z^nk!PfR8O-1!)6z4<9{?jo0YU<;aVX7x~ibry+gKjVX-|8UFc+fy+xgLcBkgG*}&Bc5_{nlCic}mXjUJ@i#j$wm=VsI}6v%W)B_fN;0;Y zy8($J*$3%qRV(u_{LLaTR|fsI5YD9ZvUzMaR-XP)<<92AY5bF8q|OQknnOd3&VL;} zymcZyP|YuI-^<%iNdstu0s&hfdL^^s?s&`i+VQoH2H}s*Uy489f1h0Sq}B}n^D53W z{x#!Y=^M=5y>{by;ms}U)oIqxx6Sl&0?pWrjtk>!(S)v~;g20h?#0!~3L#&u(2%T}Q@vhU|3SP&T!THD zj}{pI@lh=A&@uAZTUk%`O8k9Fkhj@!>&4M0p@v-wb~yAOM$ezae{6xdl{}k}v&~xj zh3nwYIkr0zijQ__oefV!Cu}U8w|~}Jd>uVj`>~Sa+3Nf0t-rWh?Y=m7|B{<%?bcX; z^kTR^TD2o&Jx}WYa{T*mB!2xM{&}C}eHOdhlsK+$0N~FokTm{@U+3Q)xWzX^@Xx#a z_Q&v7EOd$+!a8HtAa_8Nxr5x5mO3=s_ws&2D@R>qWoR1z(JNU&v(0|}N2kaK`s&^2 z2_@AJ>;Ef_`Uk>)Z%MU7N$3|>Q~wQro)OLr4Keo#>zc0rODXZ?T{ds{&vcc|qq_q| zlu3Ayo$4&*U^Lhq>p7|AJ1kw z4N(8rQRvrxMuK>2?QX4js%>feztsN6Qn9;@sYdU+599xg1L-?ZB0mwo_w##v17Iw` zz6+&)l_urmf9ccRBXAPko~$To;9ZAzOur8h8geav$m(QATa#+9z4OwmWzOlJ!{6*~ zhw8J+R_(^RJRFCwtp@Uu!;}|;sgIdht`kVEiuFZ3An@jtDeC_9(-=I+Uk!^J7tL7{2 z=lA0G8tyi@?*R>qDJ&&l3&{@^7e6-qlNCR&NLJ)+puf*N(T)qDp_wjPC|dqxOK#D4 z_N5@B0q8Ea3;Q~@@b&m3acj?ttK${%?Qo>_{~`9DegQVmQV1(qfn>!>{AtfeuT0ja z`+v(Rp*M{+9$WBHzz&61#U(|xE9zrBNKdO;yoa^_;EV;IKT)~U(3-5JS7=z<+X&dD z@wZe~rw#wFqX!AIUc**p@;2Bm`|r2>^npfuWD6vXj=jYVH|rDi{}{NYXDK|B@r>X9 zpT0AF=jW>9gah|2fVr#x!khTk#qR;Fy0bK$Y=iQHKQo3XyJT;2d$KB~-g#D#H&fnD ztTmer7gwjpcudbhJ$UHPd?0?DmiL&(g4|X6;2`v@#oPEn`t^bh#PuIJLdRGt9^Kkp0v(4Im)=7pl>!S2? zC(8WR+^_%iMe&pz8y7U@s-T zxa$AbRd4&_KhN+^&vU5Bafj;9?`?AUZ@M4VbyGrbbhjSFpL>2f@{yl%sx?Od{EH={ zVvPYHb=H=#Vu;@CKj!$c3)hGB|FQ4%{Oh8X`tCYei=6uQ`1teIXIO)x(L#@dbr+_4$ua6SR6j`1wIX^@ zJ=v8zCu>1}SD?M^4^?rszOu49A_qxAJ!NMR+FC1GtFi)F%A=tA&-gv`fZyC*P^G5F zRo4ljd(U5;zLB3W`_J{%oko4_59wYyZB$=|eEbJ))Lf?Q1X8bxZm&@bkQHn`Oxxa- zM1q6ie7&=oeWNur3HM}UkNx+5YMu4}h+~|lCv#YcGm6c>utx{BN4GaV`5^uY-AhOZ zL_xiH-;1W?3mLODw7p1dY#~01oYVLl3QH-8gwRT?Li1s;ONY5I8n}|4ArF66NXAF~ z_jpE;cYPM{Mu~-cZ^^=S z8%->%a<-{HzWvFk-u3FDKK^_;q3r~xrj3*+T%`eV(5)8&RfF#RpPm)- zmhCGJJWD&A4ivYc3B_(C(yTc$@7oh-?n>HtWZM2WA6`ibwrlBphzqgRNrx9;8&G@emyu(tO zd&AfQHgY9BO&jA?R-4e$`}d)2y3{y!7ShS+g|>w13$-B8GThQy^(~F2IQ%vLi}8O( zX!1TAxH^4nP8#6X{LsC|RP`-=>l^<3tz`Dk{Z2&j0ub}QCn$!S5ktVV764wHZ;}V$*qqN2@F>}NDohmgocjM8s}`|*ptnw zsX#MlP{4m()K*#y9b>f&x*g869OG*l?Fk;T_r9zkvArd<@ARN(Etk@BG%!~_yq&&O z@KDM5=EJ7XgBuy;hqgpZToyR$B&N4QjsC{#hg(7ws{^Z*N8!1Q=O+Hw?qTMDg8$Tw ze7yns-}(ygP2QQhvwLJsYz6+uc{2om3wl3HP08wCI!ifgV!K|a?09{=KJ>Kp|BV}J z#zYzQzHC0wY<0orw)B?tmT;{vPp)4Q3Bh;Y9we3(w76Y4(p{lCTvhnAS^|}xsGl#N zE4MdDlU~j?lYmmGm(#j^ShhkE5dV@yJvPtYL;CjgmLN-7bDm0W%ej)0EWN*0?hG`8 z8}G7}J88wasxEpMJx7$LZ;$a7&KzIM{JQ4D)O?5hs=_L3t#h_z>AN=afJcJ9a;qIM zO)%PsrQhKnoivuvvn$7toz@J2aHcQ2BSAF(sW$jG&W9y|sMFO%i@yF<6mH)Yyy!{= ze}!kjjq$rF+3+Hdi{=7pXe)pEG!PxAGsL#B%2gR0zH|%f&S9Qa%vqR zD`&d&Xkc|t-UjFv{o>}7`Y)~GrnTaC<)Q7rE2oWFD!r^6mAhT3s!pLRRZq1gT3Ra- z`=eDnn|IL4oz$r#f$7rWs+%o?;q=ptl8XW8+!Y|6ZQV9BrLlYz^)p*h%yU_N+rwc2@NpP3F|Kb0| ztN$AHadUh6Z}qDeFee*Oc#rY_uM0l@lX`#9*I&&UUUzqC{XZpS3-vssMbF*7PgFT- zDhexzR|?sp!lzHwhoHBDo{7?kYVMPxaQmtH!tHaC1u6AgMIJairGKTDj9TGIX^D0B z#Va{2eWK;5PP9I;|5QC#_?B36pGyBcJ@hN>9fkJ!T2bNCxnA84t0(ebrw1D*?bHk> z(Y=IX<79tHNK_nyDNWxAsPSTV+T)(d(Rvs%~ z9gO(x{}0draI<;*HMeSH%l)~3e7X6$;N!3NN96(ke8XS*gwBJ-J|Qhmpabk=`+Q`$ zhR0S9&%%m=r}rskp=>&c>r7!E*I}?N+#cH)+o*erYptJCyRVYG(%c#6E)UP+Ty{>s zH(Pi%y5CxrZfQQro-X}M^kB((1Dihq{xwCEo>#Ow=Tb0M{!P#WO-SZu3-pRwqZ;Z7 z#*NcsckbS!)AZzRFsUG&eU`&%1JaX>stTSq2}=(o2h%7?PI8NEYrsFPWzm6DZ_Y|7C1Sm1XmAqjYe%Rs2B{#!n;C8)B-Ai zzr4Tky<$+K{Md3=lZ8L{rhNlEcxL!FdU>qRuoQpMSAm>O2ZSH=R<*V$M(5o1Qh+p? zAqk@~1wwI1zlBvgbAdR~t}ng5_DDjy8bU7MjP_KVk{#uVI<^oq7oIII*nab+eO0IS z%gWUM=jpNU(vrIRXWu+M&~!@J-+ZZH`)oPV*;n5xjc~eYwo)b^g3Fuba9 zBOG(bml4vE)PyfGlq4nJ0w)=VfvyO;8yPGgl>P4k{YCs~1nRy<1ioB~zj`(5bMs7xTzEDNt-?7Hb0~v&L4~Y(d0|y-W4^4r z@N%flMJxyLl8nNj<9{w3+vsy$D1>Pdh9o(-LVG05dV1;zfpRi$fy&Sq7@$Cf&eGFiiorDkm|qqt}3iAs5lZ}c5IU;4M|0^nbm!t zzPSjRr1{E+kB zndZd#`17?eCiLg-p8hTVqUcYcTi_zT%7ua~cY*X%xQj={h(;atU*IrA2ha*+0B;4d z2gD#1QXmI+tu(stI0W;iCu19%k%iJ@LtK!Qq(znFRKBWxE!dn>`_ZgNi=G1PlBnC) zVw8&eN~8q$1ZNec19&zqfaL&^P-}yFdVU!Y_ZDvFLBu@aJo>trZG=$=W}C!}9QN zl2*sUPznwXQ-_ISgpTN|beuR;6r(h=qMOvvFMgEQbi&<3E9&7lR{k&h#jz`ulIJ4( zT9l_!=^d9!rP3&ip6+Z!+Mya%Q1z(M;}EVdtcOeZgl1`gD20!hw81!oL;m6DU-na< zbuFGi6e+-`%8&B`zp6lBW7W}3A^Cce>}ktYn~n7dJX*t@!y*K z$(4)?58_Y1f!g1$xlL{q)x$p~j+!>o+KAG6u0RIN^&g(C94wECniyOtwvjlsP2>^9 zVa~`2X9XJLcN!#F>8>O}UQat5*1Fq*6kI?PB7DZPGU;exN&{?`trpQC=dUf zJ(IQgZvgxG#gQGp_1L;TaChP4FHc-Ldr5Oa`|nWyEfl(MzxWKqdx&5E2UWvk;imGY za$z0Le=;Tx#DfByKqoO!sWkdWQw&$>L;0XM5x>eg=yZT{O7m0sB@-(N=vR6oEqh!t zQyM+N$yB*ir&_QGj~YF$wnLd}g3$`qvysPz7@U|cxL?Vm$<-F)o^z`|rsteXT9OXh zgLDZdRjXMs^oBUqvqtILiu(V9p69^7`S9bP^WJBxKKZi4+d!Yj_CEgH@c-qBgC|%c z)OTwz)w+m3egYo<9N!Pl_m@}yg|nXN(1jN97>f)NM0-;?y^yAjUpT6ylkUo;a`#Eu zRQ`p|i6gH&ibvf+gD6=+{EIXFBgODwz0HcrI1 zlY)3M?mTXN-o+d8@};7qlcP8_DLC0E#d@JVsC2qZdexJr^2YLf)&Fmq_4nIv5FVvhNgId%k@wCa!~3OGC@w_ zQF(m%nKZ8ztyhgP*-P3;Uo|a%0^SUsP?z+`pS|*l*YM*cS!qmrw^&p$C1ULBH~waK+60pKY67$jpYLyrk$@4p}z$GjAuT7 zYt0+<0r308`+Ry9fad$k7f_A9|4rSPx`E~Q?=fP)m=SaPm?6{mql`5EqCH=|4G@9~ z;V;g7WY>!(k19J0zbAC_6&$7FM0s_NGzKf1kcjGZQ~3D}jY?;HSqbkcg^N-AdwPaq z;Z-GgPxYno$kBtwJ9!vN;3QczMc!NFXHe&$m*%)p5^(iM97>)l0gXp;9>?X#P?8Y; zDh({^8~Qe_Cwe|M^?=0Z#r0tGW6$=PTxB`GoGx>+8P0?|b;qd$FN=P5NFq za0C4D`$pcZ-71M7-I^`}OQ_LVc>{XjZ~>k7B8q>qK{4EicJEB-@;4ICQE}t~Plu-C z5g92~T#IkRSe(jws7&ROyeP|ZC>PqHRQi9^=rO7s!f>ZxbiWr7@8V;y(&t+#+rZGf1O(_zj^8vtck5T4)*hj(7lXjggvFHbe@-Aey!AKF*G^9R(egE zk-u@u{SFlA3VQWFUDOc1RytjDt+b)MW`mbQ+<=_->vW}2NZVcb7k82z(zMuX%I}_w z9HbW}+s5#tMvqU|U?p@K#ZESkCp6YLL;qb0aq40v1FKWsuXnd*LxZI4q~~;9d6eUt z&?fzqhyJv#SqU393y{YDIqE-a5StIjPV635KW|Y3oZmOi>fb$bRDNG9KKHVMdIU!` zJIL^-FX+(s@P{M!RG~3lD$39VX!WRfn&GZotj?yD-cmG1z#JScwa%y?mfzJBp&g!v z+r=E79(eU1jj$MLfNTZjK5Fzp7wDV*niNcrT?{r7szDC^#e;ZqR>E0KS67e^oS_R! z;c`gozN~%ux>|>JO&3j-@@4ZiTmQELfBbvC@zc*=XN{)|ujuNnHOHBY$NL>t9zQYi z|1g3NApCw2E`6GJc}jDGRQKKYWM}_{IEd8}k0i<6QR|9Gb|D6ayQ`g@l}q2xCKZ&Xv==28X^h%9Z!%(BtroG>9&v6q;rE z^o!ke+AVp|T8m>tU0y$oPwwaaQ;oZ4e3`_IYvh6aOy2IkVyJ-%)PLE3Zyt`1zv}F# zuYdYF_(xt*ScZS)amIF7yRsC2Y=J*kkUy7qnb~7Y_kYrpJY<~ymh)VnVkmcDX{h|~&RUd@go4hh+Fs4E`VTTBj?Uil?c-Fd|5S)|Kw5nsZ5 z3%UTu92a>LpW@b`N4%X8XB;D$B~mL|B2AY^>B;TN=-(g=w)A8lTx$P+NUeQCsDuBG zA4gtfeLr(#nRSjoZ}$FR9timJjnDQ7(l^7!(IPZJYlGQI%(MSc3^vn6{Tmu04kL${ zM~&`zd~6ZD3gW=yL-Epwfem1$uw|X_UngvxMl7`qvMk65?$@bqP-no}l_$>821!)d zBkM6%HJ0 zRNg>ocqRVA4WA$Qa{+&P0qh2HR#VZzAL~EnR-hK1^zrYwApGSO#zqV0Qf}SX68s}M zM}ob9BY~WvT{#N!UU(#!K2B)m-x0-J4DC|7BSBpUCcOK-I^&-^yK;I17el=Pm84X; zrR3mD_gsm+fk;lTOI5u^cic0)@|3Dq@M~$A`Qs{ELiBcy4<4cmb7^>dV z8xZe7aR*P5qsa;Gkpi+c$(WQ(V#-6vnQ+o1)vg>TFO{Kk6fOpHH}t3HmCFB5#&<0| zTjqtW&u(o#+;k{-=wt^o-wAj#e0yi*&g1${WHFPq*WBL0n!Wxy;mA)vY5JtemGnKm z1*rf3TIRS~89(gM%$uy7tekPhK9+z-ub?H3jnPU%#a14)<3xQ&MSH>xx{Izgovfjh?K4s1oPU2-T8~ zD2Hm}#JEC+aB2L$CRw=qN^4ReC*UJ1P+B;e$z@{w>)<|jI?Mh>crxf`+qUjP5Q z8EgIU@poK!;$wy1$R}XsPSz9lmf%~At2aV#XpgvbtoalN1$#qifoXu#AIU(u91TX(BS24fujqz4)7jP1a-)8iIB^=GU&$lzYsdXk z&V8ieMfgi%zKoC_u{&J7vN~qcAD28AdK?AFW&ejQy~GY`7?(_2>^%zieTRHU;KdUTz!>Y$4`s4}yHjB1Blsbxya-Yww%jnyh`D>NtQYhXp zg){pHVM~D&O~>qvr)|yb(eoZPdWF-WdB-R82-kg@sXAQDY#09t;_0#lX>RW zWzq`EJB+1A2PVqQNAX|x%L@B+@b{j#7`G4klDp|0+TH!d8AIv({@FKGj>=o|6n05p z9+pw4yPaAss+B!22i_*k91I>}btNk(@!ZKeO!l{)|6nF&DSBUKKl8;fuYH>R-J>mb z`IVp2-`&~2UU~ec%1M{I@`=moTD;2+;L-%<{{A2ttbZlY= z{A&*@+r`R1+P-~mUn_Tycy=UnyWQA+SDU@GI=X%M+_j(IKmN_-EGZQ#*z3zt!(Kby zJ)ZI4bKbpu((V5&{0mQRp206oXowm!bnLFY48%w8YPZMHD~Zt&?E;LqgskVqzk7np zRdD5dXLim$M(pp!{yywz;-0!F4gZ?mU%shwTvUg`hP5LdSU8{dRe@{R1ca>(*Djd|JP*LfdSjFW&NFIv8-a*RKtgeTzJ%cwE` z)Q%FN;nQbSSnTN@xBu4= z@|@p2TRF9Dw(fNIQ*Cay9X(sV#^e(lem$O%iT2{rSk|`bZByF@<>A;p*_VlqgjDaT z{e$fOpup9`%Nf|B^;+8s>Q&N~!Ak88=wxfWB2NP4I|`lrO%{|nynmf$2a(F2qP%+6 z=^pk!Jl;`!uH<~6*^OOm^_rWJ6Cm`KycaHRw0&JUpUAWCWbK4n zDxUjn=4_qg)bR|bF?lQxui7WS}(8=%e!H3Nt#ai1=YS6#hsPg zG(-PbpqYIi*xRKsHS3M!X*Q>Px#8dcC;t}L>@Rk8V7)9pR9jnK%f{0N>tNX#_K5RF z&mHFr&Aj4)raUgEx(lnq&eIv5^=~fjeq*Vj@Kj4Agoi`zX(5{M+4t~r_SJ_o8H*k| zhX2cj>*H(pwV(s=&VEUFSeQSNE3bUJ0(jAor%*@3V8lGEj4h0>y(zEq1h{`e{_ydC ze@$K|@Ov$f_s1FA=-X3sc`j9WFD9)w|K{4&N`B4F-vfTMKFP*^tk#fb!~AQ`O@jQ z@LG1YMhJPsu8U>`@xIoRJuKfZlCC6%jE7sC|9AQRc7DI*^LfXQ$DOb5nyWGC|C(6V zj~+zp9(R%B0y)yhf8=A`+j&w}R^d;&Xrt!n-)KL3;RET3XJo0A534(vx<$M+ds)5qkd) zR)BmD&#$z6$zS8|RsLoE_0rj<6h1zqabl9cHm|PwvLk=41EL(?DbcvR0&CZ%j<$=c zHQ<0(4E)$S{^ftRU7nZly>@Alf4ISC9{zqOYsVJwse#-1HdYXY`Fb>yr{u4pXpEy0UbvwViN)-%5#66#7$l;Oz+ zUvlhlGg-S%o=qM94Z=T=#=iuAyy6Hc!hhvXd{4qZ@}&OMMez!U7n{5y`RZ~SfY+|2 z{LggZbe@;WtY4RZphO4yTtl>)&Smr+ok2 zzrRi#xb@yBN&5`$}eFcW;qgDD8Ghx7Y5|f3XgNEv+&Oy8u~<|$)JXJ2%<8JOv+i_#MbXX5>PvKEi&?B;@Z zh5jNu?%;DNB+o>6PQv4pd@xktizQK?y8+}w+IK3PiDyW@GSCK8?hMOwlKd>m%K>f4 z`f|UV^&7K-cuSnD4Ibk8tM&DwZx7zo@C=0KAUycs9U-FDKt9$~>+#p5l}6?G&>CM` zQzXAp@)-gZNqpc`IsYfl^98%w+3IEWf92b(`l|N7R9}#JE%XJa?l_+|t6H@tdsohD znbjMZJMk^~>X;4ZZg@8H6OFd_szt{~$ZMIo8{}nyAioClnsNFqH$t~dzFP2oAu8%? ziYj-~lUbdkb$HUku)dUeUnArJFPxdT0X}*It`t{JY~$)IzS`jDCM@rctyPU-Nh#-9 z`6$s^4*4bGs;PW+)@zxo6+7hZ4?`jki+tR`i(H9jWxapn9J>=VcMq#%vE@5O2jIw_nNhT(cR?rE)6N4#>7zaPtb`jC5`s8@)U zf5QAHjccW@82^px_xY<`?Wp;!@@*hr7%B1poOb;X2eytDs&%F{=q}i~;%uF*)|o10 zfjktr)#`ehR-kIFulUv4^i%R`Fre94l(D>=ybV3s-;!_XzqXuHtaR6ES1X;T?31s6 zx$@k_a#-=|p0eH1ZPY?r1uMWE|375ix4d^bpN=ojzdS#`Fn9ka3!KUOn`U=w4)B+1 zS2X^mwQAm~-MI*BaP_OTytZ~x=WZq9tXspYwVkZ=w3UkZ0MKeyQnTWbm6%^wPL1aF z|Mlf8mZep6;$4zpb*NUvSE+S+lGTt#jg{!=G^#~Olk){7u6{Vv)qcg+JcjOJJ%4h4 zYjUd_KgPQS{*Pba?N9t`tqv<0-I_dBXA!jah&6d`y{28W$}#4xUS)kB>+e|UW$Uu+ z`kN_-vTVJamCiM*MD6KXAL`B>Rie)*wX2xsPYZpg|2cbxjx{;^AG*g{Kh}A%#&62` z`7XS-J`s((HGSgWTce~^3p&@zl0mngY*6bBRJy<7Zt=)!w3ujcbZEVfQs_;bHBaA6 zIo_Htm6m>rtsLY@P~{(uI<0=tYAE6wH3w1LJO0O?o9UYSfHjX=(XznXu2#AHs^)U& z%T4zSr2z%G_gJOEnO3L3spg|HL*MSQ=Eu%0 z?SG{l)(7!Cf;|PfI(kGE^w?cdp&7H#LrUG(?{pDg6|sMs_y79PG5P?^R(59#`WSIW~m!xE+zBxEngFJF~6a58nxEL zDDj?V&(f2bFKy3b&hSzS9j%%PKTx#Q!#_jwo@ct6w5ri&yyt43d+uk|+UeNMZP(29 z!Y_rs@Ml()o0BZQ-F#ckra}gqy`|Z;{<(XCB%z~8$j$C`vO*@J_?s%nO7ox7u;htw zZInR+Ge0%QmidMH<>|~03;XzM-lyjLx*4Bu{B+IR%<^T9FEhXkzYN{0(Y#)#CtA

9}n`h>ZEnH9Oi_pCK1k7u5a~ieliwi~k=55F; z%G*#~lvkvG7hmn-Ev8zrq_G_RTev3V6;+q^mwr>_^p{qbszfjJZ?STDs>N}SIQvag zE7~{I6uEE5-_3X;v@|foAFx$rNYj%rfG{DW>53Ud#bzrdIM zZ>}7_JZ3zMuRWNpnF5P5B9_tNW?eYMMGch`LZe0Um{YFW+$d_DB?{>!TwPn4W*IyC!1-3L=|=XD&79gVHi z{QA16eb=(@SN63=zwWDseKB!Y_Jz-V0E4Qy;{;_x8tK;7-IY0Qp^sR=} z`b5pu$jDFrEkD6q`AGK*o$DeEbyM4J?&q6^`>vt!^rt!ll?}~Ro+B>JTTP9yS)QW6jMSG)0FB!S-*JxqC_P@T}-CD0bP{TvVCimpK9{KbZ zx8JpPx1Q5F% zH+kmI%%5lsv&U5NUUq7mC}UJG8qe9nt_Mft`<(LTPpr#gk|iaLS&;@W?2LrMf%e_|PU!bBjrO&DnXmQSvpS3G zeD#kLRTsYeGm#Bg0lG&@HkOcy+ymC$Tv6gVn-eB z&2+I(6k~Lx$=ybogBl%VUkI&1`%dG}25!vhyW^!#-yXSkRqvaLf4O$>yLcy_2u+mb z7WD=vN_J_7;a$N3H)?TF=L1E<^5$E;MPpha&GKYiD3G&lb)avj#uuvQ!x7E>B=3>X zL<#dNBbqy{8Itm&tsX(?kwlx}SNU_(+A&VQSJ!>;o1bQU$NH}HR=t0E z(vmN$-{@DnU)R6=^J$i(cDX6V&oRxO8Bb*VV8@RqUVMDCAl^DO`yYF+#S*LkSH=@H zMg3Z*)UV(EQhsX`2BbTjO>r!p+Va<=ncC8?)LLz)GRRLklt-yGJU=rd`{3Fvw}&<( zx{=UhC0o~KsCN|BUKje+%ukLkXil%L)R$0D58|&%L(fO)S?i-R+^k^AI;fIg(^X{m z{LhkO#pgotiQQkF|LXil`v2&4 zQ0wL9SUfCd@t)GX&~vTp`CqNSR&)8{$JY+t+~3grUY$nAT1L7bZ+ZNs+dVg13if|d zr@gB6-S~^`vwbfGU!9V-{rM9K zc}Du(;r6x}*;~F1z1Q5ncW(<;%&l#YHXrWa^F?!e+rIj@UyP~c)86J^4jj)fuiiGb zCr}q?ZmnnvH&iC7-irq6>NK{UBOlQX;mKO=YLr?js!P{}wd+76vRmH@etYwJQ|j9X z8DnBp%LRFAE3C?QzV0+%!Hqc)!wBG9WNM40(g?)&-usVrbA6YC*LrvJe$2lM(sI46 zKM=!Pyn;)!UhAVXzVknKd^`H>X!RQhzqdtH*3uGuWbI9em~s!{=o6NUrilkCFxs$&VMfg_ISj2mp6*3ojuX3<1zp_!1c;orN&yK!=)=Tf5_S>1A=WfXV+0d~U qdSB>mbN^5EOvav%vQBGCYoIi1r1aX`@_^Oyc+1Sr-@X3dUi^Ow1W=a% literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_skill2.5551 b/wolf3d/base/iphone/button_skill2.5551 new file mode 100644 index 0000000000000000000000000000000000000000..62c1b6d34480e7e2e4b01decd7d32cf20845bb1b GIT binary patch literal 43750 zcmd75e@sEMBM6bMs+aH$xFBI#8w zF(cz2)t;EqGDcfVsI?8B^R@Tm@S%;vmofc#Z8F!Z#Aqc3M?=t>1_`;*6Eac8G&Ab= z{aR~peyE+9dv7NndBWLyKR?#9)_Sk!$KLyS)=rzFzqC1XemLW(%c;MII{SyItLc-h zRW;2=TK_hora5a>|CQO{-k1GX_+Ngu;4DYNiQqUhr>EV!GO6^|i~K6zmDaPZ7w>)P zX{{Hb6y%#hq2R37;3@rA`c!@<<=N-t;{X3XKdl%0Ov-8Qkt7VEoE%*qWN*FLdiI3n znY7r+EBEZmbBAU9cp}hIppAD;a&ismB(w+u>oGa&RT2rAO{CFbJQYa~s>)hn0 zJt&u*2c<6d=?V@0`Otc?w}0c?Y3ekxcGVm{lAI1Vk{drb`tE-&9O;<~Mycj-)-Gu8 zywQI3)cDRDJI8|%oShn1to=WdM*5AZIL>a6b1F7Wvy>S*y_8cAX-wx47e+(5o-%$+ zHgPwD*FdUJmQdnQ2c9#$n$niEG@TO0x+bg+)1cx#U-8wiKi~M4=6;H=;;Z6*fM1iwbu#ev=jhL+E*@{>RTh`((w(k+=T-Eie*N0sf$WM(Dr!KY#mgzx_W!a0?hp z8!}56!V-coZ3iQyzWM8t_vgMISU`aPXTSOEH`_nl{_*w?Kl^0+$1i@k{X_kKy#3?P zKH+-%hbKNcp{uE2XKb|~9Eib-z!fX1_(v9X*#gC*Hr^fjSaSP9IJ}n37po*P;{W*4kgjkE` zHYp`Bdce-nBHD9%P;S#~P|h@nURQj){6qEsv)X?=8jn7+!_fcLo4=y(pFIXR^28E! zHRSkX0lO7q8U^SB28#xZGzR<_+X5@l2*M{*Jc}>*;2%89Dgs_<3qO-2v;ya!*6cae zHr|^&)Yrk$%9}2r5nNks)S{9`U1=PtOUI{;pOCMBU*i~lk-+q3Je!7G0=rfZ*fFUd zz-+){OiD^hYw80H!#juW9J!#4h0=_9| zUO@ja(*n-iN{qgFr(_fxDSf^4b%#J?lyvzUN1k}6CGDac`V7^9p6_(@b$rzx`FYU)ga1DbtUL3n@ORW1 z1H$vi?Z7P{>;vxn_K&51ntS)nJ8#}%9#FcibX(d_9e-qiZ{x`N0pmd2ulS{NGHvB6 zeu=bmik%A{bYY%&jBTtWw~>^r^g089#7j*u$5F zsaEiz;Y*L@eW6P#snH8Ma9!AF8E8lpXkSWEIx`F5z2cW>ixkEX*TiJU*2JAdk)Pja z4e`%V-ye+ppl#@v?EQ{fvWJ&^LskH(Ikd2KfJ&vA;z3Z`S68e#!gKY@53w|z87Va;tu;%F6Y!x zB~Gy}wWnHcQE*$Ll%tG-k2x^wNI6?Dwe_2=3|x8P2k=}NzM4joT?w`O?56Y!sn{sv|RSOT~wWC3e- zVHI-~N?(s}!)9z2c<0SK>Ir^D-+)bo_=8Vi3%&lgio(`4o%xbnWuHmRw`f!W8~!^p08@Iwp6hpT3U1Lm#!)J*oYx?XTJ4_-4E& z^h*`iWxTd;2SFC_eg-ySaiy=990Y$XAZ>{8;Zgie7V%)5>bM=r5;j7K8^@6tmtBbd z5{^xdgw8m(+{E@tF4CaUC%ssTeq9S{|0=OnHgL!3qZufuB=Y;&)5i~d2_4gm^9ZId znl*2gM3P$9hMVP_lzeEzG%3BhW+;KAlcZS**OzixZ14*mSwdgpg`Ld*YaYX&_Pl0S z>FfJ;%}-Wc3&Vm72Ts1y^TolAUHf*>`Uln}N)jblh4lf#pSJ&Oa()v0p)uY5x9)U~ zuwn0=)N(Zf3G1M(!a00lC8hx|18bKzum-mSBvj5s-_HIpkJ5=Xt)MNHBZukiz3o`N z*}dhG{7)A@Ay?=^<2LQn>=p?OTS;^WeFRb>UB9FcWeji+5O*toM2m*`wD!D&EUV*4 zb9T+6{r~Rwf3X*o=N}$AU40Y$t8eOfdEtejlk*RMv3H-w{{a7@Go^Dk#JBC+!JLn_ zKR-GDFnt7lLWn=em?S%yd1A}R=Y24^1ola;j=r4)G;zmeMsDyl8vG)+BTY`OEr7jU zQyma)&&f|~a&qxo(3I`Wn7`dCA9J}8zIdZ$}_Q>6?o1NFHE@KZ1E)Sij zH<*7o$ZPii-S=}QJ8vF1>3u|eTZq4N@J3tb%6ZwHs~lJHtnte^q@Qynx3=}|+zLjL zpueloFjr(&$fKok9D1){ez#QctE99L-_6P8nQlV4g6G)R4%GyXtP z*Z&v!an6iGS%GuihcuE2RIz5AsdcF32Ud9q;H|d!%`0`*-}ob?9X0&EdPr`(p~p`#Bay?pELIRH()RPCNeOoqw45 z9{6|NUT{G+aWKBE^mX0;MWH>Zx{fE-q+306$|EDI7RSo7{VHuvd3JZj3oY;$TEQEj zEvdOC&=-I#If&cZwjggHlajZ#(2AMY^edO=^&>iS+gF*6?h5K7|5l@&-$pK4+#S(( zs_4-WFl+eF@Z(&X4Oy@9m-w0H5KE>lf+7-!(%R9+FOLaj6Q+#ZCWGVYb%zqjN{jCn{;ht@w4e;fHbZx7!c{?lS%U$4-OB~0d|MsAPX?!3A1 z+QMrGPMW2hAN~`4|L~tW?~YB5O&;ibrH8p=JX#uoHo6?uD066i>%|O<39%24Ytn~T z_9>Thdc4gv(bm@{wA;86{<@mn>3J3uPM6DX>D&3n&Si}+P?{XljoFdL7joZ8Y;MF> zJd|fc6Mobx_|^FxbfFNIq883WeqLzljyv^l;s$IN4Wz0uL}R@g99fI zoP=R6E;RUZO;Bks9EGy30Z&N&ds$*m$hpAgNF|}V-5sA)Z_n9-r7d{qnwqZ zM$;3T@_uW7M0I}yKhD(@MdJ|;6ccEEnjh7wzK8qW6~BZc{4is~f;?7jJ)q#d|1=fJ zq$bNNa9sZJDN?YWyaC98u}out5gL z$>ey1A8G^zQCE%IY4O6y&s5GhvUD4ZbT);!QNse-OiOC-NCMBT(h73Bme3ZtJii^W zkCr~QD(b}6UqGjAsVx&*I@jwx-Aw#-r%#`rBjiVJj@+cze;ohlgYo;_8tbcW3hT?$ z`2YSv&SaI{G0epOPNJY?qOrAQL0;ON8|@+f;~!9O#oGQW#N7K51iK1b139MU6wgQ} zEP}J0mo%%`_;&lmz@oG{;F~tb#})8*&4)dBYun;j+MMi-)KD}|&KEU93i)Z3rlb!j z2kpa3OI!IZ1*&Z_(PblzQ@CoHNG$ZA%JUJwcEr79!;|Va&Wy)^n}9Q2QKq1U-T+={Rd1*j zTq;H8z8#{8B+JHw8O#=)Ne1#AC}`I{UCbf`X1S0I?Zv1t6^!~QGey%ed7 zry2`dax3HNMdI1ZD#Mv*dG=`BXNh(31$pN(xm%e038>t)7>BO_hDj9Icm78s){Iql_-MwxndY9J$M(4^yhJfc~ww(+(S5~i0fH%%rA3FAn|ql9?AJKZQE=}|M)!GHlwkyKpYU1Yq4hrQ z*EHYzlCoa%;X|ycLo-0y*w#%2l9-uXYuhyb-v2lELWetotW^&mvi3Ec9b`ljnH%4B zF2+Bg&kuVhr(T|oCYiT`7dGA6(o_j|S*zM7;Qi2gO7K4INNejw@89Y*{xDim)0%Xf zLx8t1qy5v4X`SJ@r+|E``Uc&jm?TJKc7bhBx7xBxnyU4&0IUsv;|vbLyic)cg7Wza zSPb?+z1u%b)#kVL)b1FV2>6Q+dn&GUQD?^Qp~TL61ERIyg$MDmdC4Lff_XA1wiiCQ>Wu#|p#X8WhVy`k>l z)ID%)pYR?bBho&>6&4WA^%*e|nSR&6NRhSbh`qOtrALqUUzs??lZKI1vVX~@ac)z7 zo%MQ~hOPgH9%BSO4RjoR;-JHkRG%mKRna&-%1r9aO{6{PRC;acsZ>8ums1?hF1*z2 z-{8%vjZc2JA{$a!L%`ZTy?KE&L%XGocuV#?#N^kJ=2C&4=QA5r39u}XoYJmZeL>x1 zqNh^59`X8z+k(3MI!D~&QtC&jlb$4h)2-T`O5rapGZQb3&~HBzeI~l#!qDl8eeVd( z->uJ{lRf7jYW|_-M*HE`fpzh1^OFm8S4bOQc$w$Ghg)y7hk34UAY^Z3?g*Xw)W|hx zONu&V8dA%ijem#5v|a?CQ}<5YV-#mL7tRsSp0Zf zL7mySYC|jG_zyki0RD&N3>FofrOxb)M_Ng__a(E5qwls)6pdfqFj(YIu4YpgR!E|8 zS^CylUmMnSb%Rr9hJ<}_FT*>#B-t#oP)$mrBN4XVVZ4L3yNp)RD z1L*9y>VCZc_x8_D6?EinZsXfot1=>2H-I_4DjFt7^yt8%s~eho?|sRRr9J7)5Y>~< zz&}}xq|#d@(wVd^-v6_=X5-rfi?TO@dh11~9(|WxGvE(?{a3)hxBt|=_K6yQBC0$y zsgG&?hF&Kskw^c+ZCP2`oJ3}CKRa!XwAM8DUpaM;k;D5L=p0)A@FDeLrATurQb3=q zvNk)@nNT-e#Ips`op=3$q1rTZ6;x5T$tLT=O2AmCo6JtrIfFyaD8~$vK4PnWp@Jpw z-zU2HJ9`@k7Wph1{MGCCJ*#K8;7=&f{=Dd%sP+v0!yL}j{#V-nVs0>Y|N6~Wg+JHP zqY5+f~v4HDs+~REDE?)W>$lfb5MR)OykN z*goO-Z{5V`I}4$h<6|wsBrT{LvHqVi$43nxL7>X4qiFm|__HGVQY1$s_e|=eagF(= zL)EfLsOY~*_iG9x$%xc6(^EM9 z%=JUw1%zAqpNx)z8x2jgN490|3aeusxk<%@MBRxQVm9Q1oSdLqV z(p462Cd#m&pyi7q&$euA0eSByX#KJYzhi7Fd!c3K_`l%7!ppjcx6wU0nY>>=Ss%Rj z;rTz$f%G0Im6Pgy@aY5I0q_jK-wRFuD$gYN>+Z4d(&=@5;NQG@q71H{(Er=`?|T%R zdnZmMG8v(L-0UczU!~1F8UL-Dnjb+({l8{RNLo;3txOv7`5#u}_y3W%ur_+;Ki~d^ zzn)jlZ2!wDHK#OPV*^_anbcICC*#lk1oO>_Q_-Wevw2xO5y-D=DdTQW?N*f3Cb0+c zs;3D%Tgn0n)C8ZU{dw$VEd;Sy5|8DXOr&BGMcYfVMJw&$N&{xY>+@}wEAJpBiv-bgY zQ#m{*Zwq~`z$HCDaQr9AJ}py^Rd?yJ_Rshqd8=q#JAuz0eU}k>deo1lH~02m`7`am z?$H*SjHOfyJ&iOXsp$o}bpJT>{+}`W-j{z>`+uZ&8HV|J>|M^wZqp$b>qp^vyR9TPeLVM_KqViGvnXUI<;TgbRYX7M%v)g~Nm_C;0 zsPr<}vt}TFcKpYy0`^=q4*KQUsmk2dJn@KU*B4t~E-pV^4XXSa&uZ-;Mori;v1+HQ zQ?wtU+_RdV-s}LYV9b{tT1jyea3v0zHBOZMzLMTUPXJeolB_^I4i=%Y2aC(E>s9+N zne&c4|FQOev-5W6-NpBL-`i`be)?dA;lJWxv#uLbx}&@OIR2!C`6!ojpLHWSsVc1z zu<>6~C~SKC{*UK>?Gx=2wDTja^pHM>^5=QXnV1Vcx&JSip?$}{Vflp6PgUw!2YRbz zw)`mm^aTZHxf28b_K9zr{|!ZsJ<|S1W4#*3^slxCWzME&AWv%l*&7FoqDMn}j?HN( z&Jg+@mMqsOE(+iT+6t?Mi4c|D8hypoy53U4otmRBsn)XIvXoLjEz`Z7@~OpRF}fRZ zj+{H^6zqQwpJqF~vI6SCqO3<~X)0@~%*f7AAMEX)zF%v-t_=(0vHPG(OYc=%Cqy5- zdTr!pPRjd#u7~f|>uqmTY14U|AL#9{@Mjj-d9C^~w8gJN^J?$^3(hjrn>gjq$2tmV zA4lJE;+?T@k@6?mAQ2Wr$-=sGA7v}%oclq;amxMb3f0{Ti z3;WF9)N9zQM+X~=NmVN7xwq1!Gsjg@$+9Jrtb3xiS3SF-uF`~j>-Q%rH9k3KW+i4n zvVg5^DzW7?s)X-1|J1{)STJ=xqs(g+t6N~YrSv5S$YuewYu^qYSsR0QRs zRX;NRA8GBs!Z@Q@X>ZXuPkY)Y3eKLoS2XVTgxvr8{olCV|4mcxH0p0iZ#}ZI7wSOA zISB9e9=-nq|BMJVV$VDQPGn-+?Gua#yv?${D!?pXn2K|u-y`0ISs(@0p!Sbcicy~+ zyAaMQi&llGQAyQG!<8>+p3tK_Z?t#`Y{@K1R)XF1R=&}avNKsrV~^e*J!4N;r4POT zU)M7~`K;dk4xQ|h1&ql8!j>O>P(N99dtKi;t^c*PfvgYI3c>lw#abWeeSqg36Z&1( zhE8gg=-$Ei2M=0HlSJdi&8r#hH@=;{k-L1JYBxwpA@U{O4pz47XXinWXsxnU;|2l ze;dtO#*3R&;~Q<@pRb-RzeOoZH!keAS^6C-HruZicWxhz&8sPwFRBWS*lTl8j!~nx zwx=;#HZOagG^}9we{pc1a0UP2n>o4z4Bz$TKDc^!`0l#C`N>D{Kg^vW_dUrDSd;?%YkS32(sbphqP4-IiBq(EtvS*duQxxDp33I3YP};sXM;tcRG!UsM*$Xd zXg#QB=v^~8$~Bknsbn?AX)RZi%c^ zh=@i?Z()&Kty*stnpW$nyz$?onvkQXmbR19Ty3m)yjYf@&{LNClBLm#m4os+mNl0t zr)cP^R!?^o-?aJ#y-&9o%c~q_F{-t;sVsMOdE}CFY3qOX6@Wj_?}l#=-(Eb~tv7w# z(T(v`PZpqigFkiNUZ^<&^FZzqxgQ)4EFfvm{<<`W?7U6;|3!g6zn5jo{+i3;()u@r zg-azxZSG4=hM4C%mzi5OTJfY3`y)+d&62xYeRLQW{#|r+Pc8pw!tmEwy{v9JWUb

t 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 Bjc)(| literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_skill3.5551 b/wolf3d/base/iphone/button_skill3.5551 new file mode 100644 index 0000000000000000000000000000000000000000..97d999f6feb76b3d072ea8f171bdcf8cb7d8c035 GIT binary patch literal 43750 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 I{Xbs*f9XwnW&i*H literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_skill4.5551 b/wolf3d/base/iphone/button_skill4.5551 new file mode 100644 index 0000000000000000000000000000000000000000..79ffd0bfb9e4bfd7b53a8a8893a9f8999ba2f362 GIT binary patch literal 43750 zcmd6Q4NP1|wkEA8G6-1)A@tnOLY^iu`-q;<@v>k^$$XLj1aa_gjqDQS@c8*8znaT zedpZU-C*p@yz%HkiN5#NtvYqi`A*fXTes?zB?^C*sHk5@9B~=?Tfo_W4qb&$;XQ2q3r(K{_B?|&78!} z-JO>!O>O4Y<7GofhBj{V*wbf;`de85(YHjgY?eg6Oc@wA|G@DT5narqd6hK<+-~

(pNskh>cpM5Xj}{6W&*Ki)KQ zb!z|k{wX6EXIG~XEB{OG@&0%yj%VXc8HzRU$(@LlnoFshG{R}Xh0s8%6~>Rq2JRww zHKa0SF(o#2pefC(khY+u@EtQ&H6dk)1`)66oFhMcRe4zPx4aX4zxb#bM)v)Co(5)a z^B8>J@{ZtdN*3nMlt;OJ-ml2_pES2AYeZV7Nmt?w+08OcsmP7Mh}V?Qs=_>b53UI^j;mgQ}rB_Z%@w|$`S&?h-# zITL?rIPmF#PY1L5-x5l1Tizo6&Ozr0{`>Ji_~Z2-uk(n&xNztX#fRgN=f|&%v}S6d z;vD?)tHv)#O)36({fDoVKCgdZ86(KcUs7Wp4yJ%U}HX)sJ6&`Prrmw!^O-CPqNY zz@O;9y3caMa^ugz|IkD@&{izh4t%<5k6{4@{$GCaXLUL zC*>1apVjEz3zsh-J<>4GCWLRB#+xGX52L?4{s$f%n2iXJzIn9jI}P7F!o5d}EWp5@ zgFj zkrEP9543Y?k=j#xKx)yfkxw*8y>7aYc@FLWqWX`zzvt_JVeMZIf1>~OkCEZkpYlTC z)t_J)umQ^rZ3EDvNc&H$h=vh93-JuT$Or$4hggNdE9=7hkc72B`Dbm`l&BjY&9(Lh zd6fL33(_#Ir8Jg;oI)M_Ta%mNuQ6ZJli$_bOAb8tLIYmE=qc(`09HmX;J(XBwKQ|YgMJ-^g>O#^Y7j*fB zBF}iG1?^HdY%@>>^*kHw4Sw5X`&~r){~O>Iwt!*u02uIGkHkNs{g-D!qy?x=AbkY> zl!1H;N74=m2jG6whssIV$~S#TY57D%9S>3x=0+SS@b}9v7>}IbA2Dh@yvvrtc&<<~ zwGLCWxI+#^pGdpH_#sDvJ^7Llss-l+U$$7<7OJF>ntGuQR2TBJG&BSXtY5f;`|Mc& z?@b?4TfD<(h-zXk*bta)wf%0~Z{i#o!)k zLth`Vbr9OHE|HfO#k`^w=4I}c!w+Rr?#LyiMoTENe@Ho0BE}k0h*nJLO?~hlTL!Zh zux3$*(4=V8z@OGd+8=#+VJ>(Hw8#C{N)vxK@&5$Duz;`sg~6}@qa|S72ljd;Z3FSY z_9J@%L(kwJ6#Q9lcL&5OiG-lQt4)w^Gi(xg&_0oBGdLqQ{6!pMRcgH}sX;-pV+uu? z5-N2*6E6jzn^sdljK{yB1;#S<%HqeY#mc2}Y}z*^xfJMCt_?}38Ic^?K~E93L*1!% zs1@p%N7bKdlQI)`#)+=*JKK6G@OP!7J0kJV`B?Ek@VObj{sZf>2G>|%A~4|^Gp{Yf zM4xqjG5+iWvi>Xns&Vp39?<$A2!})(wU=Cp{iF8I1$%*?+y(!{Qtd%yQv4*(hqJ^v zpfZ`bqBRLz3Xq<}NLw){=}hhD6O-ClIs8y+)51+|5hL6auSiA35BO=|W1gEK z@Ui00`fkQGAH8vO;A7YZ@yBzZ|Iw@H|K*IaRbUzue}SuDwoLi74JIyzeKJ+B zcRvF)F{?6%BoJAUhH@*?Ov!5r#9pqMmnB|eIviPo+5xWi3ok5*nq4XUkWX-?dJ+DG zbCp2&7ujgtDy<>4p&`+T$P`(7s6Xa4a`3*?5g@Q1@zBxk{g-bbeCP?l5#vo#~-v zr2miO2YdyD^CkQ!XTl+@KvVTn8ptHL!I~*kFRoN8D*Y_AW#|+4ptV_%PPM|m0d&{7`||d&{saA;f-~_)$lHl_!RQl&;@`{Lr}%4~ zmvMp54}41eNyo&04rOinu)C_jCMEG}gM|LLgbY3x$QSuDtzb9NhPCpVfo%biWePJ+ zrO{fqP3);Z8ST{U0^j!j^SB~}SkMzscwF=gx9Pg$uEElo={`Cyx8QfHi4 z{fE0*mgvs3f*RjCS6lXLKJ=1WM|QLpiB|Cahwp!RJM(rD{}9Fo{(8OYJ=(z1d**ln z#{|rKq+{YQwik4Vv~Qxoqc?kQe{Z8m3=2?BFExrL8YRAwSHK@vOetxgCqJ*LFWNPp zC6rK7h_z^3huad>TI9bSv&8PS{5PUUv!VaSS(M5^9)!|!_^I)YW!F^o$C=z0SpQOf z$g5&YZh^1xFV-hg&^|;CP1OjgkU|mFvhW0#IF-7$5n2Gx!oO(e5;TdHPc$d|`sB)> zs^!=CObI%QcklOZYuzT-A^cwEW4@3KVo zuU%O5H~#=}agbQ`f?t({HFGXV*%}&QJG@H?aE3Ts=`YeU2V-z#yUN_EKVHoR(;Hd; z2eX=HX0CERLtT$q{L~q>`W9P5BPsKjIavp#BqBiS42|UHBKX%3zjf-&!UE5Kj-T}U z7Mm-&#g-20DDA3YM(Y=_M ze(1>5Jlm_q{7hHTlFnkJ^sHZLDgH0wr=dPJUNjr^Ms!;?do66yS)a9~Au4-W<6-N1 zCS{uUB{fop5Lc~$LZfI2^_|aq^6VE)krxJPD}BGo?^rhS(LU;XVa3zCG=5>hZMQ^~ zyJvQ_6%A%Z;=k&>RYr^7yl>5E1`~hu=MDTYYJ0rq z^r{^Q@0soYY`{@JQ+3hDCqU5AcULv&zs+*lOJfal2nv2dmr{h~g#F@Pui6IBkb@~y z4}9Y8J?BS$^{d$ufd0e`*Xw;4UQ+5MY=BkdWn zxH}uzZM1Yu%Mw%@DkaB9OznssM1$lcy;}IGukpk})5>o`nrI66Gf#`eQv&k88?|!C zk&w-Ev;OxNuG-OG7_-B@^LTH;ooEO4 z(GJ)q$QTjE2s)l5O}9PF+e0cQ{^UEox}koun5{AATrMndUZUs_+_R2PSF!(v+Kn(> z#Uo|wa8nW&YU%5cAj!q{bjV&))nYpm9kh*Qr}(smo%S_U_n`%a28`MPT8$038it*Z zH?hQph4}}He~gVSIR9p@@(I*X&)SJMh4_*TS_1h=aYseOBO-!2&@NCFl=8|?x-cU+1E>`t6 zA~*7PxQvpm(^V-xp1YAZAvrd_Eu*12$w?|D8GZXf#ol5A$Lu)<&?_asc-ru&mPdXQ z(x$8Y^%L&4jCN?t5*3JRnxW)udux2tRp0u(i`xJGLWYB|jq0HS-JrugCtx6K)dB>F5Olcm&R7hRJ(p-!U z^V=VtUR~xi)6#y4e$!0q@$8C?x=8~R-Ex>zk za&BsF^x^2kl6zbnrGI(xq3kJ~UKMqCdX0{!2}# z&Y-M^w13_%BLYSWC-M~SNI;dvnLtbhIipWpFYD~~nJ@GArR5e%f%Q0)Lk z_P6|v3D4lqw!G_9PapNLuu#`SL>L!zM7}A6OOCN=O12-ICr|vf{jcj`+dgFHGich! za;0^LMU#^xS6J&ROI?pX^8#^oJuJ6Bj_3#C{I}V&FhjUx-m5&OJWica?t+e`R5V{W zS0ulDwwDVZmB)0RueM)VQ>>XOzHVQ$;}+5&ytN9oHH80r!`ImQw+g0g{}IpvDE?!Q z#~!!gT%HN&9df+5{qfj$Npq7=>Ymm@n2!@EyVuHL^q7Pwhp{KVVHw^*G9C-@v_*?{F-+x3LDT9amP& zKcJOpy<1qYR<;%?1+{6FiZ&c$i?J;&*~~?Gv!+Vx%*yEK&NrBOk0e zq@|Y8?E(I%J+m#|M80A5B=b2zC8ZYRs(yY#yZ4WWY&N7)<<>__qv`yoYvWy ztFCB!SJTY=gR}T{O=*asC5rmL)aWP^8Ym4m2b%1KEpGo6fB$WwaCQFbJo|t#w)qFF z*9!~AYwdLjJN(I*L2mIY<))eZ^*L^UpwBr`t){K0q_UB!0aLGM=Y>P^Dj21jCr9#Tj<_h!6_W+h*tt9SsJ<9d` z1D2lT?y2fut8H|QEzg#4C*cnIa-W#^58?~XANN@Qm9@S8`+s|Ce>yd%ZGYQC^BG{` z@3!A^j5Yn~kF)^d&pzSkW3Pcf+IPz?f}F(cY)!0~XDy^WjZtBd`8P*IF z{cy=){MnaePcVL~jwjJxYEdSiaOvKe{27nKi%`~yUKjfm>^D%`eRpZIoNe9H$CX)( zGe?rN!~*NHGAsVfr9H)^REYnxxgzmrPl=q^4pX|Iqo=QFrtdCi{gkBDdGhSq*A)D3 zCfp3+e{=94`)~1E5t_aC{_QF8w?9Syey-$B$sM-$C3g~TYWv^3Z z{&;2x{^`(0dYPlT0~%TS{O9``+iBKZw*O)U=)1F)@|}zCXj~=w^Y}Zw#G5TJkLhI? z1;v}dGWesf$0x%41LDYD;n6X@jolu2Xz!P?O~@Se`t?h<*d? zz)?0~NK1=V{Mp{vFx#5eJO6_cBLFOcVoc17pe*g_R=JKihd3euUO zcktl$qM&1yH4x{D#(N_yz*=dv|0g(l#FFcBXYz^6#4`PVBCc=!exT+kW9@fTv(Fl1 zqb6v7XNh$H*6+9*$~YfIcPvm%(59f4VM`y}CdgYdL#VX4}79$)-Ld-~ZW; zD~=pxqy73J3uI-Fw#_daMpm)7*2 zKL72y9=2LZ&PTo*YZJ3cH;ljb|C-U?U>}}+j#XA|2hcNs1#IusaJ+Z$=$azplV@9H zr4=*1wX&qn#D6=+2uOP-|M&Sb`RQd9na|dLV$|E%7vQs+Z2+`bmhNT$pKYV#I-kO( z?qA&g(|V>+3R@atp{>sH{XbH|>f`HOr}!k-H-W4v^U1$l$tDkx_?OlZeeLGoEy`0Mq&1 zC<`_KE5LiFhqdO}{=aIKYoCj^xuV(rH_Z@7eHUD=WRr(T{6}_h-8K6QWiFHnNzn43 zp#YJZ{9e%`lQ+a z_oki@|23zFZz%q(lL*T`|7Uy{8wO5zZdUgYIbhh6OCt~zDdThS?Kd)qyhe-T+?zqk#Lk-G;mHW`n`KCQ+0niIf z+W2$$vu&f4I*PD-$zlA5p4^!}G{XZXetYVq-2{9a*u&T#z7@C^pOFNE*&+Iw&8q5XS(2f)2+h0^{{ z1BV$;UG8%2Kapy{xP5mn+s%!{(AUsN?zCrmbU$s}k8cDgNjtr|E*E&@EB^F3;ke$@r#kG(ugjgz-(BB>S~KHQJ*HO=fVc4` zqJ7rS5t61EdMT+q_9FayJg_q#>c7;$jkG6Rv(}6^5$o2Xu2YIXpO+lFHNJd;LyjX; zNAnNZ2Y9w*+hHB`;mEVe18c9g{w>yS$Okz*>97FW9VMxd_Mamak^O&t|KoE*c`4q; z_KmI2@+EVevT267Xvt>(FHEKD)QkD$lU>Jr!ed)%4;)kQroAG40#L^H|GYg2n76a0 zv#=ZZc|e(VD|I7PVu`8 z%TG+>8-gpE9916U`!RW3T5|C=+u?Dnl;+4>xI}(M;B&Ry)s3E%%F&&ljl8;inUAB4p$^c_oNe{17Y2hQS%!BzVa{_X&!f>zh~m# z!%-r917<&fvqpqxUyske#lD63^P7zZ?QhjWbHE-JFkM9}sLg%kd%d151vw2mD1rGM zk#C_yk>hGSW4sw-iJHXQ3~0g9x_#ZAZci;NVA6%RlC>i{C@aqfvu3Wc=HuN)zD%^( zST5hYUC}|uV3xN3&z7t_kV<5UTKi+;m3Nkzx&<}|X{UWt&N1L+N=vI!p4sLE;>?l; zK#^CxuVJao#oJU{=J?NYR9?g{OHe-4-q-_l+jX=tHa<1Cz&501%lw}_JHOkb?}j%$ zeE$&(C>IMT!&gA|4~aRk@4+~qd?Vshf~^4N3D8O=(H1EB-g|lYqQTN9fyi_fu+7)6 z5vHu*E4~g|BUV5QU!zjD)bc#vzD0XG;gmmjHW1yFX$KAdgCgunD9X%@=jHV#*TUYW zccpsxywPwZTHmwGYaVGI&jvob8OyimZeN`TlHfSKi~n|5VP~d3S)a|RF|O!NS89Yt zTC7^bpO?NpO|e{j-(|E5k+E#^G{nSLWF|>n((A;r&w1kCiSK;Bf4cGi7IxE0*b9KA;G194TsiJk7~cxK z_ss9Vbq2n*`4cW3t5j}c<2#&oppD?E&F}WrdT{08d2N2`mW1SixPja0nmGvw`T&%s)A&oT*z#Pb^BP(3(hR*w*cvbgy%n-_K*>6O$+0k`mUEx+OKA zrMQ4}r?WPH$i|Wr(zN8ZG~BfYqJ!49jB=-0BI_Kb7y{*5v~I-yBFm&T=l=6 zsdQ!5`j9KSKYGZjx!TfdJ<4x;2I>=ZnIv4t#J6XVzqT~qZLvaI`IGKgTY)?W+5Tg_ z{%;ijTPL<_AHb;HQpfMDKDh>8hla0tAC^3p89@A2)H{3);mQz31WWGlt5C&U#hkVP zX1je6$fo8hFF4zhnp*>|pf};FM}Vp8Qq@O8>b<4 zB*)~FftrDqa>cfh=Ay)k)+9Z7m~^U!G;J!iAsVD+pc`mdG$WcO-ELn^ey6k38EbQg zp8uBL82IBIkVvy;hr{p<#`68|>-~4eEtJ}sUyUq z21r8^@<7$ZF)3*grwhV7lJ zG5!k+;2coQ4o2#Id3$u+Z&KbA*guTKAN=JLceMfFM}9rERfxek?;0tHG%dqbBlS83 zD0VqhU^h6E0O=`}hc+NKLJi@ni+Ul>w4VHnXd_u7j#Z4AbWJ!@av%M+#&dBOS{dI; zum)%ll0tiwns#ks&pW1$s4Zv>_|nRuN$594 zG$R<`iUD`s9nKE4{{ihQ>hu2{)_-ER`ZPxG@k}2w@W-k zdzd~F|4!gfI-&Xx8HhcRB;FG)@(P^Yo#0T;5QCP?nd<38f3-6ccnNBgZq31XXa=D} zd`WVE%+!H9V6D^Ng11(}@@k5T3J4gv$DFdZopd`3* zLo!#Fw)UP>pCLJPMr)XKK`YSB1n!&qnsn2WQap^KMxi5|kqXh565Q)EE1Yle`wcBX z@t1c1_dfSNj`0$Iv;Grpd>KUjUxWJ3bD}@mJbB9A#WTJwP62n077+hDTb|9tpSVCS zCs07kodWv=?vN2N;F0z~PKhCHfL1{rpk;HVpgmv=wZatCgIptxwtS?9v>Q7!E2#^l zXB#2`T7nf7Gbi$SYO2`gT--&=T3P(0uw4RoHC4(fq%Wpil%7FaMOZ;4^i#2sI-m@E z3PMwE>Wex6x*oM2TzgWG9vXt?RHLe0<`aF0*2|rp=>H4)A^hpHjdS`FF|rTrF%L`w z*Zy!-2iJSx{KTz~*PJeCt~kuVw*V7=&HyC-F?{zo{J&MesykielsE{cf(c@P4)`k; zNdy(dAk75$W@_>e$&goVLhjKj@HR(V`R84bSg4Znq`RgHd5V!>PJ--X%%g{lt4I%#Sea-l~SJ=%F(ebAH zhiE5!_hY}Gp|;D~ zjdp?ZXl>y=>O?g_{8cNIb;8gV&QbeSi@-S(=V(z>%c3!)E6-f-T<_!;K?z3tkLQ5k zuPr}Eb`ow%JAn3`f!H$CKdl#>c|QT)gT@|n?8h!MKzTp1{&%2;ce*N^6;5F7O4`^7 z2_ORkB_W@TA(u#le_D#-3VU#NKoZD{oE>5VJSR0Xl}VYg&;Wj6C$O^DpfjXF38GWv zLY=B&i?Gu8k=jnqP!p6_ay{XG4Tw<^wFUWwJ}RWPsPsJ7`lEKvb7%|Nq4iL^460SF zS)H^S#-W~-!`_yw|6J9lBRg!>7vs-&yfFTqGSA~1)G#BNhSB0vcmZ-&KbwNa)gYyLkl8h1jrA`@J}teI^5st z8L2V{+PV(0GQGdD_#sa~8Qil)R*qE?$SqocOe&orttmTXqrOb7;3#^8q^bqc4N|NJ z+8s!TyG)OIQsFFjCZYbnvP}Kw+z!s);QPN?0Dqqs!syqb_Ujzcjz#!W_v=yXQD&w} zNGatE2$pBwPa{uAh4F~{X|REfXbS{Y#uMdoq-GqoL3Bw;@9-Syot?$ZPm4l~q@gyM z6O<7cmr{ik(9BBXhde8HCa=mlVi6C{6-~%ODc5f_^?=k%bV5BrM&vQ|r`o)qwjMP` zbq{S*`>1J2nWxkG*SZ$<|1D_$W6;lw+0ncYZGepG5&6Y4|8@O`#ExxC#FD;{DBi7MBW7(C(xmN$`R){>kxe?a+IFAH1M4HX(^}E%vj38 zJ4vb;H}R(Ka9`rhyn?^0qj;t919{atLz04b>VYyCvQ$7i#z0flm4wrRs>B((H6^7T z;h(nPhP==NwakCyXI|J%xwAcaEF332sK{eEZY&SpCaygBVMs_useJw;(b}=xy*wE`UEIGm%{no(!(^%yk~9^QL3qp6~_-PUi6_T5hv)P z!hJp@PY2G4URdICXh7-_B!oUeffi5A84^3GLudl>FVV1*?Lkr|@pozM5BL9p8E1hI ze}?9Le7AcM{;9y8y+K;Q`f0u`@*N-&|FJY;Np5iFETbI=E=1?N8}S><5X1ZA-8e(K zq)f*1h&bjVo`R;xNF5;-QbTUV7?Ps(08QkAzDP@RAQ!Czsqnwj_))F|VM>Rfe4lqi zcF56DY|4#$&T_?BWM|zF*&(;+80o`WV{XwZbfDT5ZEn1uHYTAxtvyZW1frH2uLSVmIjsQk94 z;fnm?e=M!cbw6V)?S4j?vjpE+5GR4iC1GX-bBPTAX}wGNAssYFZEEa&c5X;#6#CK-W(-LxS5D~fqYIx)_-Ck zr2>ty3~)wEpd{cXWEpa0N-&1>nxfoIw5btIjWgB{%`Y_tXuHNJZ77Ff2S)v;MQ98x z0Br^7t~7qg7tvSyRV}C;OAOmca!uqYKV*PR(n_!vBuQPNekd7riWHIqS~qoV>Q`zV zYu;GeXhsRv6daM6P|x5G-19IFOfPVuwg7%1B+wrq@Moa^Hys(~C;`zQeLVU&=}9F1 zKnH;qpjH5$P>0tEhkB24jb*G8Yrqj!(oW8uM3z_KP?DVZ_lD%SS0-puZ%omi%v{uv zv=J`0AvouiSYDZ+4~r6dD~BJ!(_IF>lvDDImJh#Dw^g<@KCL0KqVAN`dhSa6`x3dQ za;e5tYU+dfQ+>;Q#IOb;u>Pa{H)bh?+yCF(z}G*S-w*t00n6aOGf(j6Di6i~k5`5f z5^oZH2H^i2v;T*Z3}nQ9oh;Ynn4FOp<3D38TP%e~q*9FtsyJVVI&fNBFOk5=o1t-_ znylrpt{75hs~$vN=7&ykXNB<-;!AN+yU(UAP+}fKvO#)CE9fy^&lsl?Q;!i^ON-E^ zAL_zHNKc*pXO(gH~TpBxjLv9z}2GPhu4qA0ScWrMS94UoW)1H8f>+LMVH@2>;? z>wv9Tgjlv{01}PTno$edaUZP$>I|_KdXSvfFa}#--Xz!Q6~>Rr7iASrDK#xuq$qQ% zywuyMXhvn$l$2Msf;_m3v}_ANNi9KYk)c=IXDo2wu>|zmGh9pYN4<5U|Bv-u^z8-o zS;qzc&bEgoSknRY<(qKg9R%1zVecqL0EoZ70Zz`*N-X~c7Vr+9D(G9d<6CS&%ub6> zD~Lz17Fgk>D0Cde48In{4A~2iuEmCH>!5Kzh%^54PCH*j4d?=sfE{Tp+qX&TV6Se;j@h6SVV;=l!_rwsDNUK_*b{NN0l$9Z9rv^lipid14q6ct{r5;ch6OvWUpbGqnw240X=Q-oR8F*EhR5ox6KJy?0uUCmR2(q*o;Lli*1~LJ~ zIOdmQ+&6Kn5J!DcZ?V<_TLEVA7TAJzT7g=C*bj7oT*8C$v;z2v3xaQQr#2f4D_8Cd zAc;$7PRKN~N3vb|V zj_62fAf@P%I$5mEFa{_k`W4Uy3gZ1LeCKa*MwyhZa18E<75U?u96cJG3dhR1DQAwz zX7ZI2{SBx|ijb7Nr+GjbI@1)?o!Xe5X{rFqTWS2{M3XD>x0GkxiTegpDE=y?$`RH8 zQ)q79k-LlPh3GswM|5PSbHVqVrlk!GX8k3*J#$TaIGB6SYmDxu9=;pip!rt+MJG&mX^D&Z3f<)n;IIU){doJ$oEPo+j6DJJknU|u6m}rRj=tP& z7P~3q+_+{O0^&mPn=WVy#$J~6mnAiG?8UyVFNe-vp)6$x^~(ljmQ4(3+iJT-SYd{y?h<*sK3J`oK>VGk?a#mYSDzJ0Qa^7s^o%ueF-=4C(b>$lrBp#;zMWWX3xH6;2-kg4lnMytCwov zYuVjz6?XRIu8zcCO8{L2p>Le&IrlN*{$AYQhdY``S%^_>nAhC>+kS|&G(B-R~O zlpCayebOR$0{54&119m$=Ka(nI~#IOGwx@|eT3<&o!

D8S$7`qaRK9ElLBYH`6NKMh8H*xG3h!V-4B0#RlQ6!Jb^X7Ax zg6p{Q7<)fp=Pzi$^yO~BPG7o<7c>A1p#0p`&5++fmZhnTJPQZLQF89wq4(hz6aJkw zH9etAtg$c8UhaGKSI}Wz&@-sR4>ReD?A$v+JZlT}Fn{DtOXLnXDnItUg3mhccy;6` zHIXy+0miqvzY%;J&(i*}s}(%rS)$aJJIjV}wV8KjlJWF9l@(FW}F8U-Ax$SO53&WUm*D0m=?9kR1DaeT{v6 zxTg#KIn%rC*w(SFqgy+QwLHd=E{`g&Av4Pqj(86~pnU^zZP-Vn%ssj_$t61@Ks&;< zqzcnXZ%lGsls#4qDHhQ&@`!F#R_c=hsZo-aieJ%%>O*)#Djt~v>usto1!Vt2%D?l# zC-QYezHzMD5#9sk0G|u8vjz9GfDgvTb*}iWI{P)~=qOft<}df)z&X7c>MuMS&*B`s zfirJLYtdQ%U{-0}c$2lVAG%;Fl}2(1Zym)$_9Jmvqfa06i|AaeDtD`dDx>_0%#@UO zW>FGKgM5-Vl%IR3bhw9XyESHihnw#fDZXNOA7cGq#l4>1<7i(H>-K}F4OrQQuRqX> zJQuwW^WYyq@lWx%;8j6AuXb0-9v$Mxjb69u1C1X2OwO@86FqX*lRJ22-yaaKNB-ON zyVNvOyv-{<*Kt?&`XH?dcR#!$(A%r{*f%5~or}IeTx-#hxM|ph2C-tp?z9B{!UHe% zM=-px69wTZ#Y4Ii#k{_Vom}Q0xT3qO#Q#0y=a){7agTgA^4;(aoZT6QzjN+%Al~gi zFP}Spg+9&UX%_Mg+v#JGK1@VT!++U?J5j!g;lTF3R)B6}CTOuMZq@Q1_wN$4fB9Ck+^6$Kc> z@@BZLZtLsyZOGe!`NQ6{H=^H&F3E7gA7p=YVj9Oi+Or4ZMzhPri@r&>3}21h7%89^ z6jyYukN)3Xzoz^#JLvPfY;J^p9^mPF^r80-HE`gQ_Qw@-^y`f@7%`xKwIO&hRr$ql zn|RxsaJiusdT0&A(O)$sm^wqR*&VQ1dSj+tsQf*B0r=dYR~6KP=++{7=CD@Mqo%cz zeif~i^lChq#dHnu=;yDW1%>V^`Zf-rX3Rfu+v|G9n~p>eX0bf_w`9p~d)5?Oi`-?- z%44lXeRr8Uk}gJ)Y>w-JIMVN5o9ZE={Tt}{P*=B?!QU;vYM022NA+-9K39jCt@Mc2 z4v&`bSX3XDU+tY*fEW3AzD-@7Z!Ln$DtLx#nxXf)(z^CEdbXqd4fUq{5XgZ z481$^{g2+gNuhY#)EWASA*~MhiKkawNA;wOzKiJhmb($~K7EPPKMF@tv}Ed?Z*}xd zRo6pL-+0H5pxY10d1vZO(~R3bS&Vf$QSkkG6MkRe^ZiEF@Xo}4{r&f;-zQC%+*>#8 z6)!Gs`~5>3{|~*owmk&?@N*WHpEk|<#=1XbE8a#AwZ+@$qM_Y9NF^<>$NE zc$4FL|Jw1U_^qyJ>VY0vDZjmoez6?ar_K!7s5^Srtjq6TOPeBPTF=xO`s}1HgP3@; z3+Y z>q(d{ePO{~(E8A)c8%vG?4Q1WIm?GWd*JcyzflJJb`nF2AQ`l{ZqKCKRz@J{6c?F+OkZ#&DmQ8L->sV(O%U_bL zDZ1g~Y5*S1Y=`MLtfz14485`pX0gq3MYHBQuKRCOetI@i{0Fnf(&$|b{_NmYhW6ie zO7W+pv~Aj4xMbQC{Z6R;^WI{*^mp5LH^%0++q=3>72r9==Reo{Z0}6G(}tP+<>K$d zd#_`zV~#PCbDYuD126Cicj(cn$7A2pVr_-*Px>W-PX+O~(T(*Mu4wu;qGwCiOWtoS zV$DuWp02WQp{JkP`~Wl`V`B}Zx7|0Qxdv%4i#~eTE3#IyeW!<>ksYkr^jlf$>49e; zc!%4_)C_6kN2TZ=f-rzN}X<4vV?#FRdj`q#2mSxom8piK^GGyQ85 zlg0lD-v8+Lggc#c_1_=Al87}hBj1(JbpVkvb|<8fL+mbNopg~FeUG%K>6e|D z_#t2tgjW!bj>gzZ(x71m_(zy>@(H73wgYkWB2w$yj+BXMiFo=C;Q3FwuSAt3i%%o? z*KtLgbO*58L;(I&CgBal1>e6VY4ie;ny>QH^8>wpaK#V4^WRy0vanmcJm9G~1n&;? z?8ns}d|J|XfGIUslXA5+eN5EgTvnIE55W{Xb%?hP-a~qZ8mw3r{}$qf0rLC|9r{K| zgpZz|qeK4*^q@elYPkAeN)xV79&=AQ&Dd0MX$QCDilNgv!1+&a)AIp*U!KN%XLvjq zqOSw&g@6_A=>O#HNw_l!uO?j8&hZbf%GY(YD3fPgjm@Cvh|_hpSZ9iqDdMl8hAZCr zkF~xjSlxdSeh6L`or_%Qj@7P8ou$-pWjNM=OX;${o~x`8a)od5N=(2fSAdKB@8n_K zx4Gh1R`<(Z5Nl3Op1E}t@?&LxCsy@}{9Ju1YX~RZD2FRGv6ffYF5+BPB2Hk%9#^Jv zWv}=xz^YZQbLJXG#&K;k&R+_h5H0kAAv;$`V|6Ix2Yp#BENhQV&V*0p8k|(1?uq;| z@0r+hE+gl^a>vs(r|&ndKYYB`3;DUO6}?~JkF`2n$tY{`xH^jgYmc}lPu6SdHCH)y z8mm`j-78jeaiy28%fdQEuE%>RbVy6r%PDnUbCsx;&b5*}7p}mca;jIIm_H5aY5$a8 z_WYvXPSeX%{nJjg`6c(tWp9tL{Kgt3tXk;g>O5J+hqV@1Zvg7%io4K}tI;~agYbd% zI!M9Qjk<~t2=Mx^p<}H10;O;%x^j?|$(4Cj?y&knc*Tks%s~vxziJ0+fOxdhS*`j@ z>52Xno{O@k1?w3!aD@feQE+tve|6ObsN#zExJrd*Se-&CF&~vP^z|;+{OGx+{cGrO zeGtoI&{C*V;RjriAH54MFk_bdFeUEecPx!x6&3%O_qgU`d$$*>IeWhE!8#A@|ALua zT-||LUH5vP%9;*%D`x-=olnh~rTEAEd^y8WS0JF=B+gP-&X^YGxR!hsoQwIA=#*ov zhwx&Sre#TKm?;eWdVL(t&JYnkX|o$BpwRl@sC7;4H+i z$Zyy`ydPoKqwI9f`EK4jrtg#O-SlW>f13Jz;!Vpxvi(m;mXOBZ#ANinlD+7E;a}pt z60b2{#4?TMXv^j`Lt>gYqb=iQ(P_)@W`Lp*+Om}{OVv2uW1Rkmxdrd&1&o4Qjhx1A}i)J7^9|dPJ zt4m@yvnR&73UhWi+eYTAU>=eivvN2;2Xl`Q&lxB$hYl!#y3#GcevLXO2Bl(lkiiAG z;k=QX9sgOg9~#QFwcbTCxU#DH|90)T<;jMxPM4yp>Xa2=P&Tf z{>!6d(&Kwj|Jp-w;3hO9Vi6xQ>p~C*N4&!@m{)q}>>(Y`*5A_R(nEuJKith4&l=ZX zp2_)0C>Cc7e@+^tT9i+zY0jBG%Ldomu8(u@-BG?gKDzcOXY5FYWy9sqE`Nq^y9j&3 zXBT+ISoy#3=cL&yc|!Sc6{fiNvyDN^hC}aT|7z@Bi|?KYtG;{nJIk=^7v^_8{kkV# z59N!Gen;bXPJUA}?#dUy<!FeNpMPiB(Esj%PXixc``j}8&8OG?aOlyi z-@S6Je=WaI=~o?$a?3Xy;~4&8BHzt^J`MB9HwOJ06G<&tgYpOR-r$V?_i{dFt8W>; z_J=q3^sk-XwXV3VvZK@-R}X(V;Wvi1Y}_qfhrKiT4T5QQ?=Qz!9iB1f(JrRvw;+C> z;n=@?laRZ!f%N)rcE`eFxO>mnf4DW)jPld#+pt$&8@>-T z)W42BVLC9co6k*ralqGvBo{}CXRfX*y-5EU#beo{7;8A|Pr+VHy^W8mT8k1g&>M0; z+LZ$TTI;a>FNy0v(O1&6quVCjBk+q{UhG=iyk~p&D0VgEzLwbe^qT$q?cI4fj%sW1 z{Dbxkj=qg%(?2wQP51PTZsVRsNiP3wYbE1aL51Hd>|OL5Z9B{zSEqd=J4SZU_cOl~ z1??P-rU&M(Q{zp=l6KI+aiGd$qu9@~pf~>X2U%^+?dWC1pUiWN9xAvpP?26XT7>em zwY17(+_jV*ut&FXBr(b9zr7CSPn}^IXZ`eUue+RAU^k*^4`;D-ouc>b0_*6Go<58k zRdU~Na>2B$>BZa5`rEMvfc>0X|9jwod(WEAf;|HR@7}zBXW-o#&nR|EE=l9a+bG7P z?OjIsTe-i%SVmnBCFG8j9Ao52Eq7EHZ|ZQ)V5EoTPn~gG$9Jw$>cK3(>y)OYC+z~e zwG#WGZWt&$-iuX3b9m3f`$qY6>i6yUzS#gztneb%o<{G`?HPkv1$KH$ZgC9RI07@4 z5ws8DD#?kt-I(Xu;=r6wdyFk1o1-PExtJYm58BWzN^uf&jjBu%^)#&zk|=13HZDE zbJ8#s-hSZ$hDW@G8MKrt_7&S;dAoTZ-+bF2uAknCGBv1}+w zYr{IFHvG0_@V5k^J)<4xC0IL$W5#IqpOa=Z8@n%OV6`1+FhA*#9;ueF{Af$up|ywB za<+9I=3B2q$XRPa@5qJmL;PaqCyx>^x`-?EB@obq__NZm=Y#ZI>jN4xE10wnf$|Yt zxeK?$=39DOdYcP>xc(%w zMQ24A*GpnT_b?Y?ci@{}esFN$gnQ2`*N)^&lve(>cRzge!vA4IV~x-DyXxP*UVpLb z+sfCfdiTQ{Ue)xj*YWlCB0YIlO_X9LLFtjg!qe~GJlQ*Py7^#=?@z}X>dUabKu=!^ z#+#zC9?!aBwxs2# zCnGyXi@aOUW6Zg&sMb^N9@(+3a-^uV(hEQI=lyNlink_Yb0u-+x~R)ANKrzdHA7* literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/button_web.5551 b/wolf3d/base/iphone/button_web.5551 new file mode 100644 index 0000000000000000000000000000000000000000..fa549fdfedc35cb574733cf705695f8d50f5e6ac GIT binary patch literal 10982 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/diractional_01.5551 b/wolf3d/base/iphone/diractional_01.5551 new file mode 100644 index 0000000000000000000000000000000000000000..c6ebd44b81abeb070e8a101f530ae267d4ab6a10 GIT binary patch literal 43746 zcmeHQUr1ZozK--IcVxI8E~Uz$NGPRjh9a?qV5Bec_9Y_a7%t)smm+Z}k`xI^2;%NN z_aWZC7#z<`xQK+IluaqJTO{m=$mH#&BLjgRsq;`eaw!sqB2pxTP|CUAw^nu&>))d` zZIiP%Np^O!*IK{7d#&I4)^E31ESCTJ;MIcf=IcLk%-27*e{kUQ;XsSf&(Ehl^=%2M zZ)Og(Se~{$ZKH>3#*LD|V*Q!(NZs$rP~xCITLve{fp_a~^F5hDps_W8)Sd4x857yJ@OzNE*n2YI0enDDW=R`v z=)Mqi-&!Ids`S$a zs1LM(vYys%SQ~9jT+#g$eLm?lcTx^Mzz)C>aDcW^(i_bNNd209Nn6r-vW8ZwP;c_V z{G7~|bVK9s(bV@1Wdkji8`d||_Jlp9$MtwPwFK=iYq6x%`JTu4rjtANWGK~@>`I1H zhCbCWHbCiD_tkbK0uErO#+Nlpe_2~fIg;0sg}`ci^`AWY^0(de@LOv~IORyhlDOw< z%b>p}69YG*h=hG@+xzb?p98xoAcb$HqsdrG`oN`B8PYH7j>L9TL_tWuJxOaP{jp>$ zN$M&8?P>nj=o@L=o{mEEY4^oAcmVCE|9jIk^uL)lp!3c|EVT@}oe6rwXzEGR=>MGv z>_6#9I1|M36~tuqWV5M3du@X0iV#>NV)T1A0#z zAoa0iIorS{YB;XT4$fIYa-H1dDs3kAbL(hkd4areU>3O;HY`7ikF zK|^?ea3mbOHW~&uw*6!M&7%JczH}ri=r=%rI2c9$#~$2l=(#_06hIm4pr4fE9sunJ z2k^2715Km<+y1W6F|Y31@-KK7e7bJ|$6cd()A+wFU%_+HwTah=d&KQ`7d#qX%_D!> zz(KodC!g!*X(O};(QTeT9o>D_(_Mem)okVGynW2}osEP(F84lO8(DJdv&Sc~m47_* zIGW_@1y@goM`yFiGOO=rS86mR5hQ2X(i_%7;BCI7pAG$z>T{Mp>kYB@S^L1(vuH0% ziKSNZn*m}-PG6#I>6$%^`Kr5xr8A&kme^;#XI*VuZU3cxwXL;dwe4QpJ!{_?w3ww| zOI`=U$eujC7O=D%)^8$ZqZf$9vR*tj{VcK1LfTt9ZrWy*HSDvtS=)f^Yj9yo=)q|$ zf#utiWrGO2lK#Lyg_Q*-(*j;c)JizjlX;s5Qae}HqN$tv%+Sk!9{gUVhyQ`(1?|u6 z7rKXC^W5D-uJhfq%1v8q$GtXcL3KO0)PsH*uo=LYNMwCa#?U3QzP8M2=?5RN^wqY9 zej-$WRRuPc$gL%^5JNqwm4|T68 zf&wvMG6T|1 z=SKv(i107ejObbN4Qp%18l*qs zy)wET?@FY#BG8VDDWJX*frv8t&^P3o6*gdUjaLP{_ED){F~rG>mB=9@=R)^@AE7?- zomx+gCz=*WLxD9UAFdbP{YEV~+!wH}DXSjGx*V)a0zRLm2-%Z*LBGW8pf>V?2(AhT zFqg_L^ma!yr0oyb*6c6bBVIkymDtf8nOJTqzm#`mcl54=9{FZ;!*jlS z02*+vq5y2u0;0u;7DE472VneFGwI>hMKTXvjunw zERlSds48fHXf>z@)nbP)xDHEL&ZqYH0@iY`?T*UTc(g2WO@0#I4tz8u^%aEbV<~$e zHmLcu0O&v3fH_>gKs|Px!}~t;w?BjSYd$>^0@5*-E3e<({;70#ySyHS25iL_f}Q>I z?lon#{YJ$Duw`RjQqD*j(IQgM7&`{vMJwp_B$^14p$$;~fvAPI1`p`HNIx~9LR;RR zlsLm$FY~l*EAGsS6^VjwUM2KjVAY9L7WNOM7ST$w?)UUl8=wW8%c1O}umVOjYiBfQ z{nGb$_80tH@kMPZ-@EZs>2H7gsnol%l&1w0e4YJsF5U%e>0j{4*&?Z7CI>_-z;{ZY zlE=G1R7$Od%&5J%4`PK0ZGfJTuY4>!k<;T(Ke!{3&*<&+P%E9(cEK}Z)TsrgMU_D( z?LJ1_Muq#Nn_58MB&{+W-0?>v*GBEZt(u6Q(Es)s+rPOk_A8@X@$qCd`(FOPMYD_A z)r2xS;vI$uTy3kRpV3m34UP((7qf-bI^buhf!KxrL%YZmwiRur-y+rcB=ywnmAo?> zgPzTaIJ4BwM}j?fvYNz$v3dfo>>v(NxgU7?=mB%(obBZ^jrg0(XmX5a6bGVc}^Fg>2y(WBX= zJgCovQVZ%rgwp>P;r~tPNc!!VBLGju9l*f5*VhBRuK~b_K^HixIpB zyGG@{JEAK*K--!!=X&XR;8TJNYFA=W+tEWQ>i$?{(?|Mc575*~wr0WGg}K2kM9W|M zuLkb~@rpcA`5ITZ0zj3cMRs7u-%N*7QLQ9o6if9&>$$>~@3CCbI9&2(ef*SK@VsX$ z9@a|m{`4pq{bHSFG->GD(}jQ%QG$g)AzTPt@?G+N>%Z)~?f=$yg}Zli@QPLYh&tu7;VY1gWjv<%KrZh`anZM2R6Y2_Wk|d5$_B49D2W? zzJ2O_@7I*YK_%}!-`b%>44wCEN)78N^tA3j(I{A!{mi}* zO&j|GbMATfOV5b+0Y-o96(JI^tM5y`?WORjGp)98iW*QdNPE|*q9Ckm%G&9p7L<%7 zEu7++(`@vD7z4rzpamEO4}tDEjQ-DeKT`%c{@*qF|NCoV`?jZhu#zUNg;FEF!@T`* zN|)SzZr_@=1EG9+`YBOz;3=X2tsMi10L>~hHby>LJDwu`b2{!yeZlGijHq5u&x$of zr!7&IdBZyAp`Sgi{3Xxn38xSTlCeJ-|6}ay^c&m9yTL^-d3k!;&GxdaStWF8{jX9; zJ-C6GCtr;Ip3TN~K8ep(VpL~SrYwaepCwPvvTfC}K4vRfHuukY``BBpW9@;R;i zO$izZikVH)&h|3>{M z{$0!%3E9&MV#!dXdDg!y___X%n$I<$T>r%NFU>?h=gCR6h+~Vm`A)of)_*?o?SN*^ zVR1G`?y&ze$E|&io`UxOI>5OLsr}Rf?mO{snrHnZR{L@8gtJGc{CDDacA-T+N7p^8vFrmZY3Zi&e-2_MFo#~&IfKsKk+dh8 zMgO1RZcoezkt_57#IWqdnP;M$~I=`mntZJ*yKZD7q#JY^Z{lZZ|ix-XEr z>;b1MIMvUu^=uUV#_5$Do1V(=%>%_AUI-6hyn0=w~q*!B-k@##Pv?sDf zBh-+7|3l5G*Z}akCOTapm5p?RKKI~5`sICK#9zdnp6Gn8RS~-1fPJ35w97NJfgSjO z39it>Uc}m`M(Xb$M7MdKHgMim)SbffJF||AT%Tb6-uR#7zyp5_>vEQ{{-;@<{Z%Vh zqKOx=(rg(k{~Ec^Q%iI0F*RVw9m~bCjW*V;rSh<2a$q4o))cco`||-dfXpY2Kj*hU z^|B{GEok1Yxv6hnx&MRmv*Ey}wx65IfO0mJoTQW%%c2(2K9&D$vE1^#MOJ}Z!0mjB zt<^SxHQCHe~y1@EwEtZR3j-5q@27JC8tZxf`X_wJ!5yNGc zflO;h{WyRO!qY2xGj1-TXxS}1J*hrhi)G$pKEqGUSs-$cc?*$gtR5|3hNdC+WVeQFs^7$JcYPB6 zUqwzB2l7lADxaKG?+s7!8Z8pLj@PHDf7{R1bIhO5JahHln3u0>G=%3Cbd564Q@ytq zOH%oR?VoLbuz77sWF={&t;O=R{jBLBp6GZRXXsuI9{pdAJ($Jecw>-x&&6YC37(E> z+n%1xy*RRdnN4W`nPZtV)XW!naI5D$D>;3-wc{`@oU^N`m$C zK4*W=|JDxje_Z5HEE-#JTmLgf=8a0)!dOqwOmSRQ!1Z;cgk_5H0%x3%3vI70wpe~? zUx)*p1Z|tlMpN6I;)kKIOYuYk{#|2^xP(%G*Bx2C(0!FAI==W6Yc zHkee#yjQ%py$_M!_4mNB#YlC!PZFgL(e!>mOS8=%3^RGjI|iwWJlohuhyd z%ReEL>Puu2)sQoB2wBt2tXWl?t3B$oT!}CzR9c%qbd&(iZV$u_ZO&s#=Ah4WumR>W zW9DY&>^cvV_sMyYqwA;MGMDr{bn6uGR+YSM+^&}!2T`hDHn<1&8F+j zdy~&tQ8LJ}?cTAB`HzqNi5Ot&YTf6)YN;Bq_1kK{*Za89di7_`zi0Lt`^n4fv+fu> z`pNGq4+5MceGoWV3vMd(Z}hP@PcX;dVj1y=Mcg5r8aZKne%`~_$^4OH@q_5YeG)yC zVfR75A9enMi@nQX*HQmF==TfV93fp0F}s8QbJ+P`?aYz)>j}6oOZ}7WzWcuWPsj8S z$G?N^_s<#SRro_%5G6%~VsCWfL14E=^;sVTCbEWh%YV^-5wYhNgKMxFt{3C;q0V>H z0`T0J!I%Gj(Rb1JAO0d%%f3Q{NY*!F$9+gVrGjf}nNg<{ztnF5zIMdRC(I~8&dp!$ zXH<^QDiJG8@qCM-@l4p}4DuSwxErr#w9`;uLFewZ;d(ryLWvCE`b+(cYC@lIJ*{Fg z8`4bMK8NTj)-9%n+~-}-?a%Gs<5^x7M8?Uza96V-z&_k|NV*e@3i`V!6oeH#P&Dr zVs@DeC%@j!`1i^E$GnH*qvOQ#OvzL~TP*kejF~QJhW?-?T3-FfQAYzdsi`IXq!_JR ze$F4<@*h>xLBF4~gph@Pul*nN|GnpDPIdp>Ti#J;{?+QCBE;! z9PG1R@+y%)yeD&6CB3i0CB1;>X#D6tXL%JEQ*T&*bbsqB;Owig{*JR{HN+H!6GE%yHh5~mVY literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/diractional_02.5551 b/wolf3d/base/iphone/diractional_02.5551 new file mode 100644 index 0000000000000000000000000000000000000000..0035e665ccaaa9170c40256b627a12d486426c3b GIT binary patch literal 43746 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 K&TqdK`~L%K_8D*h literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/ep_1.5551 b/wolf3d/base/iphone/ep_1.5551 new file mode 100644 index 0000000000000000000000000000000000000000..89314db1beb4dda8a9f5ae55e74c4e618f42d586 GIT binary patch literal 43750 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 Y{i!!@3NMYDoY!i9cmDa0|M~C#17X1G+5i9m literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/ep_1_6.5551 b/wolf3d/base/iphone/ep_1_6.5551 new file mode 100644 index 0000000000000000000000000000000000000000..4617230241203a0e431de609d9fc824e6580a108 GIT binary patch literal 43750 zcmeI5Eo|#dm&aSy>Ln>_msyJpqeWq>mL;rxQG-^NR$3VbnkFn|DNCTCp`mHYQr41H z0|N~MyZ!Bd&(0)qQuk?lZ|@_!YT|gl&exndb7toF_~`9AK05k$@B8iN(Z9a^|Ksid zzu*44? zTtxTRAH`V^QueWPb;7Sd;S$uR!TohGjI;dd_5ZIp3x*fbYMPY!(@pn%d{oo>`94Aw z)p>Q&3(qd0>(|!435nV|4Q{&a`Ri+EwM=?p-S%ABID37~^1F83lAAF6>R&*4b@JGW z#+{WIpXJZDXn^P2er(U;>^=SqfB*9MYqiB^XSJHX zhq=v<(4drsg6b=u$Nsa_J6v8IKD$J(>RL@_gZpbe7hb(^HGO?GDkz0dyX+1v9Sj}q z28**x%jZg2ZY#~VQvE0XJ*oHCgN15dzijirs`TOZ{My|;WggChVSAoVg5hd9SR`dq zu3rpumvj40tvz7;s5%D-nhyC>e8D}t0Zo>9iC7Q%l#ti$6<=Z)#v|XM^t2- zbo8rk=chac-%)FsSf96`oB_{wfLp=6h2n9XEj%St0eHG6W88*{hv~&K`^8T zt)>^zpJMf!ygSQku!ysC;7t+Pr!03eLN4na_Ehwz zL@!(>Nx7PCrjRbmQr5SuaVCD zX*SRtNl*Fw$rrP}WdfbJigo_P*k^soaB%!L`-Z&BU~{ z8m7i6<5fSFZD%P)Gitj!ah54C`ud;r(*W5aWto^B+TUIsUQp{t`ER;EO#88*xH^&c zqqd)V2~#)rZ%R9<`g8op4z#O1kH$`OgsG(FG;nz&6%Xg~AlMj#1UL!1I#JJ2t=3zi znA(2q*sN4J9REp&(>7D-gV~v5HLs{O_dHoS`4L=Z@2OYBaaVa_qrn5~gM0G(EK1m&SsIFH6gw`ja6&G?Q! zW`ER!@oRF~=nOaifIdS@Bu)wcy zfBk%G+MltzSjU-Wi`Hw}b5TsGudmqftUb*JVTw&|{r|2Fr_+h-{IUREV6gFEyS=(J zJH&s@4V``jQr|PVNjv>oO@HQm06dXhd>n!lD;lqz{ar+HmgRo`7yro*AC`$|AEuI; zU^r@t|29)gC->Lwxp9QP&0`?R}pArdu4B@eKE4`;E6Cf6DT*7%U8DS<2FAbs_jQ`NaQVsCh0p(5tav zCEw4tH(ltupa0nR7tw5hcbM`}W1IhHm+53RHEK8u9~~=Ajm0dzfGk=)coMls{$$g| z8J30h|6VA4!P*S-&1j6zwIAPfqj6Px^=Z1l|7#osD!af~V^3%0#<#P}n=Yf3S5NNN&u5lK#s|EA}$Fl~K;T?^PB)$P@#=^_576QdNoWtGD` z=bcqL!S|^#5z65~kOUO#x+{ovVf>nW8m-I1X-vEw{`~(mVE4x%{*PL-L6!?s<^a3= z$KJcYwpltJGL7%1H|5R4ufzy14FDxY>9Vlg8mGj6(+>FB@fe) z@9AWjq!aAmIJ0#r>|tTn3mMPAILl31R@0xj9ss7#w_yqbt}*=M91HMIV-+y9S` znDL?O;14U_*ne*P?}dyJvfs?kfM?EXHrhZjJPP>TmWi~#Z&h|y)GGel*zx+>o+DYT z37Xfvx;^lycNxaJ{y(q}Q@6emri_-R<((G{ZN|75rqBhez&sxHAox|ez?AVhOq~Y6 z9vAzl*b--#vw) zpQ;1HugW8;2SfUu+31?b8?B5QhxkvA?X1coOmDi5Q$GLUh-P`VjuVY(Qxa!0Wc)Z; z&I;81waqD5Q}JsR|FJrl4>0E70rE#zAg*e!t_CoStN5?F-6y*Rz}++enoY3u!eGeA zitjR=^kZhdKkot)JeJbD;)cz?1+7tIKmVU^rQ_m^HNk!S7f0~^WI6pM&YUlqwIuon zJ8!Z)O!>8BQ2#&sIZT=1ZQB3XEp7ynjcC1J{6XSed-eBX8pd__&)T`PpV1C!MbePa zvVi-H5%2Ar{9Td(uJWHS(>Fi*wgqs={>T2q_A85E*pDC1tN73S9$qk4yol)c*vgCs z>BKC8WpdZ19o8S|EqHs(ms+fYA*+=1GWCB}6@sCgW81osIA7JC%_HBZ^kM${<;jV+ zo6*ya0fPm*5m;C4tXL6XUgGN~zlPs`4-Sl$aL9K5+FFkFC!hcF*@zF(_~BgZeS-yi zo{;ig{@bqNq-3@fjoDeHJx0vb(}{WxJZ7~Ay@0=zoK7N{X)B-cpH)8O$270;7cC+@ zcH0Bj_peR} zKN&WBXF0w9CwhM!{$Ro0f9!L#s(KW>#b#mlW~;EQ)@}N>>8-_@6&YLW-sC@{ANH?* zq9iG8w#LYV+|33?yY`$hgjUf2&@LLYVjQOQBi18iJ22ie%f>&MPOLPuibL&vl>b=v zre6jNTbFc{lLTO6NPA+B`rL2N!SrXY{%m8xzCCz>_e^$xWcMPnaabCf*`lr08m|2q zFR{2L{+9)|54~Aqi|WPCu$s!JtlaQWX?P*vvGYCQN7Em0u|mME3giJ^P+qeb+tncCM&^XU=BI&&bFqtd%?R+Erc7@kHsCTi=^y{Ity!|Cim|9i8%UvqUGyZQB`I`_|hx(^qg%P!JR2S&(UEO$!_Tlahy`~7Ktihu9dQT@F7 zsbB8!y({mes(uMd|J^QdVy6W&bVh3%asO_3HuzLi0RFSK4)5!Xi`BI>PybvBAOXzR z%&z@AYPmm`JKqmE{PzF8zs077pGE=k|EEFKz|&Bmp+G}{h5`)*8VWQNXeiK7prJrR zfrbJN1sV!86lf^WP@theLxF|@4FwtsG!$qk&`_YEKtq9s0u2TJ?iBEMY;gbC>#x*s zc-O$;)X%`Hz2!vWA!^TKhZ9DB1%88p`Z(Kbzw3RoZ;rPrRF@-_C~KdAs~Qfq%lSOc z)Sg{(B8vzm{$&_#KJ|0BdwUB5Cp7C{oE^}KG0uE$U!33|>KuE@zV-rpB20k2_V8as zWwCu0^Z1B2cC_b4mqSn-9}(-VSXbe{uN>GDVN21GwsR4Ghsa@Hk3DO>KwiglJt=K(MLS6_tB;LqDGgg+5z;Rt-_ zg-~SF;&eGQA*R4=aC}6hTkt13*-e)>CEj$2TxjL0CD_OR`F8z6ygcHZAUEu!C$=$X z*vsPUB!J!prjlRvxlQ~TmC?S2|HC&Uj*#-H(#h%63&PEHer5uJvmlRptdiMSeyu|S*?$v?7XBPAoFm7|aBUOxU# z`&;y$vN#RU!O^(NKHROX?h{66&MVWe&;Y{!u|rQIQXjpRXcLD2O&2{z{3&8z5WiLW ziD)C}0dWgE?(C9CMyB;1JAS$S_|vZ#O=U>0@=1(j?BG}RQkxybA5XXwo_BbW#8h*ZguuQ^Z-}v7Ro^Z%_DU0a{h0n8y}hMfPun{fEQbnid0^1J2y6y5JHC&+e7e9sdiR_RRp_tgK>YxQ~k(_wAkYbelA zprJrRfrbJN1%5gOMlHprdN@A}>HaxBb1}bcFSOaB|Frs^StzsFIJ5S7f7Wh!Jnr&` zY}bRwtXTI#drkz_{jgdteP5k)R(Nk%A;BMZ8r-#cM+b4ZH0L7$5b~ zK`h;*yld+hF(>P`e)MM3;?ri0Z8Z&sNy$nVnBrNC#>6aO&V#R;cLU+o;!UkebC{_8 zQHymA-t9s9KD*tO;*PhKlm)XxU?5H&@2yHoqSU7oJmk!>@tWLpSqH$!z&iC@3k z4^!4Gh$N1O`lh?tQuVK1h%b-%nc9Es@Gb`GIJ=~kq+|t>7^OgkcMJNH){k9{YX7mr zI;q~f#=4kG-+za1W&Oe$CiG`j0KYzwK8Y8j7@oYxZ~X$CH(gPMlwjy;C6=gsRjdiZ zJ-pE_{m>mA32+Zn{7OUv24flom_9tn^Id z9VG7a!#TdOqc@-4(c2oys5O7{rK!!bn7=(EX3Q=Oy%0UbJ2P1U#1~CuXkrRS<2X}` zc%NAv$Z~_k)pL1*XP0=Z_vV<=uoOF#TQ qZjamD@FbX@p9JJQ2^O7k`{YfQ_&sdB4SVOq)<1)P`LF-{kN*KeD}aaq literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/font1.5551 b/wolf3d/base/iphone/font1.5551 new file mode 100644 index 0000000000000000000000000000000000000000..6e5cd3c398533113498f0075038ecb43c50c8e6e GIT binary patch literal 87438 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/layout_3.5551 b/wolf3d/base/iphone/layout_3.5551 new file mode 100644 index 0000000000000000000000000000000000000000..8191adef7a82f819854a418e11fdc19d68f2fe38 GIT binary patch literal 10978 zcmeHLe@Giy9#{HD^-5`ih#N%g5JZMUY}#AAWI1{nDPG4b;tQdd8N^Fxi|5TkD~UfbMV&(lSUg4?Yko{A?n{qtcN{eA%dm*M|MsF3^RJdpE1&I36Q z9C#owoWn_afDN21aQXXwPYdmo?GpmaQ-0_!PPLYPg!PnKRk9Xe?_vcASD8|p-sLVfvXPq zsBT~(>>k}aojMc&)WjP1UR2Ag4ahD#Xc!5`{9d@n!N`wxI`%+<*IuZRxKxxYB8CF* zMIOzS(dURDwL~rIR){7;r>+D>!A@O^ka&7IQo+ybvx`V3uuN@w+vF-~(_1A~!>jM^ zrng$ElJ3JY(wj*X{Y_+xa5*v@@WGiLq>`Gecn9=8l930RS^MPJTq&K@WV&OBpqK0g zR;IH3I*GS$Fw2zVlOC|a;_W4{T+Z}@Vgt=sSdr9^*vCU)iAwH|LFx?Fg>_;co#vZe zOilE&iMeXYL}s&tE>U3+<(#)8)CP;u*KX7fIR0HbaF&X|K46UVc9gqL(5wdb>)mmk zXeLu*Gp{ec*d|qr#TP}8)X}UD=tuSfK9G6)Xml6!H|f&@bptD8FPXn=+`KYl+{|CJ z5G!Qeho?XMn7M`{t1|j0BLP7KVLLhtMc~v66Z=m`=Xwnyh#cr7&Idk~QTy4PmT0y? zN0S!T@wMyT%-#B(>)|EPvsJ${^SdX1Hhyhk`oI|s)gJ<*@|SKAlncqTV32CS25Bq3 zfYY!y2$H=A+FTNYus@lDX0IEx^%i1wok>(CZY4Ix%tTAz7L=`t*>ww{t?$Os>DLDy z3Xh~Pu&@!Q#34Fd><(SW(sj zWv!rfYY!x(!C(nJPhJ^!*dD~yV0Nb@Rs|cCxY~kx%%#GFL}D{u5}VyQM>T4Yz3dHA zn91g`NpFhFfN@*hVbTWUpP7`s5hq65B%3(ITL_7hy~sW@$lh{6#C(|g^RoEw-H^sX&t1)fPTA-i0e5gZQZes8>NcO@2iFr_k)!%x-3l&bHe zl~~zsZ~V#r#II89L)0&EW`Z{KkhqN6AC>+HXC0C)2HN0*Ya?Zu`CWD!ZI0EhSR`H+ zpKhF1iD2)U2&PnZ#-QTbDO5Jnx;FUE~HnzUtR z5*v8#pM9gw>R5Gcmc(bS*2B@~Ci}QE*t9Vio7!}&*0t5C4zoXqiDCmZ%SmsIygPm$ z_9m%0Y?Wy#>MtrRv`&N^t5Y*B6d$q2>FfKPUW0P%C zDT8|Rx`6daGv^(j7*`zA&hxH>BP;)#f>GcU^3%+; z+hc6tgMw3er}FX@fu5YovCugW4}2#*kl9{%wAJgLE>iDhb{0F@D!UWy ztJaz20!LeAp3Ny+W|NO9*=EWm9A)<+BO=0#EnB4d91~d~n8-8Ad_cTY$}Ze_{5RLV za?{!O!;o`fg+Uh0ts+B}=p#|SU&&YUNiO8@jEUHNU>VG=)8SHg-}B&Ky9P@Pm|$hT z6lln^HL+%*53*`a%vbKFBX|P%_FX2v_spYf;SolvE8V@lCUtOn3&EoqVJLU1S zFvs@jEPt`Y^Y697yp9c2%2EFs_pboVIsB-M2U-I^d?E8m$;*_hzi_=CkNQP$rek7t z`p4PC4qQwaK`gWQ~<#G>U^hum7I~VSJGHZ4uJ- zhp1+Iad(rwlwGs0aWvBe*MB9S?iJ0JJZSb0&Mw}Oy&G&F*UCpZEua3bu(RYjzO53z29fNrls4QIchWz)87a~c>G_7xbB5sAp_Jb2(aLx% zc2btCBhu}JV$BdzGk7A8(z@B(rDscTuR^!jQo1&Ht_?ZY3u;5yb)_7(m0p|7y)ow0 zsH}0X%CX6Z$@~5NzW1H)eBXPY!h(W=_p_ctR5pIUK+hrc{Msnwe|Zb!Es(cB-U5pj z2o2`3lNJy{I|~B-ypag*ETC^^!7D#+;PTEQChaUVac98^+X!(Rb!~E87{9ZKu-gTU z-!4t->0xLywO+jnwgU|9q@%!0t<}ZQZyqY}+D>b2L!;!I*R`I8Fxe;EzIXfHfD+z; z8JHwqOCCQ)UUye}8_|4>(Pk>j8op@c%Qy{1k_8Vuz2@|a6^8lMbBX)PJ(Wb>#oVrHcfxjFEr5Ukr-b`9L2kddOX6WYg7;b(hzw=rHgUMJvd)`Ee3k1 z!ZFAE;fIb{$4mgs&_^y0Up>Kf*;J7Bh|SN!4{nBDhWtzO*2Hdb6rYo?!%50aWxUHt zi`uz+7OoiAkhL7ohX4BTle%Ze;@x!PWZmnBmpU&yUONSit|uaFOv>$yg!IEdYJN0t z12KuA$A|+r&Ltpcwofj~>XlS5r<@zIa9uD2VjtGGXxt@?QJ|QF_6jXrA#`ju zdw-86))8KtuFs|{sfMprg26Nq`V6U?2lVxb0qQ_Un|e!Y=3?#87Xa7Yq_>AQW;p>4 zsBP+k90QT#(0AwkyIyuPo}WBi$C1`YFBeiOaybkBbHF7 zTdO-3C3aj!`hVB{Dv+|gh$Ulxxo zr^ywZN?Kk_riNcRJX1)2uE6CIYKjhV3vQg@6)P;~=jCdzg@H)Y1Xz%5A5=1>c1}nH zJ-_vQe=!+D)_%~?X;J~1h_bt}^Nz`6Z)z-g=ljAo+`To1q5^prW^c4Z9|19LUTM=N zSQxaTUD!oA(VI^M4Y{>NM^1UBJ7&vL#V8iJ1o2)>swW;eu+;ro&vb3e1rx6bp{>lo z;B|OKL)KI2xOfx3gafil_xp^mk3el{ncjlB=E7;u^!s3{NxKRR6s`-SrKTVeTstb)`8>Ui%PwI( zIe8j7Z-Kl8@)pQjAa8;HM+@Y-6K3~cK8b8Cx0RFG$}zc~Y_t1s{#LMl&&(Zdt7&dG z)3v>GF12gWVtj%VhzUg`&xZi8=Ia61t%HYG-pCCa%|a$K^y)lUXcTIKd5wkIQVb?OJz zLse+J3QFxNT7RF=HWX!h=n)UjbX>dp_tCQ!fjR43;#}6UC2=vNU_6Ib-pn~EPH03Y z;;TxTy{l*Z8!aAf=i=dSCxDaQfbEd1t=3izaR(*TUNwMv#iSW=K<=^~{r0AgBcAK# zW0)Gb6reX^3tarX;zIg+MJKh$^6_8DP5gz1@h3JtOlku3Ri=&(IN6Qvy1W8;(%UP< z#OHD^l2Yxx!sGItzQ$DGZ(br19C1{nMxJ$@&Hh4{%e}%0t{1Tx2fS0_lyrh?LOLJp z_e>XeJ81&e5xbwm3Ct*~?duC5LfgLtK4 z{LXLgpYen22$x+>1n1B#JX4z;^J)As`(t=SF89bDpD%B(1(x5$`nik;ZIo{0?V0)? z+ZVFq@p3uM{H}~#EAuK{+K|F6=GqF1JVrM=1#uO2-f`MrN}KSRs~;P^;C_o=}+ x@=BGvPnZ#h_rFC(msoF%P_*bEr@8h{b+{{s!QErkF8 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/map.5551 b/wolf3d/base/iphone/map.5551 new file mode 100644 index 0000000000000000000000000000000000000000..d77cde1a7f6ed717f0073dad6681d8fb15a621cb GIT binary patch literal 5518 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 Zw(w)=$C6W+Hd=U5P8%OByl}RD_#Z&WHVXg% literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/music_off.5551 b/wolf3d/base/iphone/music_off.5551 new file mode 100644 index 0000000000000000000000000000000000000000..4af6c76764ddbea867b84eb5c91e18780c1cbe8f GIT binary patch literal 10978 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 EA5!5ht^fc4 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/side_2_side.5551 b/wolf3d/base/iphone/side_2_side.5551 new file mode 100644 index 0000000000000000000000000000000000000000..2a9b817e6eb3b437d0f63413bbe483f51f197c51 GIT binary patch literal 43746 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 L9Yu~JR@eUl>mut& literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/status_hud.5551 b/wolf3d/base/iphone/status_hud.5551 new file mode 100644 index 0000000000000000000000000000000000000000..3377f0c5f4dcbbad0dfbc0ef442f9d29229f26ab GIT binary patch literal 43746 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 IpjXcMKY+_;LI3~& literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/victory_256.5551 b/wolf3d/base/iphone/victory_256.5551 new file mode 100644 index 0000000000000000000000000000000000000000..c17bdc48bae632fc753f05473ae6be459c3ce9ec GIT binary patch literal 43832 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/iphone/wolf_logo.5551 b/wolf3d/base/iphone/wolf_logo.5551 new file mode 100644 index 0000000000000000000000000000000000000000..cbcb7cda2089a5487f0e6e9fdc2c42a81d5cebee GIT binary patch literal 87438 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 literal 0 HcmV?d00001 diff --git a/wolf3d/base/sprites/002.5551 b/wolf3d/base/sprites/002.5551 index dd3683582378c3d24f4643d7c401243a8e17c759..25f33201dee7a5b6bd7509c24044e627c59699d0 100644 GIT binary patch literal 43746 zcmeI(-)qxQ6u|MbAtMYa5r$OQ#MU3fZgXs1SYv4i{sBJtEPI!MPl^vB^Dpr~8T*g? z52T)xo7?oJO~ibKjGLa{k5M;P$3hM6s<| z4%yb~93nZBQ|YGBNcv*=A1xu!RQ~mp?D{iVJNveM)=bicQg&r;k$~2|-n{cVS^oR- ztkCkNcAP*|{1zx*1?d&Aeg~KTP|yCV@)z0F*h~7sT!qxYe;2v67xCW!)=w?^Nze7K z{>j=(J8tl9U)^t{eB~PgB3GKXCzV?)x} zOSlc)^Xi-MbYcB1nY8WbTg}AP9Lsqc{>gRKoUiOXceHPXp9>Jli9VxmEv&yMpMv7k zb#0I4FguGNKL^BZm)l?#Hgj;K^I~=+lwe`)B3sfawIGx5^WM(W`3tixn0+PE+T*3> zrEFu-aT{7(2fjDhImxok*LtGPCY_IiTK%pD4u>Fs00Iag@ZSh*>Zqk0 zv&nDDo8U6&>i=9ECUKmb-8hubfsI7mh;R~4+P#?qu5{Ehv2mgvX`?tBMfv->-RW)L zkL|iTmMQ;i%at23Jh%>YB&xN=`YB(6t=-5VlBea5vj2|@+|mAUU!$G;rSe2vyq#wC qE||1kzjFP-jU4Yz-(T;>Wngn!ZC3rGIThO|cqbjPZ|SIfQ+@*Vt7Q%V literal 10978 zcmeI2QA@&57=~ZHkb@Vp3oj%rn1VLTL`>Q=w|+tYr0eLSztZ0biGEtt`%R}Xp=}ft z^`4jGCY*im_dOo)gR>fdo7}ANdy{j)8FD6^8X_P9A|L`HAOa#F0wN#+A|L`HAOa#F z0wN#+A|L`HAOa#F0wN#+BJleOggoOcR`oh!#3kZ}h)T)MVT(uXn-=tqd1{-KihSrl zLne!1Q6}i4S7;ymNvdV)JKsggqE)?S&izvEBb?FkJ2Qw_`y7|7ytsCQ)5S5h$sqB+ zPQm<#7!-2fFX-YN;~j-8ll011OUi!jIWP18v;7x6XU# z)qC;QUPKRbn^KdlHXXv0wP^e$0(G=-wA-NrjBrYg(AXB)#@c&u_s+US+Yh!QW_+Ul bBM>@ie;Tk~4L-@B!TsD$-(Cgla9sHT#d}&2 diff --git a/wolf3d/base/sprites/003.5551 b/wolf3d/base/sprites/003.5551 index 222dc5b32aceff6fc460d3d6edc3d6a1a1d781a2..16184bf99ea85a1dee91dd67d13e50d3cb452c88 100644 GIT binary patch literal 43746 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 literal 10978 zcmeHM&u<$=6rQ&~>{@O^3OJ+(5INAuhc?QkRV4)bQb8p9faHosfTOXOh_q} z9J>hjuj6_f*Somh$K_vM0k42pz$@St@CtYZyaHYUuYgy;E8rFI3Y>QZ(n?xUv9m04 z=I*3L>_zWIZ#rJc(>07@XC`vy?xaQRuy+UsSu|-5IkpKnpiqY#aYV6!2`W_?W~#qF zI`~`|7-%y|21(4ZsXl)~RUMnigmenNsd9xYCemP-hLdEF#z2k_d(WTbw!dbo1k-{D zehgj)xH_bO0u@XWT`5sO14j!FjJ)7DV~hv`anz=R&luzVHMU+G=)sl?+YvFA0rz=K z7XPQUeVD|U`%6$=@Tq`r0@GJxk_-}z@$RCGyo-R{MFSzPwM=drYM~{tfU2GuQg0 z*r%!C>wcDHH{<`Y_|N@69{*g3f6;z={{LU`&rkkwtIx~HKazcX{$ZPc@(kqjkITri z@=4y||78C0^Pf;-l%4R~f7m)-4=Rw;=6`Kr z)Y{Ewx9+sII*vto1{rEijq0Oc2mfjPfqAG#P588%Ifrr##CryIzW(zW`0Oh1W9W{{ z-(Y~cPhWgQWm7J#Jz_}`17YFm>}26E?eV-O~-`OwbjMnzrFhz(#jaG zgs9TE_xSFQAHVXRtQfjN$kryJFd6eqD#1z9_8fYFfeAU(c}+JK{)5-Py7~B{-yUr& zQPlvMV(i!LnxMwQ2mknCBc9WCcdhMy-`L7B9SdLf%J3Sv91+e$s3d>sPxh3H@f7G5 z3A)&L`aiwAab4C)##!XBzefM@_-8>l^UD_p_u5Mg{rbz>-|g$Eq7sOgP)bi{ zi>@Rpo~vE!HmIU!zWyL9{2)`iS1;W(7*~UlD7Gg`BUhr;?nBc;|3r0XHkJ_4k(QZQ zXiru3t=)H6at6-tvqHP{UtK)Af9-1C|4YQ^?8@fy@G*(nZv1dV+I3(ELa3ejtzH~=lAP7Z&G~w)xlTccb7Qi!E9ftBby$%59-?u9d>KAg;sOWXYiqWk?em? Px)*iuz>XAFG0M~*Af`7N diff --git a/wolf3d/base/sprites/005.5551 b/wolf3d/base/sprites/005.5551 index 97db7c33bc73ef17f0f174af53d571d164f56e73..7438a756187ade4747f50d7415e8f4c6e10585da 100644 GIT binary patch literal 43746 zcmeHQO>7&-73QLnr2;XcqCUt#k%WkIP?4fggdQZez>a9OFx{Ytj1(x{)+nf+Sfd9* z=s`%m6Hzw;J(Q_YgmO>J#b9poP3;7;g- zx1^T!n)N_GvbI&tYeYrWtZmx=K(DD~Z%HSd1b85si6sXDXHBnS%)4Y=(gAwb{2-!7M{Q?-Y&qaS2P`N;3N9eL z4&=ItJ+%8lMc;`5_yTKGlO2$Ti3L~#1ZzMJy<4LJ_GYgiWb_9a2s{DCgb`*z6KWPl z?u{^ZIxp~fgO0v41J*S#ph(lucvD6d^?0(5Yw&r)gT9pkz35?FNKzy?LrBRAjLW&>o;$2- zU_e!@S{MsIZRj0Uxftl7RXeM)gt%_vUsbn!m9?|Os_}!k99a7fTL84Li%#+2S;M>s z3{WrdN%NJ9ho0u@6Mn0v>X3_yA3lK4UqI_`>fg6&R_)^A_crwoG2mZR`xpG8f3bh* z|Kk5HTJ+1~zxaRg|Kk6}|BL?@|3A$4dOBgl{SO)cWc-uyPsTqP|785@G)4^bJ{kXH z{FnGg;vb2BB>s{3N8+Dhj&(X=llVvCABle?{*m}c;vb2BB>w3XBMkFCiGPMS{wd{H zc2~MfRR77se4+c9IATid?;c@Vxt?R$Tj?%eu7>(g7P_CuM@)&PhW_Hgw92${J$Doy zI^Kf+)74K`zg#`)s<3=hWAAxDOH8{=`{Vg?u~y1fDjSe#pT*mZ3bOvg_+M3`$8J=n z{qOq^A5Z&SLS-Xcsg=sbc;3`tYDDe5~}S2izFz zsc*6sbhCr=wt`UiY?JXk^bYj3Qe}hDKYUC$Im4fjHD~$Ld)gN=GfIjqBx}aNhl(RrgWs*-ExzbpPtEnk5Z%k zzrXQE8DI@&X@+k%StUz1(vBQgGx~nVAN7IIl!@L>zC>xQy5~_4V_^UIKZ75!@6j?< z?ku>HkA!7ln|nTw|EQ^#_8*J2kANly;Fj@NXx2}EiP|^<>V@_>&Opr7&O)XDIeomQ z#7x1&eNnqV@8~ZYXGJ-P=g$&*xtMuzpCHtFFMt0T9@r9g$rrI*f(IjJPwNtT#FxdK z8!pX})}=wc9#~#4wQi8NE_YYn%D3-08EArMY z)5^o|=|zu%HzRN4-^fRg4bJ_)Ru*JS7!U@80bxKG5C((+VL%u-B?i9h&c$vyS$BoS zzD@5He9s*}rP8|;<4o9byv09uSAC>Dx1Rl}zSm$;d!BFo#rs|CuKiQ{y;!_U0VmvT zr*z7?ZvD#p#QVG6fAR9X;3az74fRZYra#ixRYIlCs0DMuJ4|nSSFE2e{9*4Oz>W`= zPw(kp>+jJ!TvML%QqIH)p?15RTX0KVQcq~ZArO{vAHwTd!%+=btc@jE-rk2=h2-xQcK zqISTe93px~-n-mEr|9ikwO-b*s=dW8^$Y)E|7Y%MyHwy5rT3`yX z&d>i;XWNDC@8e?o{_3nhd3wf=((y#kJc|sMuNR>IZ{-hWZsQ5rGRaMF&Eu(&`%=xt2o6ojPmMos9qMhs1isN&!lQwl{3dm}m_TLV&nCYF} z`<%szb|7bsviA0owWzA^1ldYcWn`zI4PfGUEvU}osqfwjate@9gN(8dkugm*A)Ao0 zg{$7Kw+jw9yO6dve-UKNRW_!|wGwAbpasXVhEDarUHRvVRi^r=UgT&RK`SVyyKp)G z+n|1A@R&^H)2g2{%Ice6lH~w6+9(cc0bM{L=A8^L4d6n>f z^t0dJzjy!MdUw*{%TjFCVSkOQkfgeHnf2Uw*WTz) zuIJ);#H!CX|65w1wnJ29to%jkIbDy4bZ@0P+sy#De#F{{wjfvw1u@NG^`qR>)M5&) z2*u=?0)1h+TiyM?-<_~;{-^k)=+1ZcXzrv=e)GrwUa*p#kHe>KWw)}2jRS7_@Mk&B zVy})vuTRor`JWV?qz~$GVm?!NxG{!bV*Z%_zs+*-lf|e;{mHADFgH6>xSB~#MUNk~ zJ~H>O7Ry;pCR_eTy**{Ol-IiLPhL;u7frwMCx278Rr#=zDYW**`M7-*?QkYoe;;H& Sp#KPGkK3`4_(=TYiT?uzZFcVf literal 10978 zcmeI2KWO7t9LL{_CEK*LWa@co4^!GBOTpbdRWkJ2W;w`hSq$gFgNF_ty+~Jslh%tl z!!3s6pdK}943$FcHa7@5MCJ&!C?OW59Hw;0`15s88ia*hW7%&sPqCfv$5$JI!2kng|#UGDWd;%cS!3XMj;MAO2uSgS+$8`sKxTp@_ z8lEpf5)F|gY}R8}aM_F`ATPqqmrf7*8{h|vSC&Tpkk5Z*%phpf`3LL}^gm<=EU3!r z((eM_UGx0c$u|b(z+vXV7_4s1gQQL86N_3sMlE6mRas$r!}*df>pdpxlDf#PZ=k)U!uLnk{W45p%YNl;_<`&(*KN5iP0w_7TeltNum-EH}P++7QwU8uXQl7?*LBF*(|2>ajRD9wFx826&21%0^73S6gax^Bxl zQe2NZgung9Hul3|D!h-;15HN{&R2mjdR0uMO84i=IjpVlvGsXG@&NW^5@^z9;k3O3}Xn!oIW65 z70r0({>5|m#aUj(v&|5E&(9bUmH6vlE`I$nufWM*nECtjwAm$lwZLA&W)}s_Zpz;8R|@rZ6LwEWA9qh- z{U6zBZ#U6y;*NIKDBYA(NmsG&gYG%|ll{&9VgIr>>@W5QI~$a(lGbjftM=6Ou(H@6 zce!Qjb?31EtpD7zM*p!@w8|FlYtz+P`&oP60q^;44R;|y!~NiF{_Xm#w}nLEJ-($- z=|(q{7>##6I{jRZ%fd}9Bud3b{=7!xFv^tQtBQRzrOGQlsaP}XrSij>XFge zuk7XO)9SmaWV*U{{6jLGOkZ!ayW>KLUj)Bq$JyT|qFTv3op@_J&E$4-Nj^k3)o#ADU)n`&cPBU~ c*~-0#c_Wqc${&}Wm2*jjC`3p<+&SL<56m;F?*IS* diff --git a/wolf3d/base/sprites/006.5551 b/wolf3d/base/sprites/006.5551 index fe4e54935c599968c6f1584a8d513dbc1e665fc6..1caad603a43b397fb61c911487139c9f0ec7b7ba 100644 GIT binary patch literal 43746 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 diff --git a/wolf3d/base/sprites/008.5551 b/wolf3d/base/sprites/008.5551 index b616457115c5300340a0220e3bad153966e7ab30..49fc932e50720fbd7c65826ffaaee4be649c5d4b 100644 GIT binary patch literal 43746 zcmeI(L1^1n7zc0__aLzmH8vp+rkBE`g-tfAS+YWx90oOmfseVQ^WNuI#m&|*>|*1Je?FwxNkrcN_ui9V z@XIYh5Wf1?af?0QWXBimxW|q!*?|uTKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<;9U~Xb9&A-T;plyx67xUm8NL9#=F%1w`;4OOS19|&**oaUG_V2 zQ?fj!5pIJ`H{-mhuhb~LXFR*~jEE9Z+Jfb8r2gQg|ig^Z&jJ0$$UALDn#jGvL4-3PKv#cZ6*jTS6GLpqp)A_T% z{K~e*pGy`AkilBIVTVQF@6l*lZ9J971<78Q>Zu{iojMt!kz39F;sHe;4h4TVw z_?4a(p8SIFf~8a0Cm{6z3VL7btFIrlj6Pq=Jd1*;wwbaTDBy! zwx`bSa+G;e{LV+C{`HYxHQ5@7iW!hXxCE%bgFX-L_^;pdcl2$I7dN0$5GH}{tJk(2 zJt+Qa$6xV+?DTmu3c~ewaaZF8lic)(R=+{LNG22x5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uWd}fgg9p)X)2$JTDiw zVjtXDT>HA(_lI{|E472XUp(G@ke5;=wp&8anYtUDe=E9LVfgtEa`QpaGq&0L*2!Ec zF@Cq+c$jI}^KU`jE)2E7pTGa{=(I^YYTwHwa|iik#xLG$R!v=*w}7rFE!xf4K2chH z4;Ss?x}W_eFPp1zabw=UUl8gx?IjyNrd@;^d$fy&b`Gw_d)i`ljEWnrL#35acc zKYMD?u0>DmV%kg0U@M2n^D?M#BPU=1FKs%0=*j(_~{%y%x z)V&}sx=~(F*01XBBGS))jN>;z00Izz00d?gD68-5Y+YD6-o33(zb@64i?g*yAG6gZ z+k>0x=k}&t*ThAoWq0}idHkAMjmO1lbClKAVY=L~X?=5?C?%%7UJ&-~=!&jv6@h3ApPYYERa0YE@i3di>qj-==i+rk^OQRnuoH)tkOQzpt}(>9rZKYyb4W Nt#H?`R^EobG(JN6+Fryk#9ulm0 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 literal 10978 zcmc&)D|q5q7)>2@#TAL$xQUF|Z}*E#UFuRdagB^yY}YXk97xes9)2FS1))BMxN)6ypeYv(*CM13!-k*ZJMlcSqofo5+{%*n`9HnvKc^zUNH8a z-LW?=Byi3Br=9wjF9p)Bcnxw~kU^J%GGvo!WGyHG@w?8-UfECPr4syAU;-U4O2GG& zLRo<}*bFuU=>F^y|Gs~j1V0O1fl5q%hYjcfWq)W6>-Pd)D;xMvCh#wj0QkBDkVP>d zjFUC}uj7xsuJh~y_r8BAK70=eV0&m!4+sNv>z951WUg#MzeIn-fCS*5ctL(D|0@fS z`(k;)zm$Pr7XK7+Cb+Z$84$*Cg2+}K@d$-321KY+&7Er#g#vZaReBYM;!8KNVz1mlqFA{Y6`(C`{ zFQ`Sk9jZ|^2E-1`0m%H<_CD(X@cBCAgRv+1Z)Gp-OSG-7WhEp!IgqTG|2BhQC|y_E z{8RX-NRof2(PmI(!L>b5jepbv!T*2qpV*)ESFb;J#`PIk)gK+;zWz_9COsp?fg#(Sn*}v;KU>I7CnDw;JWq;6L7L7|M4AjNqr2m0$e-)SL1(>-#-2h^RE|d z1~Pwiom=ETz5WRQF?Y7#f3geN_r1hFa({dIAKedP5c3%4KUM$r{Dax=nlVu3-=X|} ztNgp$>Gr>E|55foCLo=EYUiQt`3n_D%|Cko(N_Pj;y+pI`A4^ZTlypWbN<(7AlY?8 z9gz5A6}Wc(H4IjOZHj#m$-UD^^&aK=cireCIyzo!0p{xyPqp)IXZ}L`qyBOF(t8j@ zfW8OC`KyioQ}Iu)y?XzL?yu{#&41W|Uf8B(-4zFJuYZ~Ux5M9`f7-Uc^q|-gr2Tur zG%9z2?du=Ldj3Teb{)?D?di|x6aJOwk6Y+}48KkOVgDJKSLRQN|7;Q`dhTKT$=<(v z@#zmbsKfj3b@tcy-+A`pnh%cW@j3gsypKrp_Nkclx0D`2#ZIvkUKxy?6iJ z#|cqW8Lo5wf|EGPAW~3<&#iF${7KHgxChQIjB!{#e*%742HN3sKb&*^#$H4w5pdvq ze8V{X{Bat+`(5YV2P)HeDvJ1vM%$>-0U(P?lJzU@) zIVjkl+g`EbobzX*lJVrcoQ*c+zQV`5=I8II1JD@QgG^>_mOi`Bq?39zz)`!jC@!7o3GF3&>enz3Bf07f82K;CM?b>;e+{hTd;`M zM_N8mL^jj=PtHmWP~$!YS_eps*k_x-WC{xW0B`jveeKIMlE&yoM@Fj`ivhpDou z{U=dANAw_ikr83PC-d)z#iR1kv3J5hu^-MAzgef)4^ceGRs8T&pt=3wzinEzUsL@d zKlrEc&*M+D%;${$L?&j+ee`WqOjX&h?Z7TU&&!31Ox2PWYOp0p`t-5GvQa@I<)K<@} zMp3nXu|qG{FX;qPorhNS3Dx?ET~@LHd6?Z4t9vil$H&v^>o;jWrfajL=PY0N3 zn6J^hmFrxmkBG#cn>m|Ci01NY!*EUHtbE>o8+-eAAy+=f{a}dubv2y(iTM25eZTI$ zwU}?M1)g7jAJ4~qNLRPsETRgZ6*=^LS%2*LqF>$f!`RN^1o(&Kll%4Z(LS`_{`0H$ zbvkbk>c95=^UXpJuJ~2s17C{F diff --git a/wolf3d/base/sprites/010.5551 b/wolf3d/base/sprites/010.5551 index a6524dda9aa08a141d880731b261013054799864..1802f0bd58e510af12ca1af20f6774f632469c9e 100644 GIT binary patch literal 43746 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 diff --git a/wolf3d/base/sprites/013.5551 b/wolf3d/base/sprites/013.5551 index 153091d50c1a3d3b1cee7b3261000deeb8c3daca..ad643faf1a0d3fd536dea226a548c8c10626d6d2 100644 GIT binary patch literal 43746 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 Bs}KMH literal 10978 zcmeHNO=#mr6rPl@*h^wLt(p%-5Y zq76Z&rB=H1puPF1qYpiZcA*aOLaZ)Ch7#CgkGYpZVE26kQPxb^yiN@gt;yDP zYVhUB#z|S#RDbMURtnZ%Kfa`Vrd-w%Kk~31{L5xWTo(O|a2Xk(H+5Tg4rNoQ#;TVY z%a1JZCtJ>;q}aNxHMMNf&nSLnnwqUmwrtHgv~|)z6RNplm>R%(+1xmh6xqBkd|TU~ z=$mXw3N#4QeptV8Vr!Kebg0w>LsG)W-#8JBN)7ho3J)LF3x=&7pH^z?FDf-j$%wWF zA2c<_jx4`1J*XUyJ;XmWK>W+5t>J2FN0ws+uK`wFFd!I?RaRa6j5yg!w8GE;vmg9Z z{;|642R_&dmIH3RV<7`L7GmG!A3i}ofF6T-(|bSQ0|V?!ieLa8{zpE3x;4ogW&D&;DdcP12|T6OKvk0bUgt6dG^Qr!x{i@Ko@9$yP)e4cm5rp z9-kuq5Ce$9=oWk*JU*X)@U@E%tIH~nz2NZ?0mr92<`H#37YyJ>xAz@@mW@F4fw%UqsZ@08^3LJmFED?I^r)_+p)enR;A59 zBA>I(Ilz7JbpV(b49q;@yb4749`^I-555lJwJ&A>PpLvlkj>9?!nO59>KB(K?VC5+V-~ASn%*TOXbVjJX=* ziVfMt56gaDslX3{(U5b+j2LVCK1}=XG2mxJ*q;%3)(y}8du)~gwbQ29+k+KwSJLbE z!qdXbCr=CWbf)kT`;bjh3lpC)FfdEVx2R1}i(iRdgAX#tL~3_Q1LzPoKG0u2nSc06 zTZ8G4`3L%ZYX0FYOOy5Qv1wu;%n0E4_bKvR{C9@rs;0`H=^^|A4Zd$h!TH>^H$i z&b4TYw~kiO-U~lv2(5ZVHVa?1}E4A_V zlPce(-Icvim}pgKr$eZg$qRViB^EvTakV7V`Gj+rE9K3yT2{U8iS5e7z2VetJy*gR zpQLz;f~J-?$pVY-P2nlYi~O_AJu7bl7hcE}CB<6|?B5wTemQxoMZ03U+_vAFJYx}s z^e6t?&-tW<7wzHa(U};XN>c35yRBzSUVQKNeYQ!v%G=Rxq3TC|jD58j-D*e~aW(RX zk1Y0M{9p0cc$!wWn5&Sd<O(`sWhzbL`vHUG_dhZGY1fGVeUcevAKKj4s6t2)d-=%sao$iH zZAa?=`;J_xmDPp5kMeZlRxhhNGK=&c!={{r`QC5Ml+8+ge9zYU>Cn`%yIWS5d#+dN zyU2*h$o+CbwuF3d(>ZYO*BeaOZpd2Sb>IdQQ`785Z(;iOHv1-$x?rc{zkW|pL`<{K zBaI}Y0F`KbsW;fl;#nJMpKY_dXWkq)y4J%8t&@7U-wro(XZ|DP>&R5MIL+!Q_FeoS jN#-zDZbx2e$HvOy$|5?y$;Q}HWGT52Ux_crm*TGg%4Iy? diff --git a/wolf3d/base/sprites/014.5551 b/wolf3d/base/sprites/014.5551 index fa9e35670bd6e4d14ecbfc97c2037cef464f2e6d..6c6fc6b4c291b1b17502e69b32e721eb8d22bebd 100644 GIT binary patch literal 43746 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 diff --git a/wolf3d/base/sprites/015.5551 b/wolf3d/base/sprites/015.5551 index c1eddb8905c1531192592c1ab19f325526f1ccd2..f67cba356f30efd6ee4c4c8a5d02ffb7bb3e4cdb 100644 GIT binary patch literal 43746 zcmeI4KWx)j9LG}{xR{}-1kqJGkTR0(x{=L>rov>Y z5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y z5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la{5%APfa)#f!&BVZ6K8=8qyn^r0lp%swbVH4UrR+&1C;Nm#DBH*TT#GkU{vp{ z=CKDDc>H7gui9D)dqFg8d)NktY1Q@)-Y1N;6fe`D^*bN}SPWPmTR*KqE157j9meQ9 z|8ZZq&sI;3O9tQnv$oX@gT|5#{@bv$^WFvhjROZ>4qmQdzjOcf?}MxDdN1tru=RH1 zueFrcl1skH@7N`uwPw3d-FP4Ob>{qm4mRf>_p@poB823y92P=Z_zWgzlJ~2GuFz8{S~YA9bACIiM~e3#`myGPP{1FRo=W{9dr|gt zAEMvR`gJX)*;)UAp4Wpb_KknkAJc5CKb{A(ul}hGH<*p}C*5G!1KRWWH%0m@^)H8U z9B9As537GX1F*aPtZc{nf4HfDVg1`v|BJ1cU`)TA&i(oMncejtrp>gS>mT)-=}P>= z{FmKkKOBxj!!$_0&FkN=tNw-JViDrMrr%yY0Ji-{CyT(~(TQoeH`q*&E5whDKjZtM z0hVTV05c!T=F2TS0xFyNIGYJ{h3d(sT znn+B`>-o4lIh90K7o7sux@lmfqu~*cn|lLm->UyQ{h*$&b&(m=Yk#?wk7HkNnH)wM zcn+j&#>I*tQ{%H;l-los98VGg)subm3*8NFf0AW zMQIE5+FR?LM?fe276BoI3>xCV7-t5bOE=0l%2s=CU+-LhOlzorr9LNs#{d$j#sQ9& z!43`d@wqg996p!6lx~)9mcNv+r|VqrTz@`p>1VUR?Fq2!VBKJjcv) z@`Ol^#le$3{m))yYXYldyQRTt`aZ(yBs!LIKJoiF#eVN)>7>8+J<%3KfCvx) zB0vO)01+SpM1Tko0U|&IhyW2F0z}}V5)jqxziM`tCkxfK7S&!EM7)udbbPt`M2BF> zEP2YknOO=}x4vAGjw7jvx0fjz&Cf45Wq;__@u+-Yy#yjxgnK-?AXRu@kl!9C1 zK7aI$Zv~#u=DW4Ja8EVc^#*1w+x1$%;HTcAt<_aGOI&ylb68j&RqmQLom2M}xDwdshzhV0e`Nr#51%BlVxm>!bEBz@6;wH%GuUFQu8`9|FFozo zaqc_8zxVsc#KKq4iJ4)!v#%fmf~#2tvZQn+8Bc%I_ilY>^K<=#zC9<8zM^85iSi)% z3i4NkWyo2BY!zXd8@tk1%<@Kn{@+<qTjTSwIrAEM* z%t-N0C2%-k&v^E|wEZVqW-0R+tokkTxYsjtZ3aho+RWMO3Z5=-u2ES&e!lJ98`*P> z&Xvty&T&_m=z6&&oNaqoPW_m`u@szPs#nARDvqv?rhB)phGATq#8D#T!RwgC3!~G` z+)_7VQ_X8;+;CnE;~cmn$~5xvfBb>js3eE6G@AFvvEcMMXPv%X@2+=WmBU%(a^*8y z`s1x>jWz^acXS~cOIs!+@96arA*y%v^*5Qf@87(K|Lbq=>h0&8=lo7zoBh`o&C4*8 z_nlWx?YO;bUVf%ko~W}tFV&Zg?QULzajGBYYakx>Ram2MuZZ`Fx(D_|W&Nr+v q)>To4Pu17%t@=K5&JRz$P&%9)xHMH$vHZ^2-RilV=8bs8>Hh(+*pK7@ literal 10978 zcmeHLF>KR76m_IZ*s744&DrpR>aE_$0%?SxaW-c_H52tjGm&g~X-m2wXMuJJVX4G~ zycBt%isTmR3Rz0Z;trMEA*dNZ@<62wF)H^tOq@8BCWVIK{N&iV^ZC91{`q|87)4R3 zzCDKiPon)g+Ha!$7TU>193T!52Z#g20pb90fH*)LAPx`*hy%m{;s9}gI6xfuj~uY) z{ELFJhmXhX?ECvZWykD{e^JD23PoXd&acDlYdD40Wce)5a12LtsR}?WV9YH7M&#`g5&a{H zxt{X@HhN#o|FRe;fDBwVzhEgER)8~b z+5Bxc$icYy1uL(E1LNU09N>puI4*wG0|n#ePblMyANpWI$%*55{tQR;fd6H2{QQmN z<&Qt%_%Dy&RgbI3RTzJx{Pm>Bi#*M(NrS*DVMNFDKb5%Zq7Lu9RuvHC$L}HNiR;oJ zB$O~f%bys-^}w9h1*`3zq7C|8fBY~H38Onh=|9Vfpf53m0$|q-!vSvC+AfSd7`Xq3 znc*B}M1ufzjU>z*hEc#G?+gck`9ZbT^yjEY?xKaS@K3JVkRc=2O3v&fnk5BM}T1W4v2?sK~Q%0Rxtx2uwfgDelh0#`K zYm!$}w46A4d%@C;`}xt^d$qR9l`hgg*;2Gda`gD2eLOvEdyAFC1?{-%)o^=;(@+k& zb3#YPGeJ#=W}TueR?&*}T3hwJTCooLgIPuRSQg^xbx9JVcd*!NrM#|ss+VjTPF{yE zC3uCj$F5FcFkBtRovv0_D_VVI86gnvkXgjx^1` zQoUmRNG%IlevjQ_87`ilN(c3$AI<5~JO&;n|nBZ5~?+w(LX#fBK diff --git a/wolf3d/base/sprites/016.5551 b/wolf3d/base/sprites/016.5551 index 6d568b736172c33a32625974da0aa65c02eaf8cc..404b09494172dcb037eccbe2599ec214fb5a342d 100644 GIT binary patch literal 43746 zcmeI5ziS&w6vuauI96f9!nts|2n>fHDQuBKQnMo^%_fzulS2ZLJH?gHl?mR3b!RSx z#a$!2igU%GGU*IEkQma)X>4~}a)bzMpwB8Z%=? z*EG!@c>hAz59rOW-|78pkkYh2=)Bu~ceAE&YHS^DwRhS(hg*%UDY&1yOV(fAukJ%X z>VN9NIE4am{QC{R@&Af{&riP0S6eVvSB&w{$uN>4I}@gP-yJ6DwToj+Ay*9%|Q1PC;K0OUm>Wx+?V; z=mD!)A;9WMcP^@(BVXRp=af+@Xa$1|W`RIYy|8436q0hWB<~2;ez$9LVvcf_m;&8V z5nWy~@vUH3z09(Dea<2EPS+?!G?;+Q&Juxs^{kERI8e^oC7GBP^L%!KNMH(z!7RkU zpn9%%RqIN3pnYBv0cDDU6UITpTfv}urJa?NVqbQYb%K{lQ*ICq+#2K^ik1Wuh^ps4 zFHnEveALg*mE;?a=N0pX&42GDJHqc0*c019 zUl2rru*^h_hgd(U=e~YJZuINFnE3f}?nZ9;LxkvUM>$VG1C>~sb00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p z2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x zfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2*gIR zLN?L+l;VHtyhEkm$Q&otemmsyhxJ#b2!B@(^(qqm^{(#pNjEFz{V8kBe?K%6YnvZf zLFTxhf~skb1!fV}dsll`IcvT;VOu>-vR$1tM=)Tm@5n;!)qT!Uv0iJka;15zm3&)0 zRSY70_Mm7 zb=&e%_L^sz>)wtsN?DYXy1oGk5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH zfd~Pk7{5i_T_=^-X^3MJ<$CFue#A|`ndN5T2MV{1mSG zb72Hb_Pku}#o?&bMdhM0D*rZlG$)>ayZ&}v%m2vixSprE%&b@xi#)5T=WpY&cMpBL zs6SeKd9eHU?&3@R5nYY(1T!V_^0|I=;9t=U>w&Ky$>$<(jyb>Q8Ft3Yc{w^xU|znb z9Vrk10T2Lz+Y@k&RC+vfyM4NAlr8=ZANP0raH~?YGOm$!`^P@FU1@%Gk~!v)9D7!y zw{b^{>f2F9W-66W-S|6a8+z%>lP^#7(&$xQw&4}O*1y)h;^@z#o{;`o1YDz)tCxA4 zHf*h2F_m`x#!aKx%yG5*-!PxoKCeYf^lA0eYV`W&r7tVdznLy+bXmMtyf^&(R*wHZ Q`7>u~rgpk~y6hVN0S|l}9{>OV literal 10978 zcmeI2KWGzC9LL|gzbQB<6pR&zSWx2DF$nFuIs_sjC^($sAr2WkI2_u$Qk&(Vi(?(d z$=R{*2}VJPlLxhs8$+jzj_2>?`pnU!v`M_1e)r>d_wHWa`+nai4|4DeC4{guslokq zNO{yDmmn$ReaLml4ah}~s&~W7a*$0gwUe8&^SaX20+a*gb|vKT&S~LyJHE18^x(-RJp+{VspFS$p^QI%`9#dLmp>E z0!RP}AOR$R1dsp{Kmter2_OL^fCP{L5+nleyi7*-gnW{fHJ68I5xt^>Ukj>@z#qZa~EhhhDh(}2TDz#o?dQ@tJ zxNW(&rtJy21Kf6I^6SmcD$DuZTls!Ff1m4Gu=%9*ygiPqn}qBveYrL{X{#QsMQg1( MBaC#b-Re%|FP_5swEzGB diff --git a/wolf3d/base/sprites/018.5551 b/wolf3d/base/sprites/018.5551 index e6a25a425fe826acdbfab0203611713383873615..390084a1dfcd3d389076ea20b50592d3432c19f1 100644 GIT binary patch literal 43746 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 HWLfz?%DGM~ diff --git a/wolf3d/base/sprites/019.5551 b/wolf3d/base/sprites/019.5551 index a1977d08f6fafad0a97c9ea0c98b859cd4d71c80..ad2127effc7905e492de8c935b5022989743cc95 100644 GIT binary patch literal 43746 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 V>CLb#cj!-_SQ$)Q5iTbN{|~xd9U%Y! literal 10978 zcmeHNKTP9h6t^L15~1?vXr-`m8`)rksWyKOVz<&=kT}6sG4(dGU8a~M7jTJAippZP zu;sRNgT;0lxRap}G2Gy8?gks#;z<3TAHL*(fC+JE)$kPm$>;a|-oNj?=P%F{MKRYt zG`atdeBf__e15R59(!OU_Eut~$Ik4OpONAP;fhceM(P|oN*OPJ46MNt}o z?bfd67R&{cF<9euO{vnFWdVaR+BN&#^DxGO875S=h}i!NF&&Trw6@WeYS>h&tfW-o zio_uqbJq%h4p?OqEYC`a56I+>L?Xn4dlJY*Pg)BTY(ST*;0KU`#J?pML;@d$`@22Z z+9;yanvG6Tb$pWfhy;M|o&<=nM07{(mui5I(SK^K2Ds*;?pOdV41R~t*Mutpq7aFd z0xSNN)~wu&3-KZL?3D+oa0hgSYx#i0piB4=-$H@bh@A-%5M0w5Rs!&SV8tdk^auZf z&tauO%-b;s)d*`MAB8g?b<6&&bc$KeT4R8ZvJkI&~3mObM8{DUVlzaJO3Yv$D$kc2kIVF z{I5F?xNGb_26hH^c+vs2zy1L}65`p%diMdnDXkrg*a5gx{~LP`=suwH0DVDYo7}Dc zjr|99#IP1PtL}HY{(~%b{kM7%(tp4^u^axkb1lTbU4OgyUHkuk;}7;=Z2#kK46Of7 ztUsuKb~Xn4<2AgAxQh>OIIIDgAI?CiKVBn#*mNiVfUU6t!jYBm%@f}R@fz`=3JvVE zzy4wV!@ZZr8VuH``$DNg^>;7-+BQH5>eyI&L36k8DeC2iSA?+cH^=9rX*SKiW1H<` zJm&kCANqF(2py9i3-!d>4~TVo=Mp+f-oM+wdn5vJQJVm9@$;WIxwVU0}|UE833SP4;ua)%HkWV*~0Ux5%AL-A9Yub_AqohXklMV%xZU zhz|vx-y}YCG6fPMdVBCG3iY?OZ>~Qg*RfmEK0eCiguIZ4-&N$b);uV0(i-`7WV97- z_3eTgsKA~Vbr#RdlMkCCo-b8T%#`6Zl|r$qsI>l&8RR`$AFg>#&%W0r^54sr_gQ=e@;ZKKaU-4)HZspV1GEKqXK~87YI-X)PtqtvlV* zBK*b+jlYtd?39W^epZ|lo%0Kq8`>H0uL+mr__I)WIR9|%zs=ve{+^i6{HSM${XD;u z-{YlZPAF`wZ#wp$C&rr@bGQanHhI%)3YS_g@W#3SSff`DoOAuvw~%|vX5U|Z zfAeNqPZ=|YcYo8d{p888_U#4ia}L)s8~TOXCj{{e2ioPhuU diff --git a/wolf3d/base/sprites/021.5551 b/wolf3d/base/sprites/021.5551 index 245544a207c83334de7b250dd9aaada47ea77358..62a4dc59e2370caea09a8b5224002a36bd81c2a0 100644 GIT binary patch literal 43746 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 D+YhEG diff --git a/wolf3d/base/sprites/022.5551 b/wolf3d/base/sprites/022.5551 index 5b7b15df27cce1ae4b62c4926b655c28295ce6f5..f4c1abedcd06ad7988ea2c7c43ab5ce34426d836 100644 GIT binary patch literal 43746 zcmeI(A#B@97{KxKv`Kl)aCBhO0u9T~(JL8iq2ViAU|{qly9x{p3@r={jC3CGz>~@r zI2u?un0?<}yrpfb`E{=5bbo(J>^M%G@8`R-BYlpHG5MWGB(LAfb z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILK;YR5RA%F&vJ1O#^Jkmqfy5-+DypK5k1AcHi*oKH z4s7}iSGjpPFV>&8r9=>js&ZAz+CM@-j=W}H%!*Mu3{lL2z;Wd7w#`HPw%NF?@8kY+ z`8s4@W+DG#6iw2h7dVO*;C#E)w%a7MZ%3PQ>-)I>gtYkT^EMrpnak|Z4)c+jsDQM9 zc{DMT&Ug4QYBhWg`A3_29{PK+mLoor%)@kC`Ah%Rv8q`Vqhh36)^k~2l`9$hCwrrv zSdkRBYQN62D)6& zb)=KC{q3`z9(}zUm>fg?Rem8tw%c6+`Vnz)9Qhk# zhfc?Cy=q(Ocvh}bIm_LBt=qWF49sAEE^B;mSGi*CN5hSr4Q{kY$Vj1|IFd>8^{rOU zXLbJjuOCXoNz2i5eh`q%H^o|8koKDIXM~47+@bZ4&EJ?HQ1>G39XfVsA3C0+FTLQA z$6pVj%W^+%`tzRjhj8qVDf@5~_1J~bK3*^D{O7sk+S>JeFX5Lv)V7=blrX}D=WtYi ztZDWQY;{Zmy(~m^_H&e7e?Ooz?s3Ui;@4 zA%Fk^2q1s}0tg_000IagfB*srAb;Jx#V_)SsE0*n7YUN*xL$Q{8rD9y(Tc0k(KQR~O zxLCGdC+mDorc|ZfigX%6DtMRCm9NhqNWIe1ja&C0M;BTfDWSDdelBayL&%b-yLmpc z(^pb&*S^1dZTohi)>_NBoA+hiF7i=2)q2NQn_^jx?fbU#*YEqj-`)QA_mRh1dFpLO z(hlPN_gY)NRjVnrn|CI6;_Eq2?yUahmzVL&{>%Qycg;h$ziiDQ)OP%zsurzNX|G1* zcjy1h2aqp7009ILK;RJqc_PHi`d+gSc>_|Rn^iA{9gD~rUxFU~jKTq82dKWe+ T|1t0FPx^D7)IHwzY|of)cP>I9 literal 10978 zcmeI1uTR536vwX#f=m!(k(I+uAZEy21)_>nR#G`xIdjdX2tf^334cN*$sNfCK~y4< z{X2MXw}u}J>6Wws@$EOSU0-|m-uqm|yUY_p$RFm>{V~}Y*(upM84eHt0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009taBVYj_BU!SatM*7LQyE{o&%jV+s&o}{m5o%%epk0Q7bI`qM|_@FWtJ#^7yF#w zMdfv%Z2DM%xg@%*JZY|Z;)Tx0v!O$)P^wI3-G5`UbhIh{nz}4?BEpRkA0okT6zg^9 zKD^kD|20TMr=Qw6l1}oqKCfTn(?8Edo%P+@#hst}=_1}oJfe%pJcpm2knZAr#3Q=Q z;4ka%iX-L$0T2KI5CDNa2?UyYY+Z_Aw{dzbD*f(ybWzdoI)5}%vR!v3ftgZ2H)B&1 zHL)`qyR=K{uXj9jLi+&f#A(kEh(M2Mo`s$5n*Yt{Rb9tU(U3I=2k9V;hAY24ftCMT zxA2z4QTuqj@m~oTweGJ|Lpu#U+RoC9^M$<^k)3)Ea=88cGP;d#<7#{q@_GAtpB_2X cBOS}bCdNzhe04E-YWbcI!lzB1`k2Rl01g^VHvj+t diff --git a/wolf3d/base/sprites/023.5551 b/wolf3d/base/sprites/023.5551 index cfc475d97871ee183f610cfcb3b9c6f3d562078b..ef3bd00b6a5bc2e025e565d8b2850173bcb34615 100644 GIT binary patch literal 43746 zcmeI*F-+S)6b4}1cecY)B}`=_L#1ZyMmCBngxKh4HrSGljHptDGE|6>Zg|YrjBI7; zKsUCA4Yp)sWutw+FGoTWgh7sQ(x0cqcH$&{pYJXg=~=jr<9r>txw8FEZZ)|@a{D4T z{!xGe6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_sUE71#?_Ld0HB^J{)r z&ugBO^6Kinpb=C%X&HYJzyp2vu5mi`rhPUP4c&Uqy2BISTZ+#W47`~`$bDl z7qR4tJ?*lm+kV?`1m&U84*8dLHN<`X&wou?@~%!B$Q%3G<*wxYc>aSnF*<7IXM0Do zG2=FJvVlkJI+k{1FL@;o>voBet}ZPAZNiTBIRBUpltsz*iTva{dL)r#bLk<_hS8ca zZcW<8W5|1WiBaDQbhVuUVnnR_vys32r%~0Bu^auMEn|B%Y|9$H-yUvbpN?0Q7+!Wf z)7woiFe4&nK^PI@=Thj~s83p`1^IZM? z@A*59ZJX0;{pVZuGjet6c`y{900k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zm`edv>vp{3SE*U8@aEj=E#La8N{j`id!m7>%=w*9Nj>vgWw zQexXms-bWsu{`qKGqIGYccoHjM`}f<;eYOIx;6h)&N6EG%yQE$^kdUKk-AM=?|7{~ zPo)pk{M+C*`Fyh+ZsSd?4@)Mnj@T$|l(0;5 z1fM=W9%)|Beex+_t{*s--&gU(UsuQZVzseI@>S}Sl@~yHivuMnX)3v0m9Gddm h>Bv35f4hx^KZ|b`Hy7?7n7DGdaM<5t%~_K@{sBbl;@toM literal 10978 zcmeI2zfOZt6vpr6GSJ3>R+>;Jt056L2L~OD>Bz_kTX_{nM%>!bt$htfN4k}*yoTpU zX-#cXVnH1~z8wDDdpPI&l_roNg%HnsA?dhBaZlk=JW*f)0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sHfnx*$HFrt{>e$@o#{(6rg;Oe2ZFDeqF7?XcZp*Gq z=L@IMm)cS*^o5hFRl^MCgP4i1lEY2;gKowTqr}9+T^c>BasUay>?%-zN4(jF$;cM=I zv(~yH4H?VX=d}{8o`KXhZqrFOk5VAg*m5X-Ee_08_; z{LM1>!_K`WmLqx-GwCfUI*SjCn~w?U{lTZT#~*|K;$lcon%(iXVsf#(3a?*`?TLds N@4dKF4vYooegK{F_)7o) diff --git a/wolf3d/base/sprites/025.5551 b/wolf3d/base/sprites/025.5551 index 8ebad7ce68240682b984bda4074f2030a3d73bbf..9efbbf9ccf8a8c75ab10be2cfd60f1349fec208d 100644 GIT binary patch literal 43746 zcmeI4L1^1%6vtJTc1{LS4>J^oS&q%EIp!9ZHdOH;)krYOY0Xhb9}R<{Lk#v(Y8z^T zFAYBW=%a3Nm>XFEHOmm_2EdCEldC3d*AmxN$=}D zP1An<$Lk)wU#8cO^h(m}Cwj?0As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP z5CTF#2nYcoAOwVf5D)_4B(PXvYddfI?*{J%Z~I%FwxhN#RyI;>yscGe6&5SuR62gv zP^k~ib4vZA!O@`9-|l#h+NxI)DK_5b7TkhPd$pbMUklfkc2jAGrpeYYp07S%&BTLm z=oQcLoVL?$hD-72*|wV=nO<=VhNY}w!uVaoU^6VGpFic#5d+vitOTGwU(+i}IjQuu z!_%}z+OY<&X-U7 zrj?(s2Fj*e%h?q9Gy*`qS$$a@?N{&q`c?<}&o5$w^NUhH*+UziWMNF$LOWYPfZs>Y#?5muNRt^!@@&=^<&&i z_DcQO;N##=-#$|2m+XN+vd3|O_JQvp#v3N|BMzXOO^u)7)t~God#oSoIrD|$^9vAA z7Cp1U{*PI3ZwpE1UD4{Xg~7%185)D?`Dw)aqLIWpg&)OemCo8 zb9TzeQcXfU*K40w^mR>Aiw*U2&kqV; z*6&~U2l_)a>W}JH>q2VY`F70_vI%SG#;K1b^vn_>h5W4PlJ|Jl#P%@cryl zP|>f{`{Ujv^`G^RFbHo9@bfLifuaDPv*CIfyb^lsvHMSoda7hqjvMR?8%dxA7#=noILUBdL@@Otoc1W6`$Y5Gs3TbK;3x5 zINiz7xp~dmok6=}ITObq;%a`P7^=hh%>5cbYHtrZ$P+ z&9=X!xj5%kxt{F$vlv=Y-^e3nX5waxPPBz*xU;F&-0E!7bK}E4W)o07X*b#BD$4DS zo6W2yQuG|TUUUxZ1A8`eCAO$aC0~o4#Xh|n#6EEyn_t1!-K@;->SeF))v01VdoZI~ zb$WhGweUsfuuDhpf9F?HtK*~67|+qoYA&5i&xXJKXl|vIr8=hW2ddk=tUqT{eGjz` zv$9~#t=Nxl7HO0Bo?Aie9S)CA>U$-s9@(TGsR;E{L2$e@dGFi!gev;#sAED)z|nDh zf38j)^k)-!qvyR~A!P(^^!k_2WLR@ zyQtl9>~XJ*8V&p5Z68qXQFH=iw`4yyo^$=R#f$i4|VJz@#rDk~sn=~_n>sU~$ zXVUz3*Tz`HwOU-UF}veyn!U7cT(-HD5+=A93MaRufCc#Ji#!}~LgIeTozY__y literal 10978 zcmeI2F=*RB6owTjX_`R_1cO5fq??BhUA+`jN?D6~yC> z8Z~OOLsO9LfMr|^8Z~OvXhZM$BH{$QD3F5;Pmi-~Nq7H$-#tku;SEWWDi6vA`(0q= z9V>5HdCv+iNB{{S0VIF~kN^@u0!RP}AOR$R1dsp{Kmter2_OL^fCP}hb0i?sbs^sE zD3GbLHe@;qM0ywnVW3deSQiQn191*OT{W)N+aTBX;#GsY66fGcq(=%}sNYk*^Pw6F zC2rLfGX|hPorR3Tau9dW=0RN8u5{#%2z^jj4JVz>_UHR^@G+fDXHM#*Fe<8Hdxdcr z5SK9!;sEq*&-V0ae_l^Oo2!GqWm@J!-&Z<=re!wGrzg;2+HmH<7!<}p;GsUFztI1D zqMbawz9h9gnf_wDK_5Ps^#^TEzv}jzV$^w$GJQS*dgP?_1o$s<&li{b8PAa)`c7IH zbNw*j`ox9a1AQ^MpQ*zd@(>*Gb0F(~Mt}K8G2gj2)^yjDDh5Tg#Q zf&;h;@cgSMdc=Cq*x!_ow2RtBZSNRDqyxAUK*03?g1B7$NaGH;2eA%D>`vG6cvM}v zGc4CM2p9oA2I58lTSfv%00|(0=S!el`cCfRu|9{FgZ5AJE?V9d{D~~*vTYD|`8nlf z!#ZvGIV-cnWV+k0$Mv`n>9Orwr^E|;gLd~IZwn*#9N;7lo25Ic9$9ACBd%q>DCezz zRg&r7nI5zHNg*1v!=UPZ%v~E)u1Y%dzBgxclZbd{zIK{dJ3CIMPV##0Bzhe7Zkp|H zlSc9QcQM68j?R$-NnQHrx(}&dd z|9oB5!e&{Ioz!MeL6xml`z7f|Q;*Jiq%mncE|XTb_P?!_on;T7RCr5Z9%MBtTf2Qi VH{WExSFg2`;I^M;(JWTB{sB0P1GxYI diff --git a/wolf3d/base/sprites/026.5551 b/wolf3d/base/sprites/026.5551 index 6b45aeabb031dc4d8bf0fdba99b5398362561aae..cfd264841791b5a200d5b7a16da93dfa00e79082 100644 GIT binary patch literal 43746 zcmeI*PiT{890%~cdEdNECR_b8!J>|od9a%YV|Q5QrEd$9ri{||P!>^efq@AK?R(5& zP4UmnDy3EtVsn}6#rj@WbIL9;T{0FLv60ANCX8;&p_YP_|j%_KPiz~}U<=Abi zrMM-->J7h8`uhCS$?0S+E@Y@I8Cnf*DneIf-qS0!#d90in`@x~!LR*QIGk#@dkfuh z=W+6}vYcM&-JnXZ?7p9?%({_Y$mnZ-Et0hQR*SfTqQ$jP#`$Ep{tb^RgyAbV|2uw`?D`@H(8j&E_$<#w(UjuM9s*uS_Q^ zv(NME*VVP4M3l(YL8>-iRE?^>30}ouF<1ziG<0=XPRS{?OPWoyxm$R-QnZT8g>oUd zRxZ%7E4BOnX8O(bPoIOu%dEmmWHEf#t=Eu;9C%$FyfSF!{5-oVyIcNlQDrKgJ-DVD zxKg~P=BsHbv0mYC#(VtPaK*AF`$oKTW*qZrb%seHhHK5s^m49GvF??yf zzWPQT-q0XruO^n+-c~)f2^JEV5%bo()qD=d-0SJvC0hHm@@dW2mT#go(>MC8QanPp z&`rsO1A-hnN^3w@h>B71f%Sn21)iRtKJ~ol7hJD@%TKdkNq>OnrfZhJdaGS3N!%cB zwR?G)V=d_U>C?|w0HxK_)1CzQ_aFa0r*C+{Bd~O=IxFP~xkGN6eSN+ud3Cc1d!i!c zCjnXm4lgge*E|B0oWA#I|G)BA6j=I$ijxeOLS@z0q_^nl8}pk36z*D^*To}HlnOJ)*b8H9$m=suEpNWWU?zF`|ta`fxP!{>boni(xhwo(#F)reo9S zCOD;)jmfl^>Qh&?rmD(<@9xuZyu=<+vz6tT z?D~@TRJluPR?Ye*qH5nDOWmjRgxrcd#FEo{CpwS4w}i zJ+Myi+}5qXdo%LC{2byHAOHafKmY=-OF$kSyZQ6wg^_XRi@amkfMfmbM}5hb`D4i+ zZ+^?pDxdePZbD$)|L;-vd;4PR^}FmW?VR7y(?8Vz$@86)l_YkSaXz@FW&_%!|J)bn zysRtwP@;2kS5*Akb>~0Rq}aa{=wN3ibXG#=CDef#6_2yChbeYObiVgRH1Ibj5m2m( z#s2iMWQEAk-aod@r6a$n;f}`V6ved@ffLs{cf5aT@9?e*O5-zLSL6eT~QO9Qm~RjB$Gxd-xy4HO2J+ literal 10978 zcmeI1PiWIn9LJONC8^Az;3YYhU3L-zqI3*wh90`^5AD2(2bYt0TaWQlS7FG!%oRcD zN!?}bY0D`HR!1+R1si<@(G;oDV{hxFFyAj(sJg)l%Zi6zzx>jdhP?0h_sJ_f2+wg` z;-BK#`DIo&SY2gxlNElD01`j~NB{{S0VIF~kN^@u0!RP}AOR$R1dsp{Kmter2_OL^ zfCP{L5*QF@*oii%VK?l-ucI0@Y{%ByAcu`ug8jc!9JuG1B;h$H`^mnu&mYN8u}eV* zZqGfR1SJs!{@@P&>FrCeKzP5df5@P}G}Z&P zOxFz4AH1{Dp?oNVJCs({saTB6uy6)b+1){J#=qTNKnYIzD2+DiVVH`{dY)*6eCSRHPjFjWF-)+ z0+`=dj0{wa_=+)aa4%#EneY;+IAvY8$ESh51i& z=~O+QA7TP3Xi{9(wt8;&-S^e8rQ6d_rgi#o_0T8|8EIIKRmdV8+U3!`2K@4bIvko(uQFXqx*JrrutVNM`zgJH&VMCQvd(} diff --git a/wolf3d/base/sprites/028.5551 b/wolf3d/base/sprites/028.5551 index a32bd00eb53f2dd5e11330a0d7abfd66c9a5fdcf..56fbe98f867f50a05cec7a00097d766b5ff22e29 100644 GIT binary patch literal 43746 zcmeI(J#W)M7{GDgOIni**pz{Y4)N%nr4j>WU?5^?ws>S^V@9G;s8H1b39=>q1oUe# zcBzENh^74++|$&gI3=jDa2@>5qti8sE_ct*cZyHBD$n!Y=ZbRApSbeIm98uAT;YKL z0tg_000IagfB*srAbUjUd{@d#j*@+pOVzSk5{k3t@*xB6KJZbzs2PFGcf7jK|px6jIZkA7sQD!@$-f(SW0A<}$cDAbKh)j$!sVaUprVl|E&Ky zt^dgF0_Fa9UeB(--_J*}{YKSVkFWMVvj4drawi<>d;P`m`&G-K$an&m<)30PcX{Ri z%HQ(>x68db@-u(-yofe!5kLR|1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0V4Vc^ zbQX7Uc4llozdC!`yNt-5s&eJ_bnH%1%encfdF{>*`z7}u=&2bs+gnnm?)Uq<=s(r% zEh+S0PyfVBTT-nC(xp50*C5T^V^a^1v+Uhd;iGYxxR=7kCuGIKYD8;w~Bgt_}3Yk G&*Uc{gx%!; literal 10978 zcmeI2yGq1B6o%&(7`v=h!YU-4h3&Q?>D09efKV&2AyMmHHZ6TADIle1UC6 z&o~83<>Lo&R!9-&67#`3dOFqW zzOJA1ZN9x&6yja%8|SLctiE1*tU@`qenjdkIT6r@agZ}gT>S4Tl0@2a&>84XAVWmuE_icIOCQ}bm9e0Ls Z)Sj-TmIHJteKNg_ctDIVFdsH diff --git a/wolf3d/base/sprites/029.5551 b/wolf3d/base/sprites/029.5551 index f3b4428c7da5fcbd0ca8e108bfed12834d3d576f..2b674995466689ffd76a0d3cf7cf02c6bd3f418e 100644 GIT binary patch literal 43746 zcmeI3J#X7a7{`yYfE)`H^FlTW#C3Z_d|suQ>h6=7W@hsAZP9miJs91>y!NzyAZ~Z9mO(sODIp{lU){oL5HcJ2db(H#47h(I?-_$~)WHgbf zh9h2zVhQerd_p(<`yuU3j*fM5ALMp< z0RgBLbNL>|^Ny5+!zKWIqAjz(sFbz4hDz=q~n$OaS8vv};)JD#vvKMJ+ho zIWQ}E3T}6RDFUwTik8SQNdx?1ip0r_Sf8o z)@^pW0h?vrzg22BzEb4f?{>)&cDPGyXhk zCu0Aa(R174n?KC^7ZO(9zkeZy(CvJwKd<_~`qwXEm^UE*{FnE|d;)}C_BZ#Top_(O zn9Cw_P?~40NQ^f<8)xC+HXalNF8f|@)|w^Z2yB-Jyo&@#fCNb3u@k6|xX>RQN3MT3 z(07dp({LVz-F(rn$M+>!JbH?8L}A&=x42C~4OH00XvmF-@&u!>FviyQRP6RHA3zwM zI&=N|Stqm4%n~~m>kc-`f|;HsQ;da`?q&u((k$HM31c;l)6gY3P?_2M{(N~q`ef;y zslU?a5$yeo%l>8m@BTM0|4ClkBeB2~tk x_Cr7P=6#fbE4w{^hC6n@43zyf%c`3%OYM2*N!*T~B+ca*Uj1cbiFYWk{{s*xA}jy^ literal 10978 zcmeHKA#~zE5KRK~(R&r)RNz!(&fLRYYwjNBwl16kcX35VVuRbd;DW3p5?LErT;ixB zvaV-ur_;RMKvF30?!6Pkf4iBTot>HeWRr=mY1;Rlri<}~XkSG8D%v;E=tm3?1H=F^ zKnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA$1$*tHdD*nOt%r>xHX5ZmaFGY z*=o5$Xj&n`bsOc;fV@f(9ixznYd@(*ygDs|&GfMX9!G|U46k*)#}VjbGd*t4s#WOD z-$2KBYqmVsF-$}Ce5@S0yLh-dfK#JaXZdi6*f#U#qJhnBW=1OZ*b#u8 zLQH_J&D|n{s8Q|jRPC}Aw-ycm3>(J93@|pxxPRy~W6}7#89@BJ>7V5ciBEx;F_iLiYLV?|^^DW~ScgFi;RjmNOWz?N7X<27c z<^Qm*_?L@o{ffgD^=qqVEKh~{gi!UWENwtr?e&mW`jc-Nkklt#c}9+;4d_nE!BXCB zGUkv0isv4Vs`|oWeK}-v7jrnY-`#n+e~{$fWHxe_Z%L;`-_3@`!~iis3=jkV8w1SY zeatBxr6cA*AG*JIY7v6<=^mPApKZzs1&I9j{ zCj}P%!p|7=WsE23Ro!|`V-BKiL!CeRl=ZUSyl3{-UDmzsuDdgHrg1%~cTk#HwkD!V z&WyIsb*O~6J`>gWOtX&q8nDFoh10T|YVBrr$AS0mg)=(jX9PO(T$sN{RP* z-(~pD$LdLa|AQtSxh%0N7i)=y*4Zc<&D|mE49ZnWX8@Y6=d$Ycr2Q8Rz`qrkZ5vLg zIpBTfs8JH@F7&u)0h~2Efb+&n7J&%}KiU_a54Y#H=Rd?bP(7fW8si3@j<(Kr=9v?U z>J#n=xHGa5RHJqG(7xyQY63H{0uxv9e(2giyVn^@+Nepa>@#-&)qV%UZqS}z4X=Wi K6^WUcgZ3YpZ7VMT diff --git a/wolf3d/base/sprites/030.5551 b/wolf3d/base/sprites/030.5551 index 216853b5431661a00a74db4b388fcd75c09f5f9c..77f2688fec2c12f403daf5ffdffafadf58b714c1 100644 GIT binary patch literal 43746 zcmeI4F>KpL6o!wAf{;T2a-+7eQ@K^>By_RmWC%H#no4isP#_w$Swo#fju3?0?9Cpt zRipPdEuk=q!ihvE%@a@>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvzQ`%2(N z@5jDlZ}c47vG)${8-*9WX0O_J?aiKRyY|b2`$gbIkJS}02IksI{bg&fbzgh{>mF(z zYk%_seBe+25C85G*uB`j`0xCAxJ(JpN@kE})4Gq1tpEJ@W^fbgveOjWz8s+i;n(x8=O<_5b`XkdS?3@; zesJ8%Gv4NBT0hi(-V?{IqXK(}&r{V6CkW9h!O7XlS?}byRSELTdE7emtTMzq^cs#Z z%^KE(H5`S_*T2HXZ4o2wd|Jz{t?RyHPQAC`2(N57)qd}!*{cK%=g`ZyVa+H(e-<~* zlHZI{di@8Xj58l{?CVyUo!-GzA!uzlP#dld>VxpmQ&?K<#IGp~^&fih99mpI@G*EF z!CMJfOSGvsK;wL$33D5%AN>rE>rMb>5?KG5H84@*uy%TB zI-dyu57GC-`vpwULXTNrAAp%;-2buu<8xUgAiW;-3tI3E+RVBVfEh%-e#Z3DX$^Wg zK>`WHkLyd|yghECei%Q1CTRch`j7WHvjk)-SXU3oYX5Q7@oP%X+r_EN#nO2LjU8dHlPa-uYNMAN32HzgyfD)$ecL4O4x!;Qt+k95sKieK$>Y5g-CYfCvzQyFuV_=e+%- zSq|8(tj2!a`PANW_RWXEU;dtcJw#N?<9kkbFMdD4JwNhzYMDPJccU7?r}k^U2V$!^ ztbOw3Jdogj{7_;ZA%r3jS4^-Ze(bo7o6I}e~t15=d7wfpA2 zE=uCsp>eg`^GmMsox8AVQDISavWCkZ^53iI>aM+|qD5Ay5@7zQAM-~wp#mj9GF|=V)@U7gQMIds3H^emD8bF@cWk+G zFX?BhGOW1V6K;~e(3*Y@6<8y774LhczuCNw^&406*PAU6p+0M^ju0rY7rYleqkVA?= z9DW^ie7pW^GIWOs5CI}U1d1Z?kN?hl?JdqtubY$K;_#bb=FW~=2}XV;_%3*AzxDp* zGrExJ6}CN9TRfjc(z2bSBg?sRjaR;t-poe!`})fd)G0!4gJFpW&5H1 U$bOYNv&Xj2*drbTpTH~s1H?Wi?*IS* literal 10978 zcmeHLJ#5=X6h4wtL!lYSHUrgWD1!(v0}o}9g$aV%bb&Th;X&#|A&UiMsDlnBs=-Eq zq@d6OrMGC4w5gLcYK{#A3Xp+XT5GE}YxL%f={;S~$CD`8GTZ_MjvvVT;k)9I+ivN6{#Nmk)A2tvFH4o0(pKo>xD_H=-*4O(y zr0|9R!e0-h5QWQd(Cv5o^W}GH1ZVAcZF{p`yc51;t*zUc<9#B-2vRC$o4xnf;(Dy;j%2qSx0uOdi_fCoQ zxH)bHwY^u1(NcN^hB4NCthCN?teBZ`rdOce66hyiv$w|z*oN^*v~Vw#0naMRNFK>Ya+>`W97B6xZvyhwe6^*JxXwQ59ET2Q zTNb*krP@d62oP=ALZm+ZWc@{J`rYN)^X$iX#JOUY4#4M4wURZB4hpGW-hWt0N!KC|wtbzWiiv(^hGl*rrz5O6P03 zn+9HnwRqXG*C>Gx)FNMA-ad^gDZvJ_$k%k2$$}K{xyS<+0U86!2aN=;pSI}R*^)_& zd=lGv^XJ(REx~|bKrkQ}xH<#R?YDb?aPPoJT(-DaXJj6I@=|{Lg%tnx7a$u;;d(Ty zA$I)YR9N!w>>fEF!J2PVywjYgeALFxBbe^Ppl6l{}TX|T%N6$trB|kZ94fAC= z9lETZk4MO}5ZX{T)Fc~_N9W945E)87uk{RSp>18xiQX6V~6#@8|c^ElIK~xhJj&B zvaLpmeyJ}iM}Em;_Sty&_LH$J>)~~gOa<})-Up^l)UM8eYrS@!+iU0R%QNvxumHxx zt?zEHejPoIehKtv@ni?MsPk2&*jeqYR#!XsD<6`*gUgRcGWpwztv@*T)-_kfy8y4_ zdSVX@j8F@;$ktuYf?BA-8I?vib|8C%HIU3vb+=K9?5oc+eWa@njDZ%L-#mEj|C+~p yTi5TDKWf|=<^V9pv%t@NyjO+}-JMLAtA?s;x=79I_xAHetO1{B^$+qttA7JD=f+R~ diff --git a/wolf3d/base/sprites/031.5551 b/wolf3d/base/sprites/031.5551 index bd6272b230edc8759343e9fa121543dfeff7893b..0c49f822c6cb2b28f8f30ea7afd16ba2d7e8ac48 100644 GIT binary patch literal 43746 zcmeI4J!m6G6vuah0}3SIE=m!wxJt!gR9vx@ca}SH5?oVb^ zeC+JV!m=!XW)qaYOIwq+E!w`I4IdBy0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!XFpq#5 ztFd{i=2fJ|5m`|Q{5k$>EKlS~F$u8mgV9E1qY{i{-|5dAGiDsez9;q8xVPcnv4T<5 zQ#~`3&7*>SFHdaCwl>^*)*Z5_S0n;j|GKqq-6NamZz}%R`~~?q)b5FJJ<(3_??nYs zpY`_~10rPK=hbKVCI$j)PJ27v4@M#sVK53j-($V`eDm~c#njf*h=+~!YvZ;r`^LssB;@%M8+VlHWCtK(4>9aDP8BQcw0UO()|4&hMr*!i-wLt^IU=pD1Sa zUy+qHf&6$N@Ju40Xmle_^8I~I|M#i>seHqFL?)2$?{&nJ|I3MbFG+Vz9uGKe+0OcV z?)Rw8>xqYCp>Sm*YRY!t&5j4msQ(ic+}C%5ZZg&jxj&G7PRqV8Y;cWEpdue`likW*_zld4CY&&f; zRbH-&^|N}a{jmtG@bV+g%t_;4#L=Lr`g!J$`T%+gEUN!?{V%G1_@7(9V%L8W7q|Ww zz5f$>-AB@BNRT%mAIu_t3as&w!da)|pkM)tfutGplztt@U3t-&1O8i#Ov<-kUws zlypjf=R2}DAf@Iz6Fc5K-sJt1hj}E_AQ}XtOnqFB>*w{SJWM3PF+dDx#^bm?W#s!= z%Q!FzV`@P%-!rA1Nt{!!>q5%F9Q{1wrJ5Z1+OqghwWfdb?SU!Yzeq>c-s!#b`Y$>Q z-+=%KfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9z)cWPwz6;Hy7OK0$bL?132&Cw^}SN8)Gk zvHbRvHpjsq_L9~TSE3I4T^`66;&V}tI`ZJ3vW|lVsGH{!6}oquVs0!B#i7&iYk|j6 zIM1mII;O&Rqm{e^s{Jk6D=+o#6A^s>XmEQgXu1B~?)_;6Wqh0ZZ}a|sjec3ydQx3l zyE9XD{885K?5wU-*>;v#2TA{n$2D$ucI<5Z0KYw7R!RJtIE+4>tl~IZyP@CQFK4X= z^*Ghx+Hh@8POlm$HJ9m$nZQ621V8`;Kwtp`oRaD}rR!g)-hWzqaLwNs^1ZFYZ#=8z zcdt{1UwcohyU)cBA3fWy?rvROgI{~ppb`F;qV=A8y{9`;(1`}hzE0_NdHH2L7zPZxQe)m;*ck8~~lPk61nsepxl~Z!I?%U})(!KhXZjOU*fPh;)cuie! ztB(%e{`%cZBhD!eo6;M;Zl=NAP5!6OrA4p&ZtvIk<;{-}-})e52B-9(b2L@%6?eFn RKO(>HOcFb_H0E_3{vYs(^0)v1 literal 10978 zcmeI1ze@u#6vuNQQWtS>Xb}s=sT2nXhfbcw>2Q$i)=h5oFOXX*+@N?4N(G0Gu8ubb zEEETa;?QdmtYC*07rUuLA?A_Bs`M$# z4PNnw1dsp{Kmter2_OL^fCP{L5xr6b#u z$pfJVare2p_O4y{JPRk82Qu#0ok~Z$(3~PW_{@W_S&z1-dm`s${AGLe>?nHS#6cu_ zOskO^|L1MuCs6471N|uWIL;>QAN582$FYiHT-*fH(jVSKa2DfM+$x!ID~f#v*_8JX zs3&+iHxmOdz?+~|VfMqllQ%>;H)R1|z>_eQf^6xYX^2uXf&Y+0&VCHAzMH?&(`pvl^v=GgPFc+d(0-!3{nM7357q2RSuY*8s+UJ);;QUGPdDsm zMrx}2C!}FN@%1X&Vok$d?fzx`1I<`-?wQ>vn1+#d*AzT);dM|ln}uc}VcoF>0OX>s~NOI74DL4lmTqwoEQF2g<`v3HzSeE0a39-StzaEY)MYi<+z3+YRd+&Wx zmSy?5m%{!hczuD_Q@p;$iyH}$011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z2`n0cD70Eu%il323hj2(@q5<59@@iSVktPIpj#A1p$=6`wSpZ}bm+8oC+MkxGjxV$ zu@sH7ipaod4;oJ0sRs?iK!e95fuJW0ie&_T54GIVUQkw5$JL%;Ao`Qi(H(UlRv;D- z$6(~zZjlIx{y3gW!010f&39Bw)E7;^HBcz1+KEj|n~&819-(1MarKLBXEzPyIu3g9 z0ipN>DcVEpC|>=)Rd3a)v~Ik=76!5}>eZ=wCi?OIMD(kN>R|!(pF*F}|N2tD9FbP> z>{9;|(XYLN>bI-|@$jaPKZ~7V5&^&~%DdAJb`qI$YS+=mpwVurm>#r*XZ?hN7M&9h=(LHa+Og*k`20M_Y%dhZRUc?IZe2>%REvg@cb62dXjVF&1F#UVNWv`PwUL-KSPy z2smx=ePRKZ?Y?S828Hx{sr1WtzmZx&V*d?Texly0z6;g-;8@r{lAO)<7C`_v;7}zjF%!9 zhSYynzrw8Wb-G0PVXho(TzBST9TWY@=s)#;=o2Ru80}k5wg`>ICg3+B%<<&>AI5%> zXS?H;ez+mZA62qt%UNs!68j|4A7*bEeu)CF z<^bGmT~GVGs03`8-%R>_nE{mkPiBA5Fas(h0h#&6>wgniJTD;nu?7%g#uv4pmXUf{ z70I`O>sr9#wgE%H%zT)?$vmL6{bbccX1=mMQ2asG`;R^^su#pKr)4ABO-r&8jNZ?# z+t8jL0Z#V*BM-TF_CMLf-+Ux%4db70{w~iT0TLhq5+DH*AOR8}0TLhq5+DH*AOR8} z0TLhq5+DH*Ab~|BfE6R;4cacU2kL&~=jI2Sb5yY!VbxYQC94-X{8-g|6@NTHCfDkG z?!oV!gvgz&VeN2R?f@C3{TIE@w)3lKGrOC?cNemf9mm7?BwiY*U0KJ}$m5vV6~}-0 z_oF|K{yu+m{zm_%kAiQV?}N{S4du-3`kO)TmEE0?VPcm6wI@`$X@U){nzckY;=6*a{wpy?|xqeMoY$je6d;HLF9EiOM~D7ZD2>*KsU|TxXN0SY^7Pes)9|D62k{1|+x?l3xvmb?9K zU!q*6=9lkMSBR3@hz}4W-{sr#9lxggPA0;;?e9e1=uKxwUv>$43Y3&hW*6Yu>zoX-KSuH;g$BzV!y_NAJlh>}+(lg-A Gu>A`;!wt9q literal 10978 zcmeH~J%|%g5XaxEE}dzF4OS_y5WF&t?8aOZn`5ssrQ4bE8YRs>SRql%3tDU=Xmen> z<-zU|a&q7cV&ZiP2)T zp>Y5g-CYfCvx)B0vO)01+SpM1Tko0U~gr3CK`|$^{qt zv1OU-5SZjLQjroMU=Uj$+=Fa#7{Um+7x`9@=qDKfh=Xi0P%s94P4QFLt{Fr=_e9OD zWkFy#8_fX5U#2jc4S>HCz@MQ0-K_K((*z2(b20zs$;6RIfGqNPPs8m_M>t zS<+8x)ES&&2J2CebHEX31-k1*Elc)E{Xa9{l6z}XXH96q8udNy0d~Q9GeG(&{)Usb z)IYWK+tAk|AgOe+H@bRs(Ok`1c(3;AOaVg zfV*Yxg^iO&r?g0(Zx3-@8w%**PCL9ee}s2mOYq@a?^E<%JY3{lBpZ+6DcqchL#xh; z^XoJAAb73U=6bkL{aUf3_>2EI)f6v1zaI$O&3BDQTiWKTqPQbJ!sT)Fj5&Hob6P7n zb44h+K@%!dGdO7^I|IY%8gpepFE5+G=26MaoflNzxuuRjZ}{guKQadDM&SOViz@Y~ zVdlC<`L7yo{*Bs@uWq;P{EAQNX3ov0tJvA!K2w!vZ`Z4v={Nqo@02RlO%O8*vD zPCJ2)`jV7P!`0PnO{%s68n4*YovF-JkPbYfnycd-8x}KXxc&RO(e0_1pG`wrreSh+ z!cLf6+icpV&A7?Qw#iN1+1;4BK9xy>!0w1-i$&cM+rC!o5aBv zX@>W;un|pale?$xJ6Z3i{6B(dDZ z7Hhr$pB?{7O2+(Z;f(3;cz#CIc64O|DoP-+by3W;=Am%&_kzdefI{FvRtp68~+opXb z$Veao?hO2$AtE1-Kt%79Gz0F7|G1`~C4}XpYtFkr18bJ8U`xm9>t9Rjzt%rL|FzQ1 zdB11cwayjPI&}~J2Z@gUz5E~7aEv=@QyzW-I#$_|Egh@s*R|hE`ZWSlKG$hANWIXH zW6cS^MrfAo)W25N+iYugv@lwD_uf5p1l6wByZ(p%7X-Zjb*AfTXF=6@rKRpYvG+Rk zL%nLB({-|Dg=g80%|4qwUpPO!1XNqc>p>NU_}6>AE&;>=J_GXll>j2Z`?>vBk5irJ z+Q+{3={sKN&psP^0v-SReBOzFpRd}p0H1;(*MY!+rvBEs;%AGl3F`W}*-QF|pFnqN zbo}3a*v^CPJOAVEd;G66Vc26}Px8K_uo0G97(J{zqu=cBsU@I5TFBy_!GGFo9vtFK zxX<%F4>2#oa&LW99>+JWgF{^jdnET9`n=b!3EfKB^C}NXfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq<10fBhJ_cZ9Y`mb0#G3Wus6X<|xpu6PJK^8n3>*?)bWaYtUsSJe@8e3BWXAl0SS+D`vEmltmqm0r-F$1;pOa~`hA2c|nA^~A zRo&`azWy~A>2G?lub3oyb(ZjJr?&n?SZ-c8={P{=+g6-MFU_x>KYFAw1C30guO=&# zHgBh8&J^RylkrUDO8vdu30^-DH-evn`S5q>ijaZUT_mgMVw$$0y@oLu98JO>x1{>C zsQn$zNEzWj|s)P_g&ivRyHes~>L!ao(&-R&GgT)=eb0|yWhNNB5W!;>Vv3l>TdmrrX#A~?znqOBJZNU`Xl9aXk_sMwwD#Fp_!bs%_yK1mniFy1v*Od)bNTPh l@`>M{9B{?GrxLC>(ldj@gcMEjsAz7QOy@I|a165|_!mgBVfFw3 literal 10978 zcmeH~KWGzC9LL}5wWP5ql`iQR0&Wg<>(o0%f|tnzF~E!B7!(5H4Gs9Q`+x^Y`uyE%r(i$pyjR{dmb;a_{&3{yy)$;~gc0 zh<`K+*B7B(fp!_%0yI3301`j~NB{{S0VIF~kN^@u0!RP}AOR$R1dsp{Kmter2_OL^ z@UId$h#o{o?yXJQoA#zn$U*ci1b1NB7F>_u0Bs6Uw2St)&i4+RU=z}~Wp^Mf+vpm) zuO7Je3;LsDa}S?wDoEp0pksDrVR4>FX|rqUzB+LA+h(_8-`u->SOf=jET}}tJc*E? zvU?a*{CB|Xq#Jw$yu)t?Mi=xOv~B7%c`{7hXMNJsceG3NM2t|s1SCp30-tv~0(Gw7 z)5kf;SJ<)oL5l}d7|c5!z~s07(AQ$yRfg(d{DVJX1v*+Z3H5_A)So=k=l2Yi1FSqJ zAGk1e_Zb9geC)x6GZXk+gfs3XAt&VR_^cX&7~1m)l({Z<;gE*2(;^{DX{LNsW>xNC zXbyNH?t;KbfS0ZK_8H-egI+lf3wM;a;@t6HHxm%XKzDmLaRY{$(xQ4+TvZ%i43XY}VKlDF=~} zaxDKK-Gn_&T<#|W>{1jG77J5rvBCxQXn(->1ocpV8St*r6A)#2u^wqC;-r_h5n`{V zYO&Nzwwm?&pM;I4Y`2=L=A=i&W1fg{Z8fV0viarnsdq|Y&NGKkKN>fhsdeR8a#eWv UI diff --git a/wolf3d/base/sprites/034.5551 b/wolf3d/base/sprites/034.5551 index b7fa952979be5dba812004da978462d030e61291..8cf6f4e0ca2f7444f98b367e118d2d864cb73ea3 100644 GIT binary patch literal 43746 zcmeI3F>KpL6oz?#1E^E8#hKD+K-QLXj6-@HI>3PU~5q7354-4mcj@7#`XJidTQi` zc34sX6461ucwV%>Qrj>g00z1#zL&_*%}l${353>sds#%g*eUDSz_)#A*TMI%pk7P} zY>R%_zVH7!ep{HF(68HO%k|MamhdC`&6bb)btudAzfo_zPU!c2;?M;BqCG!0-UfPQ z^?xeQw$7pc+_$+#@&8Eg=pC1M|4-15EA*mX3EdyrA)a`mZB4CbCVfC?{~HqD*%LAG zu`caj4EwV!A0sX?owQR*{qj@~`g3ie{}%$O=#;(<@qLDV-HzL3)F1Wmgb!`|{-HICYI)U1QCfxidPYFBiSGNbbLtOgr`2+LUuu1f zfcGf0-}QdRU#2657?C5wM=X?*qn=%v)t^dWOy~RbUk>%-1hP0d^slN*|LFV3`jOXV zOQK%lrtH2K_2>mL4p2SQ(e0qhpjQy@>SnJ0_N>bJ(r5*R=!t*ue!S3KXG|8_WGUuyBHzKcC+C-*5>Md<>!`Fztq3D>XT>4b;`%!r1stAF>CCeZewM}NtBPktm}`WlLW>+ zT4cL?-VgDb_h3b|hO+sYVO_rHXN^gK1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNT4_Y+l^Yq&$_5HY}dSV!%vr~VTZ^l7<{S>(X@jM|9|lP$OLT7c99j_N~`H0=tr(l zD{94UTe~RFPQDH@o8?`mkr|jlgscWLuzlG!19{^idOi8fi#Q@4*AI|I_*kvGCA}$c zkszxk z+<)7@Nq{VRWKYEY?SZ@oy{LYA?LT~Px`ND|RiD8tx$G~I(fQhSv6LL|u*ADP(`$vc z=HC@s#og9H;jvmm4taRXK<@7Irp-#c@Zm})T_J92$?27x<~4kg#f$q({;uTiB7aj? zr$=Av6jxl$*Ffrk`$-lJ?w{q3>Z+^7l}UBKnEh!LSz9Zr<`&(e(UPx(CAO8%Ta0dA z%v~m51u^*UW`ursbgeG*C4=r--F01py~#9vpVtXB*m6U&_jjT<<^Fo}OWa?z%*wYb za|>d5$!V>BZ^(bcC;u;9j!v%@a|`*Mvn-bJ{1uMO|;JuUjYE(wqT z36Q|YAYkY1{0H4<^nYgraRnpUI^JU)V5U_qIu2G$tgrB{pj!FHb| zcM{c7tv?#is>NpocK+vXqkE-&rTy%|FUjum6Fs+3#0zod&wF7cBIA^7Oj6?a$%@hc zj7z`g7b{y!AF5HDOnUoCJyaX!kyMh}T gzh!T^=lb4Jt>Vg+b8J)4HT70!vTMwr?C3u_+MA^-pY literal 10978 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 DIPPF* literal 10978 zcmeI2Ur19?9LLXgE+i5Sslg`Rhl&Mz=pn*}5SW&MvzKj*3)To)FXi^)i;00)JxKYY zWW$!!8U!_In!OG2B~08b!i9}iLUZ=eeQE03JzMAJ?K+JGcfq|-o&C7%o_o(d-|zXH zKlhw5148K3FNcAq576TfJ&w|&nI7!J2rvSS03*N%FanGKBftnS0*nA7zz8q`jKJSP z;2Kws0@l|vDEID&bzGpKmj}=;ZHMe*9fJow928|`U+FUq9}SuY5BfMLtLKS8-bw9J zORgnnNb2KYw>oGKJR5kSmxJwg_vHy_FW&Cx9(eZJ)pFmEgfp!f$hDtsEBV?bLo&3H zCp__HO;JjwbZMJQ;Z7FF^^CVB~MSD>YGZIghC;`ydt{*D;{kGY* z;b}o^zuI931{rD8{kBO@{eD|U%9EA8<7lNXv>|_cv)-&e^)GS#Hg7gwj2C-KdGejM z0GvS!Xs@r#d#)I?eY}{Fp!MU_Lq>AN6#XC$XfP8(`z!h-E>9xV0gM3XgWyA%1%n#R z#InBPKvot+2s#sr=Co3K?dDwR{hj9S9=ycvBdnqx;ScS4^(Emg+khc(a1&&4xC36524QT`^NsTlVFZ z1u%e-0DW#L0U@ggHEj8^y21cF>MjQpoqTbYc0aJL-n;IF*povL}mQTL-@*ptOjV>a1)=fD!nY3G6d8 z7#ocB#y_j$RXoGZa0$9vFW^+wMLfsN=H9udi;=r4U9h&Vu7m*nt)S`2u(T)9GGa*9 z^;K6w3eC`6?$-x(t2r`8ch<1GXyn#ZbNFEB<(kdkZdqUYE`7@Kt;304&Os@tg#gc& zxGRA!y0?tdJ+?si_6}~cisv2l`4Sf)QNnLtBv%4ZfA#tZouI8Y!};iMEEhMu*}SKb zo5CO9&txh;Dbz?y2#HHc*d;|gQ+QQ1Jy{}!*74DkIe+ea#1qGlt9%;DNTD@j0Z-D^ z@x3aXtE`|-+2$-m$CP)u#qV|w9ji{*?X>upJC{3QO|skxCCyo?E8+jjeZd&OkBqH}7uJTw4;@I_%tKpk*e6}KX zBU-KfcHFjqu;N{H7vD5lw|a!rt}eg2T=OXB>8vm3{bJ0$vR_!(zOaC7m&XrnC+SIR fjniIpaOaisIe$8Bh15Cgxvg)6YOV7%XKH=`y3SC5 diff --git a/wolf3d/base/sprites/037.5551 b/wolf3d/base/sprites/037.5551 index 19f2360e5c2c4bdb5ba62717276c364e9a956c10..62ca9d74795d0dcd12ed7997581195feb4db9fb6 100644 GIT binary patch literal 43746 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 B$`t?r literal 10978 zcmeHMO>Y`k6rHG2Yoxjusgbd|s9Ac+ayD&1{TfCt8mJX{x+?6(JJ>NhK#js+xfokj zj9Jm0mn^-DDv0G^R3X>uB6yj<(R=3dI(RY|2sBaE@zt0Be(&6S=6;-cc_2yBBiHqS z-iPS=oUSkE`jRgH$7jH2z-Pc`z-Pc`z-Pc`z-Pc`z-Pc`z-Pc`U>XCbdAAKs$1+v6 zX}i4L_e1kE-+aSvO~ejgR<-VLwupOu1XOr&K{5X?V03RN_K7D-(jvda$9T5zGpL7ELT*;GmoA>ii z8bLDlfUy~M922N8Aj7&!SLrD8B6=&7!;58kFp9onqqnp(#_t{WDsFsu z04~^re+7ROeXULSWAR(XfG+NfU?8BU6RCvv9i9EtBg*HEEONh@ci7j?#?g@zC*{DgRnreaL^Vec_Lje^mYd z2Yl*2=zZ@kejopx@DJrdv(BDAPXDd7t>X0ik8ZH&1c2sbRe5X9j_>rLMO9Fkv?cdn zs4u7cLyZa(z0m3ZLI>f0z!v-A`6nijgDNoZ>%V>ZN$ls?V)&AjAf<)=4-*kPGtV3U zNeqTQxS}tLj|m`DA8QOKzOQ9R_o3UP|FZ!Zou9Ae;G+VdyrBMU)zwgQcIP7%#Pf*z zzffKRf6?jB-0=*A{$$NZl}Gr*3Zv6Jgz95e4DC5S{lZyqo9C{e2EhO(@JMwMzEvFI z+v-c;i^%aRa@6Y;Ud`$Q_W)F%?FG%8U;|ngdBM36&{=r=QH3l@V*)7gpX3vVd&O3I<&`8YL*?oHyR~ABSU}wac?7gqaUY2@xFW+d$cxfhv%C#=NiegRhlvT zMd%JS7oh3d)nH#mr>*}cM(0#?N`o^Zenzy4O3o?-GD@zieLVF%XM+ z{@B{Fc1nX>&8Qhk9bEL}X%YNltW(sHvY1WWuSK7}P@Zqz9|38NLpt56CrM*i1v~yi zcQ=svNbl}~ftl8yYwa4HlF^)Q^-d^$101}Y^*@xzf6{2c@13~uR}&vb?vG#JicQnA0Bo$1Hg||HvQGG$)jOr0T2!DN14vX9~6{#i<$m zsR`a;bpJ>pLX)ZmT21#anHpDvRnKfbN@c6BtY`IK>krL`CS_mdAhWGsDoF!UeRv2F6Rtev^U~fSos=4ZOjmRFk)TB#>ztlx zDk}A=3oY)-v-RvN+JD{NKbWxI*#CuwoV5zn>2Us)s>;=9HR@DLd99h>HLs1Dj@7E2 zNul`hOdZ`Ft0Z;8D-mb!q%kPejLUyG*|E~r!JYRz^@H4{CiY3{e-ySe7qNZvP<$py b@fF^2P}sJgSqFtxy%Waw-^t%b%i+HPjK^hz diff --git a/wolf3d/base/sprites/038.5551 b/wolf3d/base/sprites/038.5551 index 3e44f54d8c096429997556df3980df4b2a1e721e..a56389ba5caf7705b20f4dd5e818900e0435a956 100644 GIT binary patch literal 43746 zcmeI4Uua|3oyV2f?AlpE?BrpsnTPad7}DDzB$^O{vJ|gXLKq1eB0W`l%3MO}h)@<$ zN}?_86p`6dncY&EWr<8)DoW_+VPV7)iWv6A+0w23RQYLbLTE%Ef*t}j%d+b|AASAH zz4q81YbHt>I6heS>i#|7@9+P)=jwq}D)ply{|~tD54rzuy8rLF{~x-4|K}O-40r}S z1D*lTfM>un;2H1?cm_NJo&nE*XTUSy8So5v20R0v0ndPEz%$?(@Cun;2H1?cm_NJo&nE*XTUSy8So5v20R0v0ndPEz%$?(@Cun;2H1?cm}?V3|wtq>prt_YjA7u%*M6uweHns zyVfd#u!;buNaB;O6HLKmsMsLs?WHzeZ zYBy@G*Vc-y;z#XaTU*!`jTzwRVY}Pw4eF!)#9w{H`MQRV1bw@vwiJoaFP@QW-J88@ zU6XIC2%c_F=+*mfuiD+M!@#g@nAipfI=b7dkM?$Gw$wL$_69n#RczPR4_Z2c&o7#V zKkZy|D8M55wu)d(qDKP^e<{zt`Us4@0b8Rcys$QGqYo#wVVmo(6?f~>6kT)J77Oj# z7oi2uZ2V~~F=S*6&`0D79z(QSS6eHV@~pAP8u-%@+HqQg6_6T!v_vdsHim5&{Ja^! zi^Uo)St6lQo<1JmO8G)44Do(YZDo;eIy$|X{NZBQu6D)2-VWXb@A7#vfEPpS&6bh2 z?0YK82S7_>n_3~957Y`_yp46X+Ln`-rTq2c1G!S(*nnUwm-!!EM*pXM)*a_LG@UX5N^M8{cWmmBZWZ z2;09tv;E-pOp*bZK;H~~##!X&!9a{(dMlZM8{~#lNDbR^#oFsLcedr+a_-Kp$t@hQ zKC|x5{ltB)q5@w_JePX<$DOV>-pWHlJQ&gEQ{+o_zBAz8`nGLK^*g=0FXTz*s z3xPwC9XIe!-kwf9Ert#lz|&v@mJzYUC*XaG`Dyt8@S|&o89*>JWLSi$0Z7zDxe8{72be)Wj#qE3hPEUk)U3%ULa3 z==O-%kEbSS@^bh&WsGE!mVwY0@^pK-KM~BlC#LOksdn6kCb> zg=#v^t9Fqm5>$;tML?}!jhy&N$I+81_{(hU?{luO?$(8$V_{RASY9zr^wfFy8Deg- zr6bvb$(Wvz(^Au_qLWq#BYj2(cI&-?`BBwG#sS*J5m+=eV~ieIuh+m&4yw9Ic@Wtp zEgw$H_R)QMh-}CJ)v*1wB2rWxV19t?AZltmQZ~t|+M{+`uOU~kiKQfaTm@flnYN7@ zXe&9hA|D

nH!($`S$6(NZ)W2HrfdaBy;8WPtYJb>t1eW{oUxy(Y#$FMVOJ&VrxQ z@vqmYjj%S(Ld(%Ts~J=?;q`=`>*H4r{%+B$HtpBw@|+|D*DeHG;^{ z%X=A8ju3izHhO6_I>=Qkf`qykMq~|#^<4I&df8A*%aiDJT{Ou?7P$Vj(Bo5K06RvC zlDZ-~kr|5xg(A86a`XTC&bjngjcX-Gk?fr0Qhr~tP(FoROFq;hzeZNjl4;|=)?IRT zsCGDNDJ~m+i*<*Wiu>S)2R_k`!^b4QNps})(Fo2Yrji@TUSuiYM+5LE)095;FR3GK z)q#=~IEaJT1rk+;7khMDlZI?%SrYve6Ag3H3vz~eLir5gPe(+=*k~LDawWTQ-Y?jR9&;=>@$O7Fnc5ufU9EqYJWM>L^K^GZa73e(66) zDi2}{4PSzvQQR}#Q$&!55q`Yzv~obJe`UkS4=s=mXzay$t4Pcqn+F40Mdvs(xN}W1 zCCj%6A1@7G9Q)8bMFgvpi8`Cvx$@l_+1%uRJoi@4i}hmD%I(YwkVCT3Kjdf{AsOC1 zGRmgT_G$Q8+6eG``EG5lJUM!eeG~gsv%&%LN6&S4^;is8?`;Ik@7N~vYm0*B>;m6C*2aJ256L<%jG60KILL~I` zQ@Ov@2G|Wus&>+-xyG5mV{$dk5d*3PYbL=5sb@f8*%1?MlhF5Sx9UFXqDJ_ z|H@t3fqtL|lQ4h=#0)6^SC(t|t@r3h+$_2e+sbbZzmDcp4V~9n%6d%x=0Sl0e}3HeaN&$q+)&HK%SFJ@0`H&(_xI1VP2KmHO1l!;*Z>H*e>MbqfHHS=#Ql^bB4 zTUl(EW05-Ob)3$!(Ie?Qev_-KCFQTkla#+?e>e0mI_)@&e-aB21LDBq75BxTW3Q5% z;kJIWr0>`Y_;s|7x4couCwkc_pdMtqP{0F$Ls39YF0%q_%fbYf-QL!;IqJQ zda!ZeY0*;~38J4zo9x8;PF8fZp~Kste{7llp%zJ^=Lg zw{eBma$^q6em=e(mKFWK^El};45>+?rqkB*`&*82TWmbg{rkmlJg^iCb1teTbj&x^XISN8So5v20R0v0ndPEz%$?(@CQwiu`m}5%B-bQa{<56u~VnDYvt-vG#7l9Jsp&}Ut^(Mt#)gh zwM}MSZSu@jJ)R(Ehdf{Hv^KN!sa##i-QSyGm>Y)pohl;{IVLXhh9UD`>Q$=zfV{ zJW`)7om+eKUmpGN+{N=3&VP9Boku&DFPy)4&@P<+;M{*b@#5uwbWcVqRi0%r|7+A= zuc0fG{C%}E>W})n_0`O3W-EB@u|LjSntkum8<+m~h1#0ocx#)XUH<_aN;Zl$~uDzCjxA@EA$JuTX4H)$+Ri3;|Hbbmj<>@XG zK+F4k*EWqy8R^XSiYK!>r9)scjS!XG_>kW8tj&x8&Yp z?eB55N_D%um|H6%N1jY>mv`&3b*^2?haG$R%{{Rd?2{$)6R;U>w7zRUu(?js8rKYw`W_lv)>>48}&OaSYFM99dxhT z3p>c6+U@VH*NFMGO}r3#(P^QN%%8?vAtj`OEVw^s5xdUrfAPNAA$GT3Tg`A~?!eq5 z-u1&Cf(G8n^g+G=FHZw6TCi5cLZy9+x&K_54G*`Iy%F{g=k*a1K!%d^YKHe`rH>#p zd7~M&ZZic~qI>iJPxMIs==0gPT#t_LL;hg4UTu@vZl%25#;=cRoAd`{XqJ4fJimHd z+uW_w58{oEfP4CYM?5+|k^a23a(oX4&f17SyLDLA3`^$Ck>R0R%)it8D4AIXe{90B+GOpjQAS744R;K*=n2FA$MgDdWdhv zUhMvOKY4&s{-w;}nHe{-%*8pGfyTn7vu-r^_s-(DE7#TR8bviSJbHva@b(DaZ>`A8 zA>tO12dzL3e;K@ZR%6Pdt9%50}4v`Bz{2_}s_mo^t=R*U!E4wZASr77?|MuZQw(UVVM^%f|CR z_;qc6;l1#^%xEe6^jE{)UFe2?cbWX|qp5n2tIv zGV|l}!K>rndI~!hQHix_*I%M5nGF>lS>bm1_=<*cD(=mDv#OqX2aYw%U}2Tq?f8o1 z7cH_rBKdZi3X2@p#&*c7$iT_5DsFV^IE`$(S;=Jl;HBSDlbmVPr#fZ+HCeR#&BAgi ze|-OUT%}j-GW(XQfecu2pEH!xlF^V+{&wZ9ahuKj?OfcGO*aA%b}CgyE&o~hXXTg654-z}*NQI}f8w%^zbgLb=&Veag&aOVM&s9xGLW0wSX#(6GtJDP zT)d;IZe}{I^M%(cuN5v9E`H-;;hpH!W>U|BMz{O@POti}wWp$|qVMFx3bqj6qtl}9 z!}|C%{g3yf17zRSUllh-MV?zq{PH37IC{fdTO2_K{7CM`l^a)nJRXH@Ec`CJUVpp( z^YY`(w`;EyUnxGEAJ+v}Zk$kw#P>eS8tlvkX4(1h-DWikOBYMq&V~Q6^#8VjG1~wD literal 10978 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 diff --git a/wolf3d/base/sprites/514.5551 b/wolf3d/base/sprites/514.5551 index ebdd1e6c38231172a8750a7fb26731b26cec2fd1..89e5e4441b138b24c3537de9c25b3c94c7d7eb31 100644 GIT binary patch literal 43746 zcmeI(A#mDI7zgmyQCA$eVRjdZ>R~33sRPr?=5iBTR4)>-2_&0p9k}5d85vnn1DCj> zIuyxWxm|CjS-!n{_mV)n!LG^my+2&85J=wp|M>C<<#Bj$aPT>|947bQB+I*Gd7mtw zk_8tCKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2*@gM7v6;rv2XZ>tO=jWbr-IaYa9ngprioHzv!td zAo8mz!16~PRe*{D4-`9&JXHlmel-Qs`BfCi=T~hU*vzk%z_$D<32e`=jzBg)jez`0 z?~C%E73cG-CXmg)4%wNIsDX7TcMW9oM_yilJ{`&|u$f;ifqZ_d0F?x`=T}GIvHYqC zJf2?-f$jO}+$TE@1jeFABC@>~Y|BsS=^_LuH3`t!fm{Ol{Pe$IaS;NGo}2>zo?lLZ ze13ZW7q36nd-@ZBd^NBwzYw4ikAD`Rzm#9DabPn)%gJhhj(?G#rI$+}OzNAmvP$Rm zP8qoX&o9!;B+${j`u$B_VBVUyrZpx&w?%ewPnLJXp*^zm`4>IP&jcb*+cM!wuRBv-EE^6!Cpn!pfgx7|t~1x)QF3w(4ehXh3WzvY*$ z2A-NHgvTHN0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKtMf#Gy9^`KQ1fxnY|7jH!#ZT z0kv;Au3uIUZjxUvMqYV6VC_fVa#)T5Z-3D%rw6=!b5KqXc>B#6>w#TxCGz&qeb$5V zaP_^&V}Z9%GuO)KLAw1idLY_AxsT(Mdork-=7lyc=2hVBpZjdS5SuesHyiz8dcfO{ zJjx%(tOn@&_+olsSiQ)e(JT>j(CE`EK;IzOO_~o-L=XDM)GC{$($z0J>{n}nQEgY- z#q>be>=_Br_|w&^ZJHxJZyhy`8b$Ts)gJ*i2Vvf-w#@;Xsl<9PvZ)%L^ZY>9niG4* zUiIuuiK2Q?*4Y=@g#ZK~AhW=vHmUtjzSpict~B=FL+ClKw31-mf2)JF=5A4a=E5@eJRHu5X8f zN1x#v$=RSkvIouVe)+w2#d7K<{i;CM_`2u#+pe@L>HX@OIY_UW)IK;}J-sIVY<9bU LTsQez8U=p?!61@e literal 10978 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 dh%dQ9?zlM$`Dop{@+UeD<2bBoj&*;!sMa zBa?KxRkE3ar!D1bvv_9d;o|9XuQlI=&{mR^-0&j!_3>LF8s+E<4P+zs)R$Eo}Rrodj?YD}pTCSFbgS&Rch83Xt z`yd+!K%mjk2hKbI!a?7xmk8cvhc0ov_g7IENHy(Qly#r~pd>kmaX?L%)H8 zpoIj!8*CUn8P!II2fzSw_YByJ&^&{sgW3q{Fjr^o04TUxn0xpQ48|IpI*c_}Th1S9 z;2EyQ#zCMDia`q)uyYXT!)d%sfvp2qQ}nR<;WyNPMHPTRv_2aLfj;mKGoP;kb`BO- z-`q#A3RqNu&2C2(B!C2vz-j`LuzF7X3|UnzJ0Cy3YGkZwKi)Mi9>Hi3&*~23W^R>I z^tfIjUd8r|fy|fra`c>}tIb?r9>_$haUZW^*l){dhF%H z`lxhrXL?Mp)52+b2OM{$Qy*>7TU~e>dd5W}T;3_R1T%b^_vL7(Nms|3*)q>#2&UOe zAHgB>_d3BWH`7M2^KgHVgJ60_`Upwc{a<4upOmjd6g_EN5*kj@eir#_jhi2b??2p# zi}L8%)~WKPWW@V;y$$c6iXL}rG;{El4(ljxMx1t<>$19h?rjkF^G0Pc!n!J$(dTn` Qr^xTU2=Wy9OJ$M&1I?236#xJL diff --git a/wolf3d/base/sprites/518.5551 b/wolf3d/base/sprites/518.5551 index e25bc7f23cdf1677fdc20ca2bcb73898dd950b81..2f3265d10e67e07f2d2ca3d7981046be43293160 100644 GIT binary patch literal 43746 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 literal 10978 zcmeI2PiWIn9LH1ekX~Fx1`XQ|!GjCpVaJ`+f|pkWlOV$uDH6Pxo4qZ!5m9s#%Tjx2 ziu90E*HgW1N1c=U2d%Rf#&S_}*=0~X?G@i|k6adiuQY)4fOPPcR3R014=uOv9k%Hp)V6yyu!zBg^Kyi(IBTfa7l$Bh= zv$NzgD+!uw#2W>auQzK&*QgbNA8!o!e9s00epW(Kd?NsS6?wMa1XIaOh<6v=1B4}f0Bbv(>}E6a^|__KHpOM}Bfr=8%a zCB>weeNbwFMXvzx>-g~4gQqKCrPk8H(!s60PCI%&rBgomAPs&JZ{{%dATIvWf$xFO z?;TMEzO~)S~M~6mku1@mlYMk?xU?zuRw*UJQ$|?{IWv%pa>Y<52MHi zXvRZ(2z>`DlMEF2P=?3gf9C^04-$g?2Ty4H(NO?@U|*a>RvJy@vAZ$_m;y|JxD`Os z+Jc!Hm&%hT1jib870&Q^UC_>DYQ^#HV5Z87V?mzqadDg;n5ne|(S#?((gy|^=mhlOPi(5o!cYfxmkP%H%WeeaZtdO{`vPi zcSmdg{ir~)+Bz=a8Pb0G>uBwH5%%MmSG%oFJHI74j#Vper^9*xt!bNXuA380&vq=w z611?9_$>!{kZ9(0XrI>|OL9EBR#Z{gJB0O=T{o-%B5y^8Yl7ckM(1^24AuqDAIs~? zr^R=tMtXJc-fp+iX`ehBGyH`Q)xGMEms?LxobNdj2ZEN@Au__pV$i?v=SW&z2wq)T l|GdKSe$95euu<3;zQX^F<1&2a_{y`&RF2k~X)~SS{{Xy$2^9bU diff --git a/wolf3d/base/sprites/521.5551 b/wolf3d/base/sprites/521.5551 index e98265ed346efc1a65d1196c4e62d0aa95061787..5a075d0d4e24716353bfb95592cf65bc5390e94a 100644 GIT binary patch literal 43746 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 I>hkpcA2J@n*8l(j literal 10978 zcmeI1PiPZM9LHzj9g>Sp5uxE(%+iBh#6xfP^n3w9HVEzpsWwP>E?(S=n2U68Ws9Ow z3}$Vh2^ut~bWbrLsNg~SeB`NUjI|Y-31#BA&QGA=e^Bnf5&nf)Fb9|e%mL;AbAUO(9AFMG2bcrQ z0p>uL4y3w#|NFk4;!^0xD5&9vU^-X(qyVnz9W}0oYN*Op?FLsxRYb1o@lmpF)E9Bs z4ft!+lXZ%4KsDQLH!2%;!>BhspeX?Nyiu=gsHUZtvl){-2VRr^Daw3_HU5>Uz1v zArfBR%ZE-S3K0Ew0QgyFwW;9zG(@5>u`;o8=ykc&e?FlTK4=iu-(WSv4pBghKe6H} zaQRCO;=r>~e>0G@AKD8!NMhJoYS7}l*$+gQPLuz(IpdOwd+(Yo{&EuM8>u$$`&w-~iu{!y>Fcum=NG5dBinN_Y8&O!(jk z1X&OJu^S*e9@0W+JA@$4@%mL=W zk8&V@PWFu6gKnXF-ha?FeD3KGSFH~_oWZ(&x~J+Vjeq~UE97>(n|X->J$xacru-DBU40J^>v1kwDU?f*J3=m(%)}OkI#mF*Nu9;X#YtX=FXfVcMfY{~ zg=M@Sv(vmDQK5cB%_W7LozBF10vY0QIzCId*o{>kH=X3vGy>srX<2@aN9Ezxr8J*{1 zJFTtvgL|eAZoU(jq+^?}XD>gUMjrRh!cg=^bUr@jUbmj71A23|*&+{2k|+9*9tiqA E0;J1tNdN!< diff --git a/wolf3d/base/sprites/522.5551 b/wolf3d/base/sprites/522.5551 index 6752b7cb6ae848f588471fa7f059e206d4d3f3f5..c5e3574196c7792b8cad72e61d5a35bdb95d96bd 100644 GIT binary patch literal 43746 zcmeI4EtBF(6oy$B9JnB(Zbc$vqqY(k%&j0JBS#|c3M9D2&B&Ge6UKrA2X2t#cK*W6 zJ7-UICXiXk@|EyTipp1ay5HxVKHcet`O<2&z7;-Svh#nk&)4kpZ}#~w`|ythNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCTQ9z^`X) zFC*12XXae5H*^2%`R#q%jzqDXZ%2CGOw~r!OQuvdqd$LcQa1Bw9dCYb>lg}Qf4L&( z%~WkvQ9tdk{=W2<-u?Rj%9HJ0+yA}m*Epd2dyD_7Tle>-U&lezF9hzx{>$G{zn8%N zn|Kgt99(*4l+@fK(Z7kQKX3nqy|CwYbFFTa?YBSm)Bf~-(@L6q#P*N=zS#dU{xSYB z{xvu18D)%r_Z%nLp`*M{_RNH zKj!}Adm!i$#XoQlx=s4J6A0YUg&K|dhwGOdp&Ph$9tFr)Uu+J`ik-z5KF)uuU&u-b zhzWr@uL+3tp+x-Jc=rDJ5Ak~;Ah}jvojm~7R~@EZYg^d0zuW;EkkXuW^#Egi@prL4 zRF(O^xtC8{R}aXy{i03x`@dRTeMNcH(F2V2)!v&}^y&FN|Cbbb{YYI$4=`oc&gg9lhn+Yw8n z#>VEVr;2`kUfZ#pTYnpb_p3(i^&Ma5KJ^~hAkN{skTR@fM!>{O<#_wOpjuyRoL3_6 z{)gz-_+KQj@^0M&r0uJE%=lu1jkQ15d*D#q^j<_z-8ZaW63e$-giLxCJ?WH0L0 zbLdAafPT#*$A-Wy>zAHS+A$PE4Rl}+9jZ_D?(QXprZstu58QGLF#1*fuKr!kAFt$D zseaG{0o=P~{kPsXv3?{#0wh2JBtQZrKmsH{0wh2JBtQZrP%i@OI0{hXb$pFE!61JPOn)$W(2QUK5QU%xDJ1vCBMA==hCZg>WOB&}5V&v8(|*4EY2W>EsT$1f zr-x*M)gZ$kYlcq`mxw~+&M-xvvs?bk8>ZvVdE=084FZrKrYK*&J%IH^=wEr${vbGS zB($7qe__ueS<5v1SKcg|MGJe{Kj$|zd<#maeUy%GnV9l%wuw={mq6?h);z{cG9SOZx{8i32O|QoYf6<2|2F0whpZ0^<(0>XCRI ze~(^9-=nJfJN_UTrX9a}{$A2cs^<^fVcPYp_l1(b`k4Cf@?)%x`cM1SEQr1s`P)t} zIo<;3$3oW`KRvV^{D;Wno-nsVcNS^+gCKN|dp8Q-f43XH+Yh}v&JVA_JnN6UK5{`n z@`J+RH3(hl>q8g*hrS(eJ%`p{+(CLFFJptQKTN@}x+fj3z1}H(>vLZp1e^E&Szo4d z5OhC{Ht@uiT6RV2mnn$NQgvcT|i`k*2&3)$WWtAIr1~-i|0@ Wo;>cLb(DFd+Mu2Nl0x#xmHz?Bm(iC1 literal 10978 zcmeHMPi)dq9EMvL4=zy>nvG~RMw@t$BPSh36T28=D+^jl6afi_Z zS$bMH5l-_+$PAN3A(

y|{7NWyy}~;`{Bb;{GrPTZ@{Hu|sIzSzu4p0ZE1OJ)>)lfeb zS3@hI{wdJJjHt^QQ4{;&fhb6VsU-5IA_=14z5>eMPyg2y6N5!aWf6Q@SKQ11KO(Gc zeir$WdkSFYLGG`FBw-~4THKw5z~9QYvZFiz_}!g@z@NzHi@Izox(xj8u7fszz6fBE zB#iQ@!c4)P3>dZoRz^f>zKB$SgjYhZCslAq0kF3)KV%>;Wr>0SdexzyOyKQw4YVxA!)zTIKB&AXSKNMYkf& zTE(6CA^Pn-{s0^JC}0rr8aRVv=f{U-k+OdOzR@UZ{1n?j9AeA`a zjDpGiaVKLBqi@F#{Dd7U0sH%l&VhFH5PO>?Bc8+$BXiLToLyDv)u{v2fxpp#FmoPN zReXP(9PIT9496lv>;2i%`TCdru*1Vz+uQRsf!F2n#Jiv__ZES`n+k6j8jCKAr90hv z_&5}|Si~hk!RJ`_cSY~th#YU+!1< zxA)@K?9P?trB~hYf8T|EL)MVR;&)%YyZ#KPf4cc4R>JjNrLll9KQqw{|0b>zdBap< z(@|WP7#dV4YVfRA$jZFI8&GAjXmt!S5Hg8HW&c^Oz;L_)H4>N9<<&7s&}F1@NmCh5 z^p=Nb;rw6D2{WgAJQyBNbdEJS2qPx&oz7T}aY+_k>X=D$&8YGu^n9VyY==9~xE1+P zx_1(T8oX6(%s1u&T6N_3?_s8uH8jW~SQAc<@_6q*eUltyxZlr7i_)S0BY);Rd z?}d=Gzyz9vyZJgv-jBR@&OP_Om-o`{*Dqhb{FnOq8sGmF|NI^Q{1gBD8~@mU#(*(k z3>X8(fH7bU7z4(DF<=ZB1IBX8(fH7bU7z4(DF<=ZB1IBX8(fH7bU7z4(DF<=ZB1IBX8(fH9EGz^_LfKWED2ox4|h zJgTd8Ye%qIRf$#z=WM{Ks zn&Tf#!aS^uSL1&olWy*8cb%2u4Ke z19`yh%2%C%&>#3fqnLjmeIAIfpZlU(C9Y1v^09`Y%V;f;Men--A1?UZ-Y?3 zFygFte64*d58NQmA)QP)uDBxLVy1X3|0pQytH((seD^;Dzv6$Ifpx#^3ZU-`Jyv{i zz{VQSl?NWuhw_qjux60ttlTj`_|apb2LfIzvZrzD9{Aw}z^^*Ib_|pmKSw_LF%Sa{ zaNrCa!Y91@XO>V|SJ!Ev%rU^>7y5nt`Htn-=Qad*i$y$MZ13| z{3!46lL4xutR5iiC(##&-!V{D10(j%k*~7gxSYE}ihk%R z5#dT0fGLern9}K4_>&Bj(f<4B*<;`bo@4Q&ytorT;;W1v;P9)r#p8DxD4PPZ(7So8 z;+crtTW1@ z4tT?nE>kWB^3b0Tzv4hSG(h}m8{uB|gFR(`q{+9HpG-qNl~;b&v!MaQUxwAdX8(fH7bU7z4(DF<=ZB1I9p|8Q4U_5coFHXRLz^!s`P z!t+MLMt9y@d5a{ckSbD8=-IO{`nXndbHH+ zrtRPCqF3i+fauXKzobdx=dKCbKOX}`zw*XYs4tD*rJqLwL=QXT$ZDTCv`q0D0DApq z16tq5uheE-vS=>|8Ur8CZ3i#+IM_ZTfcTi)VKzALp`Qc4SOzfL!jn6bZS-;v{nG}- z3@)I5k8;4g-1e-sY<<7PvHx4&C8c(Wg79k@Td2g`Uq ziW!ru4;BvZ!NBKSci=;RnA_s5|Ii-XwosnTV=P8r##3;3n36&tWwEk{H|kM13Kv7n zI!57Pb85{0(R0ijz#I7MOn_l-`^?ek!-;I{=r2P7gE>=VHZPX4H!*-C@0%m$#-O7Ff z)|j9nl-chCR1dx4-z=r$?Rhbzn(>Cb|Ab>wZd<#3Y^1y!QPVx|wuNZmyl)VDSU!_W Lk0qVIa1{L?^)A#F literal 10978 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 diff --git a/wolf3d/base/sprites/525.5551 b/wolf3d/base/sprites/525.5551 index ab5efd5db93e8685210108da304fdf872ad4bfb2..be30ec46f8fa9b454797f890b9490c238acce850 100644 GIT binary patch literal 43746 zcmeI4Etld*7=>pXIB;pnIwUeHBZC8%KC6((mWW-^65Qar<;wX9Z5s!!af56({TDWO z?%q>H2tCjpAPMi}F!`uTs_yfCq*BSu*Dqhb{FC{8P51vue}AUGztZ2|>CgTc0V7}p zjDQg^0!F|H7y%<-1dM$&xktp8tL5-5cId4&7*RP9umezU*)eHkvp z>-GOt$mLq&|JwB{4`_XD`Cq!VzBc_D2bq2nxDNX-|Ihk2BiMhP3}fZNW#~pp_1&WW zbz=H``!9k;@Ep|F>P}g{{Y}5w-~8W2Nqx60{&Bz0-v2EBS^l&9SKqAXlv)0}=KP1* z&VBmp{{{%^Hh~YMfHndpZ-O#nbem6)W1DpoU>p5B3LK&B!IV`(Dr-% z>!f~pfa(v`UpE3!PoF=`{-|3YAK?4mWA$T3xDNBdP!H|YznLihG55#sKyXK-f1nJy zUHz&Ph`aqR)F|g4uAgW0yK%S5qX3TeX>(YXcBU_E&wtA=_$CCzNTAB^1ZaIIpO>eGIn|Fed#AGNFK0WS8X_oMo8e$_m{w|)`&tL6bN_Tka+ zXDr9~f3|*=JYd`UnAPBNsQzsIs^x%e>~mbBJG$awfBsW_tR1tecz|zxUx}~fz55^e zxHCzhI(GpV`@a2TN33x?@BN=&N87pv)>ZI;MyJ`KrO{(&bLshreqFEGX>`i|GzjmP zMy&OWuenc^ferE;j+2yQ#TfyYGsUs|cR^WSJ@%FG+5Zsz%KupctFY`Iz}T01%=lt~ zjded)88~DYmHFpj&cJ6@?i?Wf=&{s80k@Uev%0kp{fGkS*E!sF1j?+RcRt236hjSk zU=1D8C%wCC)=*t{uJeI1=K!Z)>UZ_;YTiELvyy($0|AtkS--sBsi%I}Q#RdJySpd- zsPFWX0KKEE5g_aP>WkCw2$aqD%3|3>E$0-1dJ?--zK2$$S7Cod17LK>PTD6YVd8 zsBsDX*1qw-jQ_>m@ps?ygNr0 zx^LZ%anIRpe-+-2?^~zMLs4TGgZ%9n?dwejG9cbq&3eQ5w3)Ecne`UIe8Bf(j{hp0 z59WhKFzcQ23*o2%rL!Jd$5+m-eeA6h^lcTMjsVr8rDi8<|7HihIwb+BN4xxz!`IKZ zR%rip1gL%y+>YUWS^e(#X?%d{VP`CP?X!fIDc%R5USHOu^iw$BV89-}EngR>s`+3yxh0HZBj`DV0EULWB9v;j4P1^gc+HzU+5dPEqf|B9V) zk1x^~|7sg+#y@y453Ir>??&*wVa%Mz@%FZQS_9*7elN%WQ?@t@JO}NFtwSLwqa}RP z4%_qFMI3v5(D!=lq#YG^H*9p;5%|N-BrNvwJ?x`5C`Arjh3%-g7{D8Tw9fXSG{1fF zM;Urh)H6AKpDm&V@K^hOU&vo&Ma2MokJ`~DB3$`jebAcx-PbDU!RLJt>eT|}o4&MGtqa$iL<>+pP#s8XrG@nLa12 zKQTKTcW=k-=;P0Hmpvc!(EpF!2^*cqyZ$fz$n3}7%cI7uHy_M;oqJpb&#cGYi5lq$ zwjHtkW;*)lcaP}-M#~t1sQ+Ma%!nARW4x{Nv2}P4puHW9ro$M$z~94oGigVMGQeoB z9o>wEF`i{GwjIVdBOE(yL^n-apY@m&G(Li3aVj{Ls0-N!~}J2nsju8;RE Z^xK_*h(uhv8vfREz?!q3YM`~K@gHo39gP40 literal 10978 zcmeI0A&i_r6oxrRO^aMa1**X`MWWguIXAdH$G97b#IBs0W^jESxABhNLMO?H!B zLLIAmE7x^ZLwT8O(l&)|?{1;u?aORnC-A@b&3kVqduABMtKY_1cmJdt&%5!g8!x+o zA0&VTkN^@u0!RP}AOR$R1dsp{Kmter2_OL^fCP{L5FH_tUi;J+jM*aKwql04>o=VK=k`&?H36c^q_GGfIj6q`w4pngKeV|EibJ*{;`OWg_cgmsm+qOueFbZ`QuKksN ziay+=F>ksm-{uFqSwi-KI`keU!2{?85AVT@f-*#XFj#LURSkXb+Prl6W^M)%? zB%#~y-|&neUd80y&t)<9D!0tY!W!1;n|)D9b-`?Uw+IB0$}K66!heszbRN$yWwJ_E z+x&uMMiM`R@R#1<0yhzkx} zPX8(fH7bU7z4(DF<=ZB1IBX8(fH7bU7z4(DF<=ZB1IBX8(fH7bU7z4(DF<=ZB z1IBX8(fH7bU7z4(DF<=ZB1IBT$jaZWm=gx=8fm^^LQ2e$20kqUl!r%N8$jjf=tjaI;1!Q+)J)7 zz`0nnpubn5gfK0x#I>UxOeQ185LU=#Z7 z_+9CFGXQ!lUTs;=;AMS~8LVBCiPzTn=LzQgnRF(9^& z?zMj_cG3T$vm7w)k(L9jBv~%C#0Jh0|LnVkixmr&ynh+ZfIyk|Z`;eka8#avzC0O@ zmV?`N-lvRr^1gCLeYlx5&TS+Fza;tq^BWL?PIMX$%agB9OaZ?>l_%j){Dh#tZA%UE zB%L>YvGJ>x;=gL4{n1SEk7iiFRg1YV+NYd4=ZxR^KakMJRsZt_*8e`ak-vpdZb`;cdGf(El0L1pm+9S3p0nMls;|aM%q;C7fX)+7EY4Cllb5PTmXtbLs&y_S5cU z($W02YqAzk=i>v|#Y?Vj6wPa>e#Hx(x)nI=Zq=vrdd4wHpi0`fct0(lR?>Bp z(bFCY)b7#bI+pA5w37GToWS*c8RulI=Z))f8o#WfPP-pC^bR|Bg5|P!UC#Uc+HD)n z>)59p@J#+~yI;%u*JW8JCD+2TZa7s>u#R44KS})9@izQuIEkOPoi$Pa6d91c9&INY zpH^r&ZIA1JU;M)1^H^9EyOQ2@N-KhO^t4gXC-GmkUeiCTL}&l$@0=zBV*9SIi?;^9 z%cK9-gI(~~1Bajbe1{Q3nI!MD`alvtZPO7hjbB#2oBbcF6q`yk>qsPFWTf6@F?nhD5Whj_hB`0oq#fSr%m`u}Zv-lzwHQpUd| ze&-2K#{(wu$LFkvzE^wVYWPoOO`O#Kav*y-_(8Sf_gvMV^4-(d|8hWk6}z_gt@yRR zeiH`x)@jb4eV(uee9vfBEYOkBFS@<`-tNHP7tHfEO(E2Pd=oJgCt0)P6TB$9R zIe@l1>-rx2ZiX>$AivQ1j1yy==IYl}4s|zud?13f6eeZurynvZaW}`B(;Iya!QSCk}rSEAJ$8bZsm)Lup#q`t4-B z&C)3OxcT5_{8?DxC5c1vZpWWhFU^3;`$+tP-t~9JI?=t1dd$;aOIiK@wK|l?@jIzH z+J1}$2!2H@vh_*Y$M0?FE#trYa#B|O=_Bx`(W`v9(#o{0XFX@>KkL18p0JRVsZW$0 zp8@cz#PpRG93THS`NziZ&}X$`9etKxN2j~$f4x33(!4tlbZiSy{8_D7N3S^3R;>Ag z1dB~_ULR2HJNrwvWxen7rs^_& z-PQiH>ZfJ8)^K-B{2x2VHfhFyF<=ZB1IBX8(fH7bU7z4(@=P=-V zlR{7;#)mX(1f@yA_dcdAz893LrM%w^!(r!nwdy>F!)BQGtEHfH{5JR=F$}U_%^s#p zoLiq(j@ts?BQ|p0;Dl&=ua&2MjnkF&;CL+nJ28An(>PAq$0cf!T;jTq$AMSmY&g5f z)zW3LT3U35qv!E(wCKn)CBzON>nuc2LPD!ox+6}v9xMlcL@}CwJT3>sway!*yH<}k zg3@t%!X(<;ZuLNneC+?*m(}Xq7wjMTu+i#GE0e-;@pp5%$m3{l=gd<&ak5`hGtBwj+#%c0 z&C$2rX%qU|q7x2Z9!dP)0p!SEKky5@d$<-L9S=LLfLr={Gvo}v@K5AYGgO~I6hGei zP%ZF1qNezI-X}gvAAcus-hiI`?t;XaM<~)?aiu zzm6Ub;R(D5_kH2I%$TF{r7cPM5?e3w=M5t0^8O(_AzlYGYTdhCrOqKdk;vzy9X3`i zCI8x&eyWzH75ZtvMw<^IzZXUAG()j(dYLB1AM}hakm?flL5+IQE5FYRaKf?~N<>I} zycgf&Qop~{!=edyFB{JrXby$t)O)$)7)zsOJit}FJ9MG5-& zZzn&VEBB%SsZBffW#A!dzj7F7Up0)BEcsgQG$7yEj{%2X*;jgd0Yc;Vc>l| z*J>LB#(**Kc??Vn50x*2r*R|niu=!lnR7GiZ-&hI`?dYXk6tudGXfR6%KHFRRtRX2fT(KG=oDZjQOza!@T@mzM*nf7Rl=^i```dVLi2 zy=sY=7}_6C%*3wCudPRXFBk2vfPlK-VBI0#VFuE#ZRcQGVHM)$D#(-w5$X~Fzl{T8 zN=QV>Yq~CDfs)weVI<$wrzmG%NaqSf2T@<2Sx524b_|=oZuu7%y>e~i{vvymc#L|G z?JK-u>F&=#`JvUT1?yaPbF9~+{}nJ=y=V0_FWT>#R(|RI8TpfDn6`m#4vWQO^=nvu zdgY7OC00yU5m?GT{%F0u$sFH{dnez!Z5O+a1y+OXn@Sz_GiYai!yb`WlwJxFsWB5`Ib~^{5b1CMsFc-lFWSL$h z134s^MFUxIAfSO&C={$QP-v}SwX_Znqm~z;#UfDwXtLNzz9Qw0^VK?A1_@h1b&K`5W0|70z+lD%R1@XBaD(RY-x)fCa;p z^j4!Ov2*l54PA)n)98MV`{LPXO+Y{gU_cETg3QiQ5ypVDq3U)Ga0Q~H8$?wts>P<{ z6%?on>k0T2Y6HG~!@$Sy8?M}HVE&@&74SdoN@Qg#KK2B-kV|ckiw5KID5*z6IOkuzo;?>Mg{DH99x-XPpMiIWDLwc6Q73y8}gI%F9(RP7DxU= zAD|QL#cxPY(i@PgmOehXJ`iN=eM&R&SR@usi*=a-CkQ+vqYiSn82k1UT z7gdE9Rb;@rVb%;h0wQD9qriHLYVia=_o4xpA0rxwMG$}174QgNfuSQRs*Fr9*WwAK zO^Ko7U#5V<+f{>^71LSBQNU5)zoUSUY)wUWeag3E*~-u44(w@smRa~<&ermt@-*=P zewA9Ek8fA%i{1Lb^%u;~T3%r#vA5d0H~fgcKG^A4dM|JjG*6Li;%IHSO7GLxhOsX9 zknF*=n-Kpre7O7L@`+s4+=J+; zx96pAXt`t+=KJw26Z>8NZyb=H4_1M9Qq7)Th3~~j&EDED+5rtGA3iP{JypKfcLTZF z-BLDMPy9(fn|wMj0JS#NKyFpc#3KRB%Bqu-yjl$81UVM5zO!8LU%R!b#t-9%T6$Gf zcwjK$D0$rB4LO&*_th8sk{-x;1>9jzI-igDw{uChE7f;{CEOeA1arw)B)l*of&ceo z=-kVPn`}kDBkPwvz@_?*{wGjTb1VJ6vjpWG7U-@ew;v4~f=cz^0E zZ-!US)>t4n-hWhmyuCu)=C!3)f2e;0{by!;82U1);P2&^j{Wyuxs5ksAK(3uJ+QyD Iy%hF52h=P}l>h($ diff --git a/wolf3d/base/sprites/527.5551 b/wolf3d/base/sprites/527.5551 index 7941a37de9dffbce0ad28fa0ccd26a5e8a32c10b..1a1851b51cbf7065a488e4e93cce71bccc771445 100644 GIT binary patch literal 43746 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 CS!-$l literal 10978 zcmeI0A#B?~6oymgfk}Z5TTo>U6&h^{bftj{bC{3qprL8t4b5gTn^}*|uxtu+n3E0I zXbmh|NF?`uSy{FzYck7;HR<)~BDFpHzxTcWp3k}J^?Gmr7+3oDmwLR`<64h5de9FM zAOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1TmKLco(D^W-Tr&oRf7TtOvpcb6Ez6E*yZ~Q)ka*7y6*D(uIw5E4j(x*b^cWq`(tP9)IDHfXLkEfnO?655M{vST0e1q)sKC+P$;YbU7-CH)XHT5KA{gEwnxC!d%I>1MN}C4@hPGdIdyceqZ zyPYQ=@2zC%PW#PPfOFOBd(6;qoai@;@uc0gbz1X60uWP(5zB)RZU=S zKF=B7SUtxo3CrN`|DX2Z#<_WThGBjC=x1ec=q(_#;f!lFoZ_8zWE{Rjdw-pqzppZ6 Xdk2pU=6wIObdRaApPtqBH%7)2@Sclk diff --git a/wolf3d/base/sprites/528.5551 b/wolf3d/base/sprites/528.5551 index ab5efd5db93e8685210108da304fdf872ad4bfb2..3aed254c742e3dbe59e6cc0555551c65747f1abc 100644 GIT binary patch literal 43746 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�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 E0ay6^!~g&Q literal 10978 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 diff --git a/wolf3d/base/walls/002.5551 b/wolf3d/base/walls/002.5551 index 41e59723c176ed0eaa36618f8e02f56668d7aaf0..c6900108feb25203b16c03f0aa972ef420aa23fa 100644 GIT binary patch literal 11064 zcmaiae_T`N+4o5mMcE|m5lZD96UY^Cd30{(i$O#unjuxb@`GdS}MZM)(# zi5iq?T2p$U5u?E5u;yThY(y6z98BlwnywLINHto-@*|K`Ld(x2_1y1u#qOW?^FE(9 zpO2s89nQIP-`9Oz-|zRjt}~0GDAoV<4~GBW4-rPHN3C9cOl)$pKpYlA2unM?dWwo) zCy>PcWcUcA$dD{aR+a>s%$;LWm)k=-kNlq5C-)zA!2Jy=d~_W}$u0>b&i3u|I*O9F z3WRnlFU)(c#T~GYUfjH(#l6iw@y2An9#?K z<_gEy4Fh%hf78wszH|Gbe@yk}+T%oWl51bVC>K#=uZB|P-Dr@9YPZO6WRv5kiDqAx$@Xy+Qf zG~tWYwDYiI*T-+Xj`Jr9q5o`gui>*>iK*BTu*OL#c1RCLT>UxhUu+v3q=X@T8J*uR zbmKg-WuL!AJH@s)ZoM@@!#cP8Vq7S8r1F>j_vWN|iyg-aMR;AIX3$|&p;D%UwG*l8u>?hsEF`R!#`ZKd({*IQjzr2Uz(AYnu zxK2VUsYI{Q97jDDKz|_un?pNSFe1?%gFs&J23DQe>Gq`ZpDlXvw##$a5o|ni1MRs) z^vWmK+&OmNoU<`FR{GaPT`?DGY=4}sqn!aO39P5Cm>GH>VP$GnX`q-a(^KmX1FitN!up6{TY3>_TA`3f~KADhdowRok$ z4ipt^d$NBLn(Ad}G1UR_o7gW1-D32^A8D{*DX=qdGzS>ztelQ>z_}57I9|l^DEPbYkA%MJ9psk zndSDIDwSFbejw!dhV@>3C{*-xV*d&QA%g#kIl3-4?qRJ!js}vFl2;}6i*2hUl4Mv1 zU;A)ixP5w!ePXh&!TN<3ccDf~$-v(se&I9Kn^~SmJpw#)dj$W&RTU7AZO<$Ba%Chol|QUt4%eruQowk@A~Dz zO;^mr`m<-s%Fym*r%r+QQK~lU(GxCM52f&ortmA6r9WIYpLUK~q$6w~+n&V~jQ~zR z@z>TAc)}870LM~FLH%_VII`?d^>F(rY+cFWk^0lDAp zNdgCu`-_ZtP6_=1Ys>3nt~75de_-NWZArlFOrLlAMTkC|lII*1V3*dPFKtBpDHu;( zMT3277JQb4_`XShsi4IfxN-B}U#tcmu*vLyyiGgDtoXYnfwRp?5{V?u>#z)rO^i+T z#@Zg%{%s=7f7reX)>l1#uvr54!QagjEo1adZ>l|SqV@>J#nW%xkm9+#VXAo<@!mHy zw+7E=^vL7$h>PUKRWIP*kERcOgy-F{i!xS#AN=GM=?(mTWMpteVOYTg;e$Mz{PYiU z?}y!KCq-)4eYhUmKbeL?d< zW0ql%;~>s?oq|%bS;iGicJ0;R@;cye2#}J1!@{xzP?p#2qfj5b;GOg+e0aVi1C=lf zL(h%54u3B)a$FRPej|hX9hT_2WwWorx{d~dZznfK!+eijl~VL?!08Pbw|*{a9ma)} z%8SQw&9Ssn)mI3)o2D~k{Ma3C_WmYhU?uFRBuwQDKf~44@ z>;8Kd*MT^X_bUvU@O+R49I**OY1DGVygE}Osm6E%vw~fV?cjcr_VHZ%>-8%7e)t9N z4Ct@z0n}#_$^Gd#9Hm$BF(hygK+I+C`aOnqECkJCChiz54!iDnC&> z(I@w(^4$Z&WB)x)J69igOTcvstVlKtdZn-Lp%2fW2$T$YCU&&xX`JViYu7SRH#~Rq z;7yFf>t9R*Z>8|_eM|icbLki1^LT&w<<$%EYI81lPSd=C8PuJyB3f3UXd^ubbE~EN2BLV znr2>i(R%3w?$d0E4Mp|~_v7;?PO07pUe+|Ss*!rSObfaP;zI7f&c!b*cEI^j^$^#I z{a=r1U8pCr)2@`_`Gr_=aH_Z1KHzq_My)Ft=Z)^)<=QtJ`}%@m#N}|Xeh~fb^x3m# zF%D0iI({6~2ptXur+A%O`#AJ7wp_EIQJ9>giam9AF+F33wuxr5DFh9-`)G{F4aug6RGXw+I& zWd1@;M#hN@{QV*k#Vlv`Y6Jn|CG46EhPfe%ifjk?EBd_n39{s&h3h?%0k$ z+Qw=T=k9i!`%?JL#`Et7KLZ@J-fk5i8ogm`?o?G*Uom_27Y(X1+@CU80{Q~h0r(EO z+d48BoVXu0n)@am3y51y48`)G`w55f?yywLDIua;z8w>i9D};o{YLD0)bpy&p1XL? z9=8j4FjLLSC{yJA2wnuNRT(g!4)-5L-46$>zDJ+95pR8=;0&G{@_$JH>XJt=7I%b8hpHKB5;1@+9bHrP~v06Kmh?MjWlHdkEJlkL>&dhzGGv5p&K|0s5f3 zyZfO4xYa#2R*(8p-jVz=#!=&g#wOrH>*md8PT_ixkB9UkHCHNud=qq0Qc{5s&N7_d z7!w0=uZ>A6Xk5;ywSS)asy3P_1ih(cqb~v<)%Er1$6K5uL8b%qyhAbPVgPq-yGR1~ zkyp<_{xDpNsd18gNH?#JkbGH#E~6ZH0dUo;j{}MW^mdcGQW@ylj&=EgqJ;i6{BL*G zeT{LSlQZ>Ow@1u>fAl{lkyo$1el8!spB}q#op$H&3uPRa*q_2LOL!S{)*3#F37*He zEx0iIedLKvgKeW2KY1hH+gGazj3`lSnfZMqamh z@m!`D@>olodWXY;=OL5*oz5(mDOd*23Gyw-hY;7JT8H#E>3y-$#DLb5HCa(#KN; zhmc>d`)2P$-dcNV?Jr?nR<3B%Z188x#*&|;fFk z`S12=n$=qE%)oH2UDMp$HT*$^bF)EcoV4r8(U3>}#ab&YXTY9}4D9aJ^QY`wmLUuD zeY>kr(kJ&kpWjimQ5`cqq5YikPdS!-)+8}eGGRwc!}QLCzj ztJ?$facSNx=2)v`5cwjbPOHM-Rl%>fxNquW!_S>b;R9CxgJ-fwWQEL|zBtMJ1bpOGf6Kbtj|LUvB&qAK2{^2?0Kk@gj4h}!W zIGMNN4bYKeH-2P^NyP7eH@bQQ#>qTsA>_Yf){HIlDlzY@{i^8^@<#Hnwrs}VU9ccF z2It?o>yQ$4y;7+(p+1;DZ_5_s&l6j2IPknpra+(p@Qjd}xu_?Gs`9Jw{Hq4dtqLR5 znb=N(e!wYnr_cD7A9=eI5+>Ah@BzLm)D*-d#R^2z z4D~ounpe}Dk+E@BmZ8XalpWL}?}Y@pG`eny`uOpFF3Siw+|ltC>ZN&`4v`3tKCRq= zekPW#B;pSAXNuuzN-YTN;&#wir14+%50;9omy3~OJosjqgvfqa%78da*xjOb&}Ffb z{PR=2n&y2m?jNCUo1L)bLSlc8{o$K~9~ax>c+erhr;L{Pke`fZBB$iT`V8Q01&jk$ zifSXspO^N%`3v+HDhm1KJx3@Ux3~q)`9cYI3w6=w-a^pNfUA;#7X7T~f6cGQ`-cO$ zmvP^pwu+#R0lXDju?ORz$`>Euwb7wc(3NrgzN-8Lm#4|>ekHKi-J8RY4(^kpKI>>p zJaG`ul{~2fHTk9IBYKL+=Aa${egqysKHNd|hQ&4~ZB zdJfhP=W3XpO~biE`3s)MdW>RrJMbykqY~^vlK`8Y)}LjVy|5MXVyG)}-&x!wykRsywN}~`U5EZEqY$sz zKh;BA!MKQGhGEk&#-4ItucKN-5xBp=MuK z8P+}3L^yT=WOU2b69xYmk%m+xK3`rS>q!*{1SKQ!b*r&7W}IrqF2zLXr}<4coD|~78~kj89P3hVe6%tP@qg#(a|aNY6E@|JqAq&r)bD~WsEbNKU}7GZ zl$@;W1-}^R8k?wwJd6(RgS-d)OTc;^>OWjB;>(jdHk6rRoXY1PkVU!NO_qBmN~ADm zmY;fkjR@m3WM$$pUuVfbi%=IAAITOd!Moj#MOG2%}|Ip>?O z*&Q%uCmqI`rd*?X0P2XJUV>jXpm(nCAV|GTGM$>tVEDR@i?74ciaP zA=7Ce3Egc0{e72Ki!lyDBNU5uL_#d<+@4Wum`Gv$OVn(m5NZMCnsn&-0P2v@l0(p6 z2v}#n5rpNSV?)8<)IsEh(ohKTjAa{%2K3N`6R+oh^KLGs5#(Yspo&kG2(Uq8QQBomyB zMs$Zi`#`QeU{${(gE~&GeaFu`OIl#v-JS1o82``z+jCiH_W`Y;3GWYuEN>!TlTbDA z2JExd1bqy#t$6K*|HAc{!u7Y%FLxh%UfBYEpKUB^!SjtvOn~~gxFZzEn~i!kcj+G? zPhP`^!r3_v7|RH|%hO_i!9;dv120@$lrT4<3m=n( zaj1tIK|f>tT*eyMXyzvP{|@k<%yNT50nhU~jtGwzfG(6u4I%wF;8y_w{s$Zo1mAM- z3-3d1r`Wcf$-B6D%N4U)+vDyUz&vSUW@ZNMn9XpX;r(u#jR!ovSh?X8=q#S*O39mG z2mAYtM?IQm;MZ2WZ#gLV{ZA$Q8vMpv_~(sD$hXh#N=icAQjmLNK+`;|e;geARIO#` zOS_Vjk)L|JDz{pjQ63_W5U=BP%2MT=mCQ%_Idfite2CWxoX~-F2FqLZ6Iaa3ncV$@ z1L(iCd#hj{OVkq+6ZK~xe-_8f*n`dWz)K__{T}*TEb<^F55T@bmv)SSegJ;TDFS{2 zoxr}=f%Tg&Jw-2JzvHbt8$q|E@*h3(MgY$Ks~km_Ahth^G)OP zaxrfhB}K)ERUhz3I2PbamusCUN<>8Am$9cmUM-n8?$m>wIPEr^@ z()El@LcUX|nc}SE1n>ZSU9b{<|AL*rhj|hKd`JJwr|JNA()t1KIMl<2jD&oF%zV)o zv>w8KYp_#VcAd+*C&@|&qp34N9W%! zc8pqf1?4$zz;%w?IoJaE=}h{Ue?kA6f58M@H`K7 zKo;~JFd!9*#G}wAj4X%w_s@=7h&aZM-ufEvKTqv@2FC&akD#v#eVfazr_tX7;fv{L zhnmUjH*pO1>-ZA%&Y~z$UN7+9J&&hHVce_ja`^%nf8n;JKf(UVYyXzM6#epZkE>^> zHdB4)^WhQHL1zY=0!JKI%)0D3u>QT8JBv6U;&`4|4P#tCt`|Hfk2E4r!B~WRMgcIc zWaeI6H_*YMKgLlE8G`+f3=RxpKH=(d`LJIM_k(VP{l{~#{}qfM>=ChN9?NPF56G-p zhrEsh{AKED&^#g8Rw^{ z>hV!aL&N6~@1Tbw&l}B(2LEI>k7FWB1YJpGRFZ#!odACze*>JMDnX4g^dJ>g&_3Pb zY!vQ6Jsj*wQzER#RTFY8u^;O5q7dZMk-Qwdda-)n>?jyV>Qm6C#5{$fN&=KB9|{|K z$WU=yJx-~hz5{g`+9`*+$G7)4wz#2>ETw!AT?K|IcA#z-!?_2ninm@kb`92L3Us-O z9fg{^uCA^t=A~+m;}rVwZH{;S`9@kx(4Q1->{hfd=sUPSx=yB0DiR)uZGph> z$QAPv_0Z7J;6bqWB8r0Zeezz$c0cImo^Gg{P%2*_0R5~z<+o3sT#NPVlOJx2Tw%SX zcn+p8s)t2OK2V==_*)-9yn#P&R?aVW6x$a)tK5n@GIqh1cd-9NQ3ANM z*)0f71qlyw?T>;|sGovfBCpJ9oi>^!N>;%A6T(2gg!h9mis;fX@HqBEaE$p57oPxq zYzSL&#gYN{6G}f09>lPu3Hrr^BlQUnvJA6kefS~1M{@Gyi4&M_P#q+Ue$bW`02Vpy zaDL`Jfpx|SNqYcs&2dT>=-KR+iHUC@?*`r; zz;ltn2k&dF5`hk;RJD6&9!KVb{s-1is44>02;eU+AcymIP|)wfzHx|j9B_HYZbXUv ztk?$e0(m|16r2ylLy-}d4|PC{Uoqgm!=flDEk!@NP(9e0!ZWn%uFHjWo6@5t(5Fu2 zU;6DasDq~RF8DYsg_=9}zqyNbc|j~Zz{#leD zg}Ug$=IQD2abCyJUrbHH`!ATMaFCzj?d_S zL!oOOnCHbuQSjaao*zqX_v7;hSZ|T>siP!>@85v;LOg5c{%to z;GL;)kfLF|K7+tL$;%1M19^4_;o7GU^ii#dGbIoQm7Rlw`2NLUPj?sECyvS!u0S4#>(!5|wOw6Z{wMLr zLVpPAy9F_G;k^Lk#BOmyrh)2@Oo}P9%fo<_wCc8*4S9^Q+Qqol4``|nV<>zT0=d9 zc#&f#q1I>c{h$Gg<0AEyQb{~MkN%4NT=drl@ZTuPr^tr*g>gj36QR$A@1Nau-E?FA z3uaYf{6jvOjP)qb&{r*}*GnbObbt=hCT~6!#CVv=qd@;6eh~8ez#87vxTp>71?Tt# zzgnZ8!oF|GAwh(E)y7pr+-8=GmUSee9yYNuSU<#HL%@gq8+VUNg>}9k@7%Quab+v) zn+IK{QXQA#dpM%F40xVWL7Pc}>-=r|BglHOo-c#-`$72IM~w_@gH&gdJ^e> zM($q>@7?qS(2xC*G2oBr>p#i;fE?e;h4WckPACrQm(XXXM8J36TAIq2>Bk54*hhDJ zz;CDn2kwV&S@ywL50OYZhkE4xxph6AozRyB`#;stfOyhiZZ;#H_<=9ckGp#UP>-Ti z&CR=;)4Xf=X7~^Oeb%9<#M(vp`lF z)}9Q7F~6i_p(i{A>(@X&M>>1lX;9yHySuw1I%DqT%lE@#{_?hpuzsAOp?}paw(Zq) z1L0q>G|=2DmoHbw5fP0=(dL$2;9UE~qQ@ z_z2bFUZS3x`KR5e7hpSDtpAa%Yb(^=oSaw#eT1u58TftR8LB=H`*Fa3 zQ0E1_@9epe*dJZj>8q>;eAPg?6IHG?8=h~0`bJ{(yamOMdCYge^W9i{A4DW0Od8;u z6dK$3p5!myegOSWUiZ{fIq?3RTC+U*J6BMz{^&agt@xf7ltW?Nye={N(jekslIZ)8 zPc@lq7w-eSKdJ46jkdTMx>7m<*I~W*hl^j#wj0g6TPdN~0d>((DXb@zw+;O#pa`sZ h;U9x3kPrP&*V#hH0qlSLPgjr$thfW;8~J}<{|{_YYdrt} literal 10978 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 diff --git a/wolf3d/base/walls/004.5551 b/wolf3d/base/walls/004.5551 index 6d9d7272ddcd38dcd72a8bc42d5169458fe936db..b157ac18e26b4a7d5078ae8ab1ad737c9666b123 100644 GIT binary patch literal 11064 zcma)i4OmlG*6xmfq%v({D_q8Y(?G{QA22hOYG=y)l^Bbi(mNk9!=WvmTdion8XV~$ z(;wPOtg*vrT4U$Xi8Ls5au{*SoV6A*A@1zo7m$l-HvF@G-0|NA#53dn z7<|l9-Eis58K7p|gikjk^dcI<+pMSnV}(CWe~$4zGvmJ8wmpy1tD5+=_&B@F>B{JmC%nKOYPz5y z&$DO>RTQhka)VbJ)3<|;qq>=WZ_9ei?M}Q)JvOS<(b%6moXU8$VGiR9TBRC4hx8VW zQcbaDoTK+@sYkxxEEOAY}~lH;TQUQ6d1Rp-`7<~-*=x#bbQuo zib#dXhm&DcG4>2Fsx`f0@u&Fdj;DHmA~ND_eHgQ14&TG5b#LZ9@1>nEE8dU1UhPJC z*21sH|7b&^hW^IxmlYvbARy~PeQ%khah~vILuU{V@<5w%y zBGI~aZfs!I6_=NDepPe#!9yR8Xf2vbmTgF7EZTi#zpJfpN~={X6dThSuOa|fMi+_@ zX>_BA7-PKcJzfCg%a>6Ak>-FKlm6SctHx2}NWZ@yO`yOLxJW-Z2vz2Hx?afp-h|P) z-jcVd>#1@f?Rd-*KhgDlqw_J#i8sFbk<+!;_K7FGo_5Hrp6}U~^g{bEjS9;A&CbcM z4n)TlFW=SdbZxPQTN=-l*!*poA9KMOx6GP+;am~9&)8xN(hh&yOfWcObPBuTs z4&1LYN6*l*LzTD$`it%nviw@IKJ*K!CZ+nRs{VebOJ)Uovqq;3YmUi4i-ZEmVDad)hSFW@rvk$OnF-hVj&lo1qc-3y1gGi2jj-UyayvpwkXdz;i1H zJml7`T88*TykOlrV&`@1ii=e+pUTRk`}ws>^?|3KJ~X0L(#3G87>mXXSL%KXefxGG zpfbelpQ?}A_ryQjm)Jj@^xvMo4ZCOVuKjZ_U&h4#@4x^4L4I|zYQJ(6gP*Ek`EXg7 zUrD6X?X5AJSxRQjF-Ya+_P!~Z&BunqB@U%BIu0u<0)b$Vn?jLg%jSY$j~3GI4x=DK z828Ppm}SeLe>NpZF0LO%qU~WcLB??~4r4viPVpJB=FV8JYl8*sgE-8uU7p`vm0`Kv zhR^Ln9{hn#5B5tA^ECRuP@u1_h5g4W2C`wka#S_Nua)Kn%(No|?x(~vZi_~I>RYo$ z=U!WAo{YcK2IG&7bnc+d9MLbEK;QK(Yay)fC!e4jDDuh0wpOsmD4EyK6ljR!&Yc6j zZ|?(MFB(Du8GCz$M?>tia<{>??+ysw|O66mkD2gYhZkba}PXp}A4* z)E^zi#bo@wwbU|*T*K!zb5VQvJE=U}fUdow6vKx7{(iC!7;mpfLm|CD;Pxl?2;l0Q zMG?&Te93kc@WCaqqhPc>ED6M9;e?r8xst=1=#_ABepFKc22n3QPYWKl@;-rp!v+Hx z&*9S$pD}*tYV3VgH&HNZ*Sq!wX*B-bNbGyIH4*^n@p{Lv61zt@4x$JeUEpjO^&yCR z7!TNyCkz+p_VBEiBX-U`asu!qxy6uEFE4I%}Y6-zFl zIlL}ze`bH7ebK(b72d#>U3+8p1;j|B)bp+?j#=Y9&IQx8+zsO(~#VI&^xQUE+ zV?RSAhlOPS6>t|(a5>6Dtr+{I9FEsc*-YxW5H9fN=tE?Gg&~f>z~`sD+9w5Zo67u# z=4^WH>b}{6anIZWmpQI#YG`=zWT10<#p=8l%1NBVlZPPwJgoGn#jrm!ENIDt?Hsm2 z{=IxLm4OJ>-5DYh<6_Ynr&k;IV7WPQ5b`PbbJAcs69~@33X=YHS^QeBHmkfmnhzlj zfF1VQ1cF?_jC-$b-2b2DB;J4bc>UjKhp!S;ILZ!+7*3y%49L{9psb>BlUm)*l)s?Ypj@%ZSE*pXqe3%inhBmw(dzJUVRAIrb@nA%H9z@B>D z@3z@YIr?_9xjl71qdv7~&mMX0Ce_g`YP+h*qV=@pZnkK4sJ3q1`d|)ISg~f!Ps&Gh zUhQqTWHuCmG!z)Ef&7yz$c0_6DVHQoHYJ4`#K&nh#CAAmcDEE-7#Zl_SeIIK5? z*gDNdCHDLBoUS6nF2Grd;9uqYRNxOX3r|k+aI+JC{O5h-e)8O;L3sX}-%b;JR*`Wb zkK_%sOc$0~)0pXDsWe9)SBnrAis8Tff^-J*Kf-3B-<)(M%(x%36KaYRuy2GEe+!FvMmJvA;hu-UjW{#{Ad0BgB^eql+ZpNI@HXsHiKR0_tL7(es5T( z_MTLu;&OL*)_v;S{b@2Qd@qy0EA#vHiN)r2ZuVE!z`X(iidY)S{znn7!mkxe!M+hG zLEaN7qk@@0Am@u{{-5S9Lj)D%HlP46(9qC;lY3A^^?LvP1lKG_6fUvyYt8L{+irBo zEMla`XSy}h`3cLCE;4SZ%A7 z^gIQC$2gD%`+qs$XQi4)QEa+?dqoUCE8%$*;H#(|@r=_;?1>@1juI(z$Kq~A3#2X_ zz6jqlI=+~HF`k@6t!Q*|@;1p2ePSfqDu=jRY8mXJbmRB&qIXMdDT-jAb7_f9sr6p{>?*wVoBSRKJk<#K#?#o?)I^>S zue}a(;`%3_+yoi;?QdUx4f^|DD=mG4^kY0YOY%-M4|$MX0Pm4Ar2T{$@=$L$JUdJB z(GyFzZYBBuZ$?uyx`1vpH#asC9B`$FoAjVNx5urK_M zA0ZO2!Rja;_l0eywU1;aaJX$2o>R~|rK?#8?2prqGxb@J=tt^NB(50GJ?|~56~{q7 z32z^b=KTvO;`4=kk{%Sz`>o;aL$Q1#nc$?5f5HNY(Edv|LTf4%Yg>#q~Lwwwd}HH!M)dFN+dvi>aW zC|5(Y~YCu62xo9iSg@LL-XYZC{j&Xr z7jK@FSqc870KY=KIV2p`*+)KZk0m0WpW#YXiX)@F+_+tqUt@+5_NT^0?x zpWmKg`J;pAw8Ns2zLI4oagFnl`x{NvQOxeRR;M;c@$;%KQa>znJ*B3^7&kJ!USf~l z8FYi90s-2=i`KQm7Nj8U5SIX_gPcS+NFIZFH&*vTKeap%_>kdUAniTf$j(6gdh{r| zfbo%B)Pp`J?e!*PC(_ml_%t{71hjXYXlTdxXes-``LPY#b?ucMV} zi>1r2RBr-*BlDN*DGIZa?pGFdB@H^)F%9$MD5x9j=rs?Citn@${)57Yn$Bx<^9cQV z{BO?U26BHq*bg$#SHD*yDT5}%VjFxv_I&x2t`g>J)sXM2NhbRR))%43vykuLnn)Si z-P3ak;@1tE&DKX`g4}F|EHXjrPmlq;6voW~PeZN<@uxrl&5?W`(-+%`M*0DtMCDz5 z4$R8*T3|;C(^s|PZ{H+#653++6@s1RP#-1&PDV?f6KSUeT|69;0=`xWceW%HjL*2q z`1&T)D@Mhbj3?_PQJ@|i6t9>xp|hS9#dxv}DdvwR@{Hi$#hhJYGa-eje9lwf4D$YD zh?Cb{V!J1l=~dDj?L$5?-rs+5e20p})BXvinxVgLe-a}FL;JD0IKxt?dQi^#00k?G z8z8SRvG;CQA%$X9!S_n6fUnIMs#s_bdDLWHV&Rs!8Srz!%kUheXn%*IO2AJ~9Lc>~ zuT0B6LLPu$QM;PW4H)b=Vc#q&clrv|ZNV!~+hAT8F9hi-6tO#=6_pL9oc$+z!fu8? zG5dNz03L|#^W;Uz-ye$~q#fcxbi8QaSxDd7H%~!uQ(_qAvk-|?4U+c~Tx9_M4&zpcFGSb+ZQvKdp;oW5 zX9zBBLoB~nEygEOUlyF=f&B>oCkB6Yx+xZcUI)4!>XfT4N-md<;8$(aA^a=EE>R=< zSbwSOVa1*t9O+P_9({<6AJw$r1oY70qYkJN8=^QZ%tL1!|GTN<#Q%yL!L^@Depz~S zvtzC2L}oIY2yes7md%9F;BLcGm~Txd;Uj!Lu=fxNjH&x!%fJQb#AAXBymmAy2|utT zF%kAfYhq#|4+SKR$6iQFb2^?qmbP|B-egm{foqwUmIBUHti{}1Zr?KcGN09+hLA7O8X0_ieZg|-5 zXakrRb^{M3zh~txne}lCo?m&i)V8YYsR2Ar>Jx1Gj9+3Cc5V5E|6EkZ81OalmwF1T znh1V16P^h8Ork64h9ZOfW2d0KVu$I}q$!Q5YjJNkx+dGcNbE0AH35EvJR9RrDd0O{ zUjL$-=I7r6Zy9~7y}g~tPRw!1I^-dkh+cXPeK7p~o*D>YhF&1-k;NHbcCns2{zW5zkK*ZR`@ zOw-H&;q##GU#$OUoEFH>7~l6HAQ13hp&Q-+68eXtgor zLQt=i`IEfn`%l);jxE-h{$p=DtJpy5!glt@M+h%^d|^W|sV{r}{G^%Gm)Px_B6Tj} z5&pEE`$%NT-O!5$$zihE?;Q`MovpU(l$`~(-mXZ4GRf@zxo5`I0 zlzBwU(198|CUr`P;X$1M{Pzsf18=E5g@^4l_#=4n$D^QcKI{i}neYQad*UENi&s&% zIJk5C=Ech-?q0UJFY0Kd2u30v+QHDU5KNh0NngHr@#c0_vU1#qSQ3{+S^tQ?P-iOg zq|)bPRS0DdBdJk*Rn=ZX^%;e+hpFsUEJ z^1iAK^^o!PZBblsgy4b`a6#7lJUcsEQDUp3JM5mbLQ9HLB)E7H>S@LGk>weu6j4WBDE8BFDjQxWO%a{WZY{=GIu=U(El| z5Bn6J7ik2~i#<1<$R(hH{MUScSN}$m`w8wM671VY>@?%BsAIA&%7Z|Ebbd(~c}Tm{ z7VA&E8k5AXq@BpScD*a_wi9`}4cVc+AHJhQBzh2|&k1i!>(c*#&Z^aVUrrOF@&s6x z*xTptUq^61#+8+$+5>9%8sPUCIxFkRCrN$AK*2!HMS#`VT5l?>*eVeH7wtF<{+*Bj z`(4Ed$G~4{$CD<^r84|lfUSUkyJ%CFl3 zQt*=-t9U$u6GnlLZzZ?@iKT=`nImTY|FARE{eq=rT^7ejIyyR{>jkUM%Q2v{)c#2} zvmba7z<>1&nn=k1!*ZjOwz2XAm@k~KF-Q*c*W_o5V>&D5k?&u+G!l7u)T<2+jU7E> zJq+h-@PvRxRV)$-W*m%0t)9oJzu`!WZGU1jb2evmonZwd}S{uSYG ze$s4u*$FZ&Y4ypT<~sG9Zb#6fVl;U)tuJ-R^+3Dh5v`;G^2!*=D`Rkhw?^aq4t31m zl#pMd?RWbZ^ABk!??)A=Z|-EC&Q_x|+^pXO@D$E7Xa{1Z!_SXjcfI?Y)Lp&K zBIeb#J6@f!#p$tZ`U?_|4-HgI6F%y6%Z3YNzGbg}Sx0!nU7BzsiJ$G}@%0%Nf7>tk zFSF4+47g|%=KJkW<#J({+yLnv;;p3O%I6E0Z6-r=xX1ekn@QEwf8w&A@HBqE-%X?> zPgbdF0(`-e^($0;`K8m9&J?Pg*LtrJ9*5Kyt#F=-n3m&7gRuT)O8ERZ?MS9tLPUS` zjSr*eUS%I|{|n(!|NheI?~r-^>7gf%%OGz!kJ`oSffs!_VUw)BIbDC~@R1|ry_b)i zI6>lnKC5TQycmWtMd#=5cawZjU0wZu$b9}U`$iVm73_M~zR=$WeBzLJ<3@rWBhb!0 ztVMmWZd|ekMP7Y%cdF5qQ~m0WSMz8~cg?%XGfBjLufO%>?_@S%`)VNGbB-Qtq_+uA z)~O{G(s>i`cxepBko^dJ)WXswyBXvW>wXuM0@DKdj z!~M*Mgnz#}Z$2S65WGpDOmC5aI*q?77$@^*kkMIWSe0(p6TUq*Ul_-VDSmCCDgn$R z?1DOURzmpBKq7Tx$y$IfnO^YODiYa>S&z4ks|YldLoYC z+Z9M3!xccoBz8TcN9pCEzlH(Vz(M}UfP(?XU=KcJ*ah|qw2crv8zT5~SgrWdr(LSN zc{2pK68yR)E6X|ZtUganl>?d6iG_K2?%CH2`J#RGN{gf>D=VwqZM~-@bkI`x$!QzH&H^RjTLU`E^5(4nJBiiwS2+%3|vhmlNDEQuOv)O8lcFN1f9i2NtM}8mF`zLbYd}}V3#2ctj zPT^2!H^d)+|5!W|0LP?#kPrE?L5b(=IXjXSp(e8gt-Q zz|%Kd)TCG;D(5ipN#*Ozv<-0ILS!M+%dg$?>76^7-o3Vgf!cvgFPx*V$y!%p+hYAh zzGe-aOSJ#>&Ye%6AKz=+B9lOT%+bH{z4G)K!0!pmVPAG0R6|;ymRZxPr-Rc&C0+bV zq(c$+6n`uND=g#CoX4)#r87E3>6`DC=j^Z3lJ!Y#OM!nQ5&l;w!iC!72`{kpkAr`# zngajBKC#hRr&-2g-<$B>Uu}wOAnzsdA_ww1$=gOJ*$)W#D@g?$19J68Ep!d9+zjUm z4tVSW@QM)*{v)-Zh#bb3*ova#)0vGGdMPT9b=}iU?jO;L708G1da!Tw_YxiyEPeZ{ zp2^OfV`~e~!+B+j?lJ}*0M>`B3&g*nET~f@XW`rv`~8wWz?0nE6|l2@>34qjCpVT? zf_>v#XVU-=q9P8@cJ1~&n5Fev>}360{mRJvk|m$^&GIkZzJ2Q!oIk?(?j2xZ(NMqN zkCQLN&SfOPW0UtK9YDQR*@(($zlY=-h?imo@Y9v>>loPo@cq?DL7wZLWhRK^W|fg! z0|NtPQz!`HmKN}67K`$Q?SP|LR0X(SHNYau)(q$F(eGzeSjy<1_c~0(|B-*J21CK$ zI;A%4it1me*~5nq-`~EZ2E-9z3$LDqef#|;-UYIMQ!l~y4-JnU(r2s2V7wx{RsrYV zaSz?x)wBZiZL?1SkAU%UMM{9wt>in&zFF2m{JtYZ@X%#zM+fkvN2IqQ!Ajv#por!D|rT_0>JY3Co^us$PWvQ47q77*L&_X0;2nbTq=>^BySA^weC8^Pm#MNMp90`BRn+lXpbw?BGxdU~gce^dwKG4;?O#7iNG zmp$NDczM1Bm?xe7)W@?Mtn6xtpPjD(F4ePtZ5Au@d5E<&6CRdjRn3Ht2A*RPPr>tt zc!*)hIX&cS%6;>2Cq$W0Mwi7XhH)8AiD$`*7jcehhXR{7!|!iMoDOjxSQwNFTay{4&zB3cf*+2(=26%vm0$r3(nDcm?u9ONW^VD!&PRGIT zUsQm<1qXIMt1_f0UhL?A`n8BTa^&z~;F-@d@rsDNDdj8);CvJ6$uQ2Qb+ z8L>ZN(E`{Pev5)}I@mt|D^dR?__evX7}mQFnq%t|>IjhahvVNPMw{12q|;&PAaNnp zkn%Z^d_C&9%*~tX8KsKs<54YAES!37Nv5CwK?3N+|KaC2m*F{{ap33CNy2*uNSuzY z|A+!)K82pYT4+SsC+l`-pQ*;7x7N}vOwHP27T0$ltPuOeIHN^*Haaf_8r__KYIBmm z;mr@MIh0$uYlw zH|Q;B7fXI;)bjQZeex(JT&7dY(x}?C%b{aT#=twHVeoc_~absy!J=wX^7yggb<72_ha(z8-k)-=A(Z+JGl|ZS8{%Q5?fAr&QrbYp?k*UVofX6~~nhmrhlf zu7B2Lv3_>Aq1uuPFg^RiYR^|6Nw$+pG=z#jP z?fc90JuW44{lI|(Hzt?BI+Pbfeb;+JfBJ;6E~ooI!p>W*Q>WXEXFXR7uthBuBba~H z0fbi7Ij!9%@4eUkRmr5JulhR=iBKeMKh9sZrOfYD@>X!9?jihf2h=BXVg&Wc8Teh? zv8~0z_fWtbv3sCC>oNbB2j^>kX7$p~4$O=&5#on6y{K;^j9<-KG%&3LNf2@0lR|u` ztkbZ0h@Ehc>%&*OuJR4M3;5Axl+~G{CEv3R_}UTOy!woTUs)Qt`7H3+;16?mbl_(r zE32+)ucl37I%$t%>gmqntql$KgS=LP)1>~77>dDMDb&dVAZ$x)yq@BDPUN(CYfzqv zsS5wf3cyb-1OE9p@BHQ@{a2*ep}y*{bxK;7FCVyFe+keDyk7$6Z4S7AKlz+}r~#jW z-@TD}T`-|YNZNuwZhwaP_P2}ij74&i@WD>2q{rSn3@naPYqxvsG8g}tNK}k7j;D02 z0S7P+)G6)ud2@X?|CmnA;5qlFnso8$h92jb(c?+y2^|Mog=nj2&j6Yb#b;;JT~MK` z?ZYK!Hua4tHo|kg^$GDJQPM2*izs%z73riX6ngax3e5E;tq@vJua0*LuOA%K#l^Lc zyly>gSl&A{U4Ilsrl%#FKWsvM`%fJ>0Otoaf5M6}nI)$h{VJcU|BA7_4^lgH*XcBFb(Q2F-@OUJM zZ9QsdB*;ev6Sofrnn#@$gPTyvt<%vEV<~B=grb1kPQHwKe{<&eK7Gu@ac1Zo zr1$jRyZ3*-&$;)_%*@QpkHzW?D3D{yXCMB87rJF4#Sv1M`Y#h ziM!h&{DLn8f>6K4u~$OB=s($%ne;xt>cvrfxJHX1UWO;`TAS(E6L%Mf+lG#PyEufL z8D~b$4&vL+1_m>pxQjOWH9tVAe$BZKEe?;qCRFel`k+WIYkTvG@hQ zG`NSqP1XWbBUZ8={KhuOK|&^)naey{t1Gh-~c?wmH9ZkVUHoX;X(MZVgdfoBXp znBZaeUP+^-UK9cyo<)9Q=P>ZWLbsOC3vz=jg#PQrgU44}iG}oAQIT7yostZ6u=0yX z=(l1`I|{yu7yKXpI}rN|GI&;E&Xl9@5&7Nn!Q!iK!#JF)--WMptzJA>d}LLdhmS=5 zD4`)ZI9Pm%zfmN9*-AjI^MiVkNZ230`}Kpyf2a!Wb{OP9t)T^<`1~$>&;`FVC=IBd zl7IR&lQX{~{~+NgX&&N8^%VTY5d92?7GJ6rJ%+K{KKV~-9au<>{>SB) z>b)0!y_js0pN7MJP4cD06ZzLQxI_Q%Ge z0npvD=--=Hd~~|2|Cyi@*`xlct_2f&paHHz7Jt0{#9Z*PKK=(f`1CN~8*P~`1^<&y zC+PHR)9SCy_w0XLx<|2>>YSr+6La0N zA4px0T15WX8$Xk9%c2>X0sKrN=92$JuIc#Ne_|D@XRflQlQkZ3NIW3_c>hbpNc;&0 z8vm+)I3WHQKTUqY57)nb4gZO`+qcMHc&VThhu}}QKQgNSqe1I`^w(khQU4cw8|!2} zi;wMv1CD|}-T(1ui%sw`{a4&ht)PLi_WB4}9hR@n5ksrU1N{AJh(bVz@{O;FUfAK%X zm->$edL?*ZhROaToPRYBa}4Vr4){<3r}aP1x^N)!OSRPeWBWgYK4txluX*#tv?Uw= z8W-@c9q^?5tpB@T6R+d)qjlup(f>aEuk1$2x8@(wpT?eeKRISPKKl>-+JpB0#H;ML zv04Bn=1PYl(WlnmAOFGkKiCCCdiI2R6njsc0l^W!k;F;#DiugV(;+qsk+jGqklRwqF6GLW(B!=c>0(1 zj^c~l%7t`O!qs8epPpaVo{DdKG0voeJ3M@eFnF+jPQ?+zGV+dq+ITqfYxbr45KHqG z#rB1~L6P`4SbX&^dsIJ{_ZVQ>_XKcpu=wGsE9Vkr**V3Ry?8Q&=;Pq=#kRJ@ zQ$NXOb}nB?Hv6?k73!5TiEd8zzKOmgOZftnY!0qG(fQf%k84LZyE(6u-Sj$M=jqOo z%~tJr@N_5IY@8&Aem3yMVwK2k*9 z2#;@kyEp&++Te>T!}B#WEW zFfs|_;Jcg47nUD&W@aCz0wo&#njlq@kYvngny0v4_*d_n*p2KZ)`meR)!(s6y!E*0 z1!uhZd|~jP`kn5d+7~NHu^y=LrQ&9Bb8y8E%zvER5&bbfnojkR8}Fi$$4$J&|84j; zZ^OGeks8Zb8)WC`1K=N>?!RzUsasQn60P|6*&_f3tJ( zC2(Dn^{8k4TB6Y_nP|K>p7>AvJ<+Ito`1iatFN_AkH&w&Cr`2lP))KMFgkv}{Na|7 z8Y^KLc*LK+&v-mvb|55|WD?PIC7|Pxki;9o!F-`j`t4X-{cjsQN76A$SwSe&+p7V_CE=uRUXSI;rEub zZxm_Nj#fK*My8Rwe1~VJCf~@B?eJ%2rZZz#3hUl5^7+9tH&<8Nr>>uWq_(ok_an6@ zUwNcZZc<*Hv zjhAgLf9YHku0hVuEwg90UjM86L4K|MvU835{8yA8py_t1wdHJ8R;biFtCBO^XRlqX zP)YV~R4$U$=ssJIn_PK4b2geLXQF$<$(_vanU8+UWP(EePUKy33i%JK7yi~gM^&yD zySYj-U+90}onn5f5clCfd(IC^gM1;Hjun@`aIP^w`3KY;{x|BsYrGRHMNhV_3V(jU z+a>lHMZQt_nV+gacA338sh@m-{6hWmgK7H1y6qHw2%fc5hjP(e=BVj6PG(Pe3s@2l zQ7_OV{Q|t>rR~%c<)6Q@R=fGiW7VgMUg_gibM36Nk$o?-GP@O7@#f82t;N}m_^)E6 z)>iuslhKOZbJ;V<6f>6U<`RwkThVhnwerpAshDf>=!&uZ`|ZWq+wF^Zl<9shXFtrG zoxL4d5qV9|acki`C zhlhS#VGA^J;|mKC&2w>qAgQ2{s+L{H9q)~|Td0p!M3q>_S6yG?@M^IyHVK1vmWg%! zax|VvwlZHpC>f#V5BU?ZfM7iGLjI|=1aqK~*%@c;ljlm3lhzdQRZ6L2f?;Z9xf14s zIKm{ur2<0D@Kq+6AgGlw$!cVR(*(%4lwr7BRIWI5;;2yLuV9$$kXO2u(&+&gE@0g} z)tdDI{v5nk#`j&b#w6P*zOa7%`&@IH=6(2a&D+p=VFz5(6kLp8ZrDX={@f3T{1x#a zceIN%G~vT`>eW(ScuqhjGAuLkU!nNeb*$*lia;~*V-dLESVg4 zJB+`6JsSU3O`W|@UMK5yI9w}Lb+Yv*PMqMH59y$Q`dr=mdtq6_dNrA~J||~bUrIjs zM@^Vhe~fJTV6Om5-M#hE_lEUHpbLy-VUSa=A;&hP#G!gH5J9%fX5W+;e!s%D z*pxUE+nMcpsr#A0FiYB;VD`Und>uW%@MYUuHv8umbqA*uJ?{v&OhNmEOR?l^7in|0 zed}qL<-HxZ*%z6fRF+>w_ObLdJv!c=V4hX`RR-!;asAq8g)P81J~}!gZ4NN{7N#&B zJ0dXHH(Z)<1ZSkpE`7$dK*CRf_D8x&tjm?e6yCdMvnQAth9D|zxe`q2VrXWuY4;ab zb|C$NU<3N(pNNZp8>7(t+(DSbB>O}R?FHlQpe5J~&4As4EN%8xV8nIiDZHs?xT6!< zMQ3M6?`qX;*?RbK%{PB9FG>pv4j%MT>=1vGmzUQkPZLkp8-K6wlCQ~5ZXec*bs_9* zJ6hi}XXH93r6JE3NbfrJ$8}rzZa!LP`_^nTD$7%T{<9O>wY|Be36*(yNAvs?Y2t&T zmLa8d`~Mo>>pWv11gDzUsIZ_6VMup?aq|5!s>$-Alnz-A*9~RsI>Qa~e_8(UzI;1I7&_XK{!fRSsY8-6 zj3827)iRhb7tQyi*1%h6=4%)t)!V6mUO~{>JT3X2iecOasqVHc8rq8O|+E@q*g1HZC8I8)=}k)3*rtc)q#&Q=slPdePp7bd>y*;q>>59UD!1o(?J znVN9J?KAmxT_th6Ylh=AXZ+0bU*0C@HSU!wR&a%MPpRx=UBU=Ge z1G0m?UkX}KnX~0HUt}+FD}tY}o$4Cq?A>suUaRw-vbvw`{KQJTNAC?&S{?1Y`okMl zrMiFrvT%jDUaND{(eJanEL5{{Vo=#RM<21s7(A0XF%pyEdrnOA=~-(Ppw$}sv!9m# z#2HpOUa&YZ$&#kn>VapK>E_nM^{ci~bV-{R*yYw2*p680_?F^d*Z;(t zOuDXhhc+t0(Yd4MozUciVvq$N#aTJd{Q91QsZ5DAt-5G5>qWLBt=fBqq=Vz^Daq;& ziedL1uJ6$JhVZJnxhRgHcpeb2K4854bIXwHwH)M6|N2AezogB9#(?SXPY=HLxn=tL zfD^&p(&mqkDgGw41ymhr`sz1n^I{W2T^vBTVBs~*byPlK29~#gpN?Ahw?Z_IddZPq z^nB;t>x(@8-$7}Sd}Q6lcTs%+DByYjiGcUV+aV&%|EV86e@F99H7fbL%2I6hK%@Wk zt@{_5GBg2>N*E8~Noo=9)MseS?16V$>`P2h;=i3m`aJ#mNI2?OdCvLdrS3(hf464O zNAV@W+sz=miLA_dbuY*<*VK%Knx{zK;u|V$o?)Cb<>j{%0Y^;w)ne%%<=5nwMT<@7Ht?DTHwoUy=4F&T?jT}dzx>s38u(H-hj&E&W!{=5%yC{=t?A`%HT`H~LJiKDk< zzsCoQVp2bom%_fBE}UK^CMyZ2aF0<;et$utwp2H2h8Dc_eo2#7mt1Mr-mfm#IHIDX zOIquxLe{rk1D)ymp^kq_`R>8Ci7~7Q;i|z2{jNo3Uj?JalKd1a^BKc-EZe0a!{E2H z-%l}Ff?rckOte3dHjiD)U5e}jV51x1Gp0%a?ZF-h%mr~*!Z40R8{o;Egp)!08hv0b z#O=ib>II@)+O<|YpYxc`SUXZ;UAVt8xsk4I{ZsP4gKFCj*M*LmpOski>e#!Y`I+Nv zhiIsSRezL^#YuWH>6=B5s|rHWYHrH8ag@u^ThinoKN}O% zYzOO7RZu2fYduoas1(y2$F*1dL%npV`Rw4znQP%ZdFM&?vK=K&H5KQQ*1Fk!D+`}& z;y8KLh0~@U8fYtNTHwFAisLw3|2Tc&n%dTzN-xGT&la>lue5x^|4GF(`X_hG~WJMn^|B+tH&8is8od zNUnTUUh!F;zEc_eW@Jvj0{dm~Zc<=o*NSTx%Rhomd*ck_8Z*kUVUd8mW^vbA=NEn< zoku&`I+%5CXSGIG;25969&xn3JJhN)*XVFUOB4rIl~P;cIfaeXQQeu-$FCtjcU?8W zOs~?At6b`BwM}XDEg$UIz@g1e_Pjss`zbC; zeFJ+oIssob_TU72v_M0dLYL_%9v6T@heR5;Us^6 z{!_qT1qs@pc=!Zy!|v(N^0ZG}0lXCaH!&0V!vi_jIuRdetfxXU!UB+g_lKWY_i_GM zkFp2l0dC#8amzyW%fnKpt4%T`_-A}OpZ3udN%n1-hxf}*w`<+EWMD6DQ4HdFEG+RW z#1~niIm{8@i;iD%zsZ%X%zww-PhXPeN?ZXyMCVGB((hq?FG+FfuOg8(SAz8KDHzc^ ztC+5Ke=;(^$_(C9=atv>p-nOrTMrtcfL zU%IlhM^=)#;Fa0rMTuneStYOfW>MM;SG|zkhHYNSolSNZabsg_v#Fc%HShy=o`3Ya z+6TFkZTW+PJG1BEEAu15*28;z6*Qfal}=uig+)X}BoO)eKe0Lh$9ie9HtDu;oF&#ydX+cC7v+pt zI+^1fZ1ayFd$6r(HYJFyshUf5%YR#=e$lDlNo8N(iKo|1C0!}O7~8R@F8GbRz^lc&+Y=lY;`@KAU%wmGr_=%fA z0IyX~IhisS^lgh~a7l@Eb~QKVt7)0^VB405&;JAI)2&gxG2N&oM_>F9_8syIGq%Ee z#5xf#g4U9=sfkl9UMOCUk%Mn9snk$MBeJT9nyJA538IApJb>)irSRBqIa!BfVbP;h zG1z;qmJC#I33&~&vz+MV%RAc3Nr02lTv!2y5zwnugL3?FWMs3QZ3KTn2sPkm7(rsT zOHD3_)bD?zzm}r*&0n_Gyh?=$Xt({z9*aA>r}nBX&V2dML9vB8t~;ZvuNa2)@{Bvw zK%p|#)j-`Pj{%N8raSrUAb9!7^N{MYQ0QEwK5U@o?_0L4+?J+Uwrp?3E$Tg$igHV? z08SIlX6R<%#T6A5qc?!hk3v~Q0?ul4&J$uD^)>hF47<{3A?iy68@WoSMib#YBMxK)INV3MOdi$_@&Br$g>XX>(X2vnIUk%=a4T|q4uCB zK^QzTjECf>k6KP3JUW_qrVZ^cT34(a@LqIu6c_fPpy1dTdVV+e;vox#>Z77(^*5mP zk3!|L$c0f$`@M~kk&*j%TWTpR4#Nu{j<%0cS04uhuZ-NcZ(pe`U9-$ney98G>)b0> zZSiLISl4F=PdD8wuZQtTo%QD*k=>&AqkaFQy#23(2en`yqLE)#IH_Y$9~F)CLhna< z!njnLMuj z1<6BW?HCw3%6I0xpi&@yim^~WbiDmjf#`2Yzbazs2~=vI{tb9>g89zHC}+ zb0_ns6}E!dN^^y6$?tNDT_7mdN}J=&TfjNtAB zbFz$dOBWE1 zMJ5Ynh>bDy$#Lm$Q6q!$;k1ecJOS)w98)3tQ8T@b(q?3z+|vUf^NzY)V$x4haBaDb zGcwpV_u1ylfLpDzv>#E(&)PPLV$y1iMGHRuu%NbWN8Q7U#tEK&HpvxATLqEeDMe%b0L zZ5%`6?|0|CTuKji($QJVUb^d}S^9V&KKbD%A}1)l8sX;^-`CQdQlblV8uP zKHH^KaGZzhUf;}1;E&X`@^<3~0oOJS{L6S~r4~XWGSZSHd6^-4%YR`SXDhRsD#C7ILDRx{`tG7921gRRk5^rQ z6)=4I4waRWtsdx1tHHT1mvP)b)x$bgVN$I2>Eq#HZZ3A?g8vI)(7V=92J0)rN^iAT zSEuP_DQ5(&7<_#suQMlLl^{*elEoJt`tJ3SfkEJ>gxCMY|F{&kg_!Ls16~Gr)`Iu| z##Ksz@5Tv${{sFsL@npwll=8{khOs4ir{7g<9hIN5yH@zmP}{=2>GY zLrF%`TCms3YzP0juER~iKFNUQ?@*yhl5ITwP3hTPm6!8t=IGD5vny9xdHQ$uskOHr zsG788IR*0|PH!A7VH~X*O?cF%5D{2qfS+e|{Wzlh}Zsqc*<&ju-6BV^QDv~?o zLVh+UQPrb_B03T8QNnYG3!eHYuB(v(zYlT0mWtdTxlG!8i5%_R`%8=cGfVd9q2E|+-0I0tyBH!~nVB*_X(d0(RQQl+e4e_>efqk`eVuQyO{ zMMVM5Xruzx9m}&&uW7!?d-yYo6VXx2!T&c>5C%MPV1kNV@J7FhS`fK^e@M59V(3Jy z>d|Kw3?FqT4cYAb_buBeZr%y_VBfM#%MOh@VXV$(k1&0Aay8@;pEqhN->$C!znp#5 zacPewz_?TPq#XIrDuZjuB9lwMapQLI$B^fTb?=j}%%65jC`5P~WWxZ+O}CykpnH)g zcly6W@$ue;1{cc9xLmGwRIZFmIO(~^BrqYmpK5Kj+2`S(h;7yu>paL~0nWgFd?ang z@axW{{g4+k2m&__NtRLP1zxcEqw; z1LeNefbTM;S6|v|dEWTN(z->9Oo7IKc<|S4+2|<3VR;f3K`^_}JqY6i`;TxF@Lh=K z$X;)>zpFxVAH5%AB|-knM^P!j06%M`?xG~%?>A*bAP>X+2~&tA^~n`da^mIrFLX~; z%wM`ZdbdS|?z7_L50C1$;}x^U+rMv)3dZn2V>s~6Kml9vtt18#Y156b!MVZ&eez4v zcT~>nEs&voFm~s;MWz7b+pi2g++ztezJ2Uz2htzVEbz$z#EW77Yh=MmD!`2h-*P?r zQxi0-uZB$Ab2+}0oR4qax-|vyAF$^W$X=wlo8dqlcF`9K`6@rfiF?Nz{1m|4X~PAf zh7b8k4BI%Ap*g+jOiT;dA&e`KKLk*hO_v~h0DXml#(BsO2oPTn1jp#q!@3n>f&tLq zH=s;|@}eCF3q&YiDv=yNBGk;s`F#HXgzrS$IKa=)p2LOtnq&b10lq>_pWFviK|T=h z0l~oi=zJU#8ieScA7qh*%207no<520O@pvNBG8ETiJ*mmKP3_?%~wGlfN?W~v`@|~ zk2WBDmjm$yGtS2uObPkjznGXL7E4QhDhApI&+BB9r9-}Ag~@FJOT1cHS?SQjK4Xd~tv7!U5tGV%?WkZFH3%M3DphdPm401mpmtAP}93LP!Z0r3H5L*N_C8b@H@ z2U%Z0L?mvkNG5C$mjn}dqwW~VgvF|+_aD+Qn5&nq7?5wz(w1CmW1sYj<@tzd-#*cb z6?s}so%CGUIjpuVR+P+J>Cn3U6mCayh?suvWR?$$_XcxuuwZ4d*9h%Ja|nlnsBQqe zW;i1%3pEq&v2Q(tJe0vTIPhDko+TNZfcvy@cW+0>Jh!*e! z%F&uuC(OzUhI=|HY|YPb4^-Ql?$dY;@#=U*ao5J78OE++C}ICM38Qm`M0O`)!1x-Btb- zwto54@4LS*dE;dZ`j+jn@Kv-D-CKSlCIGKj*fNp-g?oxw zxe*c32e7Jsx#Zx`&{o%LCN`&1eZRgzr{27I^N60WDmcU?c3ZxIdu$Bn;65VtW)@Lw zL+1&7FW@H%ij_z#r$n{tdy+UwmG_!N@=6AceSS1v2~-l z>D~IWvYd=^cb+vgn1EY9UJZ6|s48>(W|2x5&jmi-xiHj+#qRSagATY!&PYj-G}uhXM^_fRH;9@JFuw(y|aGda#f6gfl+uWcB ze*vg!`31Coz` zKSh2EGyde^yIiw|^!8!EAL?vQt@gd(?gx5QZ-naV}S2@O(#AmaIg1 zMT{$H9O(4cwDdYc?l+}MrMQ0>x_vMx3dNVRzM8PoC`Q85m60^%B;m{Q4qgQ&VRLcq3AICMD;R3Tpv{$W!0wL~i49<{#db~s zd|n3U)hAZ~_l=iqbtI$WLjL+aF=GhZ>~$8CC56l{@)>zxRjYOerMDfTX0TepVOpq( zN{mt3R60oS5Ps(glu!4_ISYdbJ{~I$j|dOvnb)eq;a6)PmcfGw(--SFKM{FABqNUU_Ydo5(Y zym!LsLh%xg9r2$h31%YgjW-j_i%k=w6A=IUD%K&G8(_BtQ!akSS%E&ES zJ_H=%(tr5$$7d*Sm2&`td%XcYfo&t=!2dn-Dck(R!v!WEtbp)Qd?KF9nUC$UIQ1+# z#FN+VfjkHwzGE6F6dm+~dIl2;etZ;YoGGAzNA$}Nmp!W}CHbn|vqQ@~@xOq3sKOSG zS3{f|*5gut-ywB*^IX-rGvBT%A=jSAVv_}Lbzh-QGisL2Hh}WIn=Mp_bo1uqjnd{D za4*TYwRE?(2qxtw-FTdhrp^w%lyDN$3x*Bv?BK7z< zec5_|&ud0`g1}jeusta6g0W5~n5T+1Zv6Aca?Lm7#!Z_-r`u+orBBa@&mLN%VfoOE zmh6*t@$c+WhON#>rQsD=fv;oC23$f#d@E<-O7S<)8n~ERfjGz`zh4TcL)8>vqUsT#NE=bSH%_o>&i&A zg&N+waN!aCMcFR*E>>FiA7f%$O$#o@to}__{q?u(e`h3NvE2-cqTa4I3}>! z;rl9x(>6OU^$j&-wAjN}$Sz^2-ZS3gneGIrRZF^sr*s@B)!ZtDQn+ch<$x&8L<%)|WII|qS zbL6D%%W{(5ilXw$)6(YG&c_j*2PIBE&N@YCkI=$8iKJ-XBJk(gqIl+%#aFRwYhP^b zgTvJ@QKmB`8bP3^`3(7r4Fr3aF;aw<=TEP zOkG>^QBn0ob#;X$L)G|LO&ZMW?caX1?g*o<^O7&;gH@Kdw m+Npo*&9AGb8^5dmZ>6A$*mS>IUH#um> literal 10978 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 MuB`5vwJy{D0e9^rhyVZp diff --git a/wolf3d/base/walls/010.5551 b/wolf3d/base/walls/010.5551 index 50bffc029f2299e83320c34e6705e72b9dfa838b..ab69668ecea10c92b144ba2b52e7094804989ca2 100644 GIT binary patch literal 11064 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 RFF};&tOqx0tQ-GX_}?lVCI0{b literal 10978 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 Bit+#e diff --git a/wolf3d/base/walls/014.5551 b/wolf3d/base/walls/014.5551 index 038af7d9e93a2f73584284fee120147401cb1b5e..9ceb06b6c13270d27d678c1f5dd4fcd45efbcd79 100644 GIT binary patch literal 11064 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⁢y-kF%kJsJEtyrP~jTv9IvE zP5ygncfq_o#ZNnGYu!9|efQC$)aTBT0pLfRcxX;`Hu?V08R|~MzAvt=b+T@$amlc@ zSkXHWK%S)$7SEw4Nv*xjz(0+6?Tw6?+{bn4^I_V}>R)~Q7vB4?QJc$!{0-ls{t7kV KM?d;&^uGWU{24a@ literal 10978 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 diff --git a/wolf3d/base/walls/016.5551 b/wolf3d/base/walls/016.5551 index f56c40dafec207af03f9dcfe0ab3775c2d78a21a..cf3b3ed38eb631ba901918dec304947de12f18d4 100644 GIT binary patch literal 11064 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 literal 10978 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 literal 10978 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 diff --git a/wolf3d/base/walls/020.5551 b/wolf3d/base/walls/020.5551 index 170a3acf0d192285bc55b5e67452c3ac175a79f2..2758eb758d7102ce47f86991ed42036b6a6f329f 100644 GIT binary patch literal 11064 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 literal 10978 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 diff --git a/wolf3d/base/walls/022.5551 b/wolf3d/base/walls/022.5551 index 4c79225cbcf3ea38e496e1eb8d43a44784998076..dac05735af3a48ec3880cfdebb00575c365d84e7 100644 GIT binary patch literal 11064 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 C3r@@c diff --git a/wolf3d/base/walls/026.5551 b/wolf3d/base/walls/026.5551 index bd2e4d2ac024e3c5c21d7a468c0a91705592792a..ae5310ea3a321742c95b0b73c9be29f3ae4775bb 100644 GIT binary patch literal 11064 zcma)i4^&jwx$hoE{1ekKxfME3v#z8sxi@<6T9P!$Lzk}(P)%$4ZYCoK&DdLMD@lbc z?IY%{E3wWw2bk!DD#3x62^AWdA)FCLAY*~ zkdQCFC5D=O(<$OA0o(1+&ZzZCetP0=jZs`8R2%)Hfy0fW)ITy~7fqrfr8^vFo`v-( zb@ZAT4gbL;4pYzad~uLZ=lnEq*e*^@jZTKGZ;6x2WH9MWBaCZc`b(`5IwAxGN+qfT zy`?D%G$_1GJszaytR%@K<_Z$^NVpGXS!+_5uiZnujbx(C|r zqD8h?lHLRTB|^}?B(srvMc6;^Dabn&a~at2fMr#pSF~G+h7h|*c#VdPBAv0UOt=&w zMQB&AjWGKLDxTz1z+(ax`C^yXHyyA&!|We+sr`Bny#I;O8hznvu)m=^wSDcoKc3Do z2FkpmaxbpJ?71e$Ep0>FWV=}R!O>cM)vL_@VX%K(b=`=$U+) zUzX~KufNAZ>89a=b8m@eE|lpTT-$2gvSo`xpT+gf1@AifD}%?(GO?CY-w27EWiCFmaT z^^d#Oys^-dRNHG^{!cGhl3MjA@PJi-J&^{$jtTJG{e~1Fy%bj4Cn`u0_QPn_kL|Jk zQe*aA-<`GcCq`q}twD3=@`U)e3%b{~COx9DRQB)hG#YvS*5Et6gs=XpFZfY!Vq#pP zZ}7Lh-};v3zdCO2zl!tjZ`bfhE4wwb^Ty`K_O^aik2aWvwMXXYIF)IL`Mv7zXWUxP zh|nSA$|^5W={41V3HWcGASu#^$iK?`KTmKth=k+6_2Pze=>G*u4a_$pWWGeQLeMTz zrOp%`ZvsDv4@z82-UNO+>%S7^yx^~@|2laByd8K@pXOUNJSAk5OtF2?GO#!B)c+08 z2>N@TKqBgR3LPn8i9qO_e3{7P>45q^Kz@!t7d`K_?}jE&|45V{YW<3xUr>;fPu-~R%L199 z+zs46CAt*xH%x!zasPArviJM|KYzc>e)IN^JhR`t{i?ibKeWdT#LMJ6qzL2YKrOV> zZ@$=6qB%GOyrBtsXm`)2ot^L&_|DFR1f?of=A-Vvca0I;lU}xuLHV*rfi*OvQ ztja~@{r;HzKrPDQ`pkdT{v)p(`D^{Lb-|C>IGFV#9LH_cY{d2bem`r!_W9+{S^G!o zy0~xTuXU>H!Z^l*UPuozJ)NlMG$jXdKf281E6Kpe#(_N!5`Je*Q&V=3Ki$;SRFgc& zpPrKsg|h3}J}K@W?2u61NcgYeA-`i(W2jTl9kzr11SzhI{fvGF^Jf}~;R}PR53}1` zzrPtY&2(lOhWSzg0%%vr*D#(hrL>dn2lmP4#dD7H6HeklUl_0UbHESu4OF6hb_vE+ zh`+s8Sp3zWgFJ0W%Pi#e$K9s>2n5GJ`Iy zI8|=6(cw*w%5x#1u0As23$B%2Zg-w?Q_a72I5%nKR7pJ%sHk<{uk&>WtPx0%j`l!> zntz^T^Lrt`8%O;{%+s;_zjgce?Mk5&@yDVYBEaRA56q^8*g~&gM7%3Q&VG;sqelePE1njb(zFWd(B;C zcy0SY*Qrp!&9$xnw)$Ky+vem|*p zyzC!Vu2^xyan_3VHeUog!=s1ugLa=E-&uQ=+8@gg^ZTo7VBT|f5y)NCclq+|mawBy zeC%Id*>L0VS(f)x@4UsR@9I%;&4vvY%sK;%{L)gAo z{4TGFKd>9@WldOVQLcnZ(PXJclP_AC-Az$^l_Kus(?ZDxBg{MC_08y1{Pmp_z-Ng6 zQUU+XOmvZxVE?qlu`!I}jjhd!SH)iym1kaMxXat7;xF%KIk{Wprb z*9-?cDdJaY=KLBX%)fSWG=l5Eamxxo{~BpXwFBg*Fz|Z-FbBjDL5U=6>;S#-TzXv{ zF#c9O?n9C&$OCU#>BjstBuznH0^XmQ(g8ee;~eh!UNul@tx5J`aRe_+aHaevG_h0Cx47_w38;}vUoV# zug>>Mv^|0Dutnn^e}d(onQXv+kbj0AsUbz+9+bd&0-Q&0L!MG`fs2PULhnX-BjjID zXI77a6Ocy|D2=V_$9x9k0q646jCrHqu8KuciMZ_cZYEBtsm9buY%&9l8Mg|D@k8!TtpL3TyAC8*RvckN%j+eUE;d zQ3L23ormS$^_0f+V0=t}rf=Nbeq#J(kdNAtjlTr)kS9>D2lfx+bx|C^?7`%B^12*K z!|1PLlFbBuqkA3w$s|g@eumvsY*GuHFXq1-`marDdw^e%GzIq&7;jn4#uILs-ax+p zcnjh_Nott&ca;A`!t**e9|1j?|0{&d_g_UKTI4zKUmcuRDwQXrzd9wQ1^qt~?oYw< zFe~5Y?}^F>&q9Ats)qUMgoeRgZ7N+Pa}`c+drP?#c+PF z37Ra*@O7JIM=jg0rk2CFW?tVjG=Kk8PIypW$^iS-3xr5)JiO)>#N~w4F~0m_e+$aX zQT*B<(W&{oseB&I1v_;J?tWLj@`=&$L$rnQ8#k)*F@58u2;hIro9h14q_$c8|9|j*YCydAV33wB5Ba0jJc*KwJFdR8YX%x2-p2aN~&+x7~Zf?F%C@MEQ z-T?746bi-okpC~{2SiH@2E@4-zfhjzasjVa+wq(Lie>GFFI1Whae7%!b8~f|y0IA^ za)&=13Vr=G;%vm-$&iOyT3UAT^j)c`CV6%{$pq`d!wq=2Z}j z-j`H5xBgt7Q|Fr-M^yRQ`3=!|V^keKPd?g@dUS>o87@Ho$9pNRuTr&cHS7Nzc^uFC zJpWHKiT8LYlSSiug!%szb<21j@+=mhK>_^ViRT^s-|!sN&vIpH2zlEfVl+V{v&Sng7A^$L%W*$HZzG`;$Y1h^>%&~(3Qw}Q^LA)A=Vie@ z>xGu)t}%z)C>FyLfb(UA2WdpkGvhp2x&OM`BqoSf=tsPZOy;TbiTSctCh_kkypg$!}?@diUsSX0?+eak${01#q${Y0n}BHUQr0|y4T`T-rZ|;Rm3H& ztNNaZ?f0M^sSD`B^z^vY6Mqom($lr;+?nFpl@4lea@>xE@GZ@+E!=ua%!my(m(uCKiS2P<&=Hv$m9-o04Bc`rrh$Mv;uY~9*7xb~wA z*l$~}{$1?H_83Jw^!4lC(}LaFZhq$oX(%Y@yZKJ{&i(uMD#PdRz_b?%dOKkLE`R0C zlf}k;`x=$;^EY$ee)=_KaDR6f45;k>5nDgC{Tj1tpdy_I`)7n5m-z*7`~wwUakSne zhr#|CV1Iq>73klZQP2)}S(&U0gFPn_4Vn7(zM~l%$TF-KT3Wio1sC5E(XIh2L4tPX z6?x4gdiQ35JoEIbZ8!B**dB&^G(Lec*e^Ve?zAEx8GXZ-cq5l-=$i_cjgELcVYq+c z`jwqOVtQ8IOoKQwX~+AlopinLyL0|(;?s$VeRSNmLHTo}Zwl52`#apL!2Vrbw=OOb z6nVpH$DMj%>C=`1g}&2{?R^)aAJ#`b@Vpa@t3RN7e;LK=kG&6k0)2_$(C4Z4O^ox; z)4dG;K1yGR;@Mez|6{CQ{D59(_!j14_&I|b8LoYtKFZ`WXd2^Rq2G?;Y84l29>TxR z&*5J`)JrjM<9%7h>ni^J4C>aid?%%Bepq+F4RLkR9R6o@B~^ZIJn)~v{dZO#(P8{< zApJUq-{}zJ`)v}&>DH+S@q3Hg6OH$j-3LIv!7Dz8_?eAYd6+MXhui4z1LGg&3FwXY z)mABu?+{MT;`yMI4R{vuYc9j90K*$}aLs{V$da>W0z9~tvhOg<!{`z5&loI1+xON!i| zhxon+?*DinqHa$Q<~59~55!*xIQ!fG+YxPgT%7*IH?02(+@E9P;*#P_>#DvMDqJp? za^yK%&hyXhgYOk`PV=vF%(DK3-`~?yc{M@wUxzqfaZ*@z$dDcWSYMdi)>g2tDp29S zaJ?&BRw8s=zux7A{EPF(^2=RV$0bRUQuw$ixm-Xyh0y2>b&U|-lSK^q;!;71L?TL| zU5rfL{SxrKHMebfOBmwsBas5j4akR(b}nE(h4>G7{-hwudt^P}3X5g+20P$`uIqjQ z@dXcwFa_!d7=Ke+Ssc#Ly9fDKbw)!$ccXQp!6SQF{MTy3jz!Tt@njKICW=@+iJZ!Y z`e#Mr0!>aqXTE4r1|p8$vn>9HD+okai0|+{NRj{PkwDoq;J1m10Y|SD+r!X~5BB5w zUh6NAW_WFvc`_O*#d_xSy!Fe(#l<)dzrRpr4DvtZ^F-V~)c-8&_XjZlC<9}aau2RA z+c3-zj&=PN$~Lj6qjcd0xF$LHoMte!9w?r+5Npxv?s@K-&1zaxO_>=TE|vHsUo zwZ~(E_m6hhf&G9i909$la+f~|_{+eLvij$NhTU>f;j^OLJTP|aqFoeX_%4S3=sR2U zVV=y_cIRTec^Lnh-PDcec+*A=#J^R7GKKn%F#MSh`Tuf{1>~*?dF~*@zYh4W?%Ia< zb72-$(5`#7X2~N$1K`hrF<%t_A?~zVZC3PyNjcYy??02tlZme`aJ9cH_F; zg<9>1P*^mnjD-q3@V;bY4bBg43DwWbe0MkE(ECL-InL9mZqP$+u1Pv$$9nHlyzefI z*Kj(x4*=hcb&njl-|NH%LHXp9rm#aNHZ}Qt5%^9_IW8+AJ|%GFV=ovzR{-~9bbAl~ zoXxLypDf;)$>pS;=n(d7FE4MonQ7H(3%d)tf5!T6_2-pm8kR5j4cf((OEsjR_kRiS z8OFN~zT-D}o0<-^f2Z~Zcvj1c%8{OIU-a9(|Gsx`U;jtF&!_xquM+h2zmNh?@6%2s zzqGm>Z2b{_kKF?2`LXHfCBZhA*n^I!JWYjmcpD!tT^oc)x`i5a*l+377kC1)X-AWjmKyP^%NQ+N0fG z>wVUrFaDy)S=V?v@TpytJx*up(V(ywK7=X#Yg?PV-X?SJ_+e)E?nS?Q;l&r%oxJ#u zA2#`#n#@&atv;WxDg5bCaUDE6?<{%$#c)r&*NW$=@Qx1fH27ZzoCBgF(c*gT3gVi;E-RpWDu0Tp~`)Z%q>u6JD221X8*U7;}_ury|OmF`({4$CgdnwqF>ou44=nII^bR69CKFxDGlmSL;S~Z58-=gpt?C3 z>OW&++2F5GO``DCk{2#q@bjm$OZ+gv5B*>cYL)Q3bOvD-9`cNwt!Q`|o`D&-FTfK! zM@X@q|6?4Z**&aZ)t@689eju1W3d3<#NX@aSRIna$H!xy(kx7P!fP!qrI6t8cR+Z5 zwcB)7j?39+w+-@>UlJ06`T_S^rqO$Nv+&dHX$G{bMq@f_w=NRGx6|Y7*3E(eo_t%q zaO7Rc!`7hi1UxT(5dR_4ZJy66ao#}1t5&4?Gx-v>-|9bc4C(aXiDTGac_-;Aqy0y( z#KoD;hAXb{;oDoZsqhO7NWVpaGM)GyWMcif#X?+M**BFpq5qyKu5a+9!27@W+}Ce+ zbhcmcSN0}UQ2Nv}_o|_e_Om}8xPJ`xN0%+QQmNsedRE(fue#mt0{i*DRQ>n$vtRH9 zzz@XyzvVx{zF!X%!8sWS{rR>F?vZF;v^!D*#H}x3e09|SUkCpOR<2gk52F7sJUhgr z|9*d-zaszF{g=#sA5;Bz*{+!Xf4?vR&-?88X`446fev;2!}1d@lt;U6J9n}ACvU#_ zW~6rY`#cyn>CDmN7cO7E9IklQ_U2EXcw*Fc@7NP77s7YcUmU!AL4EINf0GzO`+gd3 zSR#D$hq$;KWvhz)V1K>4gT3DXeBXrk^Qrf++HZt>4(?Org}Mm5e>>hYG)YGwUOj82 z9yjO@xV2|!2+!^C&=B~UiszAsZLoNShDBbMcd&R6m;T1NeCsMsRIFH8tU~ z4q?Z3JdgE4R#t9HzHOB-d5?p7{bKkYQd6VEwZ*Ml_jkTK&pLSCV7TF^zJ`A67|d=yIiu8VgSwVP zI8Dj%I{qWj(;1AUs7LT2=7aDlNv9jHo%9-KLxy{V#u*f{EF#&_~S27 zU!_k>uqvFBSU)`~&~if!k9F$Bi;q`Bp0$Ae$%N|XhGV42Y&PdTCmt%MJ@@{1neA+UqiV1t1A-nT!+ z^u2pNotMv_KcD^kde0Y-d#eby*|h1U@W=OmoAF*D)j?e^SmlYg))TviQ|O<- z|0M@!*jo`VL`Fkn+0CS+CDPpZAAs{48>_38es2Sfw2+^l&prllgZiL7`&9NR=(p}{ zOllnwepAeG)u&EZ^)Zh7`^P5E`b!hc9Ot$Ep6AxD=j@JuDF0jZwYK_Q Vk9{2c@NZEt8`T{Te)zZO{{@y5nnwTt literal 10978 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 V0I$8`e{O$$??*p=a`VaU{{aXi84dsd diff --git a/wolf3d/base/walls/028.5551 b/wolf3d/base/walls/028.5551 index 8964b6588ffd76902fa86a84f7d4b9d1577b2248..efa796c408af10fbd4ee45a7df9e9450332e1d2a 100644 GIT binary patch literal 11064 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 literal 10978 zcmc&(J#X7q6iqF8vOE-!2cy*s4b z!KeQ7`}hB^ZSS&ESw5Cc=dgV2BhLBJHPumTJZ`){+1|w^{^E9Vi!-e%G-n}3&IEtk zZ|!V^m7M~==*Opv+YcYMcWHm!!wjs+V>^p>CWqOOYlubsqQAI>4#Fn~*8=mL31d<{ zhJW|-c5NIh9|J$_7iL0_PZpNBA-=0n^q0N=-u_-YKQRG* zRO(L+6o+N+{-kREme1lg#1|9dg8>vpUQh+#Gb0#-FejN0s!)%me9|Zkj@vuOSN%`t z_a}?nbuTjX?cH>qn(k!a_(eZE<)_LaWTA6%@w@;Nnd5u?3xC}!`qMeQ5AhX?ZXMeC zM7ti-d5EuG)vw zp+79M-Cp+^z+W0>VI6?=M+Wd8aUcV-U=*qvIE#HcfC=!ah1Wm!U*f0b&bKyHW}@)L zKyhfIJA?f?xc}AtANa6!c@#c+ziJ`Wz$4LQ($y!K7xEt(X#bc0%O3oNCB_4WbLHZ3 z8XVGr{xbs1101Qp6d<5mAw(SQ7oER=Z`0JVt>4Z3u2 ze8z*d0sN$ld{qO-|2Peth3cY?@BRay`%h#$5H$$#>l&~crGwyw{PEb-}L$y zK4Z^&K1QI4-<=1?Xn-f2x9{1pz5X5F>%Yr?YT&sL?hT#`-E~3#>-P`He|A1(fpnk} z9(_Lx^T789;di6Ue?R}t>e=WTG$VmKaI*3G zFZ%M|>z`RD{6h@1GXS}Y?hJ?;;_Lq3@#!~E83V^Z#Nb#B93Pp_Hyw`e^wfDj^k4Y8 z8~;)ni+_&|XF=mQ_a!2J&+aR{IBpa#Mh1NpA;V>BQ> zdjg*Pkb|zj*FP9I{>L(CY7kr3;SQyDji>;{-|L?WP=EN_9)rVsLOl;+d){PUgc9*7 zYM%JWPbv%4I=&cSl>QufW%seFf$*UL>p#Tz{a^TaCW5hs{K#*QJ8GBX{}kvyHGl_L z1Nu9L`+~P0nB9$|wK?j)7Hy-yZD@MYg^wI`^Bkzg!1?Y!VLv#Oe<{DJL4`=K<4>drP7ccxxJb{F3 zgh-BGjlp9ok^2Jv+lZ{gyLQJ%cA^Tp@VgZ_jse!C2B<{VzvJ`S%j;h(+7zh!k86(a z$l4Py%kfqJSShp+KUAQ};TQ(efU6=8?@un%|JTwV)=$?@qvz4{^hNsJ?(-sjfp28E zqTQ0Gn^*a0`{$~kU!c!yW@a}JhTkTzhaNPt>u6)liu#*Z@hG!wEZ>ct=OdWSC|BYC zuG&}I%rGk&k zdh@r%Z(s&q>2>yUHQ=2UvYR}1|B*O1PfLGx9zFQ<_Px#j3I3h9YxsUyR&Zh!$rbjkk)3mX8GoD4x?~4IO;uM26_pU;Sls%c`+m-tf@} zz!_Fp z_f|vu*j|G9h@xA41&`^wU#(J0|4loa5C4;LezpI0t?ia~Cj zV_E74|B3JWk}JToP)qAuWtAXq;Lj_7&z0I#a1Pe9XVMe%!3ArOzcZ-o=quzCi$mEp zi4Xr#zldMRplgNf!t!>2uDR^t2uvL9+lT5`)>kv%a`rs4t}Hb$ALmqnDuM@DpdRWU zR4YC(+(X3|ws(!BHkAu~&|kulb9u*w`O!f4T|R%Gj!+V+L#^of^4a|tm(P}F$w9+a zvZS0*JTG1ppT{@xOS7AJR(x4p!&XJxoz!w)2#m3=$tIcQndZ}r@Cqo0Jm!4HTUmlN;t~FyT9j1>_!f~Telb{? z?xuhp+v{d!zC~BbXG^oBG@QxSpW$y7`;jr7nc4l4#S5GeiF3Py`Z1eDwg#S05SPtO zJYJtcYep-du=*H%>uIG&u4XZWcjOP|;2I5=XUW;JwDsBg%ra;ckFyz3vN3$MjyeR6 Ooek1KJhEqH8~*{HyPGxu diff --git a/wolf3d/base/walls/030.5551 b/wolf3d/base/walls/030.5551 index da313f3528655808a4a2a313c8a9fb9fe129b71a..d6f4885969865931db0598c7d72c311e5e7b9167 100644 GIT binary patch literal 11064 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 literal 10978 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 diff --git a/wolf3d/base/walls/032.5551 b/wolf3d/base/walls/032.5551 index 442473356145d02321137fda7440cda966f36e5b..d9faaf369535acfdfdd9956a01f5d60a3595cc8b 100644 GIT binary patch literal 11064 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 br~mDf2eyG9JMiJ(JfRQOXD9pppU?jV4XSuK literal 10978 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 diff --git a/wolf3d/base/walls/034.5551 b/wolf3d/base/walls/034.5551 index 4f1f51e594e7160fb811f2fb55065fff7ef1a461..b5eb813683e3262a33ac56276ec3c9d222bdbb31 100644 GIT binary patch literal 11064 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 literal 10978 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 diff --git a/wolf3d/base/walls/036.5551 b/wolf3d/base/walls/036.5551 index 6d9aed480bd24cdf74cbc57ef4c807ff01dc7d8b..a095fc5bb36d18d8f2ed1208eb4ee13dc1b2e801 100644 GIT binary patch literal 11064 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 I`#+uk8#un;`2YX_ literal 10978 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

vKfV8`YiMmpI9y+U?wV^LAa`#N5l5fj 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 WdY#*QSjYX4)Z=-aTVwwr`TqeGB?#sK literal 10978 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 diff --git a/wolf3d/base/walls/130.5551 b/wolf3d/base/walls/130.5551 index a8ec8cf20b812699709dd54ac126c229ddd755bf..a90c20d712ff7c9df7f48504a6a7d5cc6fa49a48 100644 GIT binary patch literal 11064 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 E4P~mv%m4rY literal 10978 zcmd6sJ#QP?6^6~yrAn15{S#azaH&%2#4hZXO#n6l)Y%GPU=<+1T0j7cz{U#|yMO>U z2AqGeoztmgslSnV^z6Im-r-OmyGR^gki6u~x$nn0_sop^?Afzte;mDL!}t9A!!Y4B z{`ckO*B%!~UvHot^!>%x8R8!wZcgtTi}THCy%y(;+e=;<{#NIBe%4&CHmCJkul5(~ z74Q3t7XSA0`qS;DF`2Vs&4bdSJNHP-GT1FLbJ62=i@#ohWSn#LWG=?EZjL=2z1M$n z1d^+4&$rS2CGU?z=d8uK-jDt7S5Qw@Zymq>w7&^fcv@oUT=_(b<(TesRh%RTupI<-~|#^|m7pwB)s+eY`doHgY^@4V;VkG@_- zf7YFS9LCS-YJRfr7~Nm!7V)4*r)%xfetcLp(Blu-pYKM;V0pd2sQk3fFRyo@!#CQE zP35t3gWu}Ey`2603pyNrWw1C$<^CcLQPZVc24n5IRe8q?bI-Ld_%Mq85qiS_{KYwa zL)2@SKzp)-@gc+YR62VeAY{VmQ1>=C;A zFV)sFxV>Cnd&h)!J-~hV;Dab&X2%C#_j`ORuGik{Z#_UY)kf{vY4QoKPGrv)dhoaP zSG}k1{M?*Yw=ws4p!@cMZS?GTP{w!H%R}3 zwaKsUjTumt^q=?^e2}OoYnDoi`|5Aqe+)Xf(+tE9gW#*b_FtjfiwfV!?dyE9V9!@K zQN08A>-UKg57a0N@}Kb(bUkPpkQwyH{XYM#=9-WFue%I6_In-#97y%KPI+*j{x;{C zqr2Ddl`3xcd)~?uKTp{$gQx1(^};XhIEWVWVa=O2wDP-7m;>FA-R}C2=6ojS!PoD4 zu89Xh=ZY}h_3*&FJU;(HkN*#&o7>$Co}$0d#Sc2(w7Q*xS*usI)hy4Wa(t-%TXgX6 zM>pTu_q%eCx+P1j=PUguInQUyfc&Q;Z)*oVx#g4kn#zH-i%Sph{}!El0b{3}AEWPL zV0PTC*)^;;rN2kV|9EE}s^d(dZ!@qP!N7I6G9&}RZ~I+~&zU@96lOcO?$icu4YH7L z;QRca90a}kFM0Pb8)J0!C-3o&@2K~a`FK7MBFvj|=f4MQ|O6zF%e13b#`SPN5-x{CRpZe!0^Jr#H)sDww7!YHwnDw`Fx6oPd9EwD)TG_5*)8fBrA7885E9 z-($6dv)jvH^D7>)iptSI{BVW($+7<7>fMVgd_$$KyMk*HJzw&=IpO|t96$eVasJ{; zhg42hVIALym3te%mj6G|O#Hza|I-oXI+A{@?>NUw@*fnve|{HDypFK~eyfCN)=P97 zKVRxRS6Ms{^P3Z*f?LY1rox{uy+bgv;yKT3=RH}oa&Xf84fXWx-UoBtX8h*FNR)st za^WX_zMTDi_W9x`m=n+W#svAkc-H&tpJ#99-}dp9b5_CagR^j$FTJaQKk=Mly_jwA z*i*qbo)u)@$Ge}1NVUM8y%H6mn*slx)W@4K-icCs_6khEB%T>ZS*_)tcu|RY12&^A5}W(f{Ng{PK;8fh{{dE1+a?Zf)p)MWbKkcA7+^;o^v% zao25z{jI*6lj^^qr^m!C&QH$cg1Knp-CO0D&gptZ>!Z=}R(zeyZ+@cOsv$1p=H%iC zZuXPSY4PVb@0eB2uB@FP0`FD=IUvG#_=Ac9m4`#mUN?%T@!^TG@d)qwY|k+NzvsSc z?-f_z-#)&)JU+ZRsR7UW=F^kcRC=SmMg7VD#S!~F9n?z1Nq5=ZS|7grXm9nJ#4$1x zB(6ONL)E(fK_eSD{|l23e;azcS!I1|x0u?q;bvu2)ll!lmFo5J2czHww`7&$!@m0F z=5>x+2b`6Rc^&b1j*>$e60c_7aYo)$ik*t%D28>A!L{0m_lSNGr?N1u>nBX7jtfH?V%gc|-hNe&WKQ@{MZetN#G?NJXUp diff --git a/wolf3d/base/walls/132.5551 b/wolf3d/base/walls/132.5551 index 8259cad58dcf59ace24bade0d8bb6b5c7457f936..2208d6497a650052e639b48a961d0d18b2355315 100644 GIT binary patch literal 11064 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 Z8n~)(&iJa7#222fR4b6jYsfXbe*t48@Cg6_ diff --git a/wolf3d/base/walls/133.5551 b/wolf3d/base/walls/133.5551 index ae74781ecb466d4621462d605ec53aab58e1c604..136aa12c57652e0f91caf2e8d98102281c4d9c5b 100644 GIT binary patch literal 11064 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 diff --git a/wolf3d/code/.DS_Store b/wolf3d/code/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..390aed0b5b3453399a18bbd2393cb427d43d69ba GIT binary patch literal 6148 zcmeHKyH3ME5Zr|bMWRVbd7l7(aEihg($V^10a6>s-7@N(TkL)5dhU)KVW&M0;ZdaRbHLCtTVcaWe3S7o;X8r#j{=@x$NaBbJP=Ptsy>;|+)@uv= p0sd*I^>T#4Apiqw#WyE)#hy`D6Z=4?Bkyz|4+5qOjSBpR0w43l9I5~S literal 0 HcmV?d00001 diff --git a/wolf3d/code/Tremor/CHANGELOG b/wolf3d/code/Tremor/CHANGELOG new file mode 100644 index 0000000..53f2335 --- /dev/null +++ b/wolf3d/code/Tremor/CHANGELOG @@ -0,0 +1,19 @@ +*** 20020517: 1.0.2 *** + + Playback bugfix to floor1; mode mistakenly used for sizing instead + of blockflag + +*** 20020515: 1.0.1 *** + + Added complete API documentation to source tarball. No code + changes. + +*** 20020412: 1.0.1 *** + + Fixed a clipping bug that affected ARM processors; negative + overflows were being properly clipped, but then clobbered to + positive by the positive overflow chec (asm_arm.h:CLIP_TO_15) + +*** 20020403: 1.0.0 *** + + Initial version \ No newline at end of file diff --git a/wolf3d/code/Tremor/COPYING b/wolf3d/code/Tremor/COPYING new file mode 100644 index 0000000..6111c6c --- /dev/null +++ b/wolf3d/code/Tremor/COPYING @@ -0,0 +1,28 @@ +Copyright (c) 2002, Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of the Xiph.org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/wolf3d/code/Tremor/Makefile.am b/wolf3d/code/Tremor/Makefile.am new file mode 100644 index 0000000..d14081f --- /dev/null +++ b/wolf3d/code/Tremor/Makefile.am @@ -0,0 +1,38 @@ +AUTOMAKE_OPTIONS = foreign + +INCLUDES = -I./ + +lib_LTLIBRARIES = libvorbisidec.la + +libvorbisidec_la_SOURCES = mdct.c block.c window.c \ + synthesis.c info.c \ + floor1.c floor0.c vorbisfile.c \ + res012.c mapping0.c registry.c codebook.c \ + sharedbook.c framing.c bitwise.c \ + codebook.h misc.h mdct_lookup.h\ + os.h mdct.h block.h ivorbisfile.h lsp_lookup.h\ + registry.h window.h window_lookup.h\ + codec_internal.h backends.h ogg.h \ + asm_arm.h ivorbiscodec.h +libvorbisidec_la_LDFLAGS = -version-info @V_LIB_CURRENT@:@V_LIB_REVISION@:@V_LIB_AGE@ + +EXTRA_PROGRAMS = ivorbisfile_example +CLEANFILES = $(EXTRA_PROGRAMS) $(lib_LTLIBRARIES) + +ivorbisfile_example_SOURCES = ivorbisfile_example.c +ivorbisfile_example_LDFLAGS = -static +ivorbisfile_example_LDADD = libvorbisidec.la + +includedir = $(prefix)/include/tremor + +include_HEADERS = ivorbiscodec.h ivorbisfile.h ogg.h os_types.h config_types.h + +example: + -ln -fs . vorbis + $(MAKE) ivorbisfile_example + +debug: + $(MAKE) all CFLAGS="@DEBUG@" + +profile: + $(MAKE) all CFLAGS="@PROFILE@" diff --git a/wolf3d/code/Tremor/README b/wolf3d/code/Tremor/README new file mode 100644 index 0000000..1321175 --- /dev/null +++ b/wolf3d/code/Tremor/README @@ -0,0 +1,46 @@ +This README covers the Ogg Vorbis 'Tremor' integer playback codec +source as of date 2002 09 02, version 1.0.0. + + ****** + +The C source in this package will build on any ANSI C compiler and +function completely and properly on any platform. The included build +system assumes GNU build system and make tools (m4, automake, +autoconf, libtool and gmake). GCC is not required, although GCC is +the most tested compiler. To build using GNU tools, type in the +source directory: + +./autogen.sh +make + +Currently, the source implements playback in pure C on all platforms +except ARM, where a [currently] small amount of assembly (see +asm_arm.h) is used to implement 64 bit math operations and fast LSP +computation. If building on ARM without the benefit of GNU build +system tools, be sure that '_ARM_ASSEM_' is #defined by the build +system if this assembly is desired, else the resulting library will +use whatever 64 bit math builtins the compiler implements. + +No math library is required by this source. No floating point +operations are used at any point in either setup or decode. This +decoder library will properly decode any past, current or future +Vorbis I file or stream. + + ******** + +The build system produces a static and [when supported by the OS] +dynamic library named 'libvorbisidec'. This library exposes an API +nearly identical to the BSD reference library's 'libvorbisfile', +including all the features familiar to users of vorbisfile. This API +is similar enough that the proper header file to include is named +'ivorbisfile.h' [included in the source build directory]. Lower level +libvorbis-style headers and structures are in 'ivorbiscodec.h' +[included in the source build directory]. A simple example program, +ivorbisfile_example.c, can be built with 'make example'. + + ******** + +Detailed Tremor API Documentation begins at doc/index.html + +Monty +xiph.org diff --git a/wolf3d/code/Tremor/Version_script.in b/wolf3d/code/Tremor/Version_script.in new file mode 100644 index 0000000..c0dfde9 --- /dev/null +++ b/wolf3d/code/Tremor/Version_script.in @@ -0,0 +1,49 @@ +# +# Export file for libvorbisidec +# +# Only the symbols listed in the global section will be callable from +# applications linking to libvorbisidec. +# + +@PACKAGE@.so.1 +{ + global: + ov_clear; + ov_open; + ov_open_callbacks; + ov_test; + ov_test_callbacks; + ov_test_open; + ov_bitrate; + ov_bitrate_instant; + ov_streams; + ov_seekable; + ov_serialnumber; + ov_raw_total; + ov_pcm_total; + ov_time_total; + ov_raw_seek; + ov_pcm_seek; + ov_pcm_seek_page; + ov_time_seek; + ov_time_seek_page; + ov_raw_tell; + ov_pcm_tell; + ov_time_tell; + ov_info; + ov_comment; + ov_read; + + vorbis_info_init; + vorbis_info_clear; + vorbis_info_blocksize; + vorbis_comment_init; + vorbis_comment_add; + vorbis_comment_add_tag; + vorbis_comment_query; + vorbis_comment_query_count; + vorbis_comment_clear; + + local: + *; +}; diff --git a/wolf3d/code/Tremor/asm_arm.h b/wolf3d/code/Tremor/asm_arm.h new file mode 100644 index 0000000..3a3716d --- /dev/null +++ b/wolf3d/code/Tremor/asm_arm.h @@ -0,0 +1,243 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: arm7 and later wide math functions + + ********************************************************************/ + +#ifdef _ARM_ASSEM_ + +#if !defined(_V_WIDE_MATH) && !defined(_LOW_ACCURACY_) +#define _V_WIDE_MATH + +static inline ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) { + int lo,hi; + asm volatile("smull\t%0, %1, %2, %3" + : "=&r"(lo),"=&r"(hi) + : "%r"(x),"r"(y) + : "cc"); + return(hi); +} + +static inline ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) { + return MULT32(x,y)<<1; +} + +static inline ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) { + int lo,hi; + asm volatile("smull %0, %1, %2, %3\n\t" + "movs %0, %0, lsr #15\n\t" + "adc %1, %0, %1, lsl #17\n\t" + : "=&r"(lo),"=&r"(hi) + : "%r"(x),"r"(y) + : "cc"); + return(hi); +} + +#define MB() asm volatile ("" : : : "memory") + +static inline void XPROD32(ogg_int32_t a, ogg_int32_t b, + ogg_int32_t t, ogg_int32_t v, + ogg_int32_t *x, ogg_int32_t *y) +{ + int x1, y1, l; + asm( "smull %0, %1, %4, %6\n\t" + "smlal %0, %1, %5, %7\n\t" + "rsb %3, %4, #0\n\t" + "smull %0, %2, %5, %6\n\t" + "smlal %0, %2, %3, %7" + : "=&r" (l), "=&r" (x1), "=&r" (y1), "=r" (a) + : "3" (a), "r" (b), "r" (t), "r" (v) + : "cc" ); + *x = x1; + MB(); + *y = y1; +} + +static inline void XPROD31(ogg_int32_t a, ogg_int32_t b, + ogg_int32_t t, ogg_int32_t v, + ogg_int32_t *x, ogg_int32_t *y) +{ + int x1, y1, l; + asm( "smull %0, %1, %4, %6\n\t" + "smlal %0, %1, %5, %7\n\t" + "rsb %3, %4, #0\n\t" + "smull %0, %2, %5, %6\n\t" + "smlal %0, %2, %3, %7" + : "=&r" (l), "=&r" (x1), "=&r" (y1), "=r" (a) + : "3" (a), "r" (b), "r" (t), "r" (v) + : "cc" ); + *x = x1 << 1; + MB(); + *y = y1 << 1; +} + +static inline void XNPROD31(ogg_int32_t a, ogg_int32_t b, + ogg_int32_t t, ogg_int32_t v, + ogg_int32_t *x, ogg_int32_t *y) +{ + int x1, y1, l; + asm( "rsb %2, %4, #0\n\t" + "smull %0, %1, %3, %5\n\t" + "smlal %0, %1, %2, %6\n\t" + "smull %0, %2, %4, %5\n\t" + "smlal %0, %2, %3, %6" + : "=&r" (l), "=&r" (x1), "=&r" (y1) + : "r" (a), "r" (b), "r" (t), "r" (v) + : "cc" ); + *x = x1 << 1; + MB(); + *y = y1 << 1; +} + +#endif + +#ifndef _V_CLIP_MATH +#define _V_CLIP_MATH + +static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) { + int tmp; + asm volatile("subs %1, %0, #32768\n\t" + "movpl %0, #0x7f00\n\t" + "orrpl %0, %0, #0xff\n" + "adds %1, %0, #32768\n\t" + "movmi %0, #0x8000" + : "+r"(x),"=r"(tmp) + : + : "cc"); + return(x); +} + +#endif + +#ifndef _V_LSP_MATH_ASM +#define _V_LSP_MATH_ASM + +static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip, + ogg_int32_t *qexpp, + ogg_int32_t *ilsp,ogg_int32_t wi, + ogg_int32_t m){ + + ogg_uint32_t qi=*qip,pi=*pip; + ogg_int32_t qexp=*qexpp; + + asm("mov r0,%3;" + "mov r1,%5,asr#1;" + "add r0,r0,r1,lsl#3;" + "1:" + + "ldmdb r0!,{r1,r3};" + "subs r1,r1,%4;" //ilsp[j]-wi + "rsbmi r1,r1,#0;" //labs(ilsp[j]-wi) + "umull %0,r2,r1,%0;" //qi*=labs(ilsp[j]-wi) + + "subs r1,r3,%4;" //ilsp[j+1]-wi + "rsbmi r1,r1,#0;" //labs(ilsp[j+1]-wi) + "umull %1,r3,r1,%1;" //pi*=labs(ilsp[j+1]-wi) + + "cmn r2,r3;" // shift down 16? + "beq 0f;" + "add %2,%2,#16;" + "mov %0,%0,lsr #16;" + "orr %0,%0,r2,lsl #16;" + "mov %1,%1,lsr #16;" + "orr %1,%1,r3,lsl #16;" + "0:" + "cmp r0,%3;\n" + "bhi 1b;\n" + + // odd filter assymetry + "ands r0,%5,#1;\n" + "beq 2f;\n" + "add r0,%3,%5,lsl#2;\n" + + "ldr r1,[r0,#-4];\n" + "mov r0,#0x4000;\n" + + "subs r1,r1,%4;\n" //ilsp[j]-wi + "rsbmi r1,r1,#0;\n" //labs(ilsp[j]-wi) + "umull %0,r2,r1,%0;\n" //qi*=labs(ilsp[j]-wi) + "umull %1,r3,r0,%1;\n" //pi*=labs(ilsp[j+1]-wi) + + "cmn r2,r3;\n" // shift down 16? + "beq 2f;\n" + "add %2,%2,#16;\n" + "mov %0,%0,lsr #16;\n" + "orr %0,%0,r2,lsl #16;\n" + "mov %1,%1,lsr #16;\n" + "orr %1,%1,r3,lsl #16;\n" + + //qi=(pi>>shift)*labs(ilsp[j]-wi); + //pi=(qi>>shift)*labs(ilsp[j+1]-wi); + //qexp+=shift; + + //} + + /* normalize to max 16 sig figs */ + "2:" + "mov r2,#0;" + "orr r1,%0,%1;" + "tst r1,#0xff000000;" + "addne r2,r2,#8;" + "movne r1,r1,lsr #8;" + "tst r1,#0x00f00000;" + "addne r2,r2,#4;" + "movne r1,r1,lsr #4;" + "tst r1,#0x000c0000;" + "addne r2,r2,#2;" + "movne r1,r1,lsr #2;" + "tst r1,#0x00020000;" + "addne r2,r2,#1;" + "movne r1,r1,lsr #1;" + "tst r1,#0x00010000;" + "addne r2,r2,#1;" + "mov %0,%0,lsr r2;" + "mov %1,%1,lsr r2;" + "add %2,%2,r2;" + + : "+r"(qi),"+r"(pi),"+r"(qexp) + : "r"(ilsp),"r"(wi),"r"(m) + : "r0","r1","r2","r3","cc"); + + *qip=qi; + *pip=pi; + *qexpp=qexp; +} + +static inline void lsp_norm_asm(ogg_uint32_t *qip,ogg_int32_t *qexpp){ + + ogg_uint32_t qi=*qip; + ogg_int32_t qexp=*qexpp; + + asm("tst %0,#0x0000ff00;" + "moveq %0,%0,lsl #8;" + "subeq %1,%1,#8;" + "tst %0,#0x0000f000;" + "moveq %0,%0,lsl #4;" + "subeq %1,%1,#4;" + "tst %0,#0x0000c000;" + "moveq %0,%0,lsl #2;" + "subeq %1,%1,#2;" + "tst %0,#0x00008000;" + "moveq %0,%0,lsl #1;" + "subeq %1,%1,#1;" + : "+r"(qi),"+r"(qexp) + : + : "cc"); + *qip=qi; + *qexpp=qexp; +} + +#endif +#endif + diff --git a/wolf3d/code/Tremor/autogen.sh b/wolf3d/code/Tremor/autogen.sh new file mode 100644 index 0000000..73c8fca --- /dev/null +++ b/wolf3d/code/Tremor/autogen.sh @@ -0,0 +1,120 @@ +#!/bin/sh +# Run this to set up the build system: configure, makefiles, etc. +# (based on the version in enlightenment's cvs) + +package="vorbisdec" + +olddir=`pwd` +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +cd "$srcdir" +DIE=0 + +echo "checking for autoconf... " +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have autoconf installed to compile $package." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +VERSIONGREP="sed -e s/.*[^0-9\.]\([0-9]\.[0-9]\).*/\1/" +VERSIONMKINT="sed -e s/[^0-9]//" + +# do we need automake? +if test -r Makefile.am; then + AM_OPTIONS=`fgrep AUTOMAKE_OPTIONS Makefile.am` + AM_NEEDED=`echo $AM_OPTIONS | $VERSIONGREP` + if test x"$AM_NEEDED" = "x$AM_OPTIONS"; then + AM_NEEDED="" + fi + if test -z $AM_NEEDED; then + echo -n "checking for automake... " + AUTOMAKE=automake + ACLOCAL=aclocal + if ($AUTOMAKE --version < /dev/null > /dev/null 2>&1); then + echo "yes" + else + echo "no" + AUTOMAKE= + fi + else + echo -n "checking for automake $AM_NEEDED or later... " + for am in automake-$AM_NEEDED automake$AM_NEEDED automake; do + ($am --version < /dev/null > /dev/null 2>&1) || continue + ver=`$am --version < /dev/null | head -n 1 | $VERSIONGREP | $VERSIONMKINT` + verneeded=`echo $AM_NEEDED | $VERSIONMKINT` + if test $ver -ge $verneeded; then + AUTOMAKE=$am + echo $AUTOMAKE + break + fi + done + test -z $AUTOMAKE && echo "no" + echo -n "checking for aclocal $AM_NEEDED or later... " + for ac in aclocal-$AM_NEEDED aclocal$AM_NEEDED aclocal; do + ($ac --version < /dev/null > /dev/null 2>&1) || continue + ver=`$ac --version < /dev/null | head -n 1 | $VERSIONGREP | $VERSIONMKINT` + verneeded=`echo $AM_NEEDED | $VERSIONMKINT` + if test $ver -ge $verneeded; then + ACLOCAL=$ac + echo $ACLOCAL + break + fi + done + test -z $ACLOCAL && echo "no" + fi + test -z $AUTOMAKE || test -z $ACLOCAL && { + echo + echo "You must have automake installed to compile $package." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + exit 1 + } +fi + +echo -n "checking for libtool... " +for LIBTOOLIZE in libtoolize glibtoolize nope; do + ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 && break +done +if test x$LIBTOOLIZE = xnope; then + echo "nope." + LIBTOOLIZE=libtoolize +else + echo $LIBTOOLIZE +fi +($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have libtool installed to compile $package." + echo "Download the appropriate package for your system," + echo "or get the source from one of the GNU ftp sites" + echo "listed in http://www.gnu.org/order/ftp.html" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +if test -z "$*"; then + echo "I am going to run ./configure with no arguments - if you wish " + echo "to pass any to it, please specify them on the $0 command line." +fi + +echo "Generating configuration files for $package, please wait...." + +echo " $ACLOCAL $ACLOCAL_FLAGS" +$ACLOCAL $ACLOCAL_FLAGS || exit 1 +echo " $LIBTOOLIZE --automake" +$LIBTOOLIZE --automake || exit 1 +echo " autoheader" +autoheader || exit 1 +echo " $AUTOMAKE --add-missing $AUTOMAKE_FLAGS" +$AUTOMAKE --add-missing $AUTOMAKE_FLAGS || exit 1 +echo " autoconf" +autoconf || exit 1 + +cd $olddir +$srcdir/configure --enable-maintainer-mode "$@" && echo diff --git a/wolf3d/code/Tremor/backends.h b/wolf3d/code/Tremor/backends.h new file mode 100644 index 0000000..50c1c45 --- /dev/null +++ b/wolf3d/code/Tremor/backends.h @@ -0,0 +1,130 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: backend and mapping structures + + ********************************************************************/ + +/* this is exposed up here because we need it for static modes. + Lookups for each backend aren't exposed because there's no reason + to do so */ + +#ifndef _vorbis_backend_h_ +#define _vorbis_backend_h_ + +#include "codec_internal.h" + +/* this would all be simpler/shorter with templates, but.... */ +/* Transform backend generic *************************************/ + +/* only mdct right now. Flesh it out more if we ever transcend mdct + in the transform domain */ + +/* Floor backend generic *****************************************/ +typedef struct{ + vorbis_info_floor *(*unpack)(vorbis_info *,oggpack_buffer *); + vorbis_look_floor *(*look) (vorbis_dsp_state *,vorbis_info_mode *, + vorbis_info_floor *); + void (*free_info) (vorbis_info_floor *); + void (*free_look) (vorbis_look_floor *); + void *(*inverse1) (struct vorbis_block *,vorbis_look_floor *); + int (*inverse2) (struct vorbis_block *,vorbis_look_floor *, + void *buffer,ogg_int32_t *); +} vorbis_func_floor; + +typedef struct{ + int order; + long rate; + long barkmap; + + int ampbits; + int ampdB; + + int numbooks; /* <= 16 */ + int books[16]; + +} vorbis_info_floor0; + +#define VIF_POSIT 63 +#define VIF_CLASS 16 +#define VIF_PARTS 31 +typedef struct{ + int partitions; /* 0 to 31 */ + int partitionclass[VIF_PARTS]; /* 0 to 15 */ + + int class_dim[VIF_CLASS]; /* 1 to 8 */ + int class_subs[VIF_CLASS]; /* 0,1,2,3 (bits: 1< +#include +#include "ogg.h" + +static unsigned long mask[]= +{0x00000000,0x00000001,0x00000003,0x00000007,0x0000000f, + 0x0000001f,0x0000003f,0x0000007f,0x000000ff,0x000001ff, + 0x000003ff,0x000007ff,0x00000fff,0x00001fff,0x00003fff, + 0x00007fff,0x0000ffff,0x0001ffff,0x0003ffff,0x0007ffff, + 0x000fffff,0x001fffff,0x003fffff,0x007fffff,0x00ffffff, + 0x01ffffff,0x03ffffff,0x07ffffff,0x0fffffff,0x1fffffff, + 0x3fffffff,0x7fffffff,0xffffffff }; + +/* mark read process as having run off the end */ +static void _adv_halt(oggpack_buffer *b){ + b->headptr=b->head->buffer->data+b->head->begin+b->head->length; + b->headend=-1; + b->headbit=0; +} + +/* spans forward, skipping as many bytes as headend is negative; if + headend is zero, simply finds next byte. If we're up to the end + of the buffer, leaves headend at zero. If we've read past the end, + halt the decode process. */ +static void _span(oggpack_buffer *b){ + while(b->headend<1){ + if(b->head->next){ + b->count+=b->head->length; + b->head=b->head->next; + b->headptr=b->head->buffer->data+b->head->begin-b->headend; + b->headend+=b->head->length; + }else{ + /* we've either met the end of decode, or gone past it. halt + only if we're past */ + if(b->headend<0 || b->headbit) + /* read has fallen off the end */ + _adv_halt(b); + + break; + } + } +} + +void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){ + memset(b,0,sizeof(*b)); + + b->tail=b->head=r; + b->count=0; + b->headptr=b->head->buffer->data+b->head->begin; + b->headend=b->head->length; + _span(b); +} + +#define _lookspan() while(!end){\ + head=head->next;\ + if(!head) return -1;\ + ptr=head->buffer->data + head->begin;\ + end=head->length;\ + } + +/* Read in bits without advancing the bitptr; bits <= 32 */ +long oggpack_look(oggpack_buffer *b,int bits){ + unsigned long m=mask[bits]; + unsigned long ret=-1; + + bits+=b->headbit; + + if(bits >= b->headend<<3){ + int end=b->headend; + unsigned char *ptr=b->headptr; + ogg_reference *head=b->head; + + if(end<0)return -1; + + if(bits){ + _lookspan(); + ret=*ptr++>>b->headbit; + if(bits>8){ + --end; + _lookspan(); + ret|=*ptr++<<(8-b->headbit); + if(bits>16){ + --end; + _lookspan(); + ret|=*ptr++<<(16-b->headbit); + if(bits>24){ + --end; + _lookspan(); + ret|=*ptr++<<(24-b->headbit); + if(bits>32 && b->headbit){ + --end; + _lookspan(); + ret|=*ptr<<(32-b->headbit); + } + } + } + } + } + + }else{ + + /* make this a switch jump-table */ + ret=b->headptr[0]>>b->headbit; + if(bits>8){ + ret|=b->headptr[1]<<(8-b->headbit); + if(bits>16){ + ret|=b->headptr[2]<<(16-b->headbit); + if(bits>24){ + ret|=b->headptr[3]<<(24-b->headbit); + if(bits>32 && b->headbit) + ret|=b->headptr[4]<<(32-b->headbit); + } + } + } + } + + ret&=m; + return ret; +} + +/* limited to 32 at a time */ +void oggpack_adv(oggpack_buffer *b,int bits){ + bits+=b->headbit; + b->headbit=bits&7; + b->headptr+=bits/8; + if((b->headend-=bits/8)<1)_span(b); +} + +/* spans forward and finds next byte. Never halts */ +static void _span_one(oggpack_buffer *b){ + while(b->headend<1){ + if(b->head->next){ + b->count+=b->head->length; + b->head=b->head->next; + b->headptr=b->head->buffer->data+b->head->begin; + b->headend=b->head->length; + }else + break; + } +} + +static int _halt_one(oggpack_buffer *b){ + if(b->headend<1){ + _adv_halt(b); + return -1; + } + return 0; +} + +int oggpack_eop(oggpack_buffer *b){ + if(b->headend<0)return -1; + return 0; +} + +/* bits <= 32 */ +long oggpack_read(oggpack_buffer *b,int bits){ + unsigned long m=mask[bits]; + ogg_uint32_t ret=-1; + + bits+=b->headbit; + + if(bits >= b->headend<<3){ + + if(b->headend<0)return -1; + + if(bits){ + if (_halt_one(b)) return -1; + ret=*b->headptr>>b->headbit; + + if(bits>=8){ + ++b->headptr; + --b->headend; + _span_one(b); + if(bits>8){ + if (_halt_one(b)) return -1; + ret|=*b->headptr<<(8-b->headbit); + + if(bits>=16){ + ++b->headptr; + --b->headend; + _span_one(b); + if(bits>16){ + if (_halt_one(b)) return -1; + ret|=*b->headptr<<(16-b->headbit); + + if(bits>=24){ + ++b->headptr; + --b->headend; + _span_one(b); + if(bits>24){ + if (_halt_one(b)) return -1; + ret|=*b->headptr<<(24-b->headbit); + + if(bits>=32){ + ++b->headptr; + --b->headend; + _span_one(b); + if(bits>32){ + if (_halt_one(b)) return -1; + if(b->headbit)ret|=*b->headptr<<(32-b->headbit); + + } + } + } + } + } + } + } + } + } + }else{ + + ret=b->headptr[0]>>b->headbit; + if(bits>8){ + ret|=b->headptr[1]<<(8-b->headbit); + if(bits>16){ + ret|=b->headptr[2]<<(16-b->headbit); + if(bits>24){ + ret|=b->headptr[3]<<(24-b->headbit); + if(bits>32 && b->headbit){ + ret|=b->headptr[4]<<(32-b->headbit); + } + } + } + } + + b->headptr+=bits/8; + b->headend-=bits/8; + } + + ret&=m; + b->headbit=bits&7; + return ret; +} + +long oggpack_bytes(oggpack_buffer *b){ + return(b->count+b->headptr-b->head->buffer->data-b->head->begin+ + (b->headbit+7)/8); +} + +long oggpack_bits(oggpack_buffer *b){ + return((b->count+b->headptr-b->head->buffer->data-b->head->begin)*8+ + b->headbit); +} + diff --git a/wolf3d/code/Tremor/block.c b/wolf3d/code/Tremor/block.c new file mode 100644 index 0000000..8949253 --- /dev/null +++ b/wolf3d/code/Tremor/block.c @@ -0,0 +1,453 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: PCM data vector blocking, windowing and dis/reassembly + + ********************************************************************/ + +#include +#include +#include +#include "ogg.h" +#include "ivorbiscodec.h" +#include "codec_internal.h" + +#include "window.h" +#include "registry.h" +#include "misc.h" + +static int ilog(unsigned int v){ + int ret=0; + if(v)--v; + while(v){ + ret++; + v>>=1; + } + return(ret); +} + +/* pcm accumulator examples (not exhaustive): + + <-------------- lW ----------------> + <--------------- W ----------------> +: .....|..... _______________ | +: .''' | '''_--- | |\ | +:.....''' |_____--- '''......| | \_______| +:.................|__________________|_______|__|______| + |<------ Sl ------>| > Sr < |endW + |beginSl |endSl | |endSr + |beginW |endlW |beginSr + + + |< lW >| + <--------------- W ----------------> + | | .. ______________ | + | | ' `/ | ---_ | + |___.'___/`. | ---_____| + |_______|__|_______|_________________| + | >|Sl|< |<------ Sr ----->|endW + | | |endSl |beginSr |endSr + |beginW | |endlW + mult[0] |beginSl mult[n] + + <-------------- lW -----------------> + |<--W-->| +: .............. ___ | | +: .''' |`/ \ | | +:.....''' |/`....\|...| +:.........................|___|___|___| + |Sl |Sr |endW + | | |endSr + | |beginSr + | |endSl + |beginSl + |beginW +*/ + +/* block abstraction setup *********************************************/ + +#ifndef WORD_ALIGN +#define WORD_ALIGN 8 +#endif + +int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){ + memset(vb,0,sizeof(*vb)); + vb->vd=v; + vb->localalloc=0; + vb->localstore=NULL; + + return(0); +} + +void *_vorbis_block_alloc(vorbis_block *vb,long bytes){ + bytes=(bytes+(WORD_ALIGN-1)) & ~(WORD_ALIGN-1); + if(bytes+vb->localtop>vb->localalloc){ + /* can't just _ogg_realloc... there are outstanding pointers */ + if(vb->localstore){ + struct alloc_chain *link=(struct alloc_chain *)_ogg_malloc(sizeof(*link)); + vb->totaluse+=vb->localtop; + link->next=vb->reap; + link->ptr=vb->localstore; + vb->reap=link; + } + /* highly conservative */ + vb->localalloc=bytes; + vb->localstore=_ogg_malloc(vb->localalloc); + vb->localtop=0; + } + { + void *ret=(void *)(((char *)vb->localstore)+vb->localtop); + vb->localtop+=bytes; + return ret; + } +} + +/* reap the chain, pull the ripcord */ +void _vorbis_block_ripcord(vorbis_block *vb){ + /* reap the chain */ + struct alloc_chain *reap=vb->reap; + while(reap){ + struct alloc_chain *next=reap->next; + _ogg_free(reap->ptr); + memset(reap,0,sizeof(*reap)); + _ogg_free(reap); + reap=next; + } + /* consolidate storage */ + if(vb->totaluse){ + vb->localstore=_ogg_realloc(vb->localstore,vb->totaluse+vb->localalloc); + vb->localalloc+=vb->totaluse; + vb->totaluse=0; + } + + /* pull the ripcord */ + vb->localtop=0; + vb->reap=NULL; +} + +int vorbis_block_clear(vorbis_block *vb){ + _vorbis_block_ripcord(vb); + if(vb->localstore)_ogg_free(vb->localstore); + + memset(vb,0,sizeof(*vb)); + return(0); +} + +static int _vds_init(vorbis_dsp_state *v,vorbis_info *vi){ + int i; + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + private_state *b=NULL; + + memset(v,0,sizeof(*v)); + b=(private_state *)(v->backend_state=_ogg_calloc(1,sizeof(*b))); + + v->vi=vi; + b->modebits=ilog(ci->modes); + + /* Vorbis I uses only window type 0 */ + b->window[0]=_vorbis_window(0,ci->blocksizes[0]/2); + b->window[1]=_vorbis_window(0,ci->blocksizes[1]/2); + + /* finish the codebooks */ + if(!ci->fullbooks){ + ci->fullbooks=(codebook *)_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); + for(i=0;ibooks;i++){ + vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i]); + /* decode codebooks are now standalone after init */ + vorbis_staticbook_destroy(ci->book_param[i]); + ci->book_param[i]=NULL; + } + } + + v->pcm_storage=ci->blocksizes[1]; + v->pcm=(ogg_int32_t **)_ogg_malloc(vi->channels*sizeof(*v->pcm)); + v->pcmret=(ogg_int32_t **)_ogg_malloc(vi->channels*sizeof(*v->pcmret)); + for(i=0;ichannels;i++) + v->pcm[i]=(ogg_int32_t *)_ogg_calloc(v->pcm_storage,sizeof(*v->pcm[i])); + + /* all 1 (large block) or 0 (small block) */ + /* explicitly set for the sake of clarity */ + v->lW=0; /* previous window size */ + v->W=0; /* current window size */ + + /* initialize all the mapping/backend lookups */ + b->mode=(vorbis_look_mapping **)_ogg_calloc(ci->modes,sizeof(*b->mode)); + for(i=0;imodes;i++){ + int mapnum=ci->mode_param[i]->mapping; + int maptype=ci->map_type[mapnum]; + b->mode[i]=_mapping_P[maptype]->look(v,ci->mode_param[i], + ci->map_param[mapnum]); + } + return(0); +} + +int vorbis_synthesis_restart(vorbis_dsp_state *v){ + vorbis_info *vi=v->vi; + codec_setup_info *ci; + + if(!v->backend_state)return -1; + if(!vi)return -1; + ci=vi->codec_setup; + if(!ci)return -1; + + v->centerW=ci->blocksizes[1]/2; + v->pcm_current=v->centerW; + + v->pcm_returned=-1; + v->granulepos=-1; + v->sequence=-1; + ((private_state *)(v->backend_state))->sample_count=-1; + + return(0); +} + +int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi){ + _vds_init(v,vi); + vorbis_synthesis_restart(v); + + return(0); +} + +void vorbis_dsp_clear(vorbis_dsp_state *v){ + int i; + if(v){ + vorbis_info *vi=v->vi; + codec_setup_info *ci=(codec_setup_info *)(vi?vi->codec_setup:NULL); + private_state *b=(private_state *)v->backend_state; + + if(v->pcm){ + for(i=0;ichannels;i++) + if(v->pcm[i])_ogg_free(v->pcm[i]); + _ogg_free(v->pcm); + if(v->pcmret)_ogg_free(v->pcmret); + } + + /* free mode lookups; these are actually vorbis_look_mapping structs */ + if(ci){ + for(i=0;imodes;i++){ + int mapnum=ci->mode_param[i]->mapping; + int maptype=ci->map_type[mapnum]; + if(b && b->mode)_mapping_P[maptype]->free_look(b->mode[i]); + } + } + + if(b){ + if(b->mode)_ogg_free(b->mode); + _ogg_free(b); + } + + memset(v,0,sizeof(*v)); + } +} + +/* Unlike in analysis, the window is only partially applied for each + block. The time domain envelope is not yet handled at the point of + calling (as it relies on the previous block). */ + +int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ + vorbis_info *vi=v->vi; + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + private_state *b=v->backend_state; + int i,j; + + if(v->pcm_current>v->pcm_returned && v->pcm_returned!=-1)return(OV_EINVAL); + + v->lW=v->W; + v->W=vb->W; + v->nW=-1; + + if((v->sequence==-1)|| + (v->sequence+1 != vb->sequence)){ + v->granulepos=-1; /* out of sequence; lose count */ + b->sample_count=-1; + } + + v->sequence=vb->sequence; + + if(vb->pcm){ /* no pcm to process if vorbis_synthesis_trackonly + was called on block */ + int n=ci->blocksizes[v->W]/2; + int n0=ci->blocksizes[0]/2; + int n1=ci->blocksizes[1]/2; + + int thisCenter; + int prevCenter; + + if(v->centerW){ + thisCenter=n1; + prevCenter=0; + }else{ + thisCenter=0; + prevCenter=n1; + } + + /* v->pcm is now used like a two-stage double buffer. We don't want + to have to constantly shift *or* adjust memory usage. Don't + accept a new block until the old is shifted out */ + + /* overlap/add PCM */ + + for(j=0;jchannels;j++){ + /* the overlap/add section */ + if(v->lW){ + if(v->W){ + /* large/large */ + ogg_int32_t *pcm=v->pcm[j]+prevCenter; + ogg_int32_t *p=vb->pcm[j]; + for(i=0;ipcm[j]+prevCenter+n1/2-n0/2; + ogg_int32_t *p=vb->pcm[j]; + for(i=0;iW){ + /* small/large */ + ogg_int32_t *pcm=v->pcm[j]+prevCenter; + ogg_int32_t *p=vb->pcm[j]+n1/2-n0/2; + for(i=0;ipcm[j]+prevCenter; + ogg_int32_t *p=vb->pcm[j]; + for(i=0;ipcm[j]+thisCenter; + ogg_int32_t *p=vb->pcm[j]+n; + for(i=0;icenterW) + v->centerW=0; + else + v->centerW=n1; + + /* deal with initial packet state; we do this using the explicit + pcm_returned==-1 flag otherwise we're sensitive to first block + being short or long */ + + if(v->pcm_returned==-1){ + v->pcm_returned=thisCenter; + v->pcm_current=thisCenter; + }else{ + v->pcm_returned=prevCenter; + v->pcm_current=prevCenter+ + ci->blocksizes[v->lW]/4+ + ci->blocksizes[v->W]/4; + } + + } + + /* track the frame number... This is for convenience, but also + making sure our last packet doesn't end with added padding. If + the last packet is partial, the number of samples we'll have to + return will be past the vb->granulepos. + + This is not foolproof! It will be confused if we begin + decoding at the last page after a seek or hole. In that case, + we don't have a starting point to judge where the last frame + is. For this reason, vorbisfile will always try to make sure + it reads the last two marked pages in proper sequence */ + + if(b->sample_count==-1){ + b->sample_count=0; + }else{ + b->sample_count+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4; + } + + if(v->granulepos==-1){ + if(vb->granulepos!=-1){ /* only set if we have a position to set to */ + + v->granulepos=vb->granulepos; + + /* is this a short page? */ + if(b->sample_count>v->granulepos){ + /* corner case; if this is both the first and last audio page, + then spec says the end is cut, not beginning */ + if(vb->eofflag){ + /* trim the end */ + /* no preceeding granulepos; assume we started at zero (we'd + have to in a short single-page stream) */ + /* granulepos could be -1 due to a seek, but that would result + in a long coun`t, not short count */ + + v->pcm_current-=(b->sample_count-v->granulepos); + }else{ + /* trim the beginning */ + v->pcm_returned+=(b->sample_count-v->granulepos); + if(v->pcm_returned>v->pcm_current) + v->pcm_returned=v->pcm_current; + } + + } + + } + }else{ + v->granulepos+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4; + if(vb->granulepos!=-1 && v->granulepos!=vb->granulepos){ + + if(v->granulepos>vb->granulepos){ + long extra=v->granulepos-vb->granulepos; + + if(extra) + if(vb->eofflag){ + /* partial last frame. Strip the extra samples off */ + v->pcm_current-=extra; + } /* else {Shouldn't happen *unless* the bitstream is out of + spec. Either way, believe the bitstream } */ + } /* else {Shouldn't happen *unless* the bitstream is out of + spec. Either way, believe the bitstream } */ + v->granulepos=vb->granulepos; + } + } + + /* Update, cleanup */ + + if(vb->eofflag)v->eofflag=1; + return(0); +} + +/* pcm==NULL indicates we just want the pending samples, no more */ +int vorbis_synthesis_pcmout(vorbis_dsp_state *v,ogg_int32_t ***pcm){ + vorbis_info *vi=v->vi; + if(v->pcm_returned>-1 && v->pcm_returnedpcm_current){ + if(pcm){ + int i; + for(i=0;ichannels;i++) + v->pcmret[i]=v->pcm[i]+v->pcm_returned; + *pcm=v->pcmret; + } + return(v->pcm_current-v->pcm_returned); + } + return(0); +} + +int vorbis_synthesis_read(vorbis_dsp_state *v,int bytes){ + if(bytes && v->pcm_returned+bytes>v->pcm_current)return(OV_EINVAL); + v->pcm_returned+=bytes; + return(0); +} + diff --git a/wolf3d/code/Tremor/block.h b/wolf3d/code/Tremor/block.h new file mode 100644 index 0000000..5e19354 --- /dev/null +++ b/wolf3d/code/Tremor/block.h @@ -0,0 +1,24 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2008 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: shared block functions + + ********************************************************************/ + +#ifndef _V_BLOCK_ +#define _V_BLOCK_ + +extern void _vorbis_block_ripcord(vorbis_block *vb); +extern void *_vorbis_block_alloc(vorbis_block *vb,long bytes); + +#endif diff --git a/wolf3d/code/Tremor/codebook.c b/wolf3d/code/Tremor/codebook.c new file mode 100644 index 0000000..d055870 --- /dev/null +++ b/wolf3d/code/Tremor/codebook.c @@ -0,0 +1,371 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: basic codebook pack/unpack/code/decode operations + + ********************************************************************/ + +#include +#include +#include +#include "ogg.h" +#include "ivorbiscodec.h" +#include "codebook.h" +#include "misc.h" + +/* unpacks a codebook from the packet buffer into the codebook struct, + readies the codebook auxiliary structures for decode *************/ +int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){ + long i,j; + memset(s,0,sizeof(*s)); + + /* make sure alignment is correct */ + if(oggpack_read(opb,24)!=0x564342)goto _eofout; + + /* first the basic parameters */ + s->dim=oggpack_read(opb,16); + s->entries=oggpack_read(opb,24); + if(s->entries==-1)goto _eofout; + + /* codeword ordering.... length ordered or unordered? */ + switch((int)oggpack_read(opb,1)){ + case 0: + /* unordered */ + s->lengthlist=(long *)_ogg_malloc(sizeof(*s->lengthlist)*s->entries); + + /* allocated but unused entries? */ + if(oggpack_read(opb,1)){ + /* yes, unused entries */ + + for(i=0;ientries;i++){ + if(oggpack_read(opb,1)){ + long num=oggpack_read(opb,5); + if(num==-1)goto _eofout; + s->lengthlist[i]=num+1; + }else + s->lengthlist[i]=0; + } + }else{ + /* all entries used; no tagging */ + for(i=0;ientries;i++){ + long num=oggpack_read(opb,5); + if(num==-1)goto _eofout; + s->lengthlist[i]=num+1; + } + } + + break; + case 1: + /* ordered */ + { + long length=oggpack_read(opb,5)+1; + s->lengthlist=(long *)_ogg_malloc(sizeof(*s->lengthlist)*s->entries); + + for(i=0;ientries;){ + long num=oggpack_read(opb,_ilog(s->entries-i)); + if(num==-1)goto _eofout; + for(j=0;jentries;j++,i++) + s->lengthlist[i]=length; + length++; + } + } + break; + default: + /* EOF */ + return(-1); + } + + /* Do we have a mapping to unpack? */ + switch((s->maptype=oggpack_read(opb,4))){ + case 0: + /* no mapping */ + break; + case 1: case 2: + /* implicitly populated value mapping */ + /* explicitly populated value mapping */ + + s->q_min=oggpack_read(opb,32); + s->q_delta=oggpack_read(opb,32); + s->q_quant=oggpack_read(opb,4)+1; + s->q_sequencep=oggpack_read(opb,1); + + { + int quantvals=0; + switch(s->maptype){ + case 1: + quantvals=_book_maptype1_quantvals(s); + break; + case 2: + quantvals=s->entries*s->dim; + break; + } + + /* quantized values */ + s->quantlist=(long *)_ogg_malloc(sizeof(*s->quantlist)*quantvals); + for(i=0;iquantlist[i]=oggpack_read(opb,s->q_quant); + + if(quantvals&&s->quantlist[quantvals-1]==-1)goto _eofout; + } + break; + default: + goto _errout; + } + + /* all set */ + return(0); + + _errout: + _eofout: + vorbis_staticbook_clear(s); + return(-1); +} + +/* the 'eliminate the decode tree' optimization actually requires the + codewords to be MSb first, not LSb. This is an annoying inelegancy + (and one of the first places where carefully thought out design + turned out to be wrong; Vorbis II and future Ogg codecs should go + to an MSb bitpacker), but not actually the huge hit it appears to + be. The first-stage decode table catches most words so that + bitreverse is not in the main execution path. */ + +static ogg_uint32_t bitreverse(ogg_uint32_t x){ + x= ((x>>16)&0x0000ffff) | ((x<<16)&0xffff0000); + x= ((x>> 8)&0x00ff00ff) | ((x<< 8)&0xff00ff00); + x= ((x>> 4)&0x0f0f0f0f) | ((x<< 4)&0xf0f0f0f0); + x= ((x>> 2)&0x33333333) | ((x<< 2)&0xcccccccc); + return((x>> 1)&0x55555555) | ((x<< 1)&0xaaaaaaaa); +} + +STIN long decode_packed_entry_number(codebook *book, + oggpack_buffer *b){ + int read=book->dec_maxlength; + long lo,hi; + long lok = oggpack_look(b,book->dec_firsttablen); + + if (lok >= 0) { + long entry = book->dec_firsttable[lok]; + if(entry&0x80000000UL){ + lo=(entry>>15)&0x7fff; + hi=book->used_entries-(entry&0x7fff); + }else{ + oggpack_adv(b, book->dec_codelengths[entry-1]); + return(entry-1); + } + }else{ + lo=0; + hi=book->used_entries; + } + + lok = oggpack_look(b, read); + + while(lok<0 && read>1) + lok = oggpack_look(b, --read); + + if(lok<0){ + oggpack_adv(b,1); /* force eop */ + return -1; + } + + /* bisect search for the codeword in the ordered list */ + { + ogg_uint32_t testword=bitreverse((ogg_uint32_t)lok); + + while(hi-lo>1){ + long p=(hi-lo)>>1; + long test=book->codelist[lo+p]>testword; + lo+=p&(test-1); + hi-=p&(-test); + } + + if(book->dec_codelengths[lo]<=read){ + oggpack_adv(b, book->dec_codelengths[lo]); + return(lo); + } + } + + oggpack_adv(b, read+1); + return(-1); +} + +/* Decode side is specced and easier, because we don't need to find + matches using different criteria; we simply read and map. There are + two things we need to do 'depending': + + We may need to support interleave. We don't really, but it's + convenient to do it here rather than rebuild the vector later. + + Cascades may be additive or multiplicitive; this is not inherent in + the codebook, but set in the code using the codebook. Like + interleaving, it's easiest to do it here. + addmul==0 -> declarative (set the value) + addmul==1 -> additive + addmul==2 -> multiplicitive */ + +/* returns the [original, not compacted] entry number or -1 on eof *********/ +long vorbis_book_decode(codebook *book, oggpack_buffer *b){ + if(book->used_entries>0){ + long packed_entry=decode_packed_entry_number(book,b); + if(packed_entry>=0) + return(book->dec_index[packed_entry]); + } + + /* if there's no dec_index, the codebook unpacking isn't collapsed */ + return(-1); +} + +/* returns 0 on OK or -1 on eof *************************************/ +long vorbis_book_decodevs_add(codebook *book,ogg_int32_t *a, + oggpack_buffer *b,int n,int point){ + if(book->used_entries>0){ + int step=n/book->dim; + long *entry = (long *)alloca(sizeof(*entry)*step); + ogg_int32_t **t = (ogg_int32_t **)alloca(sizeof(*t)*step); + int i,j,o; + int shift=point-book->binarypoint; + + if(shift>=0){ + for (i = 0; i < step; i++) { + entry[i]=decode_packed_entry_number(book,b); + if(entry[i]==-1)return(-1); + t[i] = book->valuelist+entry[i]*book->dim; + } + for(i=0,o=0;idim;i++,o+=step) + for (j=0;j>shift; + }else{ + for (i = 0; i < step; i++) { + entry[i]=decode_packed_entry_number(book,b); + if(entry[i]==-1)return(-1); + t[i] = book->valuelist+entry[i]*book->dim; + } + for(i=0,o=0;idim;i++,o+=step) + for (j=0;jused_entries>0){ + int i,j,entry; + ogg_int32_t *t; + int shift=point-book->binarypoint; + + if(shift>=0){ + for(i=0;ivaluelist+entry*book->dim; + for (j=0;jdim;) + a[i++]+=t[j++]>>shift; + } + }else{ + for(i=0;ivaluelist+entry*book->dim; + for (j=0;jdim;) + a[i++]+=t[j++]<<-shift; + } + } + } + return(0); +} + +long vorbis_book_decodev_set(codebook *book,ogg_int32_t *a, + oggpack_buffer *b,int n,int point){ + if(book->used_entries>0){ + int i,j,entry; + ogg_int32_t *t; + int shift=point-book->binarypoint; + + if(shift>=0){ + + for(i=0;ivaluelist+entry*book->dim; + for (j=0;jdim;){ + a[i++]=t[j++]>>shift; + } + } + }else{ + + for(i=0;ivaluelist+entry*book->dim; + for (j=0;jdim;){ + a[i++]=t[j++]<<-shift; + } + } + } + }else{ + + int i,j; + for(i=0;idim;){ + a[i++]=0; + } + } + } + return(0); +} + +long vorbis_book_decodevv_add(codebook *book,ogg_int32_t **a,\ + long offset,int ch, + oggpack_buffer *b,int n,int point){ + if(book->used_entries>0){ + long i,j,entry; + int chptr=0; + int shift=point-book->binarypoint; + + if(shift>=0){ + + for(i=offset;ivaluelist+entry*book->dim; + for (j=0;jdim;j++){ + a[chptr++][i]+=t[j]>>shift; + if(chptr==ch){ + chptr=0; + i++; + } + } + } + } + }else{ + + for(i=offset;ivaluelist+entry*book->dim; + for (j=0;jdim;j++){ + a[chptr++][i]+=t[j]<<-shift; + if(chptr==ch){ + chptr=0; + i++; + } + } + } + } + } + } + return(0); +} diff --git a/wolf3d/code/Tremor/codebook.h b/wolf3d/code/Tremor/codebook.h new file mode 100644 index 0000000..14f6538 --- /dev/null +++ b/wolf3d/code/Tremor/codebook.h @@ -0,0 +1,102 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: basic shared codebook operations + + ********************************************************************/ + +#ifndef _V_CODEBOOK_H_ +#define _V_CODEBOOK_H_ + +#include "ogg.h" + +/* This structure encapsulates huffman and VQ style encoding books; it + doesn't do anything specific to either. + + valuelist/quantlist are nonNULL (and q_* significant) only if + there's entry->value mapping to be done. + + If encode-side mapping must be done (and thus the entry needs to be + hunted), the auxiliary encode pointer will point to a decision + tree. This is true of both VQ and huffman, but is mostly useful + with VQ. + +*/ + +typedef struct static_codebook{ + long dim; /* codebook dimensions (elements per vector) */ + long entries; /* codebook entries */ + long *lengthlist; /* codeword lengths in bits */ + + /* mapping ***************************************************************/ + int maptype; /* 0=none + 1=implicitly populated values from map column + 2=listed arbitrary values */ + + /* The below does a linear, single monotonic sequence mapping. */ + long q_min; /* packed 32 bit float; quant value 0 maps to minval */ + long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */ + int q_quant; /* bits: 0 < quant <= 16 */ + int q_sequencep; /* bitflag */ + + long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map + map == 2: list of dim*entries quantized entry vals + */ +} static_codebook; + +typedef struct codebook{ + long dim; /* codebook dimensions (elements per vector) */ + long entries; /* codebook entries */ + long used_entries; /* populated codebook entries */ + + /* the below are ordered by bitreversed codeword and only used + entries are populated */ + int binarypoint; + ogg_int32_t *valuelist; /* list of dim*entries actual entry values */ + ogg_uint32_t *codelist; /* list of bitstream codewords for each entry */ + + int *dec_index; + char *dec_codelengths; + ogg_uint32_t *dec_firsttable; + int dec_firsttablen; + int dec_maxlength; + + long q_min; /* packed 32 bit float; quant value 0 maps to minval */ + long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */ + +} codebook; + +extern void vorbis_staticbook_clear(static_codebook *b); +extern void vorbis_staticbook_destroy(static_codebook *b); +extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source); + +extern void vorbis_book_clear(codebook *b); +extern long _book_maptype1_quantvals(const static_codebook *b); + +extern int vorbis_staticbook_unpack(oggpack_buffer *b,static_codebook *c); + +extern long vorbis_book_decode(codebook *book, oggpack_buffer *b); +extern long vorbis_book_decodevs_add(codebook *book, ogg_int32_t *a, + oggpack_buffer *b,int n,int point); +extern long vorbis_book_decodev_set(codebook *book, ogg_int32_t *a, + oggpack_buffer *b,int n,int point); +extern long vorbis_book_decodev_add(codebook *book, ogg_int32_t *a, + oggpack_buffer *b,int n,int point); +extern long vorbis_book_decodevv_add(codebook *book, ogg_int32_t **a, + long off,int ch, + oggpack_buffer *b,int n,int point); + +extern int _ilog(unsigned int v); + + +#endif diff --git a/wolf3d/code/Tremor/codec_internal.h b/wolf3d/code/Tremor/codec_internal.h new file mode 100644 index 0000000..3ca7f54 --- /dev/null +++ b/wolf3d/code/Tremor/codec_internal.h @@ -0,0 +1,92 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: libvorbis codec headers + + ********************************************************************/ + +#ifndef _V_CODECI_H_ +#define _V_CODECI_H_ + +#include "codebook.h" + +typedef void vorbis_look_mapping; +typedef void vorbis_look_floor; +typedef void vorbis_look_residue; +typedef void vorbis_look_transform; + +/* mode ************************************************************/ +typedef struct { + int blockflag; + int windowtype; + int transformtype; + int mapping; +} vorbis_info_mode; + +typedef void vorbis_info_floor; +typedef void vorbis_info_residue; +typedef void vorbis_info_mapping; + +typedef struct private_state { + /* local lookup storage */ + const void *window[2]; + + /* backend lookups are tied to the mode, not the backend or naked mapping */ + int modebits; + vorbis_look_mapping **mode; + + ogg_int64_t sample_count; + +} private_state; + +/* codec_setup_info contains all the setup information specific to the + specific compression/decompression mode in progress (eg, + psychoacoustic settings, channel setup, options, codebook + etc). +*********************************************************************/ + +typedef struct codec_setup_info { + + /* Vorbis supports only short and long blocks, but allows the + encoder to choose the sizes */ + + long blocksizes[2]; + + /* modes are the primary means of supporting on-the-fly different + blocksizes, different channel mappings (LR or M/A), + different residue backends, etc. Each mode consists of a + blocksize flag and a mapping (along with the mapping setup */ + + int modes; + int maps; + int times; + int floors; + int residues; + int books; + + vorbis_info_mode *mode_param[64]; + int map_type[64]; + vorbis_info_mapping *map_param[64]; + int time_type[64]; + int floor_type[64]; + vorbis_info_floor *floor_param[64]; + int residue_type[64]; + vorbis_info_residue *residue_param[64]; + static_codebook *book_param[256]; + codebook *fullbooks; + + int passlimit[32]; /* iteration limit per couple/quant pass */ + int coupling_passes; +} codec_setup_info; + +#endif diff --git a/wolf3d/code/Tremor/config_types.h b/wolf3d/code/Tremor/config_types.h new file mode 100644 index 0000000..1fdcb27 --- /dev/null +++ b/wolf3d/code/Tremor/config_types.h @@ -0,0 +1,25 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: #ifdef jail to whip a few platforms into the UNIX ideal. + + ********************************************************************/ +#ifndef _OS_CVTYPES_H +#define _OS_CVTYPES_H + +typedef long long ogg_int64_t; +typedef int ogg_int32_t; +typedef unsigned int ogg_uint32_t; +typedef short ogg_int16_t; + +#endif diff --git a/wolf3d/code/Tremor/configure.in b/wolf3d/code/Tremor/configure.in new file mode 100644 index 0000000..2b44ee4 --- /dev/null +++ b/wolf3d/code/Tremor/configure.in @@ -0,0 +1,131 @@ +dnl Process this file with autoconf to produce a configure script + +dnl ------------------------------------------------ +dnl Initialization and Versioning +dnl ------------------------------------------------ + +AC_INIT(mdct.c) + +AC_CANONICAL_HOST +AC_CANONICAL_TARGET + +AM_CONFIG_HEADER([config.h]) + +AM_INIT_AUTOMAKE(libvorbisidec,1.2.0) + +dnl Library versioning + +V_LIB_CURRENT=1 +V_LIB_REVISION=2 +V_LIB_AGE=0 +AC_SUBST(V_LIB_CURRENT) +AC_SUBST(V_LIB_REVISION) +AC_SUBST(V_LIB_AGE) + +dnl -------------------------------------------------- +dnl Check for programs +dnl -------------------------------------------------- + +dnl save $CFLAGS since AC_PROG_CC likes to insert "-g -O2" +dnl if $CFLAGS is blank +cflags_save="$CFLAGS" +AC_PROG_CC +AC_PROG_CPP +CFLAGS="$cflags_save" + +AM_PROG_LIBTOOL + +dnl -------------------------------------------------- +dnl Set build flags based on environment +dnl -------------------------------------------------- + +dnl Set some target options + +cflags_save="$CFLAGS" +ldflags_save="$LDFLAGS" +if test -z "$GCC"; then + case $host in + arm-*-*) + DEBUG="-g -D_ARM_ASSEM_" + CFLAGS="-O -D_ARM_ASSEM_" + PROFILE="-p -g -O -D_ARM_ASSEM_" ;; + *) + DEBUG="-g" + CFLAGS="-O" + PROFILE="-g -p" ;; + esac +else + + case $host in + arm-*-*) + DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -D_ARM_ASSEM_" + CFLAGS="-O2 -D_ARM_ASSEM_ -fsigned-char" + PROFILE="-W -pg -g -O2 -D_ARM_ASSEM_ -fsigned-char -fno-inline-functions";; + + *) + DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O2 -Wall -fsigned-char" + PROFILE="-Wall -pg -g -O2 -fsigned-char -fno-inline-functions";; + esac +fi +CFLAGS="$CFLAGS $cflags_save -D_REENTRANT" +LDFLAGS="$LDFLAGS $ldflags_save" + + +# Test whenever ld supports -version-script +AC_PROG_LD +AC_PROG_LD_GNU +if test "x$lt_cv_prog_gnu_ld" = "xyes"; then + SHLIB_VERSION_ARG="Wl,--version-script=Version_script" + + dnl Set extra linker options + case "$target_os" in + linux* | solaris* ) + SHLIB_VERSION_ARG="-Wl,--version-script=Version_script" + ;; + *) + ;; + esac + LDFLAGS="$LDFLAGS $SHLIB_VERSION_ARG" +fi + +dnl -------------------------------------------------- +dnl Options +dnl -------------------------------------------------- + +AC_ARG_ENABLE( + low-accuracy, + [ --enable-low-accuracy enable 32 bit only multiply operations], + CFLAGS="$CFLAGS -D_LOW_ACCURACY_" +) + +dnl -------------------------------------------------- +dnl Check for headers +dnl -------------------------------------------------- + +AC_CHECK_HEADER(memory.h,CFLAGS="$CFLAGS -DUSE_MEMORY_H",:) + +dnl -------------------------------------------------- +dnl Check for typedefs, structures, etc +dnl -------------------------------------------------- + +dnl none + +dnl -------------------------------------------------- +dnl Check for library functions +dnl -------------------------------------------------- + +AC_FUNC_ALLOCA +AC_FUNC_MEMCMP + +dnl -------------------------------------------------- +dnl Do substitutions +dnl -------------------------------------------------- + +LIBS="$LIBS" + +AC_SUBST(LIBS) +AC_SUBST(DEBUG) +AC_SUBST(PROFILE) + +AC_OUTPUT(Makefile Version_script) diff --git a/wolf3d/code/Tremor/debian/Makefile.am b/wolf3d/code/Tremor/debian/Makefile.am new file mode 100644 index 0000000..45a0f01 --- /dev/null +++ b/wolf3d/code/Tremor/debian/Makefile.am @@ -0,0 +1,6 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = foreign + +EXTRA_DIST = changelog control copyright libvorbisidec1.install\ + libvorbisidec-dev.install rules diff --git a/wolf3d/code/Tremor/debian/changelog b/wolf3d/code/Tremor/debian/changelog new file mode 100644 index 0000000..0cb4935 --- /dev/null +++ b/wolf3d/code/Tremor/debian/changelog @@ -0,0 +1,9 @@ +libvorbisidec (1.2.0-1) unstable; urgency=low + + * Initial Release. + + -- Christopher L Cheney Wed, 09 Oct 2002 22:00:00 -0500 + +Local variables: +mode: debian-changelog +End: diff --git a/wolf3d/code/Tremor/debian/control b/wolf3d/code/Tremor/debian/control new file mode 100644 index 0000000..f286e91 --- /dev/null +++ b/wolf3d/code/Tremor/debian/control @@ -0,0 +1,22 @@ +Source: libvorbisidec +Section: libs +Priority: optional +Maintainer: Christopher L Cheney +Build-Depends: autotools-dev, debhelper (>> 4.0.18), devscripts, gawk +Standards-Version: 3.5.7.0 + +Package: libvorbisidec1 +Architecture: any +Section: libs +Depends: ${shlibs:Depends} +Description: Ogg Bitstream Library + Libogg is a library for manipulating ogg bitstreams. It handles + both making ogg bitstreams and getting packets from ogg bitstreams. + +Package: libvorbisidec-dev +Architecture: any +Section: devel +Depends: libvorbisidec1 (= ${Source-Version}), libc6-dev +Description: Ogg Bitstream Library Development + The libogg-dev package contains the header files and documentation + needed to develop applications with libogg. diff --git a/wolf3d/code/Tremor/debian/copyright b/wolf3d/code/Tremor/debian/copyright new file mode 100644 index 0000000..ef98ddd --- /dev/null +++ b/wolf3d/code/Tremor/debian/copyright @@ -0,0 +1,37 @@ +This package was debianized by Christopher L Cheney on +Wed, 09 Oct 2002 22:00:00 -0500. + +It was downloaded from cvs. + +Upstream Author(s): Monty + +Copyright: +Copyright (c) 2002, Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of the Xiph.Org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/wolf3d/code/Tremor/debian/libvorbisidec-dev.install b/wolf3d/code/Tremor/debian/libvorbisidec-dev.install new file mode 100644 index 0000000..5c3ccf9 --- /dev/null +++ b/wolf3d/code/Tremor/debian/libvorbisidec-dev.install @@ -0,0 +1,8 @@ +debian/tmp/usr/include/tremor/config_types.h +debian/tmp/usr/include/tremor/ivorbiscodec.h +debian/tmp/usr/include/tremor/ivorbisfile.h +debian/tmp/usr/include/tremor/ogg.h +debian/tmp/usr/include/tremor/os_types.h +debian/tmp/usr/lib/libvorbisidec.a +debian/tmp/usr/lib/libvorbisidec.la +debian/tmp/usr/lib/libvorbisidec.so diff --git a/wolf3d/code/Tremor/debian/libvorbisidec1.install b/wolf3d/code/Tremor/debian/libvorbisidec1.install new file mode 100644 index 0000000..b824d1e --- /dev/null +++ b/wolf3d/code/Tremor/debian/libvorbisidec1.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/libvorbisidec.so.* diff --git a/wolf3d/code/Tremor/debian/rules b/wolf3d/code/Tremor/debian/rules new file mode 100644 index 0000000..c684884 --- /dev/null +++ b/wolf3d/code/Tremor/debian/rules @@ -0,0 +1,151 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This is the debhelper compatibility version to use. +export DH_COMPAT=4 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +objdir = $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE) + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -g +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +configure: configure-stamp +configure-stamp: + dh_testdir + + # make build directory + mkdir $(objdir) + + # run configure with build tree $(objdir) + # change ../configure to ../autogen.sh for CVS build + cd $(objdir) && \ + ../configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \ + --prefix=/usr + + touch configure-stamp + +build: build-stamp +build-stamp: configure-stamp + dh_testdir + + cd $(objdir) && \ + $(MAKE) + + touch build-stamp + +autotools: + OLDDATESUB=`./config.sub -t | tr -d -` ;\ + OLDDATEGUESS=`./config.guess -t | tr -d -` ;\ + NEWDATESUB=`/usr/share/misc/config.sub -t | tr -d -` ;\ + NEWDATEGUESS=`/usr/share/misc/config.guess -t | tr -d -` ;\ + if [ $$OLDDATESUB -lt $$NEWDATESUB -o \ + $$OLDDATEGUESS -lt $$NEWDATEGUESS ]; then \ + dch -a -p "GNU config automated update: config.sub\ + ($$OLDDATESUB to $$NEWDATESUB), config.guess\ + ($$OLDDATEGUESS to $$NEWDATEGUESS)" ;\ + cp -f /usr/share/misc/config.sub config.sub ;\ + cp -f /usr/share/misc/config.guess config.guess ;\ + echo WARNING: GNU config scripts updated from master copies 1>&2 ;\ + fi + +debian-clean: + dh_testdir + dh_testroot + + dh_clean + +clean: autotools + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Remove build tree + rm -rf $(objdir) + + # if Makefile exists run distclean + if test -f Makefile; then \ + $(MAKE) distclean; \ + fi + + #if test -d CVS; then \ + $(MAKE) cvs-clean ;\ + fi + + dh_clean + +install: DH_OPTIONS= +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + cd $(objdir) && \ + $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + + dh_install --list-missing + +# This single target is used to build all the packages, all at once, or +# one at a time. So keep in mind: any options passed to commands here will +# affect _all_ packages. Anything you want to only affect one package +# should be put in another target, such as the install target. +binary-common: + dh_testdir + dh_testroot +# dh_installxfonts + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_installinit +# dh_installcron +# dh_installinfo +# dh_undocumented + dh_installman + dh_strip + dh_link + dh_compress + dh_fixperms + dh_makeshlibs -V + dh_installdeb +# dh_perl + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +# Build architecture independant packages using the common target. +binary-indep: build install +# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common + +# Build architecture dependant packages using the common target. +binary-arch: build install + $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common + +# Any other binary targets build just one binary package at a time. +binary-%: build install + $(MAKE) -f debian/rules binary-common DH_OPTIONS=-p$* + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/wolf3d/code/Tremor/doc/OggVorbis_File.html b/wolf3d/code/Tremor/doc/OggVorbis_File.html new file mode 100644 index 0000000..9201d18 --- /dev/null +++ b/wolf3d/code/Tremor/doc/OggVorbis_File.html @@ -0,0 +1,132 @@ + + + +Tremor - datatype - OggVorbis_File + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

OggVorbis_File

+ +

declared in "ivorbisfile.h"

+ +

+The OggVorbis_File structure defines an Ogg Vorbis file. +

+ +This structure is used in all libvorbisidec routines. Before it can be used, +it must be initialized by ov_open() or ov_open_callbacks(). + +

+After use, the OggVorbis_File structure must be deallocated with a +call to ov_clear(). + +

+Once a file or data source is opened successfully by libvorbisidec +(using ov_open() or ov_open_callbacks()), it is owned by +libvorbisidec. The file should not be used by any other applications or +functions outside of the libvorbisidec API. The file must not be closed +directly by the application at any time after a successful open; +libvorbisidec expects to close the file within ov_clear(). +

+If the call to ov_open() or ov_open_callbacks() fails, +libvorbisidec does not assume ownership of the file and the +application is expected to close it if necessary. + +

+ + + + +
+
typedef struct {
+  void             *datasource; /* Pointer to a FILE *, etc. */
+  int              seekable;
+  ogg_int64_t      offset;
+  ogg_int64_t      end;
+  ogg_sync_state   oy; 
+
+  /* If the FILE handle isn't seekable (eg, a pipe), only the current
+     stream appears */
+  int              links;
+  ogg_int64_t      *offsets;
+  ogg_int64_t      *dataoffsets;
+  long             *serialnos;
+  ogg_int64_t      *pcmlengths;
+  vorbis_info      *vi;
+  vorbis_comment   *vc;
+
+  /* Decoding working state local storage */
+  ogg_int64_t      pcm_offset;
+  int              ready_state;
+  long             current_serialno;
+  int              current_link;
+
+  ogg_int64_t      bittrack;
+  ogg_int64_t      samptrack;
+
+  ogg_stream_state os; /* take physical pages, weld into a logical
+                          stream of packets */
+  vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
+  vorbis_block     vb; /* local working space for packet->PCM decode */
+
+  ov_callbacks callbacks;
+
+} OggVorbis_File;
+
+ +

Relevant Struct Members

+
+
datasource
+ +
Pointer to file or other ogg source. When using stdio based +file/stream access, this field contains a FILE pointer. When using +custom IO via callbacks, libvorbisidec treats this void pointer as a +black box only to be passed to the callback routines provided by the +application.
+ +
seekable
+
Read-only int indicating whether file is seekable. E.g., a physical file is seekable, a pipe isn't.
+
links
+
Read-only int indicating the number of logical bitstreams within the physical bitstream.
+
ov_callbacks
+
Collection of file manipulation routines to be used on this data source. When using stdio/FILE access via ov_open(), the callbacks will be filled in with stdio calls or wrappers to stdio calls.
+
+ +

Notes

+ +

Tremor requires a native 64 bit integer type to compile and +function; The GNU build system will locate and typedef +ogg_int64_t to the appropriate native type. If not using the +GNU build tools, you will need to define ogg_int64_t as a +64-bit type inside your system's project file/Makefile, etc. On win32, +for example, this should be defined as __int64. +

+ + +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/build.html b/wolf3d/code/Tremor/doc/build.html new file mode 100644 index 0000000..6f0f4ee --- /dev/null +++ b/wolf3d/code/Tremor/doc/build.html @@ -0,0 +1,111 @@ + + + +Tremor - Build + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

Tremor: Building libvorbisidec

+ +

+ +The C source in the Tremor package will build on any ANSI C compiler +and function completely and properly on any platform. The included +build system assumes GNU build system and make tools (m4, automake, +autoconf, libtool and gmake). GCC is not required, although GCC is +the most tested compiler. To build using GNU tools, type in the +source directory: + +

+


+./autogen.sh
+gmake
+
+

+or if GNU make is the standard make on the build system: +


+./autogen.sh
+make
+
+ +

+Currently, the source implements playback in pure C on all platforms +except ARM, where a [currently] small amount of assembly (see the file +asm_arm.h) is used to implement 64 bit math operations and +fast LSP computation. If building on ARM without the benefit of GNU +build system tools, be sure that _ARM_ASSEM_ is #defined by +the build system if this assembly is desired, else the resulting +library will use whatever 64 bit math builtins the compiler +implements. + +

+No math library is required by this source. No floating point +operations are used at any point in either setup or decode. This +decoder library will properly decode any past, current or future +Vorbis I file or stream. + +

+The GNU build system produces static and, when supported by the OS, +dynamic libraries named 'libvorbisidec'. This library exposes an API +nearly identical to the BSD reference library's 'libvorbisfile', +including all the features familiar to users of vorbisfile. This API +is similar enough that the proper header file to include is named +'ivorbisfile.h', included in the source build directory. +Lower level libvorbis-style headers and structures are +in 'ivorbiscodec.h', also included in the source build directory. A +simple example program, ivorbisfile_example.c, can be built with 'make +ivorbisfile_example'. +

+(We've summarized differences between the free, +reference vorbisfile library and Tremor's libvorbisidec in a separate +document.) + +

Notes

+ +

Tremor requires a native 64 bit integer type to compile and +function; The GNU build system will locate and typedef +ogg_int64_t to the appropriate native type. If not using the +GNU build tools, you will need to define ogg_int64_t as a +64-bit type inside your system's project file/Makefile, etc. On win32, +for example, this should be defined as __int64. +

+ +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + + + + + + + + + + + + + + + + + diff --git a/wolf3d/code/Tremor/doc/callbacks.html b/wolf3d/code/Tremor/doc/callbacks.html new file mode 100644 index 0000000..9a6d392 --- /dev/null +++ b/wolf3d/code/Tremor/doc/callbacks.html @@ -0,0 +1,113 @@ + + + +Tremor - Callbacks and non-stdio I/O + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

Callbacks and non-stdio I/O

+ +Although stdio is convenient and nearly universally implemented as per +ANSI C, it is not suited to all or even most potential uses of Vorbis. +For additional flexibility, embedded applications may provide their +own I/O functions for use with Tremor when stdio is unavailable or not +suitable. One common example is decoding a Vorbis stream from a +memory buffer.

+ +Use custom I/O functions by populating an ov_callbacks structure and calling ov_open_callbacks() or ov_test_callbacks() rather than the +typical ov_open() or ov_test(). Past the open call, use of +libvorbisidec is identical to using it with stdio. + +

Read function

+ +The read-like function provided in the read_func field is +used to fetch the requested amount of data. It expects the fetch +operation to function similar to file-access, that is, a multiple read +operations will retrieve contiguous sequential pieces of data, +advancing a position cursor after each read.

+ +The following behaviors are also expected:

+

    +
  • a return of '0' indicates end-of-data (if the by-thread errno is unset) +
  • short reads mean nothing special (short reads are not treated as error conditions) +
  • a return of zero with the by-thread errno set to nonzero indicates a read error +
+

+ +

Seek function

+ +The seek-like function provided in the seek_func field is +used to request non-sequential data access by libvorbisidec, moving +the access cursor to the requested position.

+ +libvorbisidec expects the following behavior: +

    +
  • The seek function must always return -1 (failure) if the given +data abstraction is not seekable. It may choose to always return -1 +if the application desires libvorbisidec to treat the Vorbis data +strictly as a stream (which makes for a less expensive open +operation).

    + +

  • If the seek function initially indicates seekability, it must +always succeed upon being given a valid seek request.

    + +

  • The seek function must implement all of SEEK_SET, SEEK_CUR and +SEEK_END. The implementation of SEEK_END should set the access cursor +one past the last byte of accessible data, as would stdio +fseek()

    +

+ +

Close function

+ +The close function should deallocate any access state used by the +passed in instance of the data access abstraction and invalidate the +instance handle. The close function is assumed to succeed.

+ +One common use of callbacks and the close function is to change the +behavior of libvorbisidec with respect to file closure for applications +that must fclose data files themselves. By passing +the normal stdio calls as callback functions, but passing a +close_func that does nothing, an application may call ov_clear() and then fclose() the +file originally passed to libvorbisidec. + +

Tell function

+ +The tell function is intended to mimic the +behavior of ftell() and must return the byte position of the +next data byte that would be read. If the data access cursor is at +the end of the 'file' (pointing to one past the last byte of data, as +it would be after calling fseek(file,SEEK_END,0)), the tell +function must return the data position (and thus the total file size), +not an error.

+ +The tell function need not be provided if the data IO abstraction is +not seekable.
+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/datastructures.html b/wolf3d/code/Tremor/doc/datastructures.html new file mode 100644 index 0000000..2b3da07 --- /dev/null +++ b/wolf3d/code/Tremor/doc/datastructures.html @@ -0,0 +1,61 @@ + + + +Tremor - Base Data Structures + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

Base Data Structures

+

There are several data structures used to hold file and bitstream information during libvorbisidec decoding. These structures are declared in "ivorbisfile.h" and "ivorbiscodec.h". +

+

When using libvorbisidec, it's not necessary to know about most of the contents of these data structures, but it may be helpful to understand what they contain. +

+ + + + + + + + + + + + + + + + + + + + + + +
datatypepurpose
OggVorbis_FileThis structure represents the basic file information. It contains + a pointer to the physical file or bitstream and various information about that bitstream.
vorbis_commentThis structure contains the file comments. It contains + a pointer to unlimited user comments, information about the number of comments, and a vendor description.
vorbis_infoThis structure contains encoder-related information about the bitstream. It includes encoder info, channel info, and bitrate limits.
ov_callbacksThis structure contains pointers to the application-specified file manipulation routines set for use by ov_open_callbacks(). See also the provided document on using application-provided callbacks instead of stdio.
+ +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/decoding.html b/wolf3d/code/Tremor/doc/decoding.html new file mode 100644 index 0000000..1f61b47 --- /dev/null +++ b/wolf3d/code/Tremor/doc/decoding.html @@ -0,0 +1,82 @@ + + + +Tremor - Decoding + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

Decoding

+ +

+All libivorbisdec decoding routines are declared in "ivorbisfile.h". +

+ +After initialization, decoding audio +is as simple as calling ov_read(). This +function works similarly to reading from a normal file using +read().

+ +However, a few differences are worth noting: + +

multiple stream links

+ +A Vorbis stream may consist of multiple sections (called links) that +encode differing numbers of channels or sample rates. It is vitally +important to pay attention to the link numbers returned by ov_read and handle audio changes that may +occur at link boundaries. Such multi-section files do exist in the +wild and are not merely a specification curiosity. + +

returned data amount

+ +ov_read does not attempt to completely fill +a large, passed in data buffer; it merely guarantees that the passed +back data does not overflow the passed in buffer size. Large buffers +may be filled by iteratively looping over calls to ov_read (incrementing the buffer pointer) +until the original buffer is filled. + +

file cursor position

+ +Vorbis files do not necessarily start at a sample number or time offset +of zero. Do not be surprised if a file begins at a positive offset of +several minutes or hours, such as would happen if a large stream (such +as a concert recording) is chopped into multiple seperate files. + +

+ + + + + + + + + +
functionpurpose
ov_readThis function makes up the main chunk of a decode loop. It takes an +OggVorbis_File structure, which must have been initialized by a previous +call to ov_open().
+ +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/diff.html b/wolf3d/code/Tremor/doc/diff.html new file mode 100644 index 0000000..ae0b908 --- /dev/null +++ b/wolf3d/code/Tremor/doc/diff.html @@ -0,0 +1,67 @@ + + + +Tremor - Vorbisfile Differences + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

Tremor / Vorbisfile API Differences

+ +

+ +The Tremor libvorbisidec library exposes an API intended to be as +similar as possible to the familiar 'vorbisfile' library included with +the open source Vorbis reference libraries distributed for free by +Xiph.org. Differences are summarized below.

+ +

OggVorbis_File structure

+ +The bittrack and samptrack fields in the OggVorbis_File structure are changed to +64 bit integers in Tremor, from doubles in vorbisfile. + +

Time-related seek and tell function calls

+ +The ov_time_total() and ov_time_tell() functions return milliseconds as +64 bit integers in Tremor. In vorbisfile, these functions returned +seconds as doubles.

+ +In Tremor, the ov_time_seek() and ov_time_seek_page() calls take +seeking positions in milliseconds as 64 bit integers, rather than in +seconds as doubles as in Vorbisfile.

+ +

Reading decoded data

+ +Tremor ov_read() always returns data as +signed 16 bit interleaved PCM in host byte order. As such, it does not +take arguments to request specific signedness, byte order or bit depth +as in Vorbisfile.

+ +Tremor does not implement ov_read_float().

+ + +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/example.html b/wolf3d/code/Tremor/doc/example.html new file mode 100644 index 0000000..2b9a1dd --- /dev/null +++ b/wolf3d/code/Tremor/doc/example.html @@ -0,0 +1,205 @@ + + + +Tremor - Example Code + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

Example Code

+ +

+The following is a run-through of the decoding example program supplied +with libvorbisidec, ivorbisfile_example.c. +This program takes a vorbis bitstream from stdin and writes raw pcm to stdout. + +

+First, relevant headers, including vorbis-specific "ivorbiscodec.h" and "ivorbisfile.h" have to be included. + +

+ + + + +
+

+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ivorbiscodec.h"
+#include "ivorbisfile.h"
+
+
+

+We also have to make a concession to Windows users here. If we are using windows for decoding, we must declare these libraries so that we can set stdin/stdout to binary. +

+ + + + +
+

+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+
+

+Next, a buffer for the pcm audio output is declared. + +

+ + + + +
+

+char pcmout[4096];
+
+
+ +

Inside main(), we declare our primary OggVorbis_File structure. We also declare a few other helpful variables to track out progress within the file. +Also, we make our final concession to Windows users by setting the stdin and stdout to binary mode. +

+ + + + +
+

+int main(int argc, char **argv){
+  OggVorbis_File vf;
+  int eof=0;
+  int current_section;
+
+#ifdef _WIN32
+  _setmode( _fileno( stdin ), _O_BINARY );
+  _setmode( _fileno( stdout ), _O_BINARY );
+#endif
+
+
+ +

ov_open() must be +called to initialize the OggVorbis_File structure with default values. +ov_open() also checks to ensure that we're reading Vorbis format and not something else. + +

+ + + + +
+

+  if(ov_open(stdin, &vf, NULL, 0) < 0) {
+      fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
+      exit(1);
+  }
+
+
+
+ +

+We're going to pull the channel and bitrate info from the file using ov_info() and show them to the user. +We also want to pull out and show the user a comment attached to the file using ov_comment(). + +

+ + + + +
+

+  {
+    char **ptr=ov_comment(&vf,-1)->user_comments;
+    vorbis_info *vi=ov_info(&vf,-1);
+    while(*ptr){
+      fprintf(stderr,"%s\n",*ptr);
+      ++ptr;
+    }
+    fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate);
+    fprintf(stderr,"\nDecoded length: %ld samples\n",
+            (long)ov_pcm_total(&vf,-1));
+    fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
+  }
+  
+
+
+ +

+Here's the read loop: + +

+ + + + +
+

+
+  while(!eof){
+    long ret=ov_read(&vf,pcmout,sizeof(pcmout),¤t_section);
+    if (ret == 0) {
+      /* EOF */
+      eof=1;
+    } else if (ret < 0) {
+      /* error in the stream.  Not a problem, just reporting it in
+	 case we (the app) cares.  In this case, we don't. */
+    } else {
+      /* we don't bother dealing with sample rate changes, etc, but
+	 you'll have to*/
+      fwrite(pcmout,1,ret,stdout);
+    }
+  }
+
+  
+
+
+ +

+The code is reading blocks of data using ov_read(). +Based on the value returned, we know if we're at the end of the file or have invalid data. If we have valid data, we write it to the pcm output. + +

+Now that we've finished playing, we can pack up and go home. It's important to call ov_clear() when we're finished. + +

+ + + + +
+

+
+  ov_clear(&vf);
+    
+  fprintf(stderr,"Done.\n");
+  return(0);
+}
+
+
+ +

+ +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/fileinfo.html b/wolf3d/code/Tremor/doc/fileinfo.html new file mode 100644 index 0000000..53dfd38 --- /dev/null +++ b/wolf3d/code/Tremor/doc/fileinfo.html @@ -0,0 +1,95 @@ + + + +Tremor - File Information + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

File Information

+

Libvorbisidec contains many functions to get information about bitstream attributes and decoding status. +

+All libvorbisidec file information routines are declared in "ivorbisfile.h". +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
functionpurpose
ov_bitrateReturns the average bitrate of the current logical bitstream.
ov_bitrate_instantReturns the exact bitrate since the last call of this function, or -1 if at the beginning of the bitream or no new information is available.
ov_streamsGives the number of logical bitstreams within the current physical bitstream.
ov_seekableIndicates whether the bitstream is seekable.
ov_serialnumberReturns the unique serial number of the specified logical bitstream.
ov_raw_totalReturns the total (compressed) bytes in a physical or logical seekable bitstream.
ov_pcm_totalReturns the total number of samples in a physical or logical seekable bitstream.
ov_time_totalReturns the total time length in seconds of a physical or logical seekable bitstream.
ov_raw_tellReturns the byte location of the next sample to be read, giving the approximate location in the stream that the decoding engine has reached.
ov_pcm_tellReturns the sample location of the next sample to be read, giving the approximate location in the stream that the decoding engine has reached.
ov_time_tellReturns the time location of the next sample to be read, giving the approximate location in the stream that the decoding engine has reached.
ov_infoReturns the vorbis_info struct for a specific bitstream section.
ov_commentReturns attached comments for the current bitstream.
+ +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/index.html b/wolf3d/code/Tremor/doc/index.html new file mode 100644 index 0000000..671f13f --- /dev/null +++ b/wolf3d/code/Tremor/doc/index.html @@ -0,0 +1,53 @@ + + + +Tremor - Documentation + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

Tremor Documentation

+ +

+ +The Tremor Vorbis I stream and file decoder provides an embeddable, +integer-only library [libvorbisidec] intended for decoding all current +and future Vorbis I compliant streams. The Tremor libvorbisidec +library exposes an API intended to be as similar as possible to the +familiar 'vorbisfile' library included with the open source Vorbis +reference libraries distributed for free by Xiph.org.

+ +Tremor can be used along with any ANSI compliant stdio implementation +for file/stream access, or use custom stream i/o routines provided by +the embedded environment. Both uses are described in detail in this +documentation. + +

+Building libvorbisidec
+API overview
+API reference
+Example code
+Tremor / vorbisfile API differences
+ +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/initialization.html b/wolf3d/code/Tremor/doc/initialization.html new file mode 100644 index 0000000..f9f6807 --- /dev/null +++ b/wolf3d/code/Tremor/doc/initialization.html @@ -0,0 +1,101 @@ + + + +Tremor - Setup/Teardown + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

Setup/Teardown

In order to decode audio using +libvorbisidec, a bitstream containing Vorbis audio must be properly +initialized before decoding and cleared when decoding is finished. +The simplest possible case is to use fopen() to open a Vorbis +file and then pass the FILE * to an ov_open() call. A successful return code from ov_open() indicates the file is ready for use. +Once the file is no longer needed, ov_clear() is used to close the file and +deallocate decoding resources. Do not call fclose() on the +file; libvorbisidec does this in the ov_clear() call. + +

+All libvorbisidec initialization and deallocation routines are declared in "ivorbisfile.h". +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
functionpurpose
ov_openInitializes the Ogg Vorbis bitstream with a pointer to a bitstream and default values. This must be called before other functions in the library may be + used.
ov_open_callbacksInitializes the Ogg Vorbis bitstream with a pointer to a bitstream, default values, and custom file/bitstream manipulation routines. Used instead of ov_open() when working with other than stdio based I/O.
ov_testPartially opens a file just far enough to determine if the file +is an Ogg Vorbis file or not. A successful return indicates that the +file appears to be an Ogg Vorbis file, but the OggVorbis_File struct is not yet fully +initialized for actual decoding. After a successful return, the file +may be closed using ov_clear() or fully +opened for decoding using ov_test_open().

This call is intended to +be used as a less expensive file open test than a full ov_open().

+Note that libvorbisidec owns the passed in file resource is it returns success; do not fclose() files owned by libvorbisidec.

ov_test_callbacksAs above but allowing application-define I/O callbacks.

+Note that libvorbisidec owns the passed in file resource is it returns success; do not fclose() files owned by libvorbisidec.

ov_test_open +Finish opening a file after a successful call to ov_test() or ov_test_callbacks().
ov_clear Closes the + bitstream and cleans up loose ends. Must be called when + finished with the bitstream. After return, the OggVorbis_File struct is + invalid and may not be used before being initialized again + before begin reinitialized. + +
+ +

+


+ + + + + + + + +

copyright © 2002 Xiph.org

Ogg Vorbis

Tremor documentation

Tremor version 1.0 - 20020403

+ + + + diff --git a/wolf3d/code/Tremor/doc/ov_bitrate.html b/wolf3d/code/Tremor/doc/ov_bitrate.html new file mode 100644 index 0000000..65ebfc3 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_bitrate.html @@ -0,0 +1,72 @@ + + + +Tremor - function - ov_bitrate + + + + + + + + + +

Tremor documentation

Tremor version 1.0 - 20020403

+ +

ov_bitrate

+ +

declared in "ivorbisfile.h";

+ +

This function returns the average bitrate for the specified logical bitstream. This may be different from the ov_info->nominal_bitrate value, as it is based on the actual average for this bitstream if the file is seekable. +

Nonseekable files will return the nominal bitrate setting or the average of the upper and lower bounds, if any of these values are set. +

+ +

+ + + + +
+

+long ov_bitrate(OggVorbis_File *vf,int i);
+
+
+ +

Parameters

+
+
vf
+
A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
+
i
+
Link to the desired logical bitstream. For nonseekable files, this argument is ignored. To retrieve the bitrate for the entire bitstream, this parameter should be set to -1.
+
+ + +

Return Values

+
+
  • OV_EINVAL indicates that an invalid argument value was submitted or that the stream represented by vf is not open.
  • +
  • OV_FALSE means the call returned a 'false' status, which in this case most likely indicates that the file is nonseekable and the upper, lower, and nominal bitrates were unset. +
  • n indicates the bitrate for the given logical bitstream or the entire + physical bitstream. If the file is open for random (seekable) access, it will + find the *actual* average bitrate. If the file is streaming (nonseekable), it + returns the nominal bitrate (if set) or else the average of the + upper/lower bounds (if set).
  • +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_bitrate_instant.html b/wolf3d/code/Tremor/doc/ov_bitrate_instant.html new file mode 100644 index 0000000..874671f --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_bitrate_instant.html @@ -0,0 +1,65 @@ + + + +Tremor - function - ov_bitrate + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_bitrate_instant

    + +

    declared in "ivorbisfile.h";

    + +

    Used to find the most recent bitrate played back within the file. Will return 0 if the bitrate has not changed or it is the beginning of the file. + +

    + + + + +
    +
    
    +long ov_bitrate_instant(OggVorbis_File *vf);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions. +
    + + +

    Return Values

    +
    +
  • 0 indicates the beginning of the file or unchanged bitrate info.
  • +
  • n indicates the actual bitrate since the last call.
  • +
  • OV_FALSE indicates that playback is not in progress, and thus there is no instantaneous bitrate information to report.
  • +
  • OV_EINVAL indicates that the stream represented by vf is not open.
  • +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_callbacks.html b/wolf3d/code/Tremor/doc/ov_callbacks.html new file mode 100644 index 0000000..776352d --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_callbacks.html @@ -0,0 +1,78 @@ + + + +Tremor - datatype - ov_callbacks + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_callbacks

    + +

    declared in "ivorbiscodec.h"

    + +

    +The ov_callbacks structure contains file manipulation function prototypes necessary for opening, closing, seeking, and location. + +

    +The ov_callbacks structure does not need to be user-defined if you are +working with stdio-based file manipulation; the ov_open() call provides default callbacks for +stdio. ov_callbacks are defined and passed to ov_open_callbacks() when +implementing non-stdio based stream manipulation (such as playback +from a memory buffer). +

    + + + + + +
    +
    typedef struct {
    +  size_t (*read_func)  (void *ptr, size_t size, size_t nmemb, void *datasource);
    +  int    (*seek_func)  (void *datasource, ogg_int64_t offset, int whence);
    +  int    (*close_func) (void *datasource);
    +  long   (*tell_func)  (void *datasource);
    +} ov_callbacks;
    +
    + +

    Relevant Struct Members

    +
    +
    read_func
    +
    Pointer to custom data reading function.
    +
    seek_func
    +
    Pointer to custom data seeking function. If the data source is not seekable (or the application wants the data source to be treated as unseekable at all times), the provided seek callback should always return -1 (failure).
    +
    close_func
    +
    Pointer to custom data source closure function.
    +
    tell_func
    +
    Pointer to custom data location function.
    +
    + +

    + +See the callbacks and non-stdio I/O document for more +detailed information on required behavior of the various callback +functions.

    + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_clear.html b/wolf3d/code/Tremor/doc/ov_clear.html new file mode 100644 index 0000000..7c51bb7 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_clear.html @@ -0,0 +1,64 @@ + + + +Tremor - function - ov_clear + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_clear

    + +

    declared in "ivorbisfile.h";

    + +

    After a bitstream has been opened using ov_open()/ov_open_callbacks() and decoding is complete, the application must call ov_clear() to clear +the decoder's buffers and close the file.

    + +ov_clear() must also be called after a successful call to ov_test() or ov_test_callbacks().

    + +

    + + + + +
    +
    
    +int ov_clear(OggVorbis_File *vf);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions. After ov_clear has been called, the structure is deallocated and can no longer be used.
    +
    + + +

    Return Values

    +
    +
  • 0 for success
  • +
    + + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_comment.html b/wolf3d/code/Tremor/doc/ov_comment.html new file mode 100644 index 0000000..5d9cc0b --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_comment.html @@ -0,0 +1,66 @@ + + + +Tremor - function - ov_bitrate + + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_comment

    + +

    declared in "ivorbisfile.h";

    + +

    Returns a pointer to the vorbis_comment struct for the specified bitstream. For nonseekable streams, returns the struct for the current bitstream. +

    + +

    + + + + +
    +
    
    +vorbis_comment *ov_comment(OggVorbis_File *vf,int link);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    i
    +
    Link to the desired logical bitstream. For nonseekable files, this argument is ignored. To retrieve the vorbis_comment struct for the current bitstream, this parameter should be set to -1.
    +
    + + +

    Return Values

    +
    +
  • Returns the vorbis_comment struct for the specified bitstream.
  • +
  • NULL if the specified bitstream does not exist or the file has been initialized improperly.
  • +
    +

    + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_info.html b/wolf3d/code/Tremor/doc/ov_info.html new file mode 100644 index 0000000..d783bf3 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_info.html @@ -0,0 +1,64 @@ + + + +Tremor - function - ov_info + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_info

    + +

    declared in "ivorbisfile.h";

    + +

    Returns the vorbis_info struct for the specified bitstream. For nonseekable files, always returns the current vorbis_info struct. + +

    + + + + +
    +
    
    +vorbis_info *ov_info(OggVorbis_File *vf,int link);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    i
    +
    Link to the desired logical bitstream. For nonseekable files, this argument is ignored. To retrieve the vorbis_info struct for the current bitstream, this parameter should be set to -1.
    +
    + + +

    Return Values

    +
    +
  • Returns the vorbis_info struct for the specified bitstream. Returns vorbis_info for current bitstream if the file is nonseekable or i=-1.
  • +
  • NULL if the specified bitstream does not exist or the file has been initialized improperly.
  • +
    +

    + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_open.html b/wolf3d/code/Tremor/doc/ov_open.html new file mode 100644 index 0000000..654cae8 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_open.html @@ -0,0 +1,115 @@ + + + +Tremor - function - ov_open + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_open

    + +

    declared in "ivorbisfile.h";

    + +

    This is the main function used to open and initialize an OggVorbis_File +structure. It sets up all the related decoding structure. +

    The first argument must be a file pointer to an already opened file +or pipe (it need not be seekable--though this obviously restricts what +can be done with the bitstream). vf should be a pointer to the +OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisidec functions. +

    Also, you should be aware that ov_open(), once successful, takes complete possession of the file resource. After you have opened a file using ov_open(), you MUST close it using ov_clear(), not fclose() or any other function. +

    +It is often useful to call ov_open() +simply to determine whether a given file is a vorbis bitstream. If the +ov_open() +call fails, then the file is not recognizable as such. +When you use ov_open() +for +this, you should fclose() the file pointer if, and only if, the +ov_open() +call fails. If it succeeds, you must call ov_clear() to clear +the decoder's buffers and close the file for you.

    + +(Note that ov_test() provides a less expensive way to test a file for Vorbisness.)

    + +

    + + + + +
    +
    
    +int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes);
    +
    +
    + +

    Parameters

    +
    +
    f
    +
    File pointer to an already opened file +or pipe (it need not be seekable--though this obviously restricts what +can be done with the bitstream).
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisidec functions.
    +
    initial
    +
    Typically set to NULL. This parameter is useful if some data has already been +read from the file and the stream is not seekable. It is used in conjunction with ibytes. In this case, initial +should be a pointer to a buffer containing the data read.
    +
    ibytes
    +
    Typically set to 0. This parameter is useful if some data has already been +read from the file and the stream is not seekable. In this case, ibytes +should contain the length (in bytes) of the buffer. Used together with initial
    +
    + + +

    Return Values

    +
    +
  • 0 indicates success
  • + +
  • less than zero for failure:
  • +
      +
    • OV_EREAD - A read from media returned an error.
    • +
    • OV_ENOTVORBIS - Bitstream is not Vorbis data.
    • +
    • OV_EVERSION - Vorbis version mismatch.
    • +
    • OV_EBADHEADER - Invalid Vorbis bitstream header.
    • +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    +
    +

    + +

    Notes

    +

    If your decoder is threaded, it is recommended that you NOT call +ov_open() +in the main control thread--instead, call ov_open() IN your decode/playback +thread. This is important because ov_open() may be a fairly time-consuming +call, given that the full structure of the file is determined at this point, +which may require reading large parts of the file under certain circumstances +(determining all the logical bitstreams in one physical bitstream, for +example). See Thread Safety for other information on using libvorbisidec with threads. + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_open_callbacks.html b/wolf3d/code/Tremor/doc/ov_open_callbacks.html new file mode 100644 index 0000000..64a2a92 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_open_callbacks.html @@ -0,0 +1,110 @@ + + + +Tremor - function - ov_open_callbacks + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_open_callbacks

    + +

    declared in "ivorbisfile.h";

    + +

    This is an alternative function used to open and initialize an OggVorbis_File +structure when using a data source other than a file. It allows you to specify custom file manipulation routines and sets up all the related decoding structure. +

    Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisidec functions. +

    +It is often useful to call ov_open_callbacks() +simply to determine whether a given file is a vorbis bitstream. If the +ov_open_callbacks() +call fails, then the file is not recognizable as such. When you use ov_open_callbacks() +for +this, you should fclose() the file pointer if, and only if, the +ov_open_callbacks() +call fails. If it succeeds, you must call ov_clear() to clear +the decoder's buffers and close the file for you.

    + +See also Callbacks and Non-stdio I/O for information on designing and specifying the required callback functions.

    + +

    + + + + +
    +
    
    +int ov_open_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks callbacks);
    +
    +
    + +

    Parameters

    +
    +
    f
    +
    File pointer to an already opened file +or pipe (it need not be seekable--though this obviously restricts what +can be done with the bitstream).
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisidec functions.
    +
    initial
    +
    Typically set to NULL. This parameter is useful if some data has already been +read from the file and the stream is not seekable. It is used in conjunction with ibytes. In this case, initial +should be a pointer to a buffer containing the data read.
    +
    ibytes
    +
    Typically set to 0. This parameter is useful if some data has already been +read from the file and the stream is not seekable. In this case, ibytes +should contain the length (in bytes) of the buffer. Used together with initial.
    +
    callbacks
    +
    Pointer to a completed ov_callbacks struct which indicates desired custom file manipulation routines.
    +
    + + +

    Return Values

    +
    +
  • 0 for success
  • +
  • less than zero for failure:
  • +
      +
    • OV_EREAD - A read from media returned an error.
    • +
    • OV_ENOTVORBIS - Bitstream is not Vorbis data.
    • +
    • OV_EVERSION - Vorbis version mismatch.
    • +
    • OV_EBADHEADER - Invalid Vorbis bitstream header.
    • +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    +
    +

    + +

    Notes

    +

    If your decoder is threaded, it is recommended that you NOT call +ov_open_callbacks() +in the main control thread--instead, call ov_open_callbacks() IN your decode/playback +thread. This is important because ov_open_callbacks() may be a fairly time-consuming +call, given that the full structure of the file is determined at this point, +which may require reading large parts of the file under certain circumstances +(determining all the logical bitstreams in one physical bitstream, for +example). +See Thread Safety for other information on using libvorbisidec with threads. + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_pcm_seek.html b/wolf3d/code/Tremor/doc/ov_pcm_seek.html new file mode 100644 index 0000000..cf0351e --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_pcm_seek.html @@ -0,0 +1,81 @@ + + + +Tremor - function - ov_pcm_seek + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_pcm_seek

    + +

    declared in "ivorbisfile.h";

    + +

    Seeks to the offset specified (in pcm samples) within the physical bitstream. This function only works for seekable streams. +

    This also updates everything needed within the +decoder, so you can immediately call ov_read() and get data from +the newly seeked to position. +

    + +

    + + + + +
    +
    
    +int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    pos
    +
    Position in pcm samples to seek to in the bitstream.
    +
    + + +

    Return Values

    +
    +
  • 0 for success
  • + +
  • +nonzero indicates failure, described by several error codes:
  • +
      +
    • OV_ENOSEEK - Bitstream is not seekable. +
    • +
    • OV_EINVAL - Invalid argument value. +
    • +
    • OV_EREAD - A read from media returned an error. +
    • +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack + corruption. +
    • +
    • OV_EBADLINK - Invalid stream section supplied to libvorbisidec, or the requested link is corrupt. +
    • +
    + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_pcm_seek_page.html b/wolf3d/code/Tremor/doc/ov_pcm_seek_page.html new file mode 100644 index 0000000..44468a8 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_pcm_seek_page.html @@ -0,0 +1,83 @@ + + + +Tremor - function - ov_pcm_seek_page + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_pcm_seek_page

    + +

    declared in "ivorbisfile.h";

    + +

    Seeks to the closest page preceding the specified location (in pcm samples) within the physical bitstream. This function only works for seekable streams. +

    This function is faster than ov_pcm_seek because the function can begin decoding at a page boundary rather than seeking through any remaining samples before the specified location. However, it is less accurate. +

    This also updates everything needed within the +decoder, so you can immediately call ov_read() and get data from +the newly seeked to position. +

    + +

    + + + + +
    +
    
    +int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    pos
    +
    Position in pcm samples to seek to in the bitstream.
    +
    + + +

    Return Values

    +
    +
  • +0 for success
  • + +
  • +nonzero indicates failure, described by several error codes:
  • +
      +
    • OV_ENOSEEK - Bitstream is not seekable. +
    • +
    • OV_EINVAL - Invalid argument value. +
    • +
    • OV_EREAD - A read from media returned an error. +
    • +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack + corruption. +
    • +
    • OV_EBADLINK - Invalid stream section supplied to libvorbisidec, or the requested link is corrupt. +
    • +
    + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_pcm_tell.html b/wolf3d/code/Tremor/doc/ov_pcm_tell.html new file mode 100644 index 0000000..0bb98d7 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_pcm_tell.html @@ -0,0 +1,63 @@ + + + +Tremor - function - ov_pcm_tell + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_pcm_tell

    + +

    declared in "ivorbisfile.h";

    + +

    Returns the current offset in samples. + +

    + + + + +
    +
    
    +ogg_int64_t ov_pcm_tell(OggVorbis_File *vf);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    + + +

    Return Values

    +
    +
  • n indicates the current offset in samples.
  • +
  • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist.
  • +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_pcm_total.html b/wolf3d/code/Tremor/doc/ov_pcm_total.html new file mode 100644 index 0000000..a19744a --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_pcm_total.html @@ -0,0 +1,67 @@ + + + +Tremor - function - ov_pcm_total + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_pcm_total

    + +

    declared in "ivorbisfile.h";

    + +

    Returns the total pcm samples of the physical bitstream or a specified logical bitstream. + +

    + + + + +
    +
    
    +ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    i
    +
    Link to the desired logical bitstream. To retrieve the total pcm samples for the entire physical bitstream, this parameter should be set to -1.
    +
    + + +

    Return Values

    +
    +
  • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is unseekable.
  • +
  • +total length in pcm samples of content if i=-1.
  • +
  • length in pcm samples of logical bitstream if i=1 to n.
  • +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_raw_seek.html b/wolf3d/code/Tremor/doc/ov_raw_seek.html new file mode 100644 index 0000000..e7f0bd3 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_raw_seek.html @@ -0,0 +1,75 @@ + + + +Tremor - function - ov_raw_seek + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_raw_seek

    + +

    declared in "ivorbisfile.h";

    + +

    Seeks to the offset specified (in compressed raw bytes) within the physical bitstream. This function only works for seekable streams. +

    This also updates everything needed within the +decoder, so you can immediately call ov_read() and get data from +the newly seeked to position. +

    When seek speed is a priority, this is the best seek funtion to use. +

    + + + + +
    +
    
    +int ov_raw_seek(OggVorbis_File *vf,long pos);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    pos
    +
    Position in compressed bytes to seek to in the bitstream.
    +
    + + +

    Return Values

    +
    +
  • 0 indicates success
  • +
  • nonzero indicates failure, described by several error codes:
  • +
      +
    • OV_ENOSEEK - Bitstream is not seekable. +
    • +
    • OV_EINVAL - Invalid argument value. +
    • +
    • OV_EBADLINK - Invalid stream section supplied to libvorbisidec, or the requested link is corrupt. +
    • +
    +
    +

    + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_raw_tell.html b/wolf3d/code/Tremor/doc/ov_raw_tell.html new file mode 100644 index 0000000..f0d1f6a --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_raw_tell.html @@ -0,0 +1,63 @@ + + + +Tremor - function - ov_raw_tell + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_raw_tell

    + +

    declared in "ivorbisfile.h";

    + +

    Returns the current offset in raw compressed bytes. + +

    + + + + +
    +
    
    +ogg_int64_t ov_raw_tell(OggVorbis_File *vf);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    + + +

    Return Values

    +
    +
  • n indicates the current offset in bytes.
  • +
  • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist.
  • +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_raw_total.html b/wolf3d/code/Tremor/doc/ov_raw_total.html new file mode 100644 index 0000000..d0af35f --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_raw_total.html @@ -0,0 +1,68 @@ + + + +Tremor - function - ov_raw_total + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_raw_total

    + +

    declared in "ivorbisfile.h";

    + +

    Returns the total (compressed) bytes of the physical bitstream or a specified logical bitstream. + +

    + + + + +
    +
    
    +ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    i
    +
    Link to the desired logical bitstream. To retrieve the total bytes for the entire physical bitstream, this parameter should be set to -1.
    +
    + + +

    Return Values

    +
    +
  • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is nonseekable
  • +
  • n +total length in compressed bytes of content if i=-1.
  • +
  • n length in compressed bytes of logical bitstream if i=1 to n.
  • +
    +

    + + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_read.html b/wolf3d/code/Tremor/doc/ov_read.html new file mode 100644 index 0000000..208ef18 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_read.html @@ -0,0 +1,115 @@ + + + +Tremor - function - ov_read + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_read()

    + +

    declared in "ivorbisfile.h";

    + +

    + This is the main function used to decode a Vorbis file within a + loop. It returns up to the specified number of bytes of decoded audio + in host-endian, signed 16 bit PCM format. If the audio is + multichannel, the channels are interleaved in the output buffer. + If the passed in buffer is large, ov_read() will not fill + it; the passed in buffer size is treated as a limit and + not a request. +

    + +Note that up to this point, the Tremor API could more or less hide the + multiple logical bitstream nature of chaining from the toplevel + application if the toplevel application didn't particularly care. + However, when reading audio back, the application must be aware + that multiple bitstream sections do not necessarily use the same + number of channels or sampling rate.

    ov_read() passes + back the index of the sequential logical bitstream currently being + decoded (in *bitstream) along with the PCM data in order + that the toplevel application can handle channel and/or sample + rate changes. This number will be incremented at chaining + boundaries even for non-seekable streams. For seekable streams, it + represents the actual chaining index within the physical bitstream. +

    + +

    + + + + +
    +
    
    +long ov_read(OggVorbis_File *vf, char *buffer, int length, int *bitstream);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    buffer
    +
    A pointer to an output buffer. The decoded output is inserted into this buffer.
    +
    length
    +
    Number of bytes to be read into the buffer. Should be the same size as the buffer. A typical value is 4096.
    +
    bitstream
    +
    A pointer to the number of the current logical bitstream.
    +
    + + +

    Return Values

    +
    +
    +
    OV_HOLE
    +
    indicates there was an interruption in the data. +
    (one of: garbage between pages, loss of sync followed by + recapture, or a corrupt page)
    +
    OV_EBADLINK
    +
    indicates that an invalid stream section was supplied to + libvorbisidec, or the requested link is corrupt.
    +
    0
    +
    indicates EOF
    +
    n
    +
    indicates actual number of bytes read. ov_read() will + decode at most one vorbis packet per invocation, so the value + returned will generally be less than length. +
    +
    + +

    Notes

    +

    Typical usage: +

    +bytes_read = ov_read(&vf, +buffer, 4096,&current_section) +
    + +This reads up to 4096 bytes into a buffer, with signed 16-bit +little-endian samples. +

    + + + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_seekable.html b/wolf3d/code/Tremor/doc/ov_seekable.html new file mode 100644 index 0000000..9bd7fc3 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_seekable.html @@ -0,0 +1,63 @@ + + + +Tremor - function - ov_seekable + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_seekable

    + +

    declared in "ivorbisfile.h";

    + +

    This indicates whether or not the bitstream is seekable. + + +

    + + + + +
    +
    
    +long ov_seekable(OggVorbis_File *vf);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    + + +

    Return Values

    +
    +
  • 0 indicates that the file is not seekable.
  • +
  • nonzero indicates that the file is seekable.
  • +
    +

    + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_serialnumber.html b/wolf3d/code/Tremor/doc/ov_serialnumber.html new file mode 100644 index 0000000..d7d7c62 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_serialnumber.html @@ -0,0 +1,67 @@ + + + +Tremor - function - ov_serialnumber + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_serialnumber

    + +

    declared in "ivorbisfile.h";

    + +

    Returns the serialnumber of the specified logical bitstream link number within the overall physical bitstream. + +

    + + + + +
    +
    
    +long ov_serialnumber(OggVorbis_File *vf,int i);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    i
    +
    Link to the desired logical bitstream. For nonseekable files, this argument is ignored. To retrieve the serial number of the current bitstream, this parameter should be set to -1.
    +
    + + +

    Return Values

    +
    +
  • +-1 if the specified logical bitstream i does not exist.
  • + +
  • Returns the serial number of the logical bitstream i or the serial number of the current bitstream if the file is nonseekable.
  • +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_streams.html b/wolf3d/code/Tremor/doc/ov_streams.html new file mode 100644 index 0000000..7ffee42 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_streams.html @@ -0,0 +1,64 @@ + + + +Tremor - function - ov_streams + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_streams

    + +

    declared in "ivorbisfile.h";

    + +

    Returns the number of logical bitstreams within our physical bitstream. + +

    + + + + +
    +
    
    +long ov_streams(OggVorbis_File *vf);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    + + +

    Return Values

    +
    +
  • +1 indicates a single logical bitstream or an unseekable file.
  • +
  • n indicates the number of logical bitstreams.
  • +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_test.html b/wolf3d/code/Tremor/doc/ov_test.html new file mode 100644 index 0000000..96a9af0 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_test.html @@ -0,0 +1,89 @@ + + + +Tremor - function - ov_test + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_test

    + +

    declared in "ivorbisfile.h";

    + +

    +This partially opens a vorbis file to test for Vorbis-ness. It loads +the headers for the first chain, and tests for seekability (but does not seek). +Use ov_test_open() to finish opening the file +or ov_clear to close/free it. +

    + + + + + +
    +
    
    +int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes);
    +
    +
    + +

    Parameters

    +
    +
    f
    +
    File pointer to an already opened file +or pipe (it need not be seekable--though this obviously restricts what +can be done with the bitstream).
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisidec functions.
    +
    initial
    +
    Typically set to NULL. This parameter is useful if some data has already been +read from the file and the stream is not seekable. It is used in conjunction with ibytes. In this case, initial +should be a pointer to a buffer containing the data read.
    +
    ibytes
    +
    Typically set to 0. This parameter is useful if some data has already been +read from the file and the stream is not seekable. In this case, ibytes +should contain the length (in bytes) of the buffer. Used together with initial
    +
    + + +

    Return Values

    +
    +
  • 0 for success
  • + +
  • less than zero for failure:
  • +
      +
    • OV_EREAD - A read from media returned an error.
    • +
    • OV_ENOTVORBIS - Bitstream is not Vorbis data.
    • +
    • OV_EVERSION - Vorbis version mismatch.
    • +
    • OV_EBADHEADER - Invalid Vorbis bitstream header.
    • +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    +
    +

    + + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_test_callbacks.html b/wolf3d/code/Tremor/doc/ov_test_callbacks.html new file mode 100644 index 0000000..4049548 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_test_callbacks.html @@ -0,0 +1,90 @@ + + + +Tremor - function - ov_test_callbacks + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_test_callbacks

    + +

    declared in "ivorbisfile.h";

    + +

    This is an alternative function used to open and test an OggVorbis_File +structure when using a data source other than a file. It allows you to specify custom file manipulation routines and sets up all the related decoding structures. +

    Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisidec functions. +

    +

    + + + + +
    +
    
    +int ov_test_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks callbacks);
    +
    +
    + +

    Parameters

    +
    +
    f
    +
    File pointer to an already opened file +or pipe (it need not be seekable--though this obviously restricts what +can be done with the bitstream).
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisidec functions.
    +
    initial
    +
    Typically set to NULL. This parameter is useful if some data has already been +read from the file and the stream is not seekable. It is used in conjunction with ibytes. In this case, initial +should be a pointer to a buffer containing the data read.
    +
    ibytes
    +
    Typically set to 0. This parameter is useful if some data has already been +read from the file and the stream is not seekable. In this case, ibytes +should contain the length (in bytes) of the buffer. Used together with initial.
    +
    callbacks
    +
    Pointer to a completed ov_callbacks struct which indicates desired custom file manipulation routines.
    +
    + + +

    Return Values

    +
    +
  • 0 for success
  • +
  • less than zero for failure:
  • +
      +
    • OV_EREAD - A read from media returned an error.
    • +
    • OV_ENOTVORBIS - Bitstream is not Vorbis data.
    • +
    • OV_EVERSION - Vorbis version mismatch.
    • +
    • OV_EBADHEADER - Invalid Vorbis bitstream header.
    • +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    +
    +

    + + + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_test_open.html b/wolf3d/code/Tremor/doc/ov_test_open.html new file mode 100644 index 0000000..74f4410 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_test_open.html @@ -0,0 +1,82 @@ + + + +Tremor - function - ov_test_open + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_test_open

    + +

    declared in "ivorbisfile.h";

    + +

    +Finish opening a file partially opened with ov_test() +or ov_test_callbacks(). +

    + + + + + +
    +
    
    +int ov_test_open(OggVorbis_File *vf);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisidec functions.
    +
    + + +

    Return Values

    +
    +
  • +0 for success
  • + +
  • less than zero for failure:
  • +
      +
    • OV_EREAD - A read from media returned an error.
    • +
    • OV_ENOTVORBIS - Bitstream is not Vorbis data.
    • +
    • OV_EVERSION - Vorbis version mismatch.
    • +
    • OV_EBADHEADER - Invalid Vorbis bitstream header.
    • +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + + + + + + + + diff --git a/wolf3d/code/Tremor/doc/ov_time_seek.html b/wolf3d/code/Tremor/doc/ov_time_seek.html new file mode 100644 index 0000000..6dfa130 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_time_seek.html @@ -0,0 +1,70 @@ + + + +Tremor - function - ov_time_seek + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_time_seek

    + +

    declared in "ivorbisfile.h";

    + +

    For seekable +streams, this seeks to the given time. For implementing seeking in a player, +this is the only function generally needed. This also updates everything needed within the +decoder, so you can immediately call ov_read() and get data from +the newly seeked to position. This function does not work for unseekable streams. + +

    + + + + +
    +
    
    +int ov_time_seek(OggVorbis_File *vf, ogg_int64_t ms);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    Pointer to our already opened and initialized OggVorbis_File structure.
    +
    ms
    +
    Location to seek to within the file, specified in milliseconds.
    +
    + + +

    Return Values

    +
    +
  • +0 for success
  • + +
  • +Nonzero for failure
  • +
    + + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_time_seek_page.html b/wolf3d/code/Tremor/doc/ov_time_seek_page.html new file mode 100644 index 0000000..83cfefb --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_time_seek_page.html @@ -0,0 +1,83 @@ + + + +Tremor - function - ov_time_seek_page + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_time_seek_page

    + +

    declared in "ivorbisfile.h";

    + +

    For seekable +streams, this seeks to closest full page preceding the given time. This function is faster than ov_time_seek because it doesn't seek through the last few samples to reach an exact time, but it is also less accurate. This should be used when speed is important. +

    This function also updates everything needed within the +decoder, so you can immediately call ov_read() and get data from +the newly seeked to position. +

    This function does not work for unseekable streams. + +

    + + + + +
    +
    
    +int ov_time_seek_page(OggVorbis_File *vf, ogg_int64_t ms);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    Pointer to our already opened and initialized OggVorbis_File structure.
    +
    ms
    +
    Location to seek to within the file, specified in milliseconds.
    +
    + + +

    Return Values

    +
    +
  • +0 for success
  • + +
  • +nonzero indicates failure, described by several error codes:
  • +
      +
    • OV_ENOSEEK - Bitstream is not seekable. +
    • +
    • OV_EINVAL - Invalid argument value. +
    • +
    • OV_EREAD - A read from media returned an error. +
    • +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack + corruption. +
    • +
    • OV_EBADLINK - Invalid stream section supplied to libvorbisidec, or the requested link is corrupt. +
    • +
    + + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_time_tell.html b/wolf3d/code/Tremor/doc/ov_time_tell.html new file mode 100644 index 0000000..25d159b --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_time_tell.html @@ -0,0 +1,63 @@ + + + +Tremor - function - ov_bitrate + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_time_tell

    + +

    declared in "ivorbisfile.h";

    + +

    Returns the current decoding offset in milliseconds. + +

    + + + + +
    +
    
    +ogg_int64_t ov_time_tell(OggVorbis_File *vf);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    + + +

    Return Values

    +
    +
  • n indicates the current decoding time offset in milliseconds.
  • +
  • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist.
  • +
    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/ov_time_total.html b/wolf3d/code/Tremor/doc/ov_time_total.html new file mode 100644 index 0000000..7c26b92 --- /dev/null +++ b/wolf3d/code/Tremor/doc/ov_time_total.html @@ -0,0 +1,67 @@ + + + +Tremor - function - ov_time_total + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    ov_time_total

    + +

    declared in "ivorbisfile.h";

    + + +

    Returns the total time in seconds of the physical bitstream or a specified logical bitstream. + + +

    + + + + +
    +
    
    +ogg_int64_t ov_time_total(OggVorbis_File *vf,int i);
    +
    +
    + +

    Parameters

    +
    +
    vf
    +
    A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.
    +
    i
    +
    Link to the desired logical bitstream. To retrieve the time total for the entire physical bitstream, this parameter should be set to -1.
    +
    + + +

    Return Values

    +
    +
  • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is nonseekable.
  • +
  • n total length in milliseconds of content if i=-1.
  • +
  • n length in milliseconds of logical bitstream if i=1 to n.
  • +
    +

    + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/overview.html b/wolf3d/code/Tremor/doc/overview.html new file mode 100644 index 0000000..0c82cb2 --- /dev/null +++ b/wolf3d/code/Tremor/doc/overview.html @@ -0,0 +1,61 @@ + + + +Tremor - API Overview + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    Tremor API Overview

    + +

    The makeup of the Tremor libvorbisidec library API is relatively +simple. It revolves around a single file resource. This file resource is +passed to libvorbisidec, where it is opened, manipulated, and closed, +in the form of an OggVorbis_File +struct. +

    +The Tremor API consists of the following functional categories: +

    +

    +

    +In addition, the following subjects deserve attention additional to +the above general overview: +

    +

    +

    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + + diff --git a/wolf3d/code/Tremor/doc/reference.html b/wolf3d/code/Tremor/doc/reference.html new file mode 100644 index 0000000..20e0a5f --- /dev/null +++ b/wolf3d/code/Tremor/doc/reference.html @@ -0,0 +1,75 @@ + + + +Tremor API Reference + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    Tremor API Reference

    + +

    +Data Structures
    +OggVorbis_File
    +vorbis_comment
    +vorbis_info
    +ov_callbacks
    +
    +Setup/Teardown
    +ov_open()
    +ov_open_callbacks()
    +ov_clear()
    +ov_test()
    +ov_test_callbacks()
    +ov_test_open()
    +
    +Decoding
    +ov_read()
    +
    +Seeking
    +ov_raw_seek()
    +ov_pcm_seek()
    +ov_time_seek()
    +ov_pcm_seek_page()
    +ov_time_seek_page()
    +
    +File Information
    +ov_bitrate()
    +ov_bitrate_instant()
    +ov_streams()
    +ov_seekable()
    +ov_serialnumber()
    +ov_raw_total()
    +ov_pcm_total()
    +ov_time_total()
    +ov_raw_tell()
    +ov_pcm_tell()
    +ov_time_tell()
    +ov_info()
    +ov_comment()
    +
    +Return Codes
    + + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/return.html b/wolf3d/code/Tremor/doc/return.html new file mode 100644 index 0000000..0a3f96c --- /dev/null +++ b/wolf3d/code/Tremor/doc/return.html @@ -0,0 +1,77 @@ + + + +Tremor - Return Codes + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    Return Codes

    + +

    + +The following return codes are #defined in "ivorbiscodec.h" +may be returned by libvorbisidec. Descriptions of a code relevant to +a specific function are found in the reference description of that +function. + +

    + +
    OV_FALSE
    +
    Not true, or no data available
    + +
    OV_HOLE
    +
    Tremor encoutered missing or corrupt data in the bitstream. Recovery +is normally automatic and this return code is for informational purposes only.
    + +
    OV_EREAD
    +
    Read error while fetching compressed data for decode
    + +
    OV_EFAULT
    +
    Internal inconsistency in decode state. Continuing is likely not possible.
    + +
    OV_EIMPL
    +
    Feature not implemented
    + +
    OV_EINVAL
    +
    Either an invalid argument, or incompletely initialized argument passed to libvorbisidec call
    + +
    OV_ENOTVORBIS
    +
    The given file/data was not recognized as Ogg Vorbis data.
    + +
    OV_EBADHEADER
    +
    The file/data is apparently an Ogg Vorbis stream, but contains a corrupted or undecipherable header.
    + +
    OV_EVERSION
    +
    The bitstream format revision of the given stream is not supported.
    + +
    OV_EBADLINK
    +
    The given link exists in the Vorbis data stream, but is not decipherable due to garbacge or corruption.
    + +
    OV_ENOSEEK
    +
    The given stream is not seekable
    + +
    + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/seeking.html b/wolf3d/code/Tremor/doc/seeking.html new file mode 100644 index 0000000..652368a --- /dev/null +++ b/wolf3d/code/Tremor/doc/seeking.html @@ -0,0 +1,74 @@ + + + +Tremor - Seeking + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    Seeking

    +

    Seeking functions allow you to specify a specific point in the stream to begin or continue decoding. +

    +All libvorbisidec seeking routines are declared in "ivorbisfile.h". + +

    Certain seeking functions are best suited to different situations. +When speed is important and exact positioning isn't required, +page-level seeking should be used. Note also that Vorbis files do not +necessarily start at a sample number or time offset of zero. Do not +be surprised if a file begins at a positive offset of several minutes +or hours, such as would happen if a large stream (such as a concert +recording) is chopped into multiple separate files. Requesting to +seek to a position before the beginning of such a file will seek to +the position where audio begins.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    functionpurpose
    ov_raw_seekThis function seeks to a position specified in the compressed bitstream, specified in bytes.
    ov_pcm_seekThis function seeks to a specific audio sample number, specified in pcm samples.
    ov_pcm_seek_pageThis function seeks to the closest page preceding the specified audio sample number, specified in pcm samples.
    ov_time_seekThis function seeks to the specific time location in the bitstream, specified in integer milliseconds. Note that this differs from the reference vorbisfile implementation, which takes seconds as a float.
    ov_time_seek_pageThis function seeks to the closest page preceding the specified time position in the bitstream, specified in integer milliseconds.
    + +

    +


    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/style.css b/wolf3d/code/Tremor/doc/style.css new file mode 100644 index 0000000..81cf417 --- /dev/null +++ b/wolf3d/code/Tremor/doc/style.css @@ -0,0 +1,7 @@ +BODY { font-family: Helvetica, sans-serif } +TD { font-family: Helvetica, sans-serif } +P { font-family: Helvetica, sans-serif } +H1 { font-family: Helvetica, sans-serif } +H2 { font-family: Helvetica, sans-serif } +H4 { font-family: Helvetica, sans-serif } +P.tiny { font-size: 8pt } diff --git a/wolf3d/code/Tremor/doc/threads.html b/wolf3d/code/Tremor/doc/threads.html new file mode 100644 index 0000000..53ed76a --- /dev/null +++ b/wolf3d/code/Tremor/doc/threads.html @@ -0,0 +1,50 @@ + + + +Tremor - Thread Safety + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    Thread Safety

    + +Tremor's libvorbisidec may be used safely in a threading environment +so long as thread access to individual OggVorbis_File instances is serialized. +
      + +
    • Only one thread at a time may enter a function that takes a given OggVorbis_File instance, even if the +functions involved appear to be read-only.

      + +

    • Multiple threads may enter +libvorbisidec at a given time, so long as each thread's function calls +are using different OggVorbis_File +instances.

      + +

    • Any one OggVorbis_File instance may be used safely from multiple threads so long as only one thread at a time is making calls using that instance.

      +

    + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/vorbis_comment.html b/wolf3d/code/Tremor/doc/vorbis_comment.html new file mode 100644 index 0000000..3232d96 --- /dev/null +++ b/wolf3d/code/Tremor/doc/vorbis_comment.html @@ -0,0 +1,70 @@ + + + +Tremor - datatype - vorbis_comment + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    vorbis_comment

    + +

    declared in "ivorbiscodec.h"

    + +

    +The vorbis_comment structure defines an Ogg Vorbis comment. +

    +Only the fields the program needs must be defined. If a field isn't +defined by the application, it will either be blank (if it's a string value) +or set to some reasonable default (usually 0). +

    + + + + + +
    +
    typedef struct vorbis_comment{
    +  /* unlimited user comment fields. */
    +  char **user_comments;
    +  int  *comment_lengths;
    +  int  comments;
    +  char *vendor;
    +
    +} vorbis_comment;
    +
    + +

    Parameters

    +
    +
    user_comments
    +
    Unlimited user comment array. The individual strings in the array are 8 bit clean, by the Vorbis specification, and as such the comment_lengths array should be consulted to determine string length. For convenience, each string is also NULL-terminated by the decode library (although Vorbis comments are not NULL terminated within the bitstream itself).
    +
    comment_lengths
    +
    An int array that stores the length of each comment string
    +
    comments
    +
    Int signifying number of user comments in user_comments field.
    +
    vendor
    +
    Information about the creator of the file. Stored in a standard C 0-terminated string.
    +
    + + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/doc/vorbis_info.html b/wolf3d/code/Tremor/doc/vorbis_info.html new file mode 100644 index 0000000..bd938cd --- /dev/null +++ b/wolf3d/code/Tremor/doc/vorbis_info.html @@ -0,0 +1,80 @@ + + + +Tremor - datatype - vorbis_info + + + + + + + + + +

    Tremor documentation

    Tremor version 1.0 - 20020403

    + +

    vorbis_info

    + +

    declared in "ivorbiscodec.h"

    + +

    +The vorbis_info structure contains basic information about the audio in a vorbis bitstream. +

    + + + + + +
    +
    typedef struct vorbis_info{
    +  int version;
    +  int channels;
    +  long rate;
    +  
    +  long bitrate_upper;
    +  long bitrate_nominal;
    +  long bitrate_lower;
    +  long bitrate_window;
    +
    +  void *codec_setup;
    +
    +} vorbis_info;
    +
    + +

    Relevant Struct Members

    +
    +
    version
    +
    Vorbis encoder version used to create this bitstream.
    +
    channels
    +
    Int signifying number of channels in bitstream.
    +
    rate
    +
    Sampling rate of the bitstream.
    +
    bitrate_upper
    +
    Specifies the upper limit in a VBR bitstream. If the value matches the bitrate_nominal and bitrate_lower parameters, the stream is fixed bitrate. May be unset if no limit exists.
    +
    bitrate_nominal
    +
    Specifies the average bitrate for a VBR bitstream. May be unset. If the bitrate_upper and bitrate_lower parameters match, the stream is fixed bitrate.
    +
    bitrate_lower
    +
    Specifies the lower limit in a VBR bitstream. If the value matches the bitrate_nominal and bitrate_upper parameters, the stream is fixed bitrate. May be unset if no limit exists.
    +
    bitrate_window
    +
    Currently unset.
    + +
    codec_setup
    +
    Internal structure that contains the detailed/unpacked configuration for decoding the current Vorbis bitstream.
    +
    + + +

    +
    + + + + + + + + +

    copyright © 2002 Xiph.org

    Ogg Vorbis

    Tremor documentation

    Tremor version 1.0 - 20020403

    + + + + diff --git a/wolf3d/code/Tremor/floor0.c b/wolf3d/code/Tremor/floor0.c new file mode 100644 index 0000000..bdb83b8 --- /dev/null +++ b/wolf3d/code/Tremor/floor0.c @@ -0,0 +1,435 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: floor backend 0 implementation + + ********************************************************************/ + +#include +#include +#include +#include "ogg.h" +#include "ivorbiscodec.h" +#include "codec_internal.h" +#include "registry.h" +#include "codebook.h" +#include "misc.h" +#include "block.h" + +#define LSP_FRACBITS 14 + +typedef struct { + long n; + int ln; + int m; + int *linearmap; + + vorbis_info_floor0 *vi; + ogg_int32_t *lsp_look; + +} vorbis_look_floor0; + +/*************** LSP decode ********************/ + +#include "lsp_lookup.h" + +/* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in + 16.16 format + returns in m.8 format */ + +static long ADJUST_SQRT2[2]={8192,5792}; +STIN ogg_int32_t vorbis_invsqlook_i(long a,long e){ + long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); + long d=a&INVSQ_LOOKUP_I_MASK; /* 0.10 */ + long val=INVSQ_LOOKUP_I[i]- /* 1.16 */ + ((INVSQ_LOOKUP_IDel[i]*d)>>INVSQ_LOOKUP_I_SHIFT); /* result 1.16 */ + val*=ADJUST_SQRT2[e&1]; + e=(e>>1)+21; + return(val>>e); +} + +/* interpolated lookup based fromdB function, domain -140dB to 0dB only */ +/* a is in n.12 format */ +STIN ogg_int32_t vorbis_fromdBlook_i(long a){ + int i=(-a)>>(12-FROMdB2_SHIFT); + if(i<0) return 0x7fffffff; + if(i>=(FROMdB_LOOKUP_SZ<>FROMdB_SHIFT] * FROMdB2_LOOKUP[i&FROMdB2_MASK]; +} + +/* interpolated lookup based cos function, domain 0 to PI only */ +/* a is in 0.16 format, where 0==0, 2^^16-1==PI, return 0.14 */ +STIN ogg_int32_t vorbis_coslook_i(long a){ + int i=a>>COS_LOOKUP_I_SHIFT; + int d=a&COS_LOOKUP_I_MASK; + return COS_LOOKUP_I[i]- ((d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>> + COS_LOOKUP_I_SHIFT); +} + +/* interpolated lookup based cos function */ +/* a is in 0.16 format, where 0==0, 2^^16==PI, return .LSP_FRACBITS */ +STIN ogg_int32_t vorbis_coslook2_i(long a){ + a=a&0x1ffff; + + if(a>0x10000)a=0x20000-a; + { + int i=a>>COS_LOOKUP_I_SHIFT; + int d=a&COS_LOOKUP_I_MASK; + a=((COS_LOOKUP_I[i]<> + (COS_LOOKUP_I_SHIFT-LSP_FRACBITS+14); + } + + return(a); +} + +static const int barklook[28]={ + 0,100,200,301, 405,516,635,766, + 912,1077,1263,1476, 1720,2003,2333,2721, + 3184,3742,4428,5285, 6376,7791,9662,12181, + 15624,20397,27087,36554 +}; + +/* used in init only; interpolate the long way */ +STIN ogg_int32_t toBARK(int n){ + int i; + for(i=0;i<27;i++) + if(n>=barklook[i] && n>10)*0x517d)>>14; +#endif + + /* safeguard against a malicious stream */ + if(val<0 || (val>>COS_LOOKUP_I_SHIFT)>=COS_LOOKUP_I_SZ){ + memset(curve,0,sizeof(*curve)*n); + return; + } + + ilsp[i]=vorbis_coslook_i(val); + } + + i=0; + while(i>16); + qi=((qi*qi)>>16); + + if(m&1){ + qexp= qexp*2-28*((m+1)>>1)+m; + pi*=(1<<14)-((wi*wi)>>14); + qi+=pi>>14; + }else{ + qexp= qexp*2-13*m; + + pi*=(1<<14)-wi; + qi*=(1<<14)+wi; + + qi=(qi+pi)>>14; + } + + if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */ + qi>>=1; qexp++; + }else + lsp_norm_asm(&qi,&qexp); + +#else + + qi*=labs(ilsp[0]-wi); + pi*=labs(ilsp[1]-wi); + + for(j=3;j>25])) + if(!(shift=MLOOP_2[(pi|qi)>>19])) + shift=MLOOP_3[(pi|qi)>>16]; + qi=(qi>>shift)*labs(ilsp[j-1]-wi); + pi=(pi>>shift)*labs(ilsp[j]-wi); + qexp+=shift; + } + if(!(shift=MLOOP_1[(pi|qi)>>25])) + if(!(shift=MLOOP_2[(pi|qi)>>19])) + shift=MLOOP_3[(pi|qi)>>16]; + + /* pi,qi normalized collectively, both tracked using qexp */ + + if(m&1){ + /* odd order filter; slightly assymetric */ + /* the last coefficient */ + qi=(qi>>shift)*labs(ilsp[j-1]-wi); + pi=(pi>>shift)<<14; + qexp+=shift; + + if(!(shift=MLOOP_1[(pi|qi)>>25])) + if(!(shift=MLOOP_2[(pi|qi)>>19])) + shift=MLOOP_3[(pi|qi)>>16]; + + pi>>=shift; + qi>>=shift; + qexp+=shift-14*((m+1)>>1); + + pi=((pi*pi)>>16); + qi=((qi*qi)>>16); + qexp=qexp*2+m; + + pi*=(1<<14)-((wi*wi)>>14); + qi+=pi>>14; + + }else{ + /* even order filter; still symmetric */ + + /* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't + worth tracking step by step */ + + pi>>=shift; + qi>>=shift; + qexp+=shift-7*m; + + pi=((pi*pi)>>16); + qi=((qi*qi)>>16); + qexp=qexp*2+m; + + pi*=(1<<14)-wi; + qi*=(1<<14)+wi; + qi=(qi+pi)>>14; + + } + + + /* we've let the normalization drift because it wasn't important; + however, for the lookup, things must be normalized again. We + need at most one right shift or a number of left shifts */ + + if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */ + qi>>=1; qexp++; + }else + while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/ + qi<<=1; qexp--; + } + +#endif + + amp=vorbis_fromdBlook_i(ampi* /* n.4 */ + vorbis_invsqlook_i(qi,qexp)- + /* m.8, m+n<=8 */ + ampoffseti); /* 8.12[0] */ + +#ifdef _LOW_ACCURACY_ + amp>>=9; +#endif + curve[i]= MULT31_SHIFT15(curve[i],amp); + while(map[++i]==k) curve[i]= MULT31_SHIFT15(curve[i],amp); + } +} + +/*************** vorbis decode glue ************/ + +static void floor0_free_info(vorbis_info_floor *i){ + vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; + if(info){ + memset(info,0,sizeof(*info)); + _ogg_free(info); + } +} + +static void floor0_free_look(vorbis_look_floor *i){ + vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; + if(look){ + + if(look->linearmap)_ogg_free(look->linearmap); + if(look->lsp_look)_ogg_free(look->lsp_look); + memset(look,0,sizeof(*look)); + _ogg_free(look); + } +} + +static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){ + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + int j; + + vorbis_info_floor0 *info=(vorbis_info_floor0 *)_ogg_malloc(sizeof(*info)); + info->order=oggpack_read(opb,8); + info->rate=oggpack_read(opb,16); + info->barkmap=oggpack_read(opb,16); + info->ampbits=oggpack_read(opb,6); + info->ampdB=oggpack_read(opb,8); + info->numbooks=oggpack_read(opb,4)+1; + + if(info->order<1)goto err_out; + if(info->rate<1)goto err_out; + if(info->barkmap<1)goto err_out; + if(info->numbooks<1)goto err_out; + + for(j=0;jnumbooks;j++){ + info->books[j]=oggpack_read(opb,8); + if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out; + } + return(info); + + err_out: + floor0_free_info(info); + return(NULL); +} + +/* initialize Bark scale and normalization lookups. We could do this + with static tables, but Vorbis allows a number of possible + combinations, so it's best to do it computationally. + + The below is authoritative in terms of defining scale mapping. + Note that the scale depends on the sampling rate as well as the + linear block and mapping sizes */ + +static vorbis_look_floor *floor0_look (vorbis_dsp_state *vd,vorbis_info_mode *mi, + vorbis_info_floor *i){ + int j; + vorbis_info *vi=vd->vi; + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; + vorbis_look_floor0 *look=(vorbis_look_floor0 *)_ogg_calloc(1,sizeof(*look)); + look->m=info->order; + look->n=ci->blocksizes[mi->blockflag]/2; + look->ln=info->barkmap; + look->vi=info; + + /* the mapping from a linear scale to a smaller bark scale is + straightforward. We do *not* make sure that the linear mapping + does not skip bark-scale bins; the decoder simply skips them and + the encoder may do what it wishes in filling them. They're + necessary in some mapping combinations to keep the scale spacing + accurate */ + look->linearmap=(int *)_ogg_malloc((look->n+1)*sizeof(*look->linearmap)); + for(j=0;jn;j++){ + + int val=(look->ln* + ((toBARK(info->rate/2*j/look->n)<<11)/toBARK(info->rate/2)))>>11; + + if(val>=look->ln)val=look->ln-1; /* guard against the approximation */ + look->linearmap[j]=val; + } + look->linearmap[j]=-1; + + look->lsp_look=(ogg_int32_t *)_ogg_malloc(look->ln*sizeof(*look->lsp_look)); + for(j=0;jln;j++) + look->lsp_look[j]=vorbis_coslook2_i(0x10000*j/look->ln); + + return look; +} + +static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){ + vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; + vorbis_info_floor0 *info=look->vi; + int j,k; + + int ampraw=oggpack_read(&vb->opb,info->ampbits); + if(ampraw>0){ /* also handles the -1 out of data case */ + long maxval=(1<ampbits)-1; + int amp=((ampraw*info->ampdB)<<4)/maxval; + int booknum=oggpack_read(&vb->opb,_ilog(info->numbooks)); + + if(booknum!=-1 && booknumnumbooks){ /* be paranoid */ + codec_setup_info *ci=(codec_setup_info *)vb->vd->vi->codec_setup; + codebook *b=ci->fullbooks+info->books[booknum]; + ogg_int32_t last=0; + ogg_int32_t *lsp=(ogg_int32_t *)_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+1)); + + for(j=0;jm;j+=b->dim) + if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim,-24)==-1)goto eop; + for(j=0;jm;){ + for(k=0;kdim;k++,j++)lsp[j]+=last; + last=lsp[j-1]; + } + + lsp[look->m]=amp; + return(lsp); + } + } + eop: + return(NULL); +} + +static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i, + void *memo,ogg_int32_t *out){ + vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; + vorbis_info_floor0 *info=look->vi; + + if(memo){ + ogg_int32_t *lsp=(ogg_int32_t *)memo; + ogg_int32_t amp=lsp[look->m]; + + /* take the coefficients back to a spectral envelope curve */ + vorbis_lsp_to_curve(out,look->linearmap,look->n,look->ln, + lsp,look->m,amp,info->ampdB,look->lsp_look); + return(1); + } + memset(out,0,sizeof(*out)*look->n); + return(0); +} + +/* export hooks */ +vorbis_func_floor floor0_exportbundle={ + &floor0_unpack,&floor0_look,&floor0_free_info, + &floor0_free_look,&floor0_inverse1,&floor0_inverse2 +}; + + diff --git a/wolf3d/code/Tremor/floor1.c b/wolf3d/code/Tremor/floor1.c new file mode 100644 index 0000000..276ed8d --- /dev/null +++ b/wolf3d/code/Tremor/floor1.c @@ -0,0 +1,441 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: floor backend 1 implementation + + ********************************************************************/ + +#include +#include +#include +#include "ogg.h" +#include "ivorbiscodec.h" +#include "codec_internal.h" +#include "registry.h" +#include "codebook.h" +#include "misc.h" +#include "block.h" + +#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */ + +typedef struct { + int forward_index[VIF_POSIT+2]; + + int hineighbor[VIF_POSIT]; + int loneighbor[VIF_POSIT]; + int posts; + + int n; + int quant_q; + vorbis_info_floor1 *vi; + +} vorbis_look_floor1; + +/***********************************************/ + +static void floor1_free_info(vorbis_info_floor *i){ + vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; + if(info){ + memset(info,0,sizeof(*info)); + _ogg_free(info); + } +} + +static void floor1_free_look(vorbis_look_floor *i){ + vorbis_look_floor1 *look=(vorbis_look_floor1 *)i; + if(look){ + memset(look,0,sizeof(*look)); + _ogg_free(look); + } +} + +static int ilog(unsigned int v){ + int ret=0; + while(v){ + ret++; + v>>=1; + } + return(ret); +} + +static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){ + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + int j,k,count=0,maxclass=-1,rangebits; + + vorbis_info_floor1 *info=(vorbis_info_floor1 *)_ogg_calloc(1,sizeof(*info)); + /* read partitions */ + info->partitions=oggpack_read(opb,5); /* only 0 to 31 legal */ + for(j=0;jpartitions;j++){ + info->partitionclass[j]=oggpack_read(opb,4); /* only 0 to 15 legal */ + if(maxclasspartitionclass[j])maxclass=info->partitionclass[j]; + } + + /* read partition classes */ + for(j=0;jclass_dim[j]=oggpack_read(opb,3)+1; /* 1 to 8 */ + info->class_subs[j]=oggpack_read(opb,2); /* 0,1,2,3 bits */ + if(info->class_subs[j]<0) + goto err_out; + if(info->class_subs[j])info->class_book[j]=oggpack_read(opb,8); + if(info->class_book[j]<0 || info->class_book[j]>=ci->books) + goto err_out; + for(k=0;k<(1<class_subs[j]);k++){ + info->class_subbook[j][k]=oggpack_read(opb,8)-1; + if(info->class_subbook[j][k]<-1 || info->class_subbook[j][k]>=ci->books) + goto err_out; + } + } + + /* read the post list */ + info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */ + rangebits=oggpack_read(opb,4); + + for(j=0,k=0;jpartitions;j++){ + count+=info->class_dim[info->partitionclass[j]]; + for(;kpostlist[k+2]=oggpack_read(opb,rangebits); + if(t<0 || t>=(1<postlist[0]=0; + info->postlist[1]=1<vi=info; + look->n=info->postlist[1]; + + /* we drop each position value in-between already decoded values, + and use linear interpolation to predict each new value past the + edges. The positions are read in the order of the position + list... we precompute the bounding positions in the lookup. Of + course, the neighbors can change (if a position is declined), but + this is an initial mapping */ + + for(i=0;ipartitions;i++)n+=info->class_dim[info->partitionclass[i]]; + n+=2; + look->posts=n; + + /* also store a sorted position index */ + for(i=0;ipostlist+i; + qsort(sortpointer,n,sizeof(*sortpointer),icomp); + + /* points from sort order back to range number */ + for(i=0;iforward_index[i]=sortpointer[i]-info->postlist; + + /* quantize values to multiplier spec */ + switch(info->mult){ + case 1: /* 1024 -> 256 */ + look->quant_q=256; + break; + case 2: /* 1024 -> 128 */ + look->quant_q=128; + break; + case 3: /* 1024 -> 86 */ + look->quant_q=86; + break; + case 4: /* 1024 -> 64 */ + look->quant_q=64; + break; + } + + /* discover our neighbors for decode where we don't use fit flags + (that would push the neighbors outward) */ + for(i=0;in; + int currentx=info->postlist[i+2]; + for(j=0;jpostlist[j]; + if(x>lx && xcurrentx){ + hi=j; + hx=x; + } + } + look->loneighbor[i]=lo; + look->hineighbor[i]=hi; + } + + return(look); +} + +static int render_point(int x0,int x1,int y0,int y1,int x){ + y0&=0x7fff; /* mask off flag */ + y1&=0x7fff; + + { + int dy=y1-y0; + int adx=x1-x0; + int ady=abs(dy); + int err=ady*(x-x0); + + int off=err/adx; + if(dy<0)return(y0-off); + return(y0+off); + } +} + +#ifdef _LOW_ACCURACY_ +# define XdB(n) ((((n)>>8)+1)>>1) +#else +# define XdB(n) (n) +#endif + +static const ogg_int32_t FLOOR_fromdB_LOOKUP[256]={ + XdB(0x000000e5), XdB(0x000000f4), XdB(0x00000103), XdB(0x00000114), + XdB(0x00000126), XdB(0x00000139), XdB(0x0000014e), XdB(0x00000163), + XdB(0x0000017a), XdB(0x00000193), XdB(0x000001ad), XdB(0x000001c9), + XdB(0x000001e7), XdB(0x00000206), XdB(0x00000228), XdB(0x0000024c), + XdB(0x00000272), XdB(0x0000029b), XdB(0x000002c6), XdB(0x000002f4), + XdB(0x00000326), XdB(0x0000035a), XdB(0x00000392), XdB(0x000003cd), + XdB(0x0000040c), XdB(0x00000450), XdB(0x00000497), XdB(0x000004e4), + XdB(0x00000535), XdB(0x0000058c), XdB(0x000005e8), XdB(0x0000064a), + XdB(0x000006b3), XdB(0x00000722), XdB(0x00000799), XdB(0x00000818), + XdB(0x0000089e), XdB(0x0000092e), XdB(0x000009c6), XdB(0x00000a69), + XdB(0x00000b16), XdB(0x00000bcf), XdB(0x00000c93), XdB(0x00000d64), + XdB(0x00000e43), XdB(0x00000f30), XdB(0x0000102d), XdB(0x0000113a), + XdB(0x00001258), XdB(0x0000138a), XdB(0x000014cf), XdB(0x00001629), + XdB(0x0000179a), XdB(0x00001922), XdB(0x00001ac4), XdB(0x00001c82), + XdB(0x00001e5c), XdB(0x00002055), XdB(0x0000226f), XdB(0x000024ac), + XdB(0x0000270e), XdB(0x00002997), XdB(0x00002c4b), XdB(0x00002f2c), + XdB(0x0000323d), XdB(0x00003581), XdB(0x000038fb), XdB(0x00003caf), + XdB(0x000040a0), XdB(0x000044d3), XdB(0x0000494c), XdB(0x00004e10), + XdB(0x00005323), XdB(0x0000588a), XdB(0x00005e4b), XdB(0x0000646b), + XdB(0x00006af2), XdB(0x000071e5), XdB(0x0000794c), XdB(0x0000812e), + XdB(0x00008993), XdB(0x00009283), XdB(0x00009c09), XdB(0x0000a62d), + XdB(0x0000b0f9), XdB(0x0000bc79), XdB(0x0000c8b9), XdB(0x0000d5c4), + XdB(0x0000e3a9), XdB(0x0000f274), XdB(0x00010235), XdB(0x000112fd), + XdB(0x000124dc), XdB(0x000137e4), XdB(0x00014c29), XdB(0x000161bf), + XdB(0x000178bc), XdB(0x00019137), XdB(0x0001ab4a), XdB(0x0001c70e), + XdB(0x0001e4a1), XdB(0x0002041f), XdB(0x000225aa), XdB(0x00024962), + XdB(0x00026f6d), XdB(0x000297f0), XdB(0x0002c316), XdB(0x0002f109), + XdB(0x000321f9), XdB(0x00035616), XdB(0x00038d97), XdB(0x0003c8b4), + XdB(0x000407a7), XdB(0x00044ab2), XdB(0x00049218), XdB(0x0004de23), + XdB(0x00052f1e), XdB(0x0005855c), XdB(0x0005e135), XdB(0x00064306), + XdB(0x0006ab33), XdB(0x00071a24), XdB(0x0007904b), XdB(0x00080e20), + XdB(0x00089422), XdB(0x000922da), XdB(0x0009bad8), XdB(0x000a5cb6), + XdB(0x000b091a), XdB(0x000bc0b1), XdB(0x000c8436), XdB(0x000d5471), + XdB(0x000e3233), XdB(0x000f1e5f), XdB(0x001019e4), XdB(0x001125c1), + XdB(0x00124306), XdB(0x001372d5), XdB(0x0014b663), XdB(0x00160ef7), + XdB(0x00177df0), XdB(0x001904c1), XdB(0x001aa4f9), XdB(0x001c603d), + XdB(0x001e384f), XdB(0x00202f0f), XdB(0x0022467a), XdB(0x002480b1), + XdB(0x0026dff7), XdB(0x002966b3), XdB(0x002c1776), XdB(0x002ef4fc), + XdB(0x0032022d), XdB(0x00354222), XdB(0x0038b828), XdB(0x003c67c2), + XdB(0x004054ae), XdB(0x004482e8), XdB(0x0048f6af), XdB(0x004db488), + XdB(0x0052c142), XdB(0x005821ff), XdB(0x005ddc33), XdB(0x0063f5b0), + XdB(0x006a74a7), XdB(0x00715faf), XdB(0x0078bdce), XdB(0x0080967f), + XdB(0x0088f1ba), XdB(0x0091d7f9), XdB(0x009b5247), XdB(0x00a56a41), + XdB(0x00b02a27), XdB(0x00bb9ce2), XdB(0x00c7ce12), XdB(0x00d4ca17), + XdB(0x00e29e20), XdB(0x00f15835), XdB(0x0101074b), XdB(0x0111bb4e), + XdB(0x01238531), XdB(0x01367704), XdB(0x014aa402), XdB(0x016020a7), + XdB(0x017702c3), XdB(0x018f6190), XdB(0x01a955cb), XdB(0x01c4f9cf), + XdB(0x01e269a8), XdB(0x0201c33b), XdB(0x0223265a), XdB(0x0246b4ea), + XdB(0x026c9302), XdB(0x0294e716), XdB(0x02bfda13), XdB(0x02ed9793), + XdB(0x031e4e09), XdB(0x03522ee4), XdB(0x03896ed0), XdB(0x03c445e2), + XdB(0x0402efd6), XdB(0x0445ac4b), XdB(0x048cbefc), XdB(0x04d87013), + XdB(0x05290c67), XdB(0x057ee5ca), XdB(0x05da5364), XdB(0x063bb204), + XdB(0x06a36485), XdB(0x0711d42b), XdB(0x0787710e), XdB(0x0804b299), + XdB(0x088a17ef), XdB(0x0918287e), XdB(0x09af747c), XdB(0x0a50957e), + XdB(0x0afc2f19), XdB(0x0bb2ef7f), XdB(0x0c759034), XdB(0x0d44d6ca), + XdB(0x0e2195bc), XdB(0x0f0cad0d), XdB(0x10070b62), XdB(0x1111aeea), + XdB(0x122da66c), XdB(0x135c120f), XdB(0x149e24d9), XdB(0x15f525b1), + XdB(0x176270e3), XdB(0x18e7794b), XdB(0x1a85c9ae), XdB(0x1c3f06d1), + XdB(0x1e14f07d), XdB(0x200963d7), XdB(0x221e5ccd), XdB(0x2455f870), + XdB(0x26b2770b), XdB(0x29363e2b), XdB(0x2be3db5c), XdB(0x2ebe06b6), + XdB(0x31c7a55b), XdB(0x3503ccd4), XdB(0x3875c5aa), XdB(0x3c210f44), + XdB(0x4009632b), XdB(0x4432b8cf), XdB(0x48a149bc), XdB(0x4d59959e), + XdB(0x52606733), XdB(0x57bad899), XdB(0x5d6e593a), XdB(0x6380b298), + XdB(0x69f80e9a), XdB(0x70dafda8), XdB(0x78307d76), XdB(0x7fffffff), +}; + +static void render_line(int n, int x0,int x1,int y0,int y1,ogg_int32_t *d){ + int dy=y1-y0; + int adx=x1-x0; + int ady=abs(dy); + int base=dy/adx; + int sy=(dy<0?base-1:base+1); + int x=x0; + int y=y0; + int err=0; + + if(n>x1)n=x1; + ady-=abs(base*adx); + + if(x=adx){ + err-=adx; + y+=sy; + }else{ + y+=base; + } + d[x]= MULT31_SHIFT15(d[x],FLOOR_fromdB_LOOKUP[y]); + } +} + +static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ + vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; + vorbis_info_floor1 *info=look->vi; + codec_setup_info *ci=(codec_setup_info *)vb->vd->vi->codec_setup; + + int i,j,k; + codebook *books=ci->fullbooks; + + /* unpack wrapped/predicted values from stream */ + if(oggpack_read(&vb->opb,1)==1){ + int *fit_value=(int *)_vorbis_block_alloc(vb,(look->posts)*sizeof(*fit_value)); + + fit_value[0]=oggpack_read(&vb->opb,ilog(look->quant_q-1)); + fit_value[1]=oggpack_read(&vb->opb,ilog(look->quant_q-1)); + + /* partition by partition */ + /* partition by partition */ + for(i=0,j=2;ipartitions;i++){ + int classv=info->partitionclass[i]; + int cdim=info->class_dim[classv]; + int csubbits=info->class_subs[classv]; + int csub=1<class_book[classv],&vb->opb); + + if(cval==-1)goto eop; + } + + for(k=0;kclass_subbook[classv][cval&(csub-1)]; + cval>>=csubbits; + if(book>=0){ + if((fit_value[j+k]=vorbis_book_decode(books+book,&vb->opb))==-1) + goto eop; + }else{ + fit_value[j+k]=0; + } + } + j+=cdim; + } + + /* unwrap positive values and reconsitute via linear interpolation */ + for(i=2;iposts;i++){ + int predicted=render_point(info->postlist[look->loneighbor[i-2]], + info->postlist[look->hineighbor[i-2]], + fit_value[look->loneighbor[i-2]], + fit_value[look->hineighbor[i-2]], + info->postlist[i]); + int hiroom=look->quant_q-predicted; + int loroom=predicted; + int room=(hiroom=room){ + if(hiroom>loroom){ + val = val-loroom; + }else{ + val = -1-(val-hiroom); + } + }else{ + if(val&1){ + val= -((val+1)>>1); + }else{ + val>>=1; + } + } + + fit_value[i]=val+predicted; + fit_value[look->loneighbor[i-2]]&=0x7fff; + fit_value[look->hineighbor[i-2]]&=0x7fff; + + }else{ + fit_value[i]=predicted|0x8000; + } + + } + + return(fit_value); + } + eop: + return(NULL); +} + +static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, + ogg_int32_t *out){ + vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; + vorbis_info_floor1 *info=look->vi; + + codec_setup_info *ci=(codec_setup_info *)vb->vd->vi->codec_setup; + int n=ci->blocksizes[vb->W]/2; + int j; + + if(memo){ + /* render the lines */ + int *fit_value=(int *)memo; + int hx=0; + int lx=0; + int ly=fit_value[0]*info->mult; + for(j=1;jposts;j++){ + int current=look->forward_index[j]; + int hy=fit_value[current]&0x7fff; + if(hy==fit_value[current]){ + + hy*=info->mult; + hx=info->postlist[current]; + + render_line(n,lx,hx,ly,hy,out); + + lx=hx; + ly=hy; + } + } + for(j=hx;j +#include +#include "ogg.h" +#include "misc.h" + + +/* A complete description of Ogg framing exists in docs/framing.html */ + +/* basic, centralized Ogg memory management based on linked lists of + references to refcounted memory buffers. References and buffers + are both recycled. Buffers are passed around and consumed in + reference form. */ + +static ogg_buffer_state *ogg_buffer_create(void){ + ogg_buffer_state *bs=_ogg_calloc(1,sizeof(*bs)); + return bs; +} + +/* destruction is 'lazy'; there may be memory references outstanding, + and yanking the buffer state out from underneath would be + antisocial. Dealloc what is currently unused and have + _release_one watch for the stragglers to come in. When they do, + finish destruction. */ + +/* call the helper while holding lock */ +static void _ogg_buffer_destroy(ogg_buffer_state *bs){ + ogg_buffer *bt; + ogg_reference *rt; + + if(bs->shutdown){ + + bt=bs->unused_buffers; + rt=bs->unused_references; + + while(bt){ + ogg_buffer *b=bt; + bt=b->ptr.next; + if(b->data)_ogg_free(b->data); + _ogg_free(b); + } + bs->unused_buffers=0; + while(rt){ + ogg_reference *r=rt; + rt=r->next; + _ogg_free(r); + } + bs->unused_references=0; + + if(!bs->outstanding) + _ogg_free(bs); + + } +} + +static void ogg_buffer_destroy(ogg_buffer_state *bs){ + bs->shutdown=1; + _ogg_buffer_destroy(bs); +} + +static ogg_buffer *_fetch_buffer(ogg_buffer_state *bs,long bytes){ + ogg_buffer *ob; + bs->outstanding++; + + /* do we have an unused buffer sitting in the pool? */ + if(bs->unused_buffers){ + ob=bs->unused_buffers; + bs->unused_buffers=ob->ptr.next; + + /* if the unused buffer is too small, grow it */ + if(ob->sizedata=_ogg_realloc(ob->data,bytes); + ob->size=bytes; + } + }else{ + /* allocate a new buffer */ + ob=_ogg_malloc(sizeof(*ob)); + ob->data=_ogg_malloc(bytes<16?16:bytes); + ob->size=bytes; + } + + ob->refcount=1; + ob->ptr.owner=bs; + return ob; +} + +static ogg_reference *_fetch_ref(ogg_buffer_state *bs){ + ogg_reference *or; + bs->outstanding++; + + /* do we have an unused reference sitting in the pool? */ + if(bs->unused_references){ + or=bs->unused_references; + bs->unused_references=or->next; + }else{ + /* allocate a new reference */ + or=_ogg_malloc(sizeof(*or)); + } + + or->begin=0; + or->length=0; + or->next=0; + return or; +} + +/* fetch a reference pointing to a fresh, initially continguous buffer + of at least [bytes] length */ +static ogg_reference *ogg_buffer_alloc(ogg_buffer_state *bs,long bytes){ + ogg_buffer *ob=_fetch_buffer(bs,bytes); + ogg_reference *or=_fetch_ref(bs); + or->buffer=ob; + return or; +} + +/* enlarge the data buffer in the current link */ +static void ogg_buffer_realloc(ogg_reference *or,long bytes){ + ogg_buffer *ob=or->buffer; + + /* if the unused buffer is too small, grow it */ + if(ob->sizedata=_ogg_realloc(ob->data,bytes); + ob->size=bytes; + } +} + +static void _ogg_buffer_mark_one(ogg_reference *or){ + or->buffer->refcount++; +} + +/* increase the refcount of the buffers to which the reference points */ +static void ogg_buffer_mark(ogg_reference *or){ + while(or){ + _ogg_buffer_mark_one(or); + or=or->next; + } +} + +/* duplicate a reference (pointing to the same actual buffer memory) + and increment buffer refcount. If the desired segment begins out + of range, NULL is returned; if the desired segment is simply zero + length, a zero length ref is returned. Partial range overlap + returns the overlap of the ranges */ +static ogg_reference *ogg_buffer_sub(ogg_reference *or,long begin,long length){ + ogg_reference *ret=0,*head=0; + + /* walk past any preceeding fragments we don't want */ + while(or && begin>=or->length){ + begin-=or->length; + or=or->next; + } + + /* duplicate the reference chain; increment refcounts */ + while(or && length){ + ogg_reference *temp=_fetch_ref(or->buffer->ptr.owner); + if(head) + head->next=temp; + else + ret=temp; + head=temp; + head->buffer=or->buffer; + head->begin=or->begin+begin; + head->length=length; + if(head->length>or->length-begin) + head->length=or->length-begin; + + begin=0; + length-=head->length; + or=or->next; + } + + ogg_buffer_mark(ret); + return ret; +} + +ogg_reference *ogg_buffer_dup(ogg_reference *or){ + ogg_reference *ret=0,*head=0; + /* duplicate the reference chain; increment refcounts */ + while(or){ + ogg_reference *temp=_fetch_ref(or->buffer->ptr.owner); + if(head) + head->next=temp; + else + ret=temp; + head=temp; + head->buffer=or->buffer; + head->begin=or->begin; + head->length=or->length; + or=or->next; + } + + ogg_buffer_mark(ret); + return ret; +} + +/* split a reference into two references; 'return' is a reference to + the buffer preceeding pos and 'head'/'tail' are the buffer past the + split. If pos is at or past the end of the passed in segment, + 'head/tail' are NULL */ +static ogg_reference *ogg_buffer_split(ogg_reference **tail, + ogg_reference **head,long pos){ + + /* walk past any preceeding fragments to one of: + a) the exact boundary that seps two fragments + b) the fragment that needs split somewhere in the middle */ + ogg_reference *ret=*tail; + ogg_reference *or=*tail; + + while(or && pos>or->length){ + pos-=or->length; + or=or->next; + } + + if(!or || pos==0){ + + return 0; + + }else{ + + if(pos>=or->length){ + /* exact split, or off the end? */ + if(or->next){ + + /* a split */ + *tail=or->next; + or->next=0; + + }else{ + + /* off or at the end */ + *tail=*head=0; + + } + }else{ + + /* split within a fragment */ + long lengthA=pos; + long beginB=or->begin+pos; + long lengthB=or->length-pos; + + /* make a new reference to tail the second piece */ + *tail=_fetch_ref(or->buffer->ptr.owner); + + (*tail)->buffer=or->buffer; + (*tail)->begin=beginB; + (*tail)->length=lengthB; + (*tail)->next=or->next; + _ogg_buffer_mark_one(*tail); + if(head && or==*head)*head=*tail; + + /* update the first piece */ + or->next=0; + or->length=lengthA; + + } + } + return ret; +} + +static void ogg_buffer_release_one(ogg_reference *or){ + ogg_buffer *ob=or->buffer; + ogg_buffer_state *bs=ob->ptr.owner; + + ob->refcount--; + if(ob->refcount==0){ + bs->outstanding--; /* for the returned buffer */ + ob->ptr.next=bs->unused_buffers; + bs->unused_buffers=ob; + } + + bs->outstanding--; /* for the returned reference */ + or->next=bs->unused_references; + bs->unused_references=or; + + _ogg_buffer_destroy(bs); /* lazy cleanup (if needed) */ + +} + +/* release the references, decrease the refcounts of buffers to which + they point, release any buffers with a refcount that drops to zero */ +static void ogg_buffer_release(ogg_reference *or){ + while(or){ + ogg_reference *next=or->next; + ogg_buffer_release_one(or); + or=next; + } +} + +static ogg_reference *ogg_buffer_pretruncate(ogg_reference *or,long pos){ + /* release preceeding fragments we don't want */ + while(or && pos>=or->length){ + ogg_reference *next=or->next; + pos-=or->length; + ogg_buffer_release_one(or); + or=next; + } + if (or) { + or->begin+=pos; + or->length-=pos; + } + return or; +} + +static ogg_reference *ogg_buffer_walk(ogg_reference *or){ + if(!or)return NULL; + while(or->next){ + or=or->next; + } + return(or); +} + +/* *head is appended to the front end (head) of *tail; both continue to + be valid pointers, with *tail at the tail and *head at the head */ +static ogg_reference *ogg_buffer_cat(ogg_reference *tail, ogg_reference *head){ + if(!tail)return head; + + while(tail->next){ + tail=tail->next; + } + tail->next=head; + return ogg_buffer_walk(head); +} + +static void _positionB(oggbyte_buffer *b,int pos){ + if(pospos){ + /* start at beginning, scan forward */ + b->ref=b->baseref; + b->pos=0; + b->end=b->pos+b->ref->length; + b->ptr=b->ref->buffer->data+b->ref->begin; + } +} + +static void _positionF(oggbyte_buffer *b,int pos){ + /* scan forward for position */ + while(pos>=b->end){ + /* just seek forward */ + b->pos+=b->ref->length; + b->ref=b->ref->next; + b->end=b->ref->length+b->pos; + b->ptr=b->ref->buffer->data+b->ref->begin; + } +} + +static int oggbyte_init(oggbyte_buffer *b,ogg_reference *or){ + memset(b,0,sizeof(*b)); + if(or){ + b->ref=b->baseref=or; + b->pos=0; + b->end=b->ref->length; + b->ptr=b->ref->buffer->data+b->ref->begin; + return 0; + }else + return -1; +} + +static void oggbyte_set4(oggbyte_buffer *b,ogg_uint32_t val,int pos){ + int i; + _positionB(b,pos); + for(i=0;i<4;i++){ + _positionF(b,pos); + b->ptr[pos-b->pos]=val; + val>>=8; + ++pos; + } +} + +static unsigned char oggbyte_read1(oggbyte_buffer *b,int pos){ + _positionB(b,pos); + _positionF(b,pos); + return b->ptr[pos-b->pos]; +} + +static ogg_uint32_t oggbyte_read4(oggbyte_buffer *b,int pos){ + ogg_uint32_t ret; + _positionB(b,pos); + _positionF(b,pos); + ret=b->ptr[pos-b->pos]; + _positionF(b,++pos); + ret|=b->ptr[pos-b->pos]<<8; + _positionF(b,++pos); + ret|=b->ptr[pos-b->pos]<<16; + _positionF(b,++pos); + ret|=b->ptr[pos-b->pos]<<24; + return ret; +} + +static ogg_int64_t oggbyte_read8(oggbyte_buffer *b,int pos){ + ogg_int64_t ret; + unsigned char t[7]; + int i; + _positionB(b,pos); + for(i=0;i<7;i++){ + _positionF(b,pos); + t[i]=b->ptr[pos++ -b->pos]; + } + + _positionF(b,pos); + ret=b->ptr[pos-b->pos]; + + for(i=6;i>=0;--i) + ret= ret<<8 | t[i]; + + return ret; +} + +/* Now we get to the actual framing code */ + +int ogg_page_version(ogg_page *og){ + oggbyte_buffer ob; + oggbyte_init(&ob,og->header); + return oggbyte_read1(&ob,4); +} + +int ogg_page_continued(ogg_page *og){ + oggbyte_buffer ob; + oggbyte_init(&ob,og->header); + return oggbyte_read1(&ob,5)&0x01; +} + +int ogg_page_bos(ogg_page *og){ + oggbyte_buffer ob; + oggbyte_init(&ob,og->header); + return oggbyte_read1(&ob,5)&0x02; +} + +int ogg_page_eos(ogg_page *og){ + oggbyte_buffer ob; + oggbyte_init(&ob,og->header); + return oggbyte_read1(&ob,5)&0x04; +} + +ogg_int64_t ogg_page_granulepos(ogg_page *og){ + oggbyte_buffer ob; + oggbyte_init(&ob,og->header); + return oggbyte_read8(&ob,6); +} + +ogg_uint32_t ogg_page_serialno(ogg_page *og){ + oggbyte_buffer ob; + oggbyte_init(&ob,og->header); + return oggbyte_read4(&ob,14); +} + +ogg_uint32_t ogg_page_pageno(ogg_page *og){ + oggbyte_buffer ob; + oggbyte_init(&ob,og->header); + return oggbyte_read4(&ob,18); +} + +/* returns the number of packets that are completed on this page (if + the leading packet is begun on a previous page, but ends on this + page, it's counted */ + +/* NOTE: +If a page consists of a packet begun on a previous page, and a new +packet begun (but not completed) on this page, the return will be: + ogg_page_packets(page) ==1, + ogg_page_continued(page) !=0 + +If a page happens to be a single packet that was begun on a +previous page, and spans to the next page (in the case of a three or +more page packet), the return will be: + ogg_page_packets(page) ==0, + ogg_page_continued(page) !=0 +*/ + +int ogg_page_packets(ogg_page *og){ + int i; + int n; + int count=0; + oggbyte_buffer ob; + oggbyte_init(&ob,og->header); + + n=oggbyte_read1(&ob,26); + for(i=0;ibufferpool=ogg_buffer_create(); + return oy; +} + +int ogg_sync_destroy(ogg_sync_state *oy){ + if(oy){ + ogg_sync_reset(oy); + ogg_buffer_destroy(oy->bufferpool); + memset(oy,0,sizeof(*oy)); + _ogg_free(oy); + } + return OGG_SUCCESS; +} + +unsigned char *ogg_sync_bufferin(ogg_sync_state *oy, long bytes){ + + /* [allocate and] expose a buffer for data submission. + + If there is no head fragment + allocate one and expose it + else + if the current head fragment has sufficient unused space + expose it + else + if the current head fragment is unused + resize and expose it + else + allocate new fragment and expose it + */ + + /* base case; fifo uninitialized */ + if(!oy->fifo_head){ + oy->fifo_head=oy->fifo_tail=ogg_buffer_alloc(oy->bufferpool,bytes); + return oy->fifo_head->buffer->data; + } + + /* space left in current fragment case */ + if(oy->fifo_head->buffer->size- + oy->fifo_head->length- + oy->fifo_head->begin >= bytes) + return oy->fifo_head->buffer->data+ + oy->fifo_head->length+oy->fifo_head->begin; + + /* current fragment is unused, but too small */ + if(!oy->fifo_head->length){ + ogg_buffer_realloc(oy->fifo_head,bytes); + return oy->fifo_head->buffer->data+oy->fifo_head->begin; + } + + /* current fragment used/full; get new fragment */ + { + ogg_reference *new=ogg_buffer_alloc(oy->bufferpool,bytes); + oy->fifo_head->next=new; + oy->fifo_head=new; + } + return oy->fifo_head->buffer->data; +} + +int ogg_sync_wrote(ogg_sync_state *oy, long bytes){ + if(!oy->fifo_head)return OGG_EINVAL; + if(oy->fifo_head->buffer->size-oy->fifo_head->length-oy->fifo_head->begin < + bytes)return OGG_EINVAL; + oy->fifo_head->length+=bytes; + oy->fifo_fill+=bytes; + return OGG_SUCCESS; +} + +static ogg_uint32_t _checksum(ogg_reference *or, int bytes){ + ogg_uint32_t crc_reg=0; + int j,post; + + while(or){ + unsigned char *data=or->buffer->data+or->begin; + post=(byteslength?bytes:or->length); + for(j=0;j> 24)&0xff)^data[j]]; + bytes-=j; + or=or->next; + } + + return crc_reg; +} + + +/* sync the stream. This is meant to be useful for finding page + boundaries. + + return values for this: + -n) skipped n bytes + 0) page not ready; more data (no bytes skipped) + n) page synced at current location; page length n bytes + +*/ + +long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){ + oggbyte_buffer page; + long bytes,ret=0; + + ogg_page_release(og); + + bytes=oy->fifo_fill; + oggbyte_init(&page,oy->fifo_tail); + + if(oy->headerbytes==0){ + if(bytes<27)goto sync_out; /* not enough for even a minimal header */ + + /* verify capture pattern */ + if(oggbyte_read1(&page,0)!=(int)'O' || + oggbyte_read1(&page,1)!=(int)'g' || + oggbyte_read1(&page,2)!=(int)'g' || + oggbyte_read1(&page,3)!=(int)'S' ) goto sync_fail; + + oy->headerbytes=oggbyte_read1(&page,26)+27; + } + if(bytesheaderbytes)goto sync_out; /* not enough for header + + seg table */ + if(oy->bodybytes==0){ + int i; + /* count up body length in the segment table */ + for(i=0;iheaderbytes-27;i++) + oy->bodybytes+=oggbyte_read1(&page,27+i); + } + + if(oy->bodybytes+oy->headerbytes>bytes)goto sync_out; + + /* we have what appears to be a complete page; last test: verify + checksum */ + { + ogg_uint32_t chksum=oggbyte_read4(&page,22); + oggbyte_set4(&page,0,22); + + /* Compare checksums; memory continues to be common access */ + if(chksum!=_checksum(oy->fifo_tail,oy->bodybytes+oy->headerbytes)){ + + /* D'oh. Mismatch! Corrupt page (or miscapture and not a page + at all). replace the computed checksum with the one actually + read in; remember all the memory is common access */ + + oggbyte_set4(&page,chksum,22); + goto sync_fail; + } + oggbyte_set4(&page,chksum,22); + } + + /* We have a page. Set up page return. */ + if(og){ + /* set up page output */ + og->header=ogg_buffer_split(&oy->fifo_tail,&oy->fifo_head,oy->headerbytes); + og->header_len=oy->headerbytes; + og->body=ogg_buffer_split(&oy->fifo_tail,&oy->fifo_head,oy->bodybytes); + og->body_len=oy->bodybytes; + }else{ + /* simply advance */ + oy->fifo_tail= + ogg_buffer_pretruncate(oy->fifo_tail,oy->headerbytes+oy->bodybytes); + if(!oy->fifo_tail)oy->fifo_head=0; + } + + ret=oy->headerbytes+oy->bodybytes; + oy->unsynced=0; + oy->headerbytes=0; + oy->bodybytes=0; + oy->fifo_fill-=ret; + + return ret; + + sync_fail: + + oy->headerbytes=0; + oy->bodybytes=0; + oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,1); + ret--; + + /* search forward through fragments for possible capture */ + while(oy->fifo_tail){ + /* invariant: fifo_cursor points to a position in fifo_tail */ + unsigned char *now=oy->fifo_tail->buffer->data+oy->fifo_tail->begin; + unsigned char *next=memchr(now, 'O', oy->fifo_tail->length); + + if(next){ + /* possible capture in this segment */ + long bytes=next-now; + oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,bytes); + ret-=bytes; + break; + }else{ + /* no capture. advance to next segment */ + long bytes=oy->fifo_tail->length; + ret-=bytes; + oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,bytes); + } + } + if(!oy->fifo_tail)oy->fifo_head=0; + oy->fifo_fill+=ret; + + sync_out: + return ret; +} + +/* sync the stream and get a page. Keep trying until we find a page. + Supress 'sync errors' after reporting the first. + + return values: + OGG_HOLE) recapture (hole in data) + 0) need more data + 1) page returned + + Returns pointers into buffered data; invalidated by next call to + _stream, _clear, _init, or _buffer */ + +int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og){ + + /* all we need to do is verify a page at the head of the stream + buffer. If it doesn't verify, we look for the next potential + frame */ + + while(1){ + long ret=ogg_sync_pageseek(oy,og); + if(ret>0){ + /* have a page */ + return 1; + } + if(ret==0){ + /* need more data */ + return 0; + } + + /* head did not start a synced page... skipped some bytes */ + if(!oy->unsynced){ + oy->unsynced=1; + return OGG_HOLE; + } + + /* loop. keep looking */ + + } +} + +/* clear things to an initial state. Good to call, eg, before seeking */ +int ogg_sync_reset(ogg_sync_state *oy){ + + ogg_buffer_release(oy->fifo_tail); + oy->fifo_tail=0; + oy->fifo_head=0; + oy->fifo_fill=0; + + oy->unsynced=0; + oy->headerbytes=0; + oy->bodybytes=0; + return OGG_SUCCESS; +} + +ogg_stream_state *ogg_stream_create(int serialno){ + ogg_stream_state *os=_ogg_calloc(1,sizeof(*os)); + os->serialno=serialno; + os->pageno=-1; + return os; +} + +int ogg_stream_destroy(ogg_stream_state *os){ + if(os){ + ogg_buffer_release(os->header_tail); + ogg_buffer_release(os->body_tail); + memset(os,0,sizeof(*os)); + _ogg_free(os); + } + return OGG_SUCCESS; +} + + +#define FINFLAG 0x80000000UL +#define FINMASK 0x7fffffffUL + +static void _next_lace(oggbyte_buffer *ob,ogg_stream_state *os){ + /* search ahead one lace */ + os->body_fill_next=0; + while(os->laceptrlacing_fill){ + int val=oggbyte_read1(ob,27+os->laceptr++); + os->body_fill_next+=val; + if(val<255){ + os->body_fill_next|=FINFLAG; + os->clearflag=1; + break; + } + } +} + +static void _span_queued_page(ogg_stream_state *os){ + while( !(os->body_fill&FINFLAG) ){ + + if(!os->header_tail)break; + + /* first flush out preceeding page header (if any). Body is + flushed as it's consumed, so that's not done here. */ + + if(os->lacing_fill>=0) + os->header_tail=ogg_buffer_pretruncate(os->header_tail, + os->lacing_fill+27); + os->lacing_fill=0; + os->laceptr=0; + os->clearflag=0; + + if(!os->header_tail){ + os->header_head=0; + break; + }else{ + + /* process/prepare next page, if any */ + + long pageno; + oggbyte_buffer ob; + ogg_page og; /* only for parsing header values */ + og.header=os->header_tail; /* only for parsing header values */ + pageno=ogg_page_pageno(&og); + + oggbyte_init(&ob,os->header_tail); + os->lacing_fill=oggbyte_read1(&ob,26); + + /* are we in sequence? */ + if(pageno!=os->pageno){ + if(os->pageno==-1) /* indicates seek or reset */ + os->holeflag=1; /* set for internal use */ + else + os->holeflag=2; /* set for external reporting */ + + os->body_tail=ogg_buffer_pretruncate(os->body_tail, + os->body_fill); + if(os->body_tail==0)os->body_head=0; + os->body_fill=0; + + } + + if(ogg_page_continued(&og)){ + if(os->body_fill==0){ + /* continued packet, but no preceeding data to continue */ + /* dump the first partial packet on the page */ + _next_lace(&ob,os); + os->body_tail= + ogg_buffer_pretruncate(os->body_tail,os->body_fill_next&FINMASK); + if(os->body_tail==0)os->body_head=0; + /* set span flag */ + if(!os->spanflag && !os->holeflag)os->spanflag=2; + } + }else{ + if(os->body_fill>0){ + /* preceeding data to continue, but not a continued page */ + /* dump body_fill */ + os->body_tail=ogg_buffer_pretruncate(os->body_tail, + os->body_fill); + if(os->body_tail==0)os->body_head=0; + os->body_fill=0; + + /* set espan flag */ + if(!os->spanflag && !os->holeflag)os->spanflag=2; + } + } + + if(os->laceptrlacing_fill){ + os->granulepos=ogg_page_granulepos(&og); + + /* get current packet size & flag */ + _next_lace(&ob,os); + os->body_fill+=os->body_fill_next; /* addition handles the flag fine; + unsigned on purpose */ + /* ...and next packet size & flag */ + _next_lace(&ob,os); + + } + + os->pageno=pageno+1; + os->e_o_s=ogg_page_eos(&og); + os->b_o_s=ogg_page_bos(&og); + + } + } +} + +/* add the incoming page to the stream state; we decompose the page + into packet segments here as well. */ + +int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){ + + int serialno=ogg_page_serialno(og); + int version=ogg_page_version(og); + + /* check the serial number */ + if(serialno!=os->serialno){ + ogg_page_release(og); + return OGG_ESERIAL; + } + if(version>0){ + ogg_page_release(og); + return OGG_EVERSION; + } + + /* add to fifos */ + if(!os->body_tail){ + os->body_tail=og->body; + os->body_head=ogg_buffer_walk(og->body); + }else{ + os->body_head=ogg_buffer_cat(os->body_head,og->body); + } + if(!os->header_tail){ + os->header_tail=og->header; + os->header_head=ogg_buffer_walk(og->header); + os->lacing_fill=-27; + }else{ + os->header_head=ogg_buffer_cat(os->header_head,og->header); + } + + memset(og,0,sizeof(*og)); + return OGG_SUCCESS; +} + +int ogg_stream_reset(ogg_stream_state *os){ + + ogg_buffer_release(os->header_tail); + ogg_buffer_release(os->body_tail); + os->header_tail=os->header_head=0; + os->body_tail=os->body_head=0; + + os->e_o_s=0; + os->b_o_s=0; + os->pageno=-1; + os->packetno=0; + os->granulepos=0; + + os->body_fill=0; + os->lacing_fill=0; + + os->holeflag=0; + os->spanflag=0; + os->clearflag=0; + os->laceptr=0; + os->body_fill_next=0; + + return OGG_SUCCESS; +} + +int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno){ + ogg_stream_reset(os); + os->serialno=serialno; + return OGG_SUCCESS; +} + +static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){ + + ogg_packet_release(op); + _span_queued_page(os); + + if(os->holeflag){ + int temp=os->holeflag; + if(os->clearflag) + os->holeflag=0; + else + os->holeflag=1; + if(temp==2){ + os->packetno++; + return OGG_HOLE; + } + } + if(os->spanflag){ + int temp=os->spanflag; + if(os->clearflag) + os->spanflag=0; + else + os->spanflag=1; + if(temp==2){ + os->packetno++; + return OGG_SPAN; + } + } + + if(!(os->body_fill&FINFLAG)) return 0; + if(!op && !adv)return 1; /* just using peek as an inexpensive way + to ask if there's a whole packet + waiting */ + if(op){ + op->b_o_s=os->b_o_s; + if(os->e_o_s && os->body_fill_next==0) + op->e_o_s=os->e_o_s; + else + op->e_o_s=0; + if( (os->body_fill&FINFLAG) && !(os->body_fill_next&FINFLAG) ) + op->granulepos=os->granulepos; + else + op->granulepos=-1; + op->packetno=os->packetno; + } + + if(adv){ + oggbyte_buffer ob; + oggbyte_init(&ob,os->header_tail); + + /* split the body contents off */ + if(op){ + op->packet=ogg_buffer_split(&os->body_tail,&os->body_head, + os->body_fill&FINMASK); + op->bytes=os->body_fill&FINMASK; + }else{ + os->body_tail=ogg_buffer_pretruncate(os->body_tail, + os->body_fill&FINMASK); + if(os->body_tail==0)os->body_head=0; + } + + /* update lacing pointers */ + os->body_fill=os->body_fill_next; + _next_lace(&ob,os); + }else{ + if(op){ + op->packet=ogg_buffer_sub(os->body_tail,0,os->body_fill&FINMASK); + op->bytes=os->body_fill&FINMASK; + } + } + + if(adv){ + os->packetno++; + os->b_o_s=0; + } + + return 1; +} + +int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op){ + return _packetout(os,op,1); +} + +int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op){ + return _packetout(os,op,0); +} + +int ogg_packet_release(ogg_packet *op) { + if(op){ + ogg_buffer_release(op->packet); + memset(op, 0, sizeof(*op)); + } + return OGG_SUCCESS; +} + +int ogg_page_release(ogg_page *og) { + if(og){ + ogg_buffer_release(og->header); + ogg_buffer_release(og->body); + memset(og, 0, sizeof(*og)); + } + return OGG_SUCCESS; +} + +void ogg_page_dup(ogg_page *dup,ogg_page *orig){ + dup->header_len=orig->header_len; + dup->body_len=orig->body_len; + dup->header=ogg_buffer_dup(orig->header); + dup->body=ogg_buffer_dup(orig->body); +} + diff --git a/wolf3d/code/Tremor/info.c b/wolf3d/code/Tremor/info.c new file mode 100644 index 0000000..33acf16 --- /dev/null +++ b/wolf3d/code/Tremor/info.c @@ -0,0 +1,356 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2003 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: maintain the info structure, info <-> header packets + + ********************************************************************/ + +/* general handling of the header and the vorbis_info structure (and + substructures) */ + +#include +#include +#include +#include "ogg.h" +#include "ivorbiscodec.h" +#include "codec_internal.h" +#include "codebook.h" +#include "registry.h" +#include "window.h" +#include "misc.h" + +/* helpers */ +static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){ + while(bytes--){ + *buf++=oggpack_read(o,8); + } +} + +void vorbis_comment_init(vorbis_comment *vc){ + memset(vc,0,sizeof(*vc)); +} + +/* This is more or less the same as strncasecmp - but that doesn't exist + * everywhere, and this is a fairly trivial function, so we include it */ +static int tagcompare(const char *s1, const char *s2, int n){ + int c=0; + while(c < n){ + if(toupper(s1[c]) != toupper(s2[c])) + return !0; + c++; + } + return 0; +} + +char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count){ + long i; + int found = 0; + int taglen = strlen(tag)+1; /* +1 for the = we append */ + char *fulltag = (char *)alloca(taglen+ 1); + + strcpy(fulltag, tag); + strcat(fulltag, "="); + + for(i=0;icomments;i++){ + if(!tagcompare(vc->user_comments[i], fulltag, taglen)){ + if(count == found) + /* We return a pointer to the data, not a copy */ + return vc->user_comments[i] + taglen; + else + found++; + } + } + return NULL; /* didn't find anything */ +} + +int vorbis_comment_query_count(vorbis_comment *vc, char *tag){ + int i,count=0; + int taglen = strlen(tag)+1; /* +1 for the = we append */ + char *fulltag = (char *)alloca(taglen+1); + strcpy(fulltag,tag); + strcat(fulltag, "="); + + for(i=0;icomments;i++){ + if(!tagcompare(vc->user_comments[i], fulltag, taglen)) + count++; + } + + return count; +} + +void vorbis_comment_clear(vorbis_comment *vc){ + if(vc){ + long i; + for(i=0;icomments;i++) + if(vc->user_comments[i])_ogg_free(vc->user_comments[i]); + if(vc->user_comments)_ogg_free(vc->user_comments); + if(vc->comment_lengths)_ogg_free(vc->comment_lengths); + if(vc->vendor)_ogg_free(vc->vendor); + memset(vc,0,sizeof(*vc)); + } +} + +/* blocksize 0 is guaranteed to be short, 1 is guarantted to be long. + They may be equal, but short will never ge greater than long */ +int vorbis_info_blocksize(vorbis_info *vi,int zo){ + codec_setup_info *ci = (codec_setup_info *)vi->codec_setup; + return ci ? ci->blocksizes[zo] : -1; +} + +/* used by synthesis, which has a full, alloced vi */ +void vorbis_info_init(vorbis_info *vi){ + memset(vi,0,sizeof(*vi)); + vi->codec_setup=(codec_setup_info *)_ogg_calloc(1,sizeof(codec_setup_info)); +} + +void vorbis_info_clear(vorbis_info *vi){ + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + int i; + + if(ci){ + + for(i=0;imodes;i++) + if(ci->mode_param[i])_ogg_free(ci->mode_param[i]); + + for(i=0;imaps;i++) /* unpack does the range checking */ + if(ci->map_param[i]) + _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]); + + for(i=0;ifloors;i++) /* unpack does the range checking */ + if(ci->floor_param[i]) + _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]); + + for(i=0;iresidues;i++) /* unpack does the range checking */ + if(ci->residue_param[i]) + _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]); + + for(i=0;ibooks;i++){ + if(ci->book_param[i]){ + /* knows if the book was not alloced */ + vorbis_staticbook_destroy(ci->book_param[i]); + } + if(ci->fullbooks) + vorbis_book_clear(ci->fullbooks+i); + } + if(ci->fullbooks) + _ogg_free(ci->fullbooks); + + _ogg_free(ci); + } + + memset(vi,0,sizeof(*vi)); +} + +/* Header packing/unpacking ********************************************/ + +static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){ + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + if(!ci)return(OV_EFAULT); + + vi->version=oggpack_read(opb,32); + if(vi->version!=0)return(OV_EVERSION); + + vi->channels=oggpack_read(opb,8); + vi->rate=oggpack_read(opb,32); + + vi->bitrate_upper=oggpack_read(opb,32); + vi->bitrate_nominal=oggpack_read(opb,32); + vi->bitrate_lower=oggpack_read(opb,32); + + ci->blocksizes[0]=1<blocksizes[1]=1<rate<1)goto err_out; + if(vi->channels<1)goto err_out; + if(ci->blocksizes[0]<64)goto err_out; + if(ci->blocksizes[1]blocksizes[0])goto err_out; + if(ci->blocksizes[1]>8192)goto err_out; + + if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ + + return(0); + err_out: + vorbis_info_clear(vi); + return(OV_EBADHEADER); +} + +static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){ + int i; + int vendorlen=oggpack_read(opb,32); + if(vendorlen<0)goto err_out; + vc->vendor=(char *)_ogg_calloc(vendorlen+1,1); + _v_readstring(opb,vc->vendor,vendorlen); + vc->comments=oggpack_read(opb,32); + if(vc->comments<0)goto err_out; + vc->user_comments=(char **)_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments)); + vc->comment_lengths=(int *)_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths)); + + for(i=0;icomments;i++){ + int len=oggpack_read(opb,32); + if(len<0)goto err_out; + vc->comment_lengths[i]=len; + vc->user_comments[i]=(char *)_ogg_calloc(len+1,1); + _v_readstring(opb,vc->user_comments[i],len); + } + if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ + + return(0); + err_out: + vorbis_comment_clear(vc); + return(OV_EBADHEADER); +} + +/* all of the real encoding details are here. The modes, books, + everything */ +static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + int i; + if(!ci)return(OV_EFAULT); + + /* codebooks */ + ci->books=oggpack_read(opb,8)+1; + /*ci->book_param=_ogg_calloc(ci->books,sizeof(*ci->book_param));*/ + for(i=0;ibooks;i++){ + ci->book_param[i]=(static_codebook *)_ogg_calloc(1,sizeof(*ci->book_param[i])); + if(vorbis_staticbook_unpack(opb,ci->book_param[i]))goto err_out; + } + + /* time backend settings */ + ci->times=oggpack_read(opb,6)+1; + /*ci->time_type=_ogg_malloc(ci->times*sizeof(*ci->time_type));*/ + /*ci->time_param=_ogg_calloc(ci->times,sizeof(void *));*/ + for(i=0;itimes;i++){ + ci->time_type[i]=oggpack_read(opb,16); + if(ci->time_type[i]<0 || ci->time_type[i]>=VI_TIMEB)goto err_out; + /* ci->time_param[i]=_time_P[ci->time_type[i]]->unpack(vi,opb); + Vorbis I has no time backend */ + /*if(!ci->time_param[i])goto err_out;*/ + } + + /* floor backend settings */ + ci->floors=oggpack_read(opb,6)+1; + /*ci->floor_type=_ogg_malloc(ci->floors*sizeof(*ci->floor_type));*/ + /*ci->floor_param=_ogg_calloc(ci->floors,sizeof(void *));*/ + for(i=0;ifloors;i++){ + ci->floor_type[i]=oggpack_read(opb,16); + if(ci->floor_type[i]<0 || ci->floor_type[i]>=VI_FLOORB)goto err_out; + ci->floor_param[i]=_floor_P[ci->floor_type[i]]->unpack(vi,opb); + if(!ci->floor_param[i])goto err_out; + } + + /* residue backend settings */ + ci->residues=oggpack_read(opb,6)+1; + /*ci->residue_type=_ogg_malloc(ci->residues*sizeof(*ci->residue_type));*/ + /*ci->residue_param=_ogg_calloc(ci->residues,sizeof(void *));*/ + for(i=0;iresidues;i++){ + ci->residue_type[i]=oggpack_read(opb,16); + if(ci->residue_type[i]<0 || ci->residue_type[i]>=VI_RESB)goto err_out; + ci->residue_param[i]=_residue_P[ci->residue_type[i]]->unpack(vi,opb); + if(!ci->residue_param[i])goto err_out; + } + + /* map backend settings */ + ci->maps=oggpack_read(opb,6)+1; + /*ci->map_type=_ogg_malloc(ci->maps*sizeof(*ci->map_type));*/ + /*ci->map_param=_ogg_calloc(ci->maps,sizeof(void *));*/ + for(i=0;imaps;i++){ + ci->map_type[i]=oggpack_read(opb,16); + if(ci->map_type[i]<0 || ci->map_type[i]>=VI_MAPB)goto err_out; + ci->map_param[i]=_mapping_P[ci->map_type[i]]->unpack(vi,opb); + if(!ci->map_param[i])goto err_out; + } + + /* mode settings */ + ci->modes=oggpack_read(opb,6)+1; + /*vi->mode_param=_ogg_calloc(vi->modes,sizeof(void *));*/ + for(i=0;imodes;i++){ + ci->mode_param[i]=(vorbis_info_mode *)_ogg_calloc(1,sizeof(*ci->mode_param[i])); + ci->mode_param[i]->blockflag=oggpack_read(opb,1); + ci->mode_param[i]->windowtype=oggpack_read(opb,16); + ci->mode_param[i]->transformtype=oggpack_read(opb,16); + ci->mode_param[i]->mapping=oggpack_read(opb,8); + + if(ci->mode_param[i]->windowtype>=VI_WINDOWB)goto err_out; + if(ci->mode_param[i]->transformtype>=VI_WINDOWB)goto err_out; + if(ci->mode_param[i]->mapping>=ci->maps)goto err_out; + } + + if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */ + + return(0); + err_out: + vorbis_info_clear(vi); + return(OV_EBADHEADER); +} + +/* The Vorbis header is in three packets; the initial small packet in + the first page that identifies basic parameters, a second packet + with bitstream comments and a third packet that holds the + codebook. */ + +int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){ + oggpack_buffer opb; + + if(op){ + oggpack_readinit(&opb,op->packet); + + /* Which of the three types of header is this? */ + /* Also verify header-ness, vorbis */ + { + char buffer[6]; + int packtype=oggpack_read(&opb,8); + memset(buffer,0,6); + _v_readstring(&opb,buffer,6); + if(memcmp(buffer,"vorbis",6)){ + /* not a vorbis header */ + return(OV_ENOTVORBIS); + } + switch(packtype){ + case 0x01: /* least significant *bit* is read first */ + if(!op->b_o_s){ + /* Not the initial packet */ + return(OV_EBADHEADER); + } + if(vi->rate!=0){ + /* previously initialized info header */ + return(OV_EBADHEADER); + } + + return(_vorbis_unpack_info(vi,&opb)); + + case 0x03: /* least significant *bit* is read first */ + if(vi->rate==0){ + /* um... we didn't get the initial header */ + return(OV_EBADHEADER); + } + + return(_vorbis_unpack_comment(vc,&opb)); + + case 0x05: /* least significant *bit* is read first */ + if(vi->rate==0 || vc->vendor==NULL){ + /* um... we didn;t get the initial header or comments yet */ + return(OV_EBADHEADER); + } + + return(_vorbis_unpack_books(vi,&opb)); + + default: + /* Not a valid vorbis header type */ + return(OV_EBADHEADER); + break; + } + } + } + return(OV_EBADHEADER); +} + diff --git a/wolf3d/code/Tremor/ivorbiscodec.h b/wolf3d/code/Tremor/ivorbiscodec.h new file mode 100644 index 0000000..d4de1fd --- /dev/null +++ b/wolf3d/code/Tremor/ivorbiscodec.h @@ -0,0 +1,202 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: libvorbis codec headers + + ********************************************************************/ + +#ifndef _vorbis_codec_h_ +#define _vorbis_codec_h_ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "ogg.h" + +typedef struct vorbis_info{ + int version; + int channels; + long rate; + + /* The below bitrate declarations are *hints*. + Combinations of the three values carry the following implications: + + all three set to the same value: + implies a fixed rate bitstream + only nominal set: + implies a VBR stream that averages the nominal bitrate. No hard + upper/lower limit + upper and or lower set: + implies a VBR bitstream that obeys the bitrate limits. nominal + may also be set to give a nominal rate. + none set: + the coder does not care to speculate. + */ + + long bitrate_upper; + long bitrate_nominal; + long bitrate_lower; + long bitrate_window; + + void *codec_setup; +} vorbis_info; + +/* vorbis_dsp_state buffers the current vorbis audio + analysis/synthesis state. The DSP state belongs to a specific + logical bitstream ****************************************************/ +typedef struct vorbis_dsp_state{ + int analysisp; + vorbis_info *vi; + + ogg_int32_t **pcm; + ogg_int32_t **pcmret; + int pcm_storage; + int pcm_current; + int pcm_returned; + + int preextrapolate; + int eofflag; + + long lW; + long W; + long nW; + long centerW; + + ogg_int64_t granulepos; + ogg_int64_t sequence; + + void *backend_state; +} vorbis_dsp_state; + +typedef struct vorbis_block{ + /* necessary stream state for linking to the framing abstraction */ + ogg_int32_t **pcm; /* this is a pointer into local storage */ + oggpack_buffer opb; + + long lW; + long W; + long nW; + int pcmend; + int mode; + + int eofflag; + ogg_int64_t granulepos; + ogg_int64_t sequence; + vorbis_dsp_state *vd; /* For read-only access of configuration */ + + /* local storage to avoid remallocing; it's up to the mapping to + structure it */ + void *localstore; + long localtop; + long localalloc; + long totaluse; + struct alloc_chain *reap; + +} vorbis_block; + +/* vorbis_block is a single block of data to be processed as part of +the analysis/synthesis stream; it belongs to a specific logical +bitstream, but is independant from other vorbis_blocks belonging to +that logical bitstream. *************************************************/ + +struct alloc_chain{ + void *ptr; + struct alloc_chain *next; +}; + +/* vorbis_info contains all the setup information specific to the + specific compression/decompression mode in progress (eg, + psychoacoustic settings, channel setup, options, codebook + etc). vorbis_info and substructures are in backends.h. +*********************************************************************/ + +/* the comments are not part of vorbis_info so that vorbis_info can be + static storage */ +typedef struct vorbis_comment{ + /* unlimited user comment fields. libvorbis writes 'libvorbis' + whatever vendor is set to in encode */ + char **user_comments; + int *comment_lengths; + int comments; + char *vendor; + +} vorbis_comment; + + +/* libvorbis encodes in two abstraction layers; first we perform DSP + and produce a packet (see docs/analysis.txt). The packet is then + coded into a framed OggSquish bitstream by the second layer (see + docs/framing.txt). Decode is the reverse process; we sync/frame + the bitstream and extract individual packets, then decode the + packet back into PCM audio. + + The extra framing/packetizing is used in streaming formats, such as + files. Over the net (such as with UDP), the framing and + packetization aren't necessary as they're provided by the transport + and the streaming layer is not used */ + +/* Vorbis PRIMITIVES: general ***************************************/ + +extern void vorbis_info_init(vorbis_info *vi); +extern void vorbis_info_clear(vorbis_info *vi); +extern int vorbis_info_blocksize(vorbis_info *vi,int zo); +extern void vorbis_comment_init(vorbis_comment *vc); +extern void vorbis_comment_add(vorbis_comment *vc, char *comment); +extern void vorbis_comment_add_tag(vorbis_comment *vc, + char *tag, char *contents); +extern char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count); +extern int vorbis_comment_query_count(vorbis_comment *vc, char *tag); +extern void vorbis_comment_clear(vorbis_comment *vc); + +extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); +extern int vorbis_block_clear(vorbis_block *vb); +extern void vorbis_dsp_clear(vorbis_dsp_state *v); + +/* Vorbis PRIMITIVES: synthesis layer *******************************/ +extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, + ogg_packet *op); + +extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); +extern int vorbis_synthesis_restart(vorbis_dsp_state *v); +extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep); +extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); +extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,ogg_int32_t ***pcm); +extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); +extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); + +/* Vorbis ERRORS and return codes ***********************************/ + +#define OV_FALSE -1 +#define OV_EOF -2 +#define OV_HOLE -3 + +#define OV_EREAD -128 +#define OV_EFAULT -129 +#define OV_EIMPL -130 +#define OV_EINVAL -131 +#define OV_ENOTVORBIS -132 +#define OV_EBADHEADER -133 +#define OV_EVERSION -134 +#define OV_ENOTAUDIO -135 +#define OV_EBADPACKET -136 +#define OV_EBADLINK -137 +#define OV_ENOSEEK -138 + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif + diff --git a/wolf3d/code/Tremor/ivorbisfile.h b/wolf3d/code/Tremor/ivorbisfile.h new file mode 100644 index 0000000..dd77378 --- /dev/null +++ b/wolf3d/code/Tremor/ivorbisfile.h @@ -0,0 +1,130 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: stdio-based convenience library for opening/seeking/decoding + + ********************************************************************/ + +#ifndef _OV_FILE_H_ +#define _OV_FILE_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include +#include "ivorbiscodec.h" + +#define CHUNKSIZE 1024 +/* The function prototypes for the callbacks are basically the same as for + * the stdio functions fread, fseek, fclose, ftell. + * The one difference is that the FILE * arguments have been replaced with + * a void * - this is to be used as a pointer to whatever internal data these + * functions might need. In the stdio case, it's just a FILE * cast to a void * + * + * If you use other functions, check the docs for these functions and return + * the right values. For seek_func(), you *MUST* return -1 if the stream is + * unseekable + */ +typedef struct { + size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); + int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); + int (*close_func) (void *datasource); + long (*tell_func) (void *datasource); +} ov_callbacks; + +#define NOTOPEN 0 +#define PARTOPEN 1 +#define OPENED 2 +#define STREAMSET 3 +#define INITSET 4 + +typedef struct OggVorbis_File { + void *datasource; /* Pointer to a FILE *, etc. */ + int seekable; + ogg_int64_t offset; + ogg_int64_t end; + ogg_sync_state *oy; + + /* If the FILE handle isn't seekable (eg, a pipe), only the current + stream appears */ + int links; + ogg_int64_t *offsets; + ogg_int64_t *dataoffsets; + ogg_uint32_t *serialnos; + ogg_int64_t *pcmlengths; + vorbis_info *vi; + vorbis_comment *vc; + + /* Decoding working state local storage */ + ogg_int64_t pcm_offset; + int ready_state; + ogg_uint32_t current_serialno; + int current_link; + + ogg_int64_t bittrack; + ogg_int64_t samptrack; + + ogg_stream_state *os; /* take physical pages, weld into a logical + stream of packets */ + vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ + vorbis_block vb; /* local working space for packet->PCM decode */ + + ov_callbacks callbacks; + +} OggVorbis_File; + +extern int ov_clear(OggVorbis_File *vf); +extern int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes); +extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, + char *initial, long ibytes, ov_callbacks callbacks); + +extern int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes); +extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, + char *initial, long ibytes, ov_callbacks callbacks); +extern int ov_test_open(OggVorbis_File *vf); + +extern long ov_bitrate(OggVorbis_File *vf,int i); +extern long ov_bitrate_instant(OggVorbis_File *vf); +extern long ov_streams(OggVorbis_File *vf); +extern long ov_seekable(OggVorbis_File *vf); +extern long ov_serialnumber(OggVorbis_File *vf,int i); + +extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); +extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); +extern ogg_int64_t ov_time_total(OggVorbis_File *vf,int i); + +extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); +extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); +extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); +extern int ov_time_seek(OggVorbis_File *vf,ogg_int64_t pos); +extern int ov_time_seek_page(OggVorbis_File *vf,ogg_int64_t pos); + +extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); +extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); +extern ogg_int64_t ov_time_tell(OggVorbis_File *vf); + +extern vorbis_info *ov_info(OggVorbis_File *vf,int link); +extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); + +extern long ov_read(OggVorbis_File *vf,char *buffer,int length, + int *bitstream); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif + + diff --git a/wolf3d/code/Tremor/ivorbisfile_example.c b/wolf3d/code/Tremor/ivorbisfile_example.c new file mode 100644 index 0000000..c99cfd2 --- /dev/null +++ b/wolf3d/code/Tremor/ivorbisfile_example.c @@ -0,0 +1,86 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: simple example decoder using vorbisidec + + ********************************************************************/ + +/* Takes a vorbis bitstream from stdin and writes raw stereo PCM to + stdout using vorbisfile. Using vorbisfile is much simpler than + dealing with libvorbis. */ + +#include +#include +#include "ivorbiscodec.h" +#include "ivorbisfile.h" + +#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ +#include +#include +#endif + +char pcmout[4096]; /* take 4k out of the data segment, not the stack */ + +int main(){ + OggVorbis_File vf; + int eof=0; + int current_section; + +#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */ + /* Beware the evil ifdef. We avoid these where we can, but this one we + cannot. Don't add any more, you'll probably go to hell if you do. */ + _setmode( _fileno( stdin ), _O_BINARY ); + _setmode( _fileno( stdout ), _O_BINARY ); +#endif + + if(ov_open(stdin, &vf, NULL, 0) < 0) { + fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n"); + exit(1); + } + + /* Throw the comments plus a few lines about the bitstream we're + decoding */ + { + char **ptr=ov_comment(&vf,-1)->user_comments; + vorbis_info *vi=ov_info(&vf,-1); + while(*ptr){ + fprintf(stderr,"%s\n",*ptr); + ++ptr; + } + fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate); + fprintf(stderr,"\nDecoded length: %ld samples\n", + (long)ov_pcm_total(&vf,-1)); + fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor); + } + + while(!eof){ + long ret=ov_read(&vf,pcmout,sizeof(pcmout),¤t_section); + if (ret == 0) { + /* EOF */ + eof=1; + } else if (ret < 0) { + /* error in the stream. Not a problem, just reporting it in + case we (the app) cares. In this case, we don't. */ + } else { + /* we don't bother dealing with sample rate changes, etc, but + you'll have to*/ + fwrite(pcmout,1,ret,stdout); + } + } + + /* cleanup */ + ov_clear(&vf); + + fprintf(stderr,"Done.\n"); + return(0); +} diff --git a/wolf3d/code/Tremor/lsp_lookup.h b/wolf3d/code/Tremor/lsp_lookup.h new file mode 100644 index 0000000..fa84851 --- /dev/null +++ b/wolf3d/code/Tremor/lsp_lookup.h @@ -0,0 +1,136 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: lookup data + + ********************************************************************/ + +#ifndef _V_LOOKUP_DATA_H_ +#define _V_LOOKUP_DATA_H_ + +#include "os_types.h" + +#define FROMdB_LOOKUP_SZ 35 +#define FROMdB2_LOOKUP_SZ 32 +#define FROMdB_SHIFT 5 +#define FROMdB2_SHIFT 3 +#define FROMdB2_MASK 31 + +static const ogg_int32_t FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={ + 0x003fffff, 0x0028619b, 0x00197a96, 0x0010137a, + 0x000a24b0, 0x00066666, 0x000409c3, 0x00028c42, + 0x00019b8c, 0x000103ab, 0x0000a3d7, 0x00006760, + 0x0000413a, 0x00002928, 0x000019f8, 0x00001062, + 0x00000a56, 0x00000686, 0x0000041e, 0x00000299, + 0x000001a3, 0x00000109, 0x000000a7, 0x00000069, + 0x00000042, 0x0000002a, 0x0000001a, 0x00000011, + 0x0000000b, 0x00000007, 0x00000004, 0x00000003, + 0x00000002, 0x00000001, 0x00000001}; + +static const ogg_int32_t FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={ + 0x000001fc, 0x000001f5, 0x000001ee, 0x000001e7, + 0x000001e0, 0x000001d9, 0x000001d2, 0x000001cc, + 0x000001c5, 0x000001bf, 0x000001b8, 0x000001b2, + 0x000001ac, 0x000001a6, 0x000001a0, 0x0000019a, + 0x00000194, 0x0000018e, 0x00000188, 0x00000183, + 0x0000017d, 0x00000178, 0x00000172, 0x0000016d, + 0x00000168, 0x00000163, 0x0000015e, 0x00000159, + 0x00000154, 0x0000014f, 0x0000014a, 0x00000145, +}; + +#define INVSQ_LOOKUP_I_SHIFT 10 +#define INVSQ_LOOKUP_I_MASK 1023 +static const long INVSQ_LOOKUP_I[64+1]={ + 92682, 91966, 91267, 90583, + 89915, 89261, 88621, 87995, + 87381, 86781, 86192, 85616, + 85051, 84497, 83953, 83420, + 82897, 82384, 81880, 81385, + 80899, 80422, 79953, 79492, + 79039, 78594, 78156, 77726, + 77302, 76885, 76475, 76072, + 75674, 75283, 74898, 74519, + 74146, 73778, 73415, 73058, + 72706, 72359, 72016, 71679, + 71347, 71019, 70695, 70376, + 70061, 69750, 69444, 69141, + 68842, 68548, 68256, 67969, + 67685, 67405, 67128, 66855, + 66585, 66318, 66054, 65794, + 65536, +}; + +static const long INVSQ_LOOKUP_IDel[64]={ + 716, 699, 684, 668, + 654, 640, 626, 614, + 600, 589, 576, 565, + 554, 544, 533, 523, + 513, 504, 495, 486, + 477, 469, 461, 453, + 445, 438, 430, 424, + 417, 410, 403, 398, + 391, 385, 379, 373, + 368, 363, 357, 352, + 347, 343, 337, 332, + 328, 324, 319, 315, + 311, 306, 303, 299, + 294, 292, 287, 284, + 280, 277, 273, 270, + 267, 264, 260, 258, +}; + +#define COS_LOOKUP_I_SHIFT 9 +#define COS_LOOKUP_I_MASK 511 +#define COS_LOOKUP_I_SZ 128 +static const ogg_int32_t COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={ + 16384, 16379, 16364, 16340, + 16305, 16261, 16207, 16143, + 16069, 15986, 15893, 15791, + 15679, 15557, 15426, 15286, + 15137, 14978, 14811, 14635, + 14449, 14256, 14053, 13842, + 13623, 13395, 13160, 12916, + 12665, 12406, 12140, 11866, + 11585, 11297, 11003, 10702, + 10394, 10080, 9760, 9434, + 9102, 8765, 8423, 8076, + 7723, 7366, 7005, 6639, + 6270, 5897, 5520, 5139, + 4756, 4370, 3981, 3590, + 3196, 2801, 2404, 2006, + 1606, 1205, 804, 402, + 0, -401, -803, -1204, + -1605, -2005, -2403, -2800, + -3195, -3589, -3980, -4369, + -4755, -5138, -5519, -5896, + -6269, -6638, -7004, -7365, + -7722, -8075, -8422, -8764, + -9101, -9433, -9759, -10079, + -10393, -10701, -11002, -11296, + -11584, -11865, -12139, -12405, + -12664, -12915, -13159, -13394, + -13622, -13841, -14052, -14255, + -14448, -14634, -14810, -14977, + -15136, -15285, -15425, -15556, + -15678, -15790, -15892, -15985, + -16068, -16142, -16206, -16260, + -16304, -16339, -16363, -16378, + -16383, +}; + +#endif + + + + + diff --git a/wolf3d/code/Tremor/mapping0.c b/wolf3d/code/Tremor/mapping0.c new file mode 100644 index 0000000..c54c896 --- /dev/null +++ b/wolf3d/code/Tremor/mapping0.c @@ -0,0 +1,322 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: channel mapping 0 implementation + + ********************************************************************/ + +#include +#include +#include +#include +#include "ogg.h" +#include "ivorbiscodec.h" +#include "mdct.h" +#include "codec_internal.h" +#include "codebook.h" +#include "window.h" +#include "registry.h" +#include "misc.h" + +/* simplistic, wasteful way of doing this (unique lookup for each + mode/submapping); there should be a central repository for + identical lookups. That will require minor work, so I'm putting it + off as low priority. + + Why a lookup for each backend in a given mode? Because the + blocksize is set by the mode, and low backend lookups may require + parameters from other areas of the mode/mapping */ + +typedef struct { + vorbis_info_mode *mode; + vorbis_info_mapping0 *map; + + vorbis_look_floor **floor_look; + + vorbis_look_residue **residue_look; + + vorbis_func_floor **floor_func; + vorbis_func_residue **residue_func; + + int ch; + long lastframe; /* if a different mode is called, we need to + invalidate decay */ +} vorbis_look_mapping0; + +static void mapping0_free_info(vorbis_info_mapping *i){ + vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)i; + if(info){ + memset(info,0,sizeof(*info)); + _ogg_free(info); + } +} + +static void mapping0_free_look(vorbis_look_mapping *look){ + int i; + vorbis_look_mapping0 *l=(vorbis_look_mapping0 *)look; + if(l){ + + for(i=0;imap->submaps;i++){ + l->floor_func[i]->free_look(l->floor_look[i]); + l->residue_func[i]->free_look(l->residue_look[i]); + } + + _ogg_free(l->floor_func); + _ogg_free(l->residue_func); + _ogg_free(l->floor_look); + _ogg_free(l->residue_look); + memset(l,0,sizeof(*l)); + _ogg_free(l); + } +} + +static vorbis_look_mapping *mapping0_look(vorbis_dsp_state *vd,vorbis_info_mode *vm, + vorbis_info_mapping *m){ + int i; + vorbis_info *vi=vd->vi; + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)_ogg_calloc(1,sizeof(*look)); + vorbis_info_mapping0 *info=look->map=(vorbis_info_mapping0 *)m; + look->mode=vm; + + look->floor_look=(vorbis_look_floor **)_ogg_calloc(info->submaps,sizeof(*look->floor_look)); + + look->residue_look=(vorbis_look_residue **)_ogg_calloc(info->submaps,sizeof(*look->residue_look)); + + look->floor_func=(vorbis_func_floor **)_ogg_calloc(info->submaps,sizeof(*look->floor_func)); + look->residue_func=(vorbis_func_residue **)_ogg_calloc(info->submaps,sizeof(*look->residue_func)); + + for(i=0;isubmaps;i++){ + int floornum=info->floorsubmap[i]; + int resnum=info->residuesubmap[i]; + + look->floor_func[i]=_floor_P[ci->floor_type[floornum]]; + look->floor_look[i]=look->floor_func[i]-> + look(vd,vm,ci->floor_param[floornum]); + look->residue_func[i]=_residue_P[ci->residue_type[resnum]]; + look->residue_look[i]=look->residue_func[i]-> + look(vd,vm,ci->residue_param[resnum]); + + } + + look->ch=vi->channels; + + return(look); +} + +static int ilog(unsigned int v){ + int ret=0; + if(v)--v; + while(v){ + ret++; + v>>=1; + } + return(ret); +} + +/* also responsible for range checking */ +static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb){ + int i; + vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)_ogg_calloc(1,sizeof(*info)); + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + memset(info,0,sizeof(*info)); + + if(oggpack_read(opb,1)) + info->submaps=oggpack_read(opb,4)+1; + else + info->submaps=1; + + if(oggpack_read(opb,1)){ + info->coupling_steps=oggpack_read(opb,8)+1; + + for(i=0;icoupling_steps;i++){ + int testM=info->coupling_mag[i]=oggpack_read(opb,ilog(vi->channels)); + int testA=info->coupling_ang[i]=oggpack_read(opb,ilog(vi->channels)); + + if(testM<0 || + testA<0 || + testM==testA || + testM>=vi->channels || + testA>=vi->channels) goto err_out; + } + + } + + if(oggpack_read(opb,2)>0)goto err_out; /* 2,3:reserved */ + + if(info->submaps>1){ + for(i=0;ichannels;i++){ + info->chmuxlist[i]=oggpack_read(opb,4); + if(info->chmuxlist[i]>=info->submaps)goto err_out; + } + } + for(i=0;isubmaps;i++){ + int temp=oggpack_read(opb,8); + if(temp>=ci->times)goto err_out; + info->floorsubmap[i]=oggpack_read(opb,8); + if(info->floorsubmap[i]>=ci->floors)goto err_out; + info->residuesubmap[i]=oggpack_read(opb,8); + if(info->residuesubmap[i]>=ci->residues)goto err_out; + } + + return info; + + err_out: + mapping0_free_info(info); + return(NULL); +} + +static int seq=0; +static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){ + vorbis_dsp_state *vd=vb->vd; + vorbis_info *vi=vd->vi; + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + private_state *b=(private_state *)vd->backend_state; + vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)l; + vorbis_info_mapping0 *info=look->map; + + int i,j; + long n=vb->pcmend=ci->blocksizes[vb->W]; + + ogg_int32_t **pcmbundle=(ogg_int32_t **)alloca(sizeof(*pcmbundle)*vi->channels); + int *zerobundle=(int *)alloca(sizeof(*zerobundle)*vi->channels); + + int *nonzero =(int *)alloca(sizeof(*nonzero)*vi->channels); + void **floormemo=(void **)alloca(sizeof(*floormemo)*vi->channels); + + /* time domain information decode (note that applying the + information would have to happen later; we'll probably add a + function entry to the harness for that later */ + /* NOT IMPLEMENTED */ + + /* recover the spectral envelope; store it in the PCM vector for now */ + for(i=0;ichannels;i++){ + int submap=info->chmuxlist[i]; + floormemo[i]=look->floor_func[submap]-> + inverse1(vb,look->floor_look[submap]); + if(floormemo[i]) + nonzero[i]=1; + else + nonzero[i]=0; + memset(vb->pcm[i],0,sizeof(*vb->pcm[i])*n/2); + } + + /* channel coupling can 'dirty' the nonzero listing */ + for(i=0;icoupling_steps;i++){ + if(nonzero[info->coupling_mag[i]] || + nonzero[info->coupling_ang[i]]){ + nonzero[info->coupling_mag[i]]=1; + nonzero[info->coupling_ang[i]]=1; + } + } + + /* recover the residue into our working vectors */ + for(i=0;isubmaps;i++){ + int ch_in_bundle=0; + for(j=0;jchannels;j++){ + if(info->chmuxlist[j]==i){ + if(nonzero[j]) + zerobundle[ch_in_bundle]=1; + else + zerobundle[ch_in_bundle]=0; + pcmbundle[ch_in_bundle++]=vb->pcm[j]; + } + } + + look->residue_func[i]->inverse(vb,look->residue_look[i], + pcmbundle,zerobundle,ch_in_bundle); + } + + //for(j=0;jchannels;j++) + //_analysis_output("coupled",seq+j,vb->pcm[j],-8,n/2,0,0); + + + /* channel coupling */ + for(i=info->coupling_steps-1;i>=0;i--){ + ogg_int32_t *pcmM=vb->pcm[info->coupling_mag[i]]; + ogg_int32_t *pcmA=vb->pcm[info->coupling_ang[i]]; + + for(j=0;j0) + if(ang>0){ + pcmM[j]=mag; + pcmA[j]=mag-ang; + }else{ + pcmA[j]=mag; + pcmM[j]=mag+ang; + } + else + if(ang>0){ + pcmM[j]=mag; + pcmA[j]=mag+ang; + }else{ + pcmA[j]=mag; + pcmM[j]=mag-ang; + } + } + } + + //for(j=0;jchannels;j++) + //_analysis_output("residue",seq+j,vb->pcm[j],-8,n/2,0,0); + + /* compute and apply spectral envelope */ + for(i=0;ichannels;i++){ + ogg_int32_t *pcm=vb->pcm[i]; + int submap=info->chmuxlist[i]; + look->floor_func[submap]-> + inverse2(vb,look->floor_look[submap],floormemo[i],pcm); + } + + //for(j=0;jchannels;j++) + //_analysis_output("mdct",seq+j,vb->pcm[j],-24,n/2,0,1); + + /* transform the PCM data; takes PCM vector, vb; modifies PCM vector */ + /* only MDCT right now.... */ + for(i=0;ichannels;i++){ + ogg_int32_t *pcm=vb->pcm[i]; + mdct_backward(n,pcm,pcm); + } + + //for(j=0;jchannels;j++) + //_analysis_output("imdct",seq+j,vb->pcm[j],-24,n,0,0); + + /* window the data */ + for(i=0;ichannels;i++){ + ogg_int32_t *pcm=vb->pcm[i]; + if(nonzero[i]) + _vorbis_apply_window(pcm,b->window,ci->blocksizes,vb->lW,vb->W,vb->nW); + else + for(j=0;jchannels;j++) + //_analysis_output("window",seq+j,vb->pcm[j],-24,n,0,0); + + seq+=vi->channels; + /* all done! */ + return(0); +} + +/* export hooks */ +vorbis_func_mapping mapping0_exportbundle={ + &mapping0_unpack, + &mapping0_look, + &mapping0_free_info, + &mapping0_free_look, + &mapping0_inverse +}; diff --git a/wolf3d/code/Tremor/mdct.c b/wolf3d/code/Tremor/mdct.c new file mode 100644 index 0000000..4f39e7d --- /dev/null +++ b/wolf3d/code/Tremor/mdct.c @@ -0,0 +1,510 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: normalized modified discrete cosine transform + power of two length transform only [64 <= n ] + last mod: $Id: mdct.c,v 1.9 2002/10/16 09:17:39 xiphmont Exp $ + + Original algorithm adapted long ago from _The use of multirate filter + banks for coding of high quality digital audio_, by T. Sporer, + K. Brandenburg and B. Edler, collection of the European Signal + Processing Conference (EUSIPCO), Amsterdam, June 1992, Vol.1, pp + 211-214 + + The below code implements an algorithm that no longer looks much like + that presented in the paper, but the basic structure remains if you + dig deep enough to see it. + + This module DOES NOT INCLUDE code to generate/apply the window + function. Everybody has their own weird favorite including me... I + happen to like the properties of y=sin(.5PI*sin^2(x)), but others may + vehemently disagree. + + ********************************************************************/ + +#include "ivorbiscodec.h" +#include "codebook.h" +#include "misc.h" +#include "mdct.h" +#include "mdct_lookup.h" + + +/* 8 point butterfly (in place) */ +STIN void mdct_butterfly_8(DATA_TYPE *x){ + + REG_TYPE r0 = x[4] + x[0]; + REG_TYPE r1 = x[4] - x[0]; + REG_TYPE r2 = x[5] + x[1]; + REG_TYPE r3 = x[5] - x[1]; + REG_TYPE r4 = x[6] + x[2]; + REG_TYPE r5 = x[6] - x[2]; + REG_TYPE r6 = x[7] + x[3]; + REG_TYPE r7 = x[7] - x[3]; + + x[0] = r5 + r3; + x[1] = r7 - r1; + x[2] = r5 - r3; + x[3] = r7 + r1; + x[4] = r4 - r0; + x[5] = r6 - r2; + x[6] = r4 + r0; + x[7] = r6 + r2; + MB(); +} + +/* 16 point butterfly (in place, 4 register) */ +STIN void mdct_butterfly_16(DATA_TYPE *x){ + + REG_TYPE r0, r1; + + r0 = x[ 0] - x[ 8]; x[ 8] += x[ 0]; + r1 = x[ 1] - x[ 9]; x[ 9] += x[ 1]; + x[ 0] = MULT31((r0 + r1) , cPI2_8); + x[ 1] = MULT31((r1 - r0) , cPI2_8); + MB(); + + r0 = x[10] - x[ 2]; x[10] += x[ 2]; + r1 = x[ 3] - x[11]; x[11] += x[ 3]; + x[ 2] = r1; x[ 3] = r0; + MB(); + + r0 = x[12] - x[ 4]; x[12] += x[ 4]; + r1 = x[13] - x[ 5]; x[13] += x[ 5]; + x[ 4] = MULT31((r0 - r1) , cPI2_8); + x[ 5] = MULT31((r0 + r1) , cPI2_8); + MB(); + + r0 = x[14] - x[ 6]; x[14] += x[ 6]; + r1 = x[15] - x[ 7]; x[15] += x[ 7]; + x[ 6] = r0; x[ 7] = r1; + MB(); + + mdct_butterfly_8(x); + mdct_butterfly_8(x+8); +} + +/* 32 point butterfly (in place, 4 register) */ +STIN void mdct_butterfly_32(DATA_TYPE *x){ + + REG_TYPE r0, r1; + + r0 = x[30] - x[14]; x[30] += x[14]; + r1 = x[31] - x[15]; x[31] += x[15]; + x[14] = r0; x[15] = r1; + MB(); + + r0 = x[28] - x[12]; x[28] += x[12]; + r1 = x[29] - x[13]; x[29] += x[13]; + XNPROD31( r0, r1, cPI1_8, cPI3_8, &x[12], &x[13] ); + MB(); + + r0 = x[26] - x[10]; x[26] += x[10]; + r1 = x[27] - x[11]; x[27] += x[11]; + x[10] = MULT31((r0 - r1) , cPI2_8); + x[11] = MULT31((r0 + r1) , cPI2_8); + MB(); + + r0 = x[24] - x[ 8]; x[24] += x[ 8]; + r1 = x[25] - x[ 9]; x[25] += x[ 9]; + XNPROD31( r0, r1, cPI3_8, cPI1_8, &x[ 8], &x[ 9] ); + MB(); + + r0 = x[22] - x[ 6]; x[22] += x[ 6]; + r1 = x[ 7] - x[23]; x[23] += x[ 7]; + x[ 6] = r1; x[ 7] = r0; + MB(); + + r0 = x[ 4] - x[20]; x[20] += x[ 4]; + r1 = x[ 5] - x[21]; x[21] += x[ 5]; + XPROD31 ( r0, r1, cPI3_8, cPI1_8, &x[ 4], &x[ 5] ); + MB(); + + r0 = x[ 2] - x[18]; x[18] += x[ 2]; + r1 = x[ 3] - x[19]; x[19] += x[ 3]; + x[ 2] = MULT31((r1 + r0) , cPI2_8); + x[ 3] = MULT31((r1 - r0) , cPI2_8); + MB(); + + r0 = x[ 0] - x[16]; x[16] += x[ 0]; + r1 = x[ 1] - x[17]; x[17] += x[ 1]; + XPROD31 ( r0, r1, cPI1_8, cPI3_8, &x[ 0], &x[ 1] ); + MB(); + + mdct_butterfly_16(x); + mdct_butterfly_16(x+16); +} + +/* N/stage point generic N stage butterfly (in place, 2 register) */ +STIN void mdct_butterfly_generic(DATA_TYPE *x,int points,int step){ + + LOOKUP_T *T = sincos_lookup0; + DATA_TYPE *x1 = x + points - 8; + DATA_TYPE *x2 = x + (points>>1) - 8; + REG_TYPE r0; + REG_TYPE r1; + + do{ + r0 = x1[6] - x2[6]; x1[6] += x2[6]; + r1 = x2[7] - x1[7]; x1[7] += x2[7]; + XPROD31( r1, r0, T[0], T[1], &x2[6], &x2[7] ); T+=step; + + r0 = x1[4] - x2[4]; x1[4] += x2[4]; + r1 = x2[5] - x1[5]; x1[5] += x2[5]; + XPROD31( r1, r0, T[0], T[1], &x2[4], &x2[5] ); T+=step; + + r0 = x1[2] - x2[2]; x1[2] += x2[2]; + r1 = x2[3] - x1[3]; x1[3] += x2[3]; + XPROD31( r1, r0, T[0], T[1], &x2[2], &x2[3] ); T+=step; + + r0 = x1[0] - x2[0]; x1[0] += x2[0]; + r1 = x2[1] - x1[1]; x1[1] += x2[1]; + XPROD31( r1, r0, T[0], T[1], &x2[0], &x2[1] ); T+=step; + + x1-=8; x2-=8; + }while(Tsincos_lookup0); + do{ + r0 = x2[6] - x1[6]; x1[6] += x2[6]; + r1 = x2[7] - x1[7]; x1[7] += x2[7]; + XPROD31( r0, r1, T[0], T[1], &x2[6], &x2[7] ); T+=step; + + r0 = x2[4] - x1[4]; x1[4] += x2[4]; + r1 = x2[5] - x1[5]; x1[5] += x2[5]; + XPROD31( r0, r1, T[0], T[1], &x2[4], &x2[5] ); T+=step; + + r0 = x2[2] - x1[2]; x1[2] += x2[2]; + r1 = x2[3] - x1[3]; x1[3] += x2[3]; + XPROD31( r0, r1, T[0], T[1], &x2[2], &x2[3] ); T+=step; + + r0 = x2[0] - x1[0]; x1[0] += x2[0]; + r1 = x2[1] - x1[1]; x1[1] += x2[1]; + XPROD31( r0, r1, T[0], T[1], &x2[0], &x2[1] ); T+=step; + + x1-=8; x2-=8; + }while(Tsincos_lookup0); +} + +STIN void mdct_butterflies(DATA_TYPE *x,int points,int shift){ + + int stages=8-shift; + int i,j; + + for(i=0;--stages>0;i++){ + for(j=0;j<(1<>i)*j,points>>i,4<<(i+shift)); + } + + for(j=0;j>8]|(bitrev[(x&0x0f0)>>4]<<4)|(((int)bitrev[x&0x00f])<<8); +} + +STIN void mdct_bitreverse(DATA_TYPE *x,int n,int step,int shift){ + + int bit = 0; + DATA_TYPE *w0 = x; + DATA_TYPE *w1 = x = w0+(n>>1); + LOOKUP_T *T = (step>=4)?(sincos_lookup0+(step>>1)):sincos_lookup1; + LOOKUP_T *Ttop = T+1024; + DATA_TYPE r2; + + do{ + DATA_TYPE r3 = bitrev12(bit++); + DATA_TYPE *x0 = x + ((r3 ^ 0xfff)>>shift) -1; + DATA_TYPE *x1 = x + (r3>>shift); + + REG_TYPE r0 = x0[0] + x1[0]; + REG_TYPE r1 = x1[1] - x0[1]; + + XPROD32( r0, r1, T[1], T[0], &r2, &r3 ); T+=step; + + w1 -= 4; + + r0 = (x0[1] + x1[1])>>1; + r1 = (x0[0] - x1[0])>>1; + w0[0] = r0 + r2; + w0[1] = r1 + r3; + w1[2] = r0 - r2; + w1[3] = r3 - r1; + + r3 = bitrev12(bit++); + x0 = x + ((r3 ^ 0xfff)>>shift) -1; + x1 = x + (r3>>shift); + + r0 = x0[0] + x1[0]; + r1 = x1[1] - x0[1]; + + XPROD32( r0, r1, T[1], T[0], &r2, &r3 ); T+=step; + + r0 = (x0[1] + x1[1])>>1; + r1 = (x0[0] - x1[0])>>1; + w0[2] = r0 + r2; + w0[3] = r1 + r3; + w1[0] = r0 - r2; + w1[1] = r3 - r1; + + w0 += 4; + }while(T>shift) -1; + DATA_TYPE *x1 = x + (r3>>shift); + + REG_TYPE r0 = x0[0] + x1[0]; + REG_TYPE r1 = x1[1] - x0[1]; + + T-=step; XPROD32( r0, r1, T[0], T[1], &r2, &r3 ); + + w1 -= 4; + + r0 = (x0[1] + x1[1])>>1; + r1 = (x0[0] - x1[0])>>1; + w0[0] = r0 + r2; + w0[1] = r1 + r3; + w1[2] = r0 - r2; + w1[3] = r3 - r1; + + r3 = bitrev12(bit++); + x0 = x + ((r3 ^ 0xfff)>>shift) -1; + x1 = x + (r3>>shift); + + r0 = x0[0] + x1[0]; + r1 = x1[1] - x0[1]; + + T-=step; XPROD32( r0, r1, T[0], T[1], &r2, &r3 ); + + r0 = (x0[1] + x1[1])>>1; + r1 = (x0[0] - x1[0])>>1; + w0[2] = r0 + r2; + w0[3] = r1 + r3; + w1[0] = r0 - r2; + w1[1] = r3 - r1; + + w0 += 4; + }while(w0>1; + int n4=n>>2; + DATA_TYPE *iX; + DATA_TYPE *oX; + LOOKUP_T *T; + LOOKUP_T *V; + int shift; + int step; + + for (shift=6;!(n&(1<=in+n4); + do{ + oX-=4; + XPROD31( iX[4], iX[6], T[1], T[0], &oX[2], &oX[3] ); T-=step; + XPROD31( iX[0], iX[2], T[1], T[0], &oX[0], &oX[1] ); T-=step; + iX-=8; + }while(iX>=in); + + iX = in+n2-8; + oX = out+n2+n4; + T = sincos_lookup0; + + do{ + T+=step; XNPROD31( iX[6], iX[4], T[0], T[1], &oX[0], &oX[1] ); + T+=step; XNPROD31( iX[2], iX[0], T[0], T[1], &oX[2], &oX[3] ); + iX-=8; + oX+=4; + }while(iX>=in+n4); + do{ + T-=step; XNPROD31( iX[6], iX[4], T[1], T[0], &oX[0], &oX[1] ); + T-=step; XNPROD31( iX[2], iX[0], T[1], T[0], &oX[2], &oX[3] ); + iX-=8; + oX+=4; + }while(iX>=in); + + mdct_butterflies(out+n2,n2,shift); + mdct_bitreverse(out,n,step,shift); + + /* rotate + window */ + + step>>=2; + { + DATA_TYPE *oX1=out+n2+n4; + DATA_TYPE *oX2=out+n2+n4; + DATA_TYPE *iX =out; + + switch(step) { + default: { + T=(step>=4)?(sincos_lookup0+(step>>1)):sincos_lookup1; + do{ + oX1-=4; + XPROD31( iX[0], -iX[1], T[0], T[1], &oX1[3], &oX2[0] ); T+=step; + XPROD31( iX[2], -iX[3], T[0], T[1], &oX1[2], &oX2[1] ); T+=step; + XPROD31( iX[4], -iX[5], T[0], T[1], &oX1[1], &oX2[2] ); T+=step; + XPROD31( iX[6], -iX[7], T[0], T[1], &oX1[0], &oX2[3] ); T+=step; + oX2+=4; + iX+=8; + }while(iX>1; + t1 = (*T++)>>1; + do{ + oX1-=4; + + t0 += (v0 = (*V++)>>1); + t1 += (v1 = (*V++)>>1); + XPROD31( iX[0], -iX[1], t0, t1, &oX1[3], &oX2[0] ); + v0 += (t0 = (*T++)>>1); + v1 += (t1 = (*T++)>>1); + XPROD31( iX[2], -iX[3], v0, v1, &oX1[2], &oX2[1] ); + t0 += (v0 = (*V++)>>1); + t1 += (v1 = (*V++)>>1); + XPROD31( iX[4], -iX[5], t0, t1, &oX1[1], &oX2[2] ); + v0 += (t0 = (*T++)>>1); + v1 += (t1 = (*T++)>>1); + XPROD31( iX[6], -iX[7], v0, v1, &oX1[0], &oX2[3] ); + + oX2+=4; + iX+=8; + }while(iX>2); + t1 += (q1 = (v1-t1)>>2); + XPROD31( iX[0], -iX[1], t0, t1, &oX1[3], &oX2[0] ); + t0 = v0-q0; + t1 = v1-q1; + XPROD31( iX[2], -iX[3], t0, t1, &oX1[2], &oX2[1] ); + + t0 = *T++; + t1 = *T++; + v0 += (q0 = (t0-v0)>>2); + v1 += (q1 = (t1-v1)>>2); + XPROD31( iX[4], -iX[5], v0, v1, &oX1[1], &oX2[2] ); + v0 = t0-q0; + v1 = t1-q1; + XPROD31( iX[6], -iX[7], v0, v1, &oX1[0], &oX2[3] ); + + oX2+=4; + iX+=8; + }while(iXoX2); + } +} + diff --git a/wolf3d/code/Tremor/mdct.h b/wolf3d/code/Tremor/mdct.h new file mode 100644 index 0000000..6d88907 --- /dev/null +++ b/wolf3d/code/Tremor/mdct.h @@ -0,0 +1,52 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: modified discrete cosine transform prototypes + + ********************************************************************/ + +#ifndef _OGG_mdct_H_ +#define _OGG_mdct_H_ + +#include "ivorbiscodec.h" +#include "misc.h" + +#define DATA_TYPE ogg_int32_t +#define REG_TYPE register ogg_int32_t + +#ifdef _LOW_ACCURACY_ +#define cPI3_8 (0x0062) +#define cPI2_8 (0x00b5) +#define cPI1_8 (0x00ed) +#else +#define cPI3_8 (0x30fbc54d) +#define cPI2_8 (0x5a82799a) +#define cPI1_8 (0x7641af3d) +#endif + +extern void mdct_forward(int n, DATA_TYPE *in, DATA_TYPE *out); +extern void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out); + +#endif + + + + + + + + + + + + diff --git a/wolf3d/code/Tremor/mdct_lookup.h b/wolf3d/code/Tremor/mdct_lookup.h new file mode 100644 index 0000000..970e199 --- /dev/null +++ b/wolf3d/code/Tremor/mdct_lookup.h @@ -0,0 +1,540 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: sin,cos lookup tables + + ********************************************************************/ + +#include "os_types.h" + +/* {sin(2*i*PI/4096), cos(2*i*PI/4096)}, with i = 0 to 512 */ +static LOOKUP_T sincos_lookup0[1026] = { + X(0x00000000), X(0x7fffffff), X(0x003243f5), X(0x7ffff621), + X(0x006487e3), X(0x7fffd886), X(0x0096cbc1), X(0x7fffa72c), + X(0x00c90f88), X(0x7fff6216), X(0x00fb5330), X(0x7fff0943), + X(0x012d96b1), X(0x7ffe9cb2), X(0x015fda03), X(0x7ffe1c65), + X(0x01921d20), X(0x7ffd885a), X(0x01c45ffe), X(0x7ffce093), + X(0x01f6a297), X(0x7ffc250f), X(0x0228e4e2), X(0x7ffb55ce), + X(0x025b26d7), X(0x7ffa72d1), X(0x028d6870), X(0x7ff97c18), + X(0x02bfa9a4), X(0x7ff871a2), X(0x02f1ea6c), X(0x7ff75370), + X(0x03242abf), X(0x7ff62182), X(0x03566a96), X(0x7ff4dbd9), + X(0x0388a9ea), X(0x7ff38274), X(0x03bae8b2), X(0x7ff21553), + X(0x03ed26e6), X(0x7ff09478), X(0x041f6480), X(0x7feeffe1), + X(0x0451a177), X(0x7fed5791), X(0x0483ddc3), X(0x7feb9b85), + X(0x04b6195d), X(0x7fe9cbc0), X(0x04e8543e), X(0x7fe7e841), + X(0x051a8e5c), X(0x7fe5f108), X(0x054cc7b1), X(0x7fe3e616), + X(0x057f0035), X(0x7fe1c76b), X(0x05b137df), X(0x7fdf9508), + X(0x05e36ea9), X(0x7fdd4eec), X(0x0615a48b), X(0x7fdaf519), + X(0x0647d97c), X(0x7fd8878e), X(0x067a0d76), X(0x7fd6064c), + X(0x06ac406f), X(0x7fd37153), X(0x06de7262), X(0x7fd0c8a3), + X(0x0710a345), X(0x7fce0c3e), X(0x0742d311), X(0x7fcb3c23), + X(0x077501be), X(0x7fc85854), X(0x07a72f45), X(0x7fc560cf), + X(0x07d95b9e), X(0x7fc25596), X(0x080b86c2), X(0x7fbf36aa), + X(0x083db0a7), X(0x7fbc040a), X(0x086fd947), X(0x7fb8bdb8), + X(0x08a2009a), X(0x7fb563b3), X(0x08d42699), X(0x7fb1f5fc), + X(0x09064b3a), X(0x7fae7495), X(0x09386e78), X(0x7faadf7c), + X(0x096a9049), X(0x7fa736b4), X(0x099cb0a7), X(0x7fa37a3c), + X(0x09cecf89), X(0x7f9faa15), X(0x0a00ece8), X(0x7f9bc640), + X(0x0a3308bd), X(0x7f97cebd), X(0x0a6522fe), X(0x7f93c38c), + X(0x0a973ba5), X(0x7f8fa4b0), X(0x0ac952aa), X(0x7f8b7227), + X(0x0afb6805), X(0x7f872bf3), X(0x0b2d7baf), X(0x7f82d214), + X(0x0b5f8d9f), X(0x7f7e648c), X(0x0b919dcf), X(0x7f79e35a), + X(0x0bc3ac35), X(0x7f754e80), X(0x0bf5b8cb), X(0x7f70a5fe), + X(0x0c27c389), X(0x7f6be9d4), X(0x0c59cc68), X(0x7f671a05), + X(0x0c8bd35e), X(0x7f62368f), X(0x0cbdd865), X(0x7f5d3f75), + X(0x0cefdb76), X(0x7f5834b7), X(0x0d21dc87), X(0x7f531655), + X(0x0d53db92), X(0x7f4de451), X(0x0d85d88f), X(0x7f489eaa), + X(0x0db7d376), X(0x7f434563), X(0x0de9cc40), X(0x7f3dd87c), + X(0x0e1bc2e4), X(0x7f3857f6), X(0x0e4db75b), X(0x7f32c3d1), + X(0x0e7fa99e), X(0x7f2d1c0e), X(0x0eb199a4), X(0x7f2760af), + X(0x0ee38766), X(0x7f2191b4), X(0x0f1572dc), X(0x7f1baf1e), + X(0x0f475bff), X(0x7f15b8ee), X(0x0f7942c7), X(0x7f0faf25), + X(0x0fab272b), X(0x7f0991c4), X(0x0fdd0926), X(0x7f0360cb), + X(0x100ee8ad), X(0x7efd1c3c), X(0x1040c5bb), X(0x7ef6c418), + X(0x1072a048), X(0x7ef05860), X(0x10a4784b), X(0x7ee9d914), + X(0x10d64dbd), X(0x7ee34636), X(0x11082096), X(0x7edc9fc6), + X(0x1139f0cf), X(0x7ed5e5c6), X(0x116bbe60), X(0x7ecf1837), + X(0x119d8941), X(0x7ec8371a), X(0x11cf516a), X(0x7ec14270), + X(0x120116d5), X(0x7eba3a39), X(0x1232d979), X(0x7eb31e78), + X(0x1264994e), X(0x7eabef2c), X(0x1296564d), X(0x7ea4ac58), + X(0x12c8106f), X(0x7e9d55fc), X(0x12f9c7aa), X(0x7e95ec1a), + X(0x132b7bf9), X(0x7e8e6eb2), X(0x135d2d53), X(0x7e86ddc6), + X(0x138edbb1), X(0x7e7f3957), X(0x13c0870a), X(0x7e778166), + X(0x13f22f58), X(0x7e6fb5f4), X(0x1423d492), X(0x7e67d703), + X(0x145576b1), X(0x7e5fe493), X(0x148715ae), X(0x7e57dea7), + X(0x14b8b17f), X(0x7e4fc53e), X(0x14ea4a1f), X(0x7e47985b), + X(0x151bdf86), X(0x7e3f57ff), X(0x154d71aa), X(0x7e37042a), + X(0x157f0086), X(0x7e2e9cdf), X(0x15b08c12), X(0x7e26221f), + X(0x15e21445), X(0x7e1d93ea), X(0x16139918), X(0x7e14f242), + X(0x16451a83), X(0x7e0c3d29), X(0x1676987f), X(0x7e0374a0), + X(0x16a81305), X(0x7dfa98a8), X(0x16d98a0c), X(0x7df1a942), + X(0x170afd8d), X(0x7de8a670), X(0x173c6d80), X(0x7ddf9034), + X(0x176dd9de), X(0x7dd6668f), X(0x179f429f), X(0x7dcd2981), + X(0x17d0a7bc), X(0x7dc3d90d), X(0x1802092c), X(0x7dba7534), + X(0x183366e9), X(0x7db0fdf8), X(0x1864c0ea), X(0x7da77359), + X(0x18961728), X(0x7d9dd55a), X(0x18c7699b), X(0x7d9423fc), + X(0x18f8b83c), X(0x7d8a5f40), X(0x192a0304), X(0x7d808728), + X(0x195b49ea), X(0x7d769bb5), X(0x198c8ce7), X(0x7d6c9ce9), + X(0x19bdcbf3), X(0x7d628ac6), X(0x19ef0707), X(0x7d58654d), + X(0x1a203e1b), X(0x7d4e2c7f), X(0x1a517128), X(0x7d43e05e), + X(0x1a82a026), X(0x7d3980ec), X(0x1ab3cb0d), X(0x7d2f0e2b), + X(0x1ae4f1d6), X(0x7d24881b), X(0x1b161479), X(0x7d19eebf), + X(0x1b4732ef), X(0x7d0f4218), X(0x1b784d30), X(0x7d048228), + X(0x1ba96335), X(0x7cf9aef0), X(0x1bda74f6), X(0x7ceec873), + X(0x1c0b826a), X(0x7ce3ceb2), X(0x1c3c8b8c), X(0x7cd8c1ae), + X(0x1c6d9053), X(0x7ccda169), X(0x1c9e90b8), X(0x7cc26de5), + X(0x1ccf8cb3), X(0x7cb72724), X(0x1d00843d), X(0x7cabcd28), + X(0x1d31774d), X(0x7ca05ff1), X(0x1d6265dd), X(0x7c94df83), + X(0x1d934fe5), X(0x7c894bde), X(0x1dc4355e), X(0x7c7da505), + X(0x1df5163f), X(0x7c71eaf9), X(0x1e25f282), X(0x7c661dbc), + X(0x1e56ca1e), X(0x7c5a3d50), X(0x1e879d0d), X(0x7c4e49b7), + X(0x1eb86b46), X(0x7c4242f2), X(0x1ee934c3), X(0x7c362904), + X(0x1f19f97b), X(0x7c29fbee), X(0x1f4ab968), X(0x7c1dbbb3), + X(0x1f7b7481), X(0x7c116853), X(0x1fac2abf), X(0x7c0501d2), + X(0x1fdcdc1b), X(0x7bf88830), X(0x200d888d), X(0x7bebfb70), + X(0x203e300d), X(0x7bdf5b94), X(0x206ed295), X(0x7bd2a89e), + X(0x209f701c), X(0x7bc5e290), X(0x20d0089c), X(0x7bb9096b), + X(0x21009c0c), X(0x7bac1d31), X(0x21312a65), X(0x7b9f1de6), + X(0x2161b3a0), X(0x7b920b89), X(0x219237b5), X(0x7b84e61f), + X(0x21c2b69c), X(0x7b77ada8), X(0x21f3304f), X(0x7b6a6227), + X(0x2223a4c5), X(0x7b5d039e), X(0x225413f8), X(0x7b4f920e), + X(0x22847de0), X(0x7b420d7a), X(0x22b4e274), X(0x7b3475e5), + X(0x22e541af), X(0x7b26cb4f), X(0x23159b88), X(0x7b190dbc), + X(0x2345eff8), X(0x7b0b3d2c), X(0x23763ef7), X(0x7afd59a4), + X(0x23a6887f), X(0x7aef6323), X(0x23d6cc87), X(0x7ae159ae), + X(0x24070b08), X(0x7ad33d45), X(0x243743fa), X(0x7ac50dec), + X(0x24677758), X(0x7ab6cba4), X(0x2497a517), X(0x7aa8766f), + X(0x24c7cd33), X(0x7a9a0e50), X(0x24f7efa2), X(0x7a8b9348), + X(0x25280c5e), X(0x7a7d055b), X(0x2558235f), X(0x7a6e648a), + X(0x2588349d), X(0x7a5fb0d8), X(0x25b84012), X(0x7a50ea47), + X(0x25e845b6), X(0x7a4210d8), X(0x26184581), X(0x7a332490), + X(0x26483f6c), X(0x7a24256f), X(0x26783370), X(0x7a151378), + X(0x26a82186), X(0x7a05eead), X(0x26d809a5), X(0x79f6b711), + X(0x2707ebc7), X(0x79e76ca7), X(0x2737c7e3), X(0x79d80f6f), + X(0x27679df4), X(0x79c89f6e), X(0x27976df1), X(0x79b91ca4), + X(0x27c737d3), X(0x79a98715), X(0x27f6fb92), X(0x7999dec4), + X(0x2826b928), X(0x798a23b1), X(0x2856708d), X(0x797a55e0), + X(0x288621b9), X(0x796a7554), X(0x28b5cca5), X(0x795a820e), + X(0x28e5714b), X(0x794a7c12), X(0x29150fa1), X(0x793a6361), + X(0x2944a7a2), X(0x792a37fe), X(0x29743946), X(0x7919f9ec), + X(0x29a3c485), X(0x7909a92d), X(0x29d34958), X(0x78f945c3), + X(0x2a02c7b8), X(0x78e8cfb2), X(0x2a323f9e), X(0x78d846fb), + X(0x2a61b101), X(0x78c7aba2), X(0x2a911bdc), X(0x78b6fda8), + X(0x2ac08026), X(0x78a63d11), X(0x2aefddd8), X(0x789569df), + X(0x2b1f34eb), X(0x78848414), X(0x2b4e8558), X(0x78738bb3), + X(0x2b7dcf17), X(0x786280bf), X(0x2bad1221), X(0x7851633b), + X(0x2bdc4e6f), X(0x78403329), X(0x2c0b83fa), X(0x782ef08b), + X(0x2c3ab2b9), X(0x781d9b65), X(0x2c69daa6), X(0x780c33b8), + X(0x2c98fbba), X(0x77fab989), X(0x2cc815ee), X(0x77e92cd9), + X(0x2cf72939), X(0x77d78daa), X(0x2d263596), X(0x77c5dc01), + X(0x2d553afc), X(0x77b417df), X(0x2d843964), X(0x77a24148), + X(0x2db330c7), X(0x7790583e), X(0x2de2211e), X(0x777e5cc3), + X(0x2e110a62), X(0x776c4edb), X(0x2e3fec8b), X(0x775a2e89), + X(0x2e6ec792), X(0x7747fbce), X(0x2e9d9b70), X(0x7735b6af), + X(0x2ecc681e), X(0x77235f2d), X(0x2efb2d95), X(0x7710f54c), + X(0x2f29ebcc), X(0x76fe790e), X(0x2f58a2be), X(0x76ebea77), + X(0x2f875262), X(0x76d94989), X(0x2fb5fab2), X(0x76c69647), + X(0x2fe49ba7), X(0x76b3d0b4), X(0x30133539), X(0x76a0f8d2), + X(0x3041c761), X(0x768e0ea6), X(0x30705217), X(0x767b1231), + X(0x309ed556), X(0x76680376), X(0x30cd5115), X(0x7654e279), + X(0x30fbc54d), X(0x7641af3d), X(0x312a31f8), X(0x762e69c4), + X(0x3158970e), X(0x761b1211), X(0x3186f487), X(0x7607a828), + X(0x31b54a5e), X(0x75f42c0b), X(0x31e39889), X(0x75e09dbd), + X(0x3211df04), X(0x75ccfd42), X(0x32401dc6), X(0x75b94a9c), + X(0x326e54c7), X(0x75a585cf), X(0x329c8402), X(0x7591aedd), + X(0x32caab6f), X(0x757dc5ca), X(0x32f8cb07), X(0x7569ca99), + X(0x3326e2c3), X(0x7555bd4c), X(0x3354f29b), X(0x75419de7), + X(0x3382fa88), X(0x752d6c6c), X(0x33b0fa84), X(0x751928e0), + X(0x33def287), X(0x7504d345), X(0x340ce28b), X(0x74f06b9e), + X(0x343aca87), X(0x74dbf1ef), X(0x3468aa76), X(0x74c7663a), + X(0x34968250), X(0x74b2c884), X(0x34c4520d), X(0x749e18cd), + X(0x34f219a8), X(0x7489571c), X(0x351fd918), X(0x74748371), + X(0x354d9057), X(0x745f9dd1), X(0x357b3f5d), X(0x744aa63f), + X(0x35a8e625), X(0x74359cbd), X(0x35d684a6), X(0x74208150), + X(0x36041ad9), X(0x740b53fb), X(0x3631a8b8), X(0x73f614c0), + X(0x365f2e3b), X(0x73e0c3a3), X(0x368cab5c), X(0x73cb60a8), + X(0x36ba2014), X(0x73b5ebd1), X(0x36e78c5b), X(0x73a06522), + X(0x3714f02a), X(0x738acc9e), X(0x37424b7b), X(0x73752249), + X(0x376f9e46), X(0x735f6626), X(0x379ce885), X(0x73499838), + X(0x37ca2a30), X(0x7333b883), X(0x37f76341), X(0x731dc70a), + X(0x382493b0), X(0x7307c3d0), X(0x3851bb77), X(0x72f1aed9), + X(0x387eda8e), X(0x72db8828), X(0x38abf0ef), X(0x72c54fc1), + X(0x38d8fe93), X(0x72af05a7), X(0x39060373), X(0x7298a9dd), + X(0x3932ff87), X(0x72823c67), X(0x395ff2c9), X(0x726bbd48), + X(0x398cdd32), X(0x72552c85), X(0x39b9bebc), X(0x723e8a20), + X(0x39e6975e), X(0x7227d61c), X(0x3a136712), X(0x7211107e), + X(0x3a402dd2), X(0x71fa3949), X(0x3a6ceb96), X(0x71e35080), + X(0x3a99a057), X(0x71cc5626), X(0x3ac64c0f), X(0x71b54a41), + X(0x3af2eeb7), X(0x719e2cd2), X(0x3b1f8848), X(0x7186fdde), + X(0x3b4c18ba), X(0x716fbd68), X(0x3b78a007), X(0x71586b74), + X(0x3ba51e29), X(0x71410805), X(0x3bd19318), X(0x7129931f), + X(0x3bfdfecd), X(0x71120cc5), X(0x3c2a6142), X(0x70fa74fc), + X(0x3c56ba70), X(0x70e2cbc6), X(0x3c830a50), X(0x70cb1128), + X(0x3caf50da), X(0x70b34525), X(0x3cdb8e09), X(0x709b67c0), + X(0x3d07c1d6), X(0x708378ff), X(0x3d33ec39), X(0x706b78e3), + X(0x3d600d2c), X(0x70536771), X(0x3d8c24a8), X(0x703b44ad), + X(0x3db832a6), X(0x7023109a), X(0x3de4371f), X(0x700acb3c), + X(0x3e10320d), X(0x6ff27497), X(0x3e3c2369), X(0x6fda0cae), + X(0x3e680b2c), X(0x6fc19385), X(0x3e93e950), X(0x6fa90921), + X(0x3ebfbdcd), X(0x6f906d84), X(0x3eeb889c), X(0x6f77c0b3), + X(0x3f1749b8), X(0x6f5f02b2), X(0x3f430119), X(0x6f463383), + X(0x3f6eaeb8), X(0x6f2d532c), X(0x3f9a5290), X(0x6f1461b0), + X(0x3fc5ec98), X(0x6efb5f12), X(0x3ff17cca), X(0x6ee24b57), + X(0x401d0321), X(0x6ec92683), X(0x40487f94), X(0x6eaff099), + X(0x4073f21d), X(0x6e96a99d), X(0x409f5ab6), X(0x6e7d5193), + X(0x40cab958), X(0x6e63e87f), X(0x40f60dfb), X(0x6e4a6e66), + X(0x4121589b), X(0x6e30e34a), X(0x414c992f), X(0x6e174730), + X(0x4177cfb1), X(0x6dfd9a1c), X(0x41a2fc1a), X(0x6de3dc11), + X(0x41ce1e65), X(0x6dca0d14), X(0x41f93689), X(0x6db02d29), + X(0x42244481), X(0x6d963c54), X(0x424f4845), X(0x6d7c3a98), + X(0x427a41d0), X(0x6d6227fa), X(0x42a5311b), X(0x6d48047e), + X(0x42d0161e), X(0x6d2dd027), X(0x42faf0d4), X(0x6d138afb), + X(0x4325c135), X(0x6cf934fc), X(0x4350873c), X(0x6cdece2f), + X(0x437b42e1), X(0x6cc45698), X(0x43a5f41e), X(0x6ca9ce3b), + X(0x43d09aed), X(0x6c8f351c), X(0x43fb3746), X(0x6c748b3f), + X(0x4425c923), X(0x6c59d0a9), X(0x4450507e), X(0x6c3f055d), + X(0x447acd50), X(0x6c242960), X(0x44a53f93), X(0x6c093cb6), + X(0x44cfa740), X(0x6bee3f62), X(0x44fa0450), X(0x6bd3316a), + X(0x452456bd), X(0x6bb812d1), X(0x454e9e80), X(0x6b9ce39b), + X(0x4578db93), X(0x6b81a3cd), X(0x45a30df0), X(0x6b66536b), + X(0x45cd358f), X(0x6b4af279), X(0x45f7526b), X(0x6b2f80fb), + X(0x4621647d), X(0x6b13fef5), X(0x464b6bbe), X(0x6af86c6c), + X(0x46756828), X(0x6adcc964), X(0x469f59b4), X(0x6ac115e2), + X(0x46c9405c), X(0x6aa551e9), X(0x46f31c1a), X(0x6a897d7d), + X(0x471cece7), X(0x6a6d98a4), X(0x4746b2bc), X(0x6a51a361), + X(0x47706d93), X(0x6a359db9), X(0x479a1d67), X(0x6a1987b0), + X(0x47c3c22f), X(0x69fd614a), X(0x47ed5be6), X(0x69e12a8c), + X(0x4816ea86), X(0x69c4e37a), X(0x48406e08), X(0x69a88c19), + X(0x4869e665), X(0x698c246c), X(0x48935397), X(0x696fac78), + X(0x48bcb599), X(0x69532442), X(0x48e60c62), X(0x69368bce), + X(0x490f57ee), X(0x6919e320), X(0x49389836), X(0x68fd2a3d), + X(0x4961cd33), X(0x68e06129), X(0x498af6df), X(0x68c387e9), + X(0x49b41533), X(0x68a69e81), X(0x49dd282a), X(0x6889a4f6), + X(0x4a062fbd), X(0x686c9b4b), X(0x4a2f2be6), X(0x684f8186), + X(0x4a581c9e), X(0x683257ab), X(0x4a8101de), X(0x68151dbe), + X(0x4aa9dba2), X(0x67f7d3c5), X(0x4ad2a9e2), X(0x67da79c3), + X(0x4afb6c98), X(0x67bd0fbd), X(0x4b2423be), X(0x679f95b7), + X(0x4b4ccf4d), X(0x67820bb7), X(0x4b756f40), X(0x676471c0), + X(0x4b9e0390), X(0x6746c7d8), X(0x4bc68c36), X(0x67290e02), + X(0x4bef092d), X(0x670b4444), X(0x4c177a6e), X(0x66ed6aa1), + X(0x4c3fdff4), X(0x66cf8120), X(0x4c6839b7), X(0x66b187c3), + X(0x4c9087b1), X(0x66937e91), X(0x4cb8c9dd), X(0x6675658c), + X(0x4ce10034), X(0x66573cbb), X(0x4d092ab0), X(0x66390422), + X(0x4d31494b), X(0x661abbc5), X(0x4d595bfe), X(0x65fc63a9), + X(0x4d8162c4), X(0x65ddfbd3), X(0x4da95d96), X(0x65bf8447), + X(0x4dd14c6e), X(0x65a0fd0b), X(0x4df92f46), X(0x65826622), + X(0x4e210617), X(0x6563bf92), X(0x4e48d0dd), X(0x6545095f), + X(0x4e708f8f), X(0x6526438f), X(0x4e984229), X(0x65076e25), + X(0x4ebfe8a5), X(0x64e88926), X(0x4ee782fb), X(0x64c99498), + X(0x4f0f1126), X(0x64aa907f), X(0x4f369320), X(0x648b7ce0), + X(0x4f5e08e3), X(0x646c59bf), X(0x4f857269), X(0x644d2722), + X(0x4faccfab), X(0x642de50d), X(0x4fd420a4), X(0x640e9386), + X(0x4ffb654d), X(0x63ef3290), X(0x50229da1), X(0x63cfc231), + X(0x5049c999), X(0x63b0426d), X(0x5070e92f), X(0x6390b34a), + X(0x5097fc5e), X(0x637114cc), X(0x50bf031f), X(0x635166f9), + X(0x50e5fd6d), X(0x6331a9d4), X(0x510ceb40), X(0x6311dd64), + X(0x5133cc94), X(0x62f201ac), X(0x515aa162), X(0x62d216b3), + X(0x518169a5), X(0x62b21c7b), X(0x51a82555), X(0x6292130c), + X(0x51ced46e), X(0x6271fa69), X(0x51f576ea), X(0x6251d298), + X(0x521c0cc2), X(0x62319b9d), X(0x524295f0), X(0x6211557e), + X(0x5269126e), X(0x61f1003f), X(0x528f8238), X(0x61d09be5), + X(0x52b5e546), X(0x61b02876), X(0x52dc3b92), X(0x618fa5f7), + X(0x53028518), X(0x616f146c), X(0x5328c1d0), X(0x614e73da), + X(0x534ef1b5), X(0x612dc447), X(0x537514c2), X(0x610d05b7), + X(0x539b2af0), X(0x60ec3830), X(0x53c13439), X(0x60cb5bb7), + X(0x53e73097), X(0x60aa7050), X(0x540d2005), X(0x60897601), + X(0x5433027d), X(0x60686ccf), X(0x5458d7f9), X(0x604754bf), + X(0x547ea073), X(0x60262dd6), X(0x54a45be6), X(0x6004f819), + X(0x54ca0a4b), X(0x5fe3b38d), X(0x54efab9c), X(0x5fc26038), + X(0x55153fd4), X(0x5fa0fe1f), X(0x553ac6ee), X(0x5f7f8d46), + X(0x556040e2), X(0x5f5e0db3), X(0x5585adad), X(0x5f3c7f6b), + X(0x55ab0d46), X(0x5f1ae274), X(0x55d05faa), X(0x5ef936d1), + X(0x55f5a4d2), X(0x5ed77c8a), X(0x561adcb9), X(0x5eb5b3a2), + X(0x56400758), X(0x5e93dc1f), X(0x566524aa), X(0x5e71f606), + X(0x568a34a9), X(0x5e50015d), X(0x56af3750), X(0x5e2dfe29), + X(0x56d42c99), X(0x5e0bec6e), X(0x56f9147e), X(0x5de9cc33), + X(0x571deefa), X(0x5dc79d7c), X(0x5742bc06), X(0x5da5604f), + X(0x57677b9d), X(0x5d8314b1), X(0x578c2dba), X(0x5d60baa7), + X(0x57b0d256), X(0x5d3e5237), X(0x57d5696d), X(0x5d1bdb65), + X(0x57f9f2f8), X(0x5cf95638), X(0x581e6ef1), X(0x5cd6c2b5), + X(0x5842dd54), X(0x5cb420e0), X(0x58673e1b), X(0x5c9170bf), + X(0x588b9140), X(0x5c6eb258), X(0x58afd6bd), X(0x5c4be5b0), + X(0x58d40e8c), X(0x5c290acc), X(0x58f838a9), X(0x5c0621b2), + X(0x591c550e), X(0x5be32a67), X(0x594063b5), X(0x5bc024f0), + X(0x59646498), X(0x5b9d1154), X(0x598857b2), X(0x5b79ef96), + X(0x59ac3cfd), X(0x5b56bfbd), X(0x59d01475), X(0x5b3381ce), + X(0x59f3de12), X(0x5b1035cf), X(0x5a1799d1), X(0x5aecdbc5), + X(0x5a3b47ab), X(0x5ac973b5), X(0x5a5ee79a), X(0x5aa5fda5), + X(0x5a82799a), X(0x5a82799a) + }; + + /* {sin((2*i+1)*PI/4096), cos((2*i+1)*PI/4096)}, with i = 0 to 511 */ +static LOOKUP_T sincos_lookup1[1024] = { + X(0x001921fb), X(0x7ffffd88), X(0x004b65ee), X(0x7fffe9cb), + X(0x007da9d4), X(0x7fffc251), X(0x00afeda8), X(0x7fff8719), + X(0x00e23160), X(0x7fff3824), X(0x011474f6), X(0x7ffed572), + X(0x0146b860), X(0x7ffe5f03), X(0x0178fb99), X(0x7ffdd4d7), + X(0x01ab3e97), X(0x7ffd36ee), X(0x01dd8154), X(0x7ffc8549), + X(0x020fc3c6), X(0x7ffbbfe6), X(0x024205e8), X(0x7ffae6c7), + X(0x027447b0), X(0x7ff9f9ec), X(0x02a68917), X(0x7ff8f954), + X(0x02d8ca16), X(0x7ff7e500), X(0x030b0aa4), X(0x7ff6bcf0), + X(0x033d4abb), X(0x7ff58125), X(0x036f8a51), X(0x7ff4319d), + X(0x03a1c960), X(0x7ff2ce5b), X(0x03d407df), X(0x7ff1575d), + X(0x040645c7), X(0x7fefcca4), X(0x04388310), X(0x7fee2e30), + X(0x046abfb3), X(0x7fec7c02), X(0x049cfba7), X(0x7feab61a), + X(0x04cf36e5), X(0x7fe8dc78), X(0x05017165), X(0x7fe6ef1c), + X(0x0533ab20), X(0x7fe4ee06), X(0x0565e40d), X(0x7fe2d938), + X(0x05981c26), X(0x7fe0b0b1), X(0x05ca5361), X(0x7fde7471), + X(0x05fc89b8), X(0x7fdc247a), X(0x062ebf22), X(0x7fd9c0ca), + X(0x0660f398), X(0x7fd74964), X(0x06932713), X(0x7fd4be46), + X(0x06c5598a), X(0x7fd21f72), X(0x06f78af6), X(0x7fcf6ce8), + X(0x0729bb4e), X(0x7fcca6a7), X(0x075bea8c), X(0x7fc9ccb2), + X(0x078e18a7), X(0x7fc6df08), X(0x07c04598), X(0x7fc3dda9), + X(0x07f27157), X(0x7fc0c896), X(0x08249bdd), X(0x7fbd9fd0), + X(0x0856c520), X(0x7fba6357), X(0x0888ed1b), X(0x7fb7132b), + X(0x08bb13c5), X(0x7fb3af4e), X(0x08ed3916), X(0x7fb037bf), + X(0x091f5d06), X(0x7facac7f), X(0x09517f8f), X(0x7fa90d8e), + X(0x0983a0a7), X(0x7fa55aee), X(0x09b5c048), X(0x7fa1949e), + X(0x09e7de6a), X(0x7f9dbaa0), X(0x0a19fb04), X(0x7f99ccf4), + X(0x0a4c1610), X(0x7f95cb9a), X(0x0a7e2f85), X(0x7f91b694), + X(0x0ab0475c), X(0x7f8d8de1), X(0x0ae25d8d), X(0x7f895182), + X(0x0b147211), X(0x7f850179), X(0x0b4684df), X(0x7f809dc5), + X(0x0b7895f0), X(0x7f7c2668), X(0x0baaa53b), X(0x7f779b62), + X(0x0bdcb2bb), X(0x7f72fcb4), X(0x0c0ebe66), X(0x7f6e4a5e), + X(0x0c40c835), X(0x7f698461), X(0x0c72d020), X(0x7f64aabf), + X(0x0ca4d620), X(0x7f5fbd77), X(0x0cd6da2d), X(0x7f5abc8a), + X(0x0d08dc3f), X(0x7f55a7fa), X(0x0d3adc4e), X(0x7f507fc7), + X(0x0d6cda53), X(0x7f4b43f2), X(0x0d9ed646), X(0x7f45f47b), + X(0x0dd0d01f), X(0x7f409164), X(0x0e02c7d7), X(0x7f3b1aad), + X(0x0e34bd66), X(0x7f359057), X(0x0e66b0c3), X(0x7f2ff263), + X(0x0e98a1e9), X(0x7f2a40d2), X(0x0eca90ce), X(0x7f247ba5), + X(0x0efc7d6b), X(0x7f1ea2dc), X(0x0f2e67b8), X(0x7f18b679), + X(0x0f604faf), X(0x7f12b67c), X(0x0f923546), X(0x7f0ca2e7), + X(0x0fc41876), X(0x7f067bba), X(0x0ff5f938), X(0x7f0040f6), + X(0x1027d784), X(0x7ef9f29d), X(0x1059b352), X(0x7ef390ae), + X(0x108b8c9b), X(0x7eed1b2c), X(0x10bd6356), X(0x7ee69217), + X(0x10ef377d), X(0x7edff570), X(0x11210907), X(0x7ed94538), + X(0x1152d7ed), X(0x7ed28171), X(0x1184a427), X(0x7ecbaa1a), + X(0x11b66dad), X(0x7ec4bf36), X(0x11e83478), X(0x7ebdc0c6), + X(0x1219f880), X(0x7eb6aeca), X(0x124bb9be), X(0x7eaf8943), + X(0x127d7829), X(0x7ea85033), X(0x12af33ba), X(0x7ea1039b), + X(0x12e0ec6a), X(0x7e99a37c), X(0x1312a230), X(0x7e922fd6), + X(0x13445505), X(0x7e8aa8ac), X(0x137604e2), X(0x7e830dff), + X(0x13a7b1bf), X(0x7e7b5fce), X(0x13d95b93), X(0x7e739e1d), + X(0x140b0258), X(0x7e6bc8eb), X(0x143ca605), X(0x7e63e03b), + X(0x146e4694), X(0x7e5be40c), X(0x149fe3fc), X(0x7e53d462), + X(0x14d17e36), X(0x7e4bb13c), X(0x1503153a), X(0x7e437a9c), + X(0x1534a901), X(0x7e3b3083), X(0x15663982), X(0x7e32d2f4), + X(0x1597c6b7), X(0x7e2a61ed), X(0x15c95097), X(0x7e21dd73), + X(0x15fad71b), X(0x7e194584), X(0x162c5a3b), X(0x7e109a24), + X(0x165dd9f0), X(0x7e07db52), X(0x168f5632), X(0x7dff0911), + X(0x16c0cef9), X(0x7df62362), X(0x16f2443e), X(0x7ded2a47), + X(0x1723b5f9), X(0x7de41dc0), X(0x17552422), X(0x7ddafdce), + X(0x17868eb3), X(0x7dd1ca75), X(0x17b7f5a3), X(0x7dc883b4), + X(0x17e958ea), X(0x7dbf298d), X(0x181ab881), X(0x7db5bc02), + X(0x184c1461), X(0x7dac3b15), X(0x187d6c82), X(0x7da2a6c6), + X(0x18aec0db), X(0x7d98ff17), X(0x18e01167), X(0x7d8f4409), + X(0x19115e1c), X(0x7d85759f), X(0x1942a6f3), X(0x7d7b93da), + X(0x1973ebe6), X(0x7d719eba), X(0x19a52ceb), X(0x7d679642), + X(0x19d669fc), X(0x7d5d7a74), X(0x1a07a311), X(0x7d534b50), + X(0x1a38d823), X(0x7d4908d9), X(0x1a6a0929), X(0x7d3eb30f), + X(0x1a9b361d), X(0x7d3449f5), X(0x1acc5ef6), X(0x7d29cd8c), + X(0x1afd83ad), X(0x7d1f3dd6), X(0x1b2ea43a), X(0x7d149ad5), + X(0x1b5fc097), X(0x7d09e489), X(0x1b90d8bb), X(0x7cff1af5), + X(0x1bc1ec9e), X(0x7cf43e1a), X(0x1bf2fc3a), X(0x7ce94dfb), + X(0x1c240786), X(0x7cde4a98), X(0x1c550e7c), X(0x7cd333f3), + X(0x1c861113), X(0x7cc80a0f), X(0x1cb70f43), X(0x7cbcccec), + X(0x1ce80906), X(0x7cb17c8d), X(0x1d18fe54), X(0x7ca618f3), + X(0x1d49ef26), X(0x7c9aa221), X(0x1d7adb73), X(0x7c8f1817), + X(0x1dabc334), X(0x7c837ad8), X(0x1ddca662), X(0x7c77ca65), + X(0x1e0d84f5), X(0x7c6c06c0), X(0x1e3e5ee5), X(0x7c602fec), + X(0x1e6f342c), X(0x7c5445e9), X(0x1ea004c1), X(0x7c4848ba), + X(0x1ed0d09d), X(0x7c3c3860), X(0x1f0197b8), X(0x7c3014de), + X(0x1f325a0b), X(0x7c23de35), X(0x1f63178f), X(0x7c179467), + X(0x1f93d03c), X(0x7c0b3777), X(0x1fc4840a), X(0x7bfec765), + X(0x1ff532f2), X(0x7bf24434), X(0x2025dcec), X(0x7be5ade6), + X(0x205681f1), X(0x7bd9047c), X(0x208721f9), X(0x7bcc47fa), + X(0x20b7bcfe), X(0x7bbf7860), X(0x20e852f6), X(0x7bb295b0), + X(0x2118e3dc), X(0x7ba59fee), X(0x21496fa7), X(0x7b989719), + X(0x2179f64f), X(0x7b8b7b36), X(0x21aa77cf), X(0x7b7e4c45), + X(0x21daf41d), X(0x7b710a49), X(0x220b6b32), X(0x7b63b543), + X(0x223bdd08), X(0x7b564d36), X(0x226c4996), X(0x7b48d225), + X(0x229cb0d5), X(0x7b3b4410), X(0x22cd12bd), X(0x7b2da2fa), + X(0x22fd6f48), X(0x7b1feee5), X(0x232dc66d), X(0x7b1227d3), + X(0x235e1826), X(0x7b044dc7), X(0x238e646a), X(0x7af660c2), + X(0x23beab33), X(0x7ae860c7), X(0x23eeec78), X(0x7ada4dd8), + X(0x241f2833), X(0x7acc27f7), X(0x244f5e5c), X(0x7abdef25), + X(0x247f8eec), X(0x7aafa367), X(0x24afb9da), X(0x7aa144bc), + X(0x24dfdf20), X(0x7a92d329), X(0x250ffeb7), X(0x7a844eae), + X(0x25401896), X(0x7a75b74f), X(0x25702cb7), X(0x7a670d0d), + X(0x25a03b11), X(0x7a584feb), X(0x25d0439f), X(0x7a497feb), + X(0x26004657), X(0x7a3a9d0f), X(0x26304333), X(0x7a2ba75a), + X(0x26603a2c), X(0x7a1c9ece), X(0x26902b39), X(0x7a0d836d), + X(0x26c01655), X(0x79fe5539), X(0x26effb76), X(0x79ef1436), + X(0x271fda96), X(0x79dfc064), X(0x274fb3ae), X(0x79d059c8), + X(0x277f86b5), X(0x79c0e062), X(0x27af53a6), X(0x79b15435), + X(0x27df1a77), X(0x79a1b545), X(0x280edb23), X(0x79920392), + X(0x283e95a1), X(0x79823f20), X(0x286e49ea), X(0x797267f2), + X(0x289df7f8), X(0x79627e08), X(0x28cd9fc1), X(0x79528167), + X(0x28fd4140), X(0x79427210), X(0x292cdc6d), X(0x79325006), + X(0x295c7140), X(0x79221b4b), X(0x298bffb2), X(0x7911d3e2), + X(0x29bb87bc), X(0x790179cd), X(0x29eb0957), X(0x78f10d0f), + X(0x2a1a847b), X(0x78e08dab), X(0x2a49f920), X(0x78cffba3), + X(0x2a796740), X(0x78bf56f9), X(0x2aa8ced3), X(0x78ae9fb0), + X(0x2ad82fd2), X(0x789dd5cb), X(0x2b078a36), X(0x788cf94c), + X(0x2b36ddf7), X(0x787c0a36), X(0x2b662b0e), X(0x786b088c), + X(0x2b957173), X(0x7859f44f), X(0x2bc4b120), X(0x7848cd83), + X(0x2bf3ea0d), X(0x7837942b), X(0x2c231c33), X(0x78264849), + X(0x2c52478a), X(0x7814e9df), X(0x2c816c0c), X(0x780378f1), + X(0x2cb089b1), X(0x77f1f581), X(0x2cdfa071), X(0x77e05f91), + X(0x2d0eb046), X(0x77ceb725), X(0x2d3db928), X(0x77bcfc3f), + X(0x2d6cbb10), X(0x77ab2ee2), X(0x2d9bb5f6), X(0x77994f11), + X(0x2dcaa9d5), X(0x77875cce), X(0x2df996a3), X(0x7775581d), + X(0x2e287c5a), X(0x776340ff), X(0x2e575af3), X(0x77511778), + X(0x2e863267), X(0x773edb8b), X(0x2eb502ae), X(0x772c8d3a), + X(0x2ee3cbc1), X(0x771a2c88), X(0x2f128d99), X(0x7707b979), + X(0x2f41482e), X(0x76f5340e), X(0x2f6ffb7a), X(0x76e29c4b), + X(0x2f9ea775), X(0x76cff232), X(0x2fcd4c19), X(0x76bd35c7), + X(0x2ffbe95d), X(0x76aa670d), X(0x302a7f3a), X(0x76978605), + X(0x30590dab), X(0x768492b4), X(0x308794a6), X(0x76718d1c), + X(0x30b61426), X(0x765e7540), X(0x30e48c22), X(0x764b4b23), + X(0x3112fc95), X(0x76380ec8), X(0x31416576), X(0x7624c031), + X(0x316fc6be), X(0x76115f63), X(0x319e2067), X(0x75fdec60), + X(0x31cc7269), X(0x75ea672a), X(0x31fabcbd), X(0x75d6cfc5), + X(0x3228ff5c), X(0x75c32634), X(0x32573a3f), X(0x75af6a7b), + X(0x32856d5e), X(0x759b9c9b), X(0x32b398b3), X(0x7587bc98), + X(0x32e1bc36), X(0x7573ca75), X(0x330fd7e1), X(0x755fc635), + X(0x333debab), X(0x754bafdc), X(0x336bf78f), X(0x7537876c), + X(0x3399fb85), X(0x75234ce8), X(0x33c7f785), X(0x750f0054), + X(0x33f5eb89), X(0x74faa1b3), X(0x3423d78a), X(0x74e63108), + X(0x3451bb81), X(0x74d1ae55), X(0x347f9766), X(0x74bd199f), + X(0x34ad6b32), X(0x74a872e8), X(0x34db36df), X(0x7493ba34), + X(0x3508fa66), X(0x747eef85), X(0x3536b5be), X(0x746a12df), + X(0x356468e2), X(0x74552446), X(0x359213c9), X(0x744023bc), + X(0x35bfb66e), X(0x742b1144), X(0x35ed50c9), X(0x7415ece2), + X(0x361ae2d3), X(0x7400b69a), X(0x36486c86), X(0x73eb6e6e), + X(0x3675edd9), X(0x73d61461), X(0x36a366c6), X(0x73c0a878), + X(0x36d0d746), X(0x73ab2ab4), X(0x36fe3f52), X(0x73959b1b), + X(0x372b9ee3), X(0x737ff9ae), X(0x3758f5f2), X(0x736a4671), + X(0x37864477), X(0x73548168), X(0x37b38a6d), X(0x733eaa96), + X(0x37e0c7cc), X(0x7328c1ff), X(0x380dfc8d), X(0x7312c7a5), + X(0x383b28a9), X(0x72fcbb8c), X(0x38684c19), X(0x72e69db7), + X(0x389566d6), X(0x72d06e2b), X(0x38c278d9), X(0x72ba2cea), + X(0x38ef821c), X(0x72a3d9f7), X(0x391c8297), X(0x728d7557), + X(0x39497a43), X(0x7276ff0d), X(0x39766919), X(0x7260771b), + X(0x39a34f13), X(0x7249dd86), X(0x39d02c2a), X(0x72333251), + X(0x39fd0056), X(0x721c7580), X(0x3a29cb91), X(0x7205a716), + X(0x3a568dd4), X(0x71eec716), X(0x3a834717), X(0x71d7d585), + X(0x3aaff755), X(0x71c0d265), X(0x3adc9e86), X(0x71a9bdba), + X(0x3b093ca3), X(0x71929789), X(0x3b35d1a5), X(0x717b5fd3), + X(0x3b625d86), X(0x7164169d), X(0x3b8ee03e), X(0x714cbbeb), + X(0x3bbb59c7), X(0x71354fc0), X(0x3be7ca1a), X(0x711dd220), + X(0x3c143130), X(0x7106430e), X(0x3c408f03), X(0x70eea28e), + X(0x3c6ce38a), X(0x70d6f0a4), X(0x3c992ec0), X(0x70bf2d53), + X(0x3cc5709e), X(0x70a7589f), X(0x3cf1a91c), X(0x708f728b), + X(0x3d1dd835), X(0x70777b1c), X(0x3d49fde1), X(0x705f7255), + X(0x3d761a19), X(0x70475839), X(0x3da22cd7), X(0x702f2ccd), + X(0x3dce3614), X(0x7016f014), X(0x3dfa35c8), X(0x6ffea212), + X(0x3e262bee), X(0x6fe642ca), X(0x3e52187f), X(0x6fcdd241), + X(0x3e7dfb73), X(0x6fb5507a), X(0x3ea9d4c3), X(0x6f9cbd79), + X(0x3ed5a46b), X(0x6f841942), X(0x3f016a61), X(0x6f6b63d8), + X(0x3f2d26a0), X(0x6f529d40), X(0x3f58d921), X(0x6f39c57d), + X(0x3f8481dd), X(0x6f20dc92), X(0x3fb020ce), X(0x6f07e285), + X(0x3fdbb5ec), X(0x6eeed758), X(0x40074132), X(0x6ed5bb10), + X(0x4032c297), X(0x6ebc8db0), X(0x405e3a16), X(0x6ea34f3d), + X(0x4089a7a8), X(0x6e89ffb9), X(0x40b50b46), X(0x6e709f2a), + X(0x40e064ea), X(0x6e572d93), X(0x410bb48c), X(0x6e3daaf8), + X(0x4136fa27), X(0x6e24175c), X(0x416235b2), X(0x6e0a72c5), + X(0x418d6729), X(0x6df0bd35), X(0x41b88e84), X(0x6dd6f6b1), + X(0x41e3abbc), X(0x6dbd1f3c), X(0x420ebecb), X(0x6da336dc), + X(0x4239c7aa), X(0x6d893d93), X(0x4264c653), X(0x6d6f3365), + X(0x428fbabe), X(0x6d551858), X(0x42baa4e6), X(0x6d3aec6e), + X(0x42e584c3), X(0x6d20afac), X(0x43105a50), X(0x6d066215), + X(0x433b2585), X(0x6cec03af), X(0x4365e65b), X(0x6cd1947c), + X(0x43909ccd), X(0x6cb71482), X(0x43bb48d4), X(0x6c9c83c3), + X(0x43e5ea68), X(0x6c81e245), X(0x44108184), X(0x6c67300b), + X(0x443b0e21), X(0x6c4c6d1a), X(0x44659039), X(0x6c319975), + X(0x449007c4), X(0x6c16b521), X(0x44ba74bd), X(0x6bfbc021), + X(0x44e4d71c), X(0x6be0ba7b), X(0x450f2edb), X(0x6bc5a431), + X(0x45397bf4), X(0x6baa7d49), X(0x4563be60), X(0x6b8f45c7), + X(0x458df619), X(0x6b73fdae), X(0x45b82318), X(0x6b58a503), + X(0x45e24556), X(0x6b3d3bcb), X(0x460c5cce), X(0x6b21c208), + X(0x46366978), X(0x6b0637c1), X(0x46606b4e), X(0x6aea9cf8), + X(0x468a624a), X(0x6acef1b2), X(0x46b44e65), X(0x6ab335f4), + X(0x46de2f99), X(0x6a9769c1), X(0x470805df), X(0x6a7b8d1e), + X(0x4731d131), X(0x6a5fa010), X(0x475b9188), X(0x6a43a29a), + X(0x478546de), X(0x6a2794c1), X(0x47aef12c), X(0x6a0b7689), + X(0x47d8906d), X(0x69ef47f6), X(0x48022499), X(0x69d3090e), + X(0x482badab), X(0x69b6b9d3), X(0x48552b9b), X(0x699a5a4c), + X(0x487e9e64), X(0x697dea7b), X(0x48a805ff), X(0x69616a65), + X(0x48d16265), X(0x6944da10), X(0x48fab391), X(0x6928397e), + X(0x4923f97b), X(0x690b88b5), X(0x494d341e), X(0x68eec7b9), + X(0x49766373), X(0x68d1f68f), X(0x499f8774), X(0x68b5153a), + X(0x49c8a01b), X(0x689823bf), X(0x49f1ad61), X(0x687b2224), + X(0x4a1aaf3f), X(0x685e106c), X(0x4a43a5b0), X(0x6840ee9b), + X(0x4a6c90ad), X(0x6823bcb7), X(0x4a957030), X(0x68067ac3), + X(0x4abe4433), X(0x67e928c5), X(0x4ae70caf), X(0x67cbc6c0), + X(0x4b0fc99d), X(0x67ae54ba), X(0x4b387af9), X(0x6790d2b6), + X(0x4b6120bb), X(0x677340ba), X(0x4b89badd), X(0x67559eca), + X(0x4bb24958), X(0x6737ecea), X(0x4bdacc28), X(0x671a2b20), + X(0x4c034345), X(0x66fc596f), X(0x4c2baea9), X(0x66de77dc), + X(0x4c540e4e), X(0x66c0866d), X(0x4c7c622d), X(0x66a28524), + X(0x4ca4aa41), X(0x66847408), X(0x4ccce684), X(0x6666531d), + X(0x4cf516ee), X(0x66482267), X(0x4d1d3b7a), X(0x6629e1ec), + X(0x4d455422), X(0x660b91af), X(0x4d6d60df), X(0x65ed31b5), + X(0x4d9561ac), X(0x65cec204), X(0x4dbd5682), X(0x65b0429f), + X(0x4de53f5a), X(0x6591b38c), X(0x4e0d1c30), X(0x657314cf), + X(0x4e34ecfc), X(0x6554666d), X(0x4e5cb1b9), X(0x6535a86b), + X(0x4e846a60), X(0x6516dacd), X(0x4eac16eb), X(0x64f7fd98), + X(0x4ed3b755), X(0x64d910d1), X(0x4efb4b96), X(0x64ba147d), + X(0x4f22d3aa), X(0x649b08a0), X(0x4f4a4f89), X(0x647bed3f), + X(0x4f71bf2e), X(0x645cc260), X(0x4f992293), X(0x643d8806), + X(0x4fc079b1), X(0x641e3e38), X(0x4fe7c483), X(0x63fee4f8), + X(0x500f0302), X(0x63df7c4d), X(0x50363529), X(0x63c0043b), + X(0x505d5af1), X(0x63a07cc7), X(0x50847454), X(0x6380e5f6), + X(0x50ab814d), X(0x63613fcd), X(0x50d281d5), X(0x63418a50), + X(0x50f975e6), X(0x6321c585), X(0x51205d7b), X(0x6301f171), + X(0x5147388c), X(0x62e20e17), X(0x516e0715), X(0x62c21b7e), + X(0x5194c910), X(0x62a219aa), X(0x51bb7e75), X(0x628208a1), + X(0x51e22740), X(0x6261e866), X(0x5208c36a), X(0x6241b8ff), + X(0x522f52ee), X(0x62217a72), X(0x5255d5c5), X(0x62012cc2), + X(0x527c4bea), X(0x61e0cff5), X(0x52a2b556), X(0x61c06410), + X(0x52c91204), X(0x619fe918), X(0x52ef61ee), X(0x617f5f12), + X(0x5315a50e), X(0x615ec603), X(0x533bdb5d), X(0x613e1df0), + X(0x536204d7), X(0x611d66de), X(0x53882175), X(0x60fca0d2), + X(0x53ae3131), X(0x60dbcbd1), X(0x53d43406), X(0x60bae7e1), + X(0x53fa29ed), X(0x6099f505), X(0x542012e1), X(0x6078f344), + X(0x5445eedb), X(0x6057e2a2), X(0x546bbdd7), X(0x6036c325), + X(0x54917fce), X(0x601594d1), X(0x54b734ba), X(0x5ff457ad), + X(0x54dcdc96), X(0x5fd30bbc), X(0x5502775c), X(0x5fb1b104), + X(0x55280505), X(0x5f90478a), X(0x554d858d), X(0x5f6ecf53), + X(0x5572f8ed), X(0x5f4d4865), X(0x55985f20), X(0x5f2bb2c5), + X(0x55bdb81f), X(0x5f0a0e77), X(0x55e303e6), X(0x5ee85b82), + X(0x5608426e), X(0x5ec699e9), X(0x562d73b2), X(0x5ea4c9b3), + X(0x565297ab), X(0x5e82eae5), X(0x5677ae54), X(0x5e60fd84), + X(0x569cb7a8), X(0x5e3f0194), X(0x56c1b3a1), X(0x5e1cf71c), + X(0x56e6a239), X(0x5dfade20), X(0x570b8369), X(0x5dd8b6a7), + X(0x5730572e), X(0x5db680b4), X(0x57551d80), X(0x5d943c4e), + X(0x5779d65b), X(0x5d71e979), X(0x579e81b8), X(0x5d4f883b), + X(0x57c31f92), X(0x5d2d189a), X(0x57e7afe4), X(0x5d0a9a9a), + X(0x580c32a7), X(0x5ce80e41), X(0x5830a7d6), X(0x5cc57394), + X(0x58550f6c), X(0x5ca2ca99), X(0x58796962), X(0x5c801354), + X(0x589db5b3), X(0x5c5d4dcc), X(0x58c1f45b), X(0x5c3a7a05), + X(0x58e62552), X(0x5c179806), X(0x590a4893), X(0x5bf4a7d2), + X(0x592e5e19), X(0x5bd1a971), X(0x595265df), X(0x5bae9ce7), + X(0x59765fde), X(0x5b8b8239), X(0x599a4c12), X(0x5b68596d), + X(0x59be2a74), X(0x5b452288), X(0x59e1faff), X(0x5b21dd90), + X(0x5a05bdae), X(0x5afe8a8b), X(0x5a29727b), X(0x5adb297d), + X(0x5a4d1960), X(0x5ab7ba6c), X(0x5a70b258), X(0x5a943d5e), +}; + diff --git a/wolf3d/code/Tremor/misc.h b/wolf3d/code/Tremor/misc.h new file mode 100644 index 0000000..a4bc82f --- /dev/null +++ b/wolf3d/code/Tremor/misc.h @@ -0,0 +1,244 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: miscellaneous math and prototypes + + ********************************************************************/ + +#ifndef _V_RANDOM_H_ +#define _V_RANDOM_H_ +#include "ivorbiscodec.h" +#include "os.h" + +#include "asm_arm.h" +#include /* for abs() */ + +#ifndef _V_WIDE_MATH +#define _V_WIDE_MATH + +#ifndef _LOW_ACCURACY_ +/* 64 bit multiply */ + +#if !(defined WIN32 && defined WINCE) +#include +#endif + +#if BYTE_ORDER==LITTLE_ENDIAN +union magic { + struct { + ogg_int32_t lo; + ogg_int32_t hi; + } halves; + ogg_int64_t whole; +}; +#endif + +#if BYTE_ORDER==BIG_ENDIAN +union magic { + struct { + ogg_int32_t hi; + ogg_int32_t lo; + } halves; + ogg_int64_t whole; +}; +#endif + +STIN ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) { + union magic magic; + magic.whole = (ogg_int64_t)x * y; + return magic.halves.hi; +} + +STIN ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) { + return MULT32(x,y)<<1; +} + +STIN ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) { + union magic magic; + magic.whole = (ogg_int64_t)x * y; + return ((ogg_uint32_t)(magic.halves.lo)>>15) | ((magic.halves.hi)<<17); +} + +#else +/* 32 bit multiply, more portable but less accurate */ + +/* + * Note: Precision is biased towards the first argument therefore ordering + * is important. Shift values were chosen for the best sound quality after + * many listening tests. + */ + +/* + * For MULT32 and MULT31: The second argument is always a lookup table + * value already preshifted from 31 to 8 bits. We therefore take the + * opportunity to save on text space and use unsigned char for those + * tables in this case. + */ + +STIN ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) { + return (x >> 9) * y; /* y preshifted >>23 */ +} + +STIN ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) { + return (x >> 8) * y; /* y preshifted >>23 */ +} + +STIN ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) { + return (x >> 6) * y; /* y preshifted >>9 */ +} + +#endif + +/* + * This should be used as a memory barrier, forcing all cached values in + * registers to wr writen back to memory. Might or might not be beneficial + * depending on the architecture and compiler. + */ +#define MB() + +/* + * The XPROD functions are meant to optimize the cross products found all + * over the place in mdct.c by forcing memory operation ordering to avoid + * unnecessary register reloads as soon as memory is being written to. + * However this is only beneficial on CPUs with a sane number of general + * purpose registers which exclude the Intel x86. On Intel, better let the + * compiler actually reload registers directly from original memory by using + * macros. + */ + +#ifdef __i386__ + +#define XPROD32(_a, _b, _t, _v, _x, _y) \ + { *(_x)=MULT32(_a,_t)+MULT32(_b,_v); \ + *(_y)=MULT32(_b,_t)-MULT32(_a,_v); } +#define XPROD31(_a, _b, _t, _v, _x, _y) \ + { *(_x)=MULT31(_a,_t)+MULT31(_b,_v); \ + *(_y)=MULT31(_b,_t)-MULT31(_a,_v); } +#define XNPROD31(_a, _b, _t, _v, _x, _y) \ + { *(_x)=MULT31(_a,_t)-MULT31(_b,_v); \ + *(_y)=MULT31(_b,_t)+MULT31(_a,_v); } + +#else + +STIN void XPROD32(ogg_int32_t a, ogg_int32_t b, + ogg_int32_t t, ogg_int32_t v, + ogg_int32_t *x, ogg_int32_t *y) +{ + *x = MULT32(a, t) + MULT32(b, v); + *y = MULT32(b, t) - MULT32(a, v); +} + +STIN void XPROD31(ogg_int32_t a, ogg_int32_t b, + ogg_int32_t t, ogg_int32_t v, + ogg_int32_t *x, ogg_int32_t *y) +{ + *x = MULT31(a, t) + MULT31(b, v); + *y = MULT31(b, t) - MULT31(a, v); +} + +STIN void XNPROD31(ogg_int32_t a, ogg_int32_t b, + ogg_int32_t t, ogg_int32_t v, + ogg_int32_t *x, ogg_int32_t *y) +{ + *x = MULT31(a, t) - MULT31(b, v); + *y = MULT31(b, t) + MULT31(a, v); +} + +#endif + +#endif + +#ifndef _V_CLIP_MATH +#define _V_CLIP_MATH + +STIN ogg_int32_t CLIP_TO_15(ogg_int32_t x) { + int ret=x; + ret-= ((x<=32767)-1)&(x-32767); + ret-= ((x>=-32768)-1)&(x+32768); + return(ret); +} + +#endif + +STIN ogg_int32_t VFLOAT_MULT(ogg_int32_t a,ogg_int32_t ap, + ogg_int32_t b,ogg_int32_t bp, + ogg_int32_t *p){ + if(a && b){ +#ifndef _LOW_ACCURACY_ + *p=ap+bp+32; + return MULT32(a,b); +#else + *p=ap+bp+31; + return (a>>15)*(b>>16); +#endif + }else + return 0; +} + +int _ilog(unsigned int); + +STIN ogg_int32_t VFLOAT_MULTI(ogg_int32_t a,ogg_int32_t ap, + ogg_int32_t i, + ogg_int32_t *p){ + + int ip=_ilog(abs(i))-31; + return VFLOAT_MULT(a,ap,i<<-ip,ip,p); +} + +STIN ogg_int32_t VFLOAT_ADD(ogg_int32_t a,ogg_int32_t ap, + ogg_int32_t b,ogg_int32_t bp, + ogg_int32_t *p){ + + if(!a){ + *p=bp; + return b; + }else if(!b){ + *p=ap; + return a; + } + + /* yes, this can leak a bit. */ + if(ap>bp){ + int shift=ap-bp+1; + *p=ap+1; + a>>=1; + if(shift<32){ + b=(b+(1<<(shift-1)))>>shift; + }else{ + b=0; + } + }else{ + int shift=bp-ap+1; + *p=bp+1; + b>>=1; + if(shift<32){ + a=(a+(1<<(shift-1)))>>shift; + }else{ + a=0; + } + } + + a+=b; + if((a&0xc0000000)==0xc0000000 || + (a&0xc0000000)==0){ + a<<=1; + (*p)--; + } + return(a); +} + +#endif + + + + diff --git a/wolf3d/code/Tremor/ogg.h b/wolf3d/code/Tremor/ogg.h new file mode 100644 index 0000000..85cb41b --- /dev/null +++ b/wolf3d/code/Tremor/ogg.h @@ -0,0 +1,206 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2003 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: subsumed libogg includes + + ********************************************************************/ +#ifndef _OGG_H +#define _OGG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "os_types.h" + +typedef struct ogg_buffer_state{ + struct ogg_buffer *unused_buffers; + struct ogg_reference *unused_references; + int outstanding; + int shutdown; +} ogg_buffer_state; + +typedef struct ogg_buffer { + unsigned char *data; + long size; + int refcount; + + union { + ogg_buffer_state *owner; + struct ogg_buffer *next; + } ptr; +} ogg_buffer; + +typedef struct ogg_reference { + ogg_buffer *buffer; + long begin; + long length; + + struct ogg_reference *next; +} ogg_reference; + +typedef struct oggpack_buffer { + int headbit; + unsigned char *headptr; + long headend; + + /* memory management */ + ogg_reference *head; + ogg_reference *tail; + + /* render the byte/bit counter API constant time */ + long count; /* doesn't count the tail */ +} oggpack_buffer; + +typedef struct oggbyte_buffer { + ogg_reference *baseref; + + ogg_reference *ref; + unsigned char *ptr; + long pos; + long end; +} oggbyte_buffer; + +typedef struct ogg_sync_state { + /* decode memory management pool */ + ogg_buffer_state *bufferpool; + + /* stream buffers */ + ogg_reference *fifo_head; + ogg_reference *fifo_tail; + long fifo_fill; + + /* stream sync management */ + int unsynced; + int headerbytes; + int bodybytes; + +} ogg_sync_state; + +typedef struct ogg_stream_state { + ogg_reference *header_head; + ogg_reference *header_tail; + ogg_reference *body_head; + ogg_reference *body_tail; + + int e_o_s; /* set when we have buffered the last + packet in the logical bitstream */ + int b_o_s; /* set after we've written the initial page + of a logical bitstream */ + long serialno; + long pageno; + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a seperate abstraction + layer) also knows about the gap */ + ogg_int64_t granulepos; + + int lacing_fill; + ogg_uint32_t body_fill; + + /* decode-side state data */ + int holeflag; + int spanflag; + int clearflag; + int laceptr; + ogg_uint32_t body_fill_next; + +} ogg_stream_state; + +typedef struct { + ogg_reference *packet; + long bytes; + long b_o_s; + long e_o_s; + ogg_int64_t granulepos; + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a seperate abstraction + layer) also knows about the gap */ +} ogg_packet; + +typedef struct { + ogg_reference *header; + int header_len; + ogg_reference *body; + long body_len; +} ogg_page; + +/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ + +extern void oggpack_readinit(oggpack_buffer *b,ogg_reference *r); +extern long oggpack_look(oggpack_buffer *b,int bits); +extern void oggpack_adv(oggpack_buffer *b,int bits); +extern long oggpack_read(oggpack_buffer *b,int bits); +extern long oggpack_bytes(oggpack_buffer *b); +extern long oggpack_bits(oggpack_buffer *b); +extern int oggpack_eop(oggpack_buffer *b); + +/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ + +extern ogg_sync_state *ogg_sync_create(void); +extern int ogg_sync_destroy(ogg_sync_state *oy); +extern int ogg_sync_reset(ogg_sync_state *oy); + +extern unsigned char *ogg_sync_bufferin(ogg_sync_state *oy, long size); +extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); +extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); +extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); +extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); +extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); + +/* Ogg BITSTREAM PRIMITIVES: general ***************************/ + +extern ogg_stream_state *ogg_stream_create(int serialno); +extern int ogg_stream_destroy(ogg_stream_state *os); +extern int ogg_stream_reset(ogg_stream_state *os); +extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); +extern int ogg_stream_eos(ogg_stream_state *os); + +extern int ogg_page_checksum_set(ogg_page *og); + +extern int ogg_page_version(ogg_page *og); +extern int ogg_page_continued(ogg_page *og); +extern int ogg_page_bos(ogg_page *og); +extern int ogg_page_eos(ogg_page *og); +extern ogg_int64_t ogg_page_granulepos(ogg_page *og); +extern ogg_uint32_t ogg_page_serialno(ogg_page *og); +extern ogg_uint32_t ogg_page_pageno(ogg_page *og); +extern int ogg_page_packets(ogg_page *og); +extern int ogg_page_getbuffer(ogg_page *og, unsigned char **buffer); + +extern int ogg_packet_release(ogg_packet *op); +extern int ogg_page_release(ogg_page *og); + +extern void ogg_page_dup(ogg_page *d, ogg_page *s); + +/* Ogg BITSTREAM PRIMITIVES: return codes ***************************/ + +#define OGG_SUCCESS 0 + +#define OGG_HOLE -10 +#define OGG_SPAN -11 +#define OGG_EVERSION -12 +#define OGG_ESERIAL -13 +#define OGG_EINVAL -14 +#define OGG_EEOS -15 + + +#ifdef __cplusplus +} +#endif + +#endif /* _OGG_H */ diff --git a/wolf3d/code/Tremor/os.h b/wolf3d/code/Tremor/os.h new file mode 100644 index 0000000..95e6e27 --- /dev/null +++ b/wolf3d/code/Tremor/os.h @@ -0,0 +1,64 @@ +#ifndef _OS_H +#define _OS_H +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: #ifdef jail to whip a few platforms into the UNIX ideal. + + ********************************************************************/ + +#include +#include "os_types.h" + +#ifndef _V_IFDEFJAIL_H_ +# define _V_IFDEFJAIL_H_ + +# ifdef __GNUC__ +# define STIN static __inline__ +# elif _WIN32 +# define STIN static __inline +# endif +#else +# define STIN static +#endif + +#ifndef M_PI +# define M_PI (3.1415926536f) +#endif + +#ifdef _WIN32 +# include +# define rint(x) (floor((x)+0.5f)) +# define NO_FLOAT_MATH_LIB +# define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b)) +# define LITTLE_ENDIAN 1 +# define BYTE_ORDER LITTLE_ENDIAN +#endif + +#ifdef HAVE_ALLOCA_H +# include +#endif + +#ifdef USE_MEMORY_H +# include +#endif + +#ifndef min +# define min(x,y) ((x)>(y)?(y):(x)) +#endif + +#ifndef max +# define max(x,y) ((x)<(y)?(y):(x)) +#endif + +#endif /* _OS_H */ diff --git a/wolf3d/code/Tremor/os_types.h b/wolf3d/code/Tremor/os_types.h new file mode 100644 index 0000000..b8ddb8e --- /dev/null +++ b/wolf3d/code/Tremor/os_types.h @@ -0,0 +1,88 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: #ifdef jail to whip a few platforms into the UNIX ideal. + + ********************************************************************/ +#ifndef _OS_TYPES_H +#define _OS_TYPES_H + +#ifdef _LOW_ACCURACY_ +# define X(n) (((((n)>>22)+1)>>1) - ((((n)>>22)+1)>>9)) +# define LOOKUP_T const unsigned char +#else +# define X(n) (n) +# define LOOKUP_T const ogg_int32_t +#endif + +/* make it easy on the folks that want to compile the libs with a + different malloc than stdlib */ +#define _ogg_malloc malloc +#define _ogg_calloc calloc +#define _ogg_realloc realloc +#define _ogg_free free + +#ifdef _WIN32 + +# ifndef __GNUC__ + /* MSVC/Borland */ + typedef __int64 ogg_int64_t; + typedef __int32 ogg_int32_t; + typedef unsigned __int32 ogg_uint32_t; + typedef __int16 ogg_int16_t; +# else + /* Cygwin */ + #include <_G_config.h> + typedef _G_int64_t ogg_int64_t; + typedef _G_int32_t ogg_int32_t; + typedef _G_uint32_t ogg_uint32_t; + typedef _G_int16_t ogg_int16_t; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 ogg_int16_t; + typedef SInt32 ogg_int32_t; + typedef UInt32 ogg_uint32_t; + typedef SInt64 ogg_int64_t; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t ogg_int16_t; + typedef int32_t ogg_int32_t; + typedef u_int32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined(__BEOS__) + + /* Be */ +# include + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short ogg_int16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#else + +# include +# include "config_types.h" + +#endif + +#endif /* _OS_TYPES_H */ diff --git a/wolf3d/code/Tremor/registry.c b/wolf3d/code/Tremor/registry.c new file mode 100644 index 0000000..c0b5fec --- /dev/null +++ b/wolf3d/code/Tremor/registry.c @@ -0,0 +1,50 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: registry for floor, res backends and channel mappings + + ********************************************************************/ + +#include "ivorbiscodec.h" +#include "codec_internal.h" +#include "registry.h" +#include "misc.h" + + +/* seems like major overkill now; the backend numbers will grow into + the infrastructure soon enough */ + +extern vorbis_func_floor floor0_exportbundle; +extern vorbis_func_floor floor1_exportbundle; +extern vorbis_func_residue residue0_exportbundle; +extern vorbis_func_residue residue1_exportbundle; +extern vorbis_func_residue residue2_exportbundle; +extern vorbis_func_mapping mapping0_exportbundle; + +vorbis_func_floor *_floor_P[]={ + &floor0_exportbundle, + &floor1_exportbundle, +}; + +vorbis_func_residue *_residue_P[]={ + &residue0_exportbundle, + &residue1_exportbundle, + &residue2_exportbundle, +}; + +vorbis_func_mapping *_mapping_P[]={ + &mapping0_exportbundle, +}; + + + diff --git a/wolf3d/code/Tremor/registry.h b/wolf3d/code/Tremor/registry.h new file mode 100644 index 0000000..2bc8068 --- /dev/null +++ b/wolf3d/code/Tremor/registry.h @@ -0,0 +1,40 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: registry for time, floor, res backends and channel mappings + + ********************************************************************/ + +#ifndef _V_REG_H_ +#define _V_REG_H_ + +#define VI_TRANSFORMB 1 +#define VI_WINDOWB 1 +#define VI_TIMEB 1 +#define VI_FLOORB 2 +#define VI_RESB 3 +#define VI_MAPB 1 + +#include "backends.h" + +#if defined(_WIN32) && defined(VORBISDLL_IMPORT) +# define EXTERN __declspec(dllimport) extern +#else +# define EXTERN extern +#endif + +EXTERN vorbis_func_floor *_floor_P[]; +EXTERN vorbis_func_residue *_residue_P[]; +EXTERN vorbis_func_mapping *_mapping_P[]; + +#endif diff --git a/wolf3d/code/Tremor/res012.c b/wolf3d/code/Tremor/res012.c new file mode 100644 index 0000000..224b54e --- /dev/null +++ b/wolf3d/code/Tremor/res012.c @@ -0,0 +1,342 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: residue backend 0, 1 and 2 implementation + + ********************************************************************/ + +#include +#include +#include +#include "ogg.h" +#include "ivorbiscodec.h" +#include "codec_internal.h" +#include "registry.h" +#include "codebook.h" +#include "misc.h" +#include "os.h" +#include "block.h" + +typedef struct { + vorbis_info_residue0 *info; + int map; + + int parts; + int stages; + codebook *fullbooks; + codebook *phrasebook; + codebook ***partbooks; + + int partvals; + int **decodemap; + +} vorbis_look_residue0; + +void res0_free_info(vorbis_info_residue *i){ + vorbis_info_residue0 *info=(vorbis_info_residue0 *)i; + if(info){ + memset(info,0,sizeof(*info)); + _ogg_free(info); + } +} + +void res0_free_look(vorbis_look_residue *i){ + int j; + if(i){ + + vorbis_look_residue0 *look=(vorbis_look_residue0 *)i; + + for(j=0;jparts;j++) + if(look->partbooks[j])_ogg_free(look->partbooks[j]); + _ogg_free(look->partbooks); + for(j=0;jpartvals;j++) + _ogg_free(look->decodemap[j]); + _ogg_free(look->decodemap); + + memset(look,0,sizeof(*look)); + _ogg_free(look); + } +} + +static int ilog(unsigned int v){ + int ret=0; + while(v){ + ret++; + v>>=1; + } + return(ret); +} + +static int icount(unsigned int v){ + int ret=0; + while(v){ + ret+=v&1; + v>>=1; + } + return(ret); +} + +/* vorbis_info is for range checking */ +vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){ + int j,acc=0; + vorbis_info_residue0 *info=(vorbis_info_residue0 *)_ogg_calloc(1,sizeof(*info)); + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + + info->begin=oggpack_read(opb,24); + info->end=oggpack_read(opb,24); + info->grouping=oggpack_read(opb,24)+1; + info->partitions=oggpack_read(opb,6)+1; + info->groupbook=oggpack_read(opb,8); + + for(j=0;jpartitions;j++){ + int cascade=oggpack_read(opb,3); + if(oggpack_read(opb,1)) + cascade|=(oggpack_read(opb,5)<<3); + info->secondstages[j]=cascade; + + acc+=icount(cascade); + } + for(j=0;jbooklist[j]=oggpack_read(opb,8); + + if(info->groupbook>=ci->books)goto errout; + for(j=0;jbooklist[j]>=ci->books)goto errout; + + return(info); + errout: + res0_free_info(info); + return(NULL); +} + +vorbis_look_residue *res0_look(vorbis_dsp_state *vd,vorbis_info_mode *vm, + vorbis_info_residue *vr){ + vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; + vorbis_look_residue0 *look=(vorbis_look_residue0 *)_ogg_calloc(1,sizeof(*look)); + codec_setup_info *ci=(codec_setup_info *)vd->vi->codec_setup; + + int j,k,acc=0; + int dim; + int maxstage=0; + look->info=info; + look->map=vm->mapping; + + look->parts=info->partitions; + look->fullbooks=ci->fullbooks; + look->phrasebook=ci->fullbooks+info->groupbook; + dim=look->phrasebook->dim; + + look->partbooks=(codebook ***)_ogg_calloc(look->parts,sizeof(*look->partbooks)); + + for(j=0;jparts;j++){ + int stages=ilog(info->secondstages[j]); + if(stages){ + if(stages>maxstage)maxstage=stages; + look->partbooks[j]=(codebook **)_ogg_calloc(stages,sizeof(*look->partbooks[j])); + for(k=0;ksecondstages[j]&(1<partbooks[j][k]=ci->fullbooks+info->booklist[acc++]; +#ifdef TRAIN_RES + look->training_data[k][j]=calloc(look->partbooks[j][k]->entries, + sizeof(***look->training_data)); +#endif + } + } + } + + look->partvals=look->parts; + for(j=1;jpartvals*=look->parts; + look->stages=maxstage; + look->decodemap=(int **)_ogg_malloc(look->partvals*sizeof(*look->decodemap)); + for(j=0;jpartvals;j++){ + long val=j; + long mult=look->partvals/look->parts; + look->decodemap[j]=(int *)_ogg_malloc(dim*sizeof(*look->decodemap[j])); + for(k=0;kparts; + look->decodemap[j][k]=deco; + } + } + + return(look); +} + + +/* a truncated packet here just means 'stop working'; it's not an error */ +static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl, + ogg_int32_t **in,int ch, + long (*decodepart)(codebook *, ogg_int32_t *, + oggpack_buffer *,int,int)){ + + long i,j,k,l,s; + vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; + vorbis_info_residue0 *info=look->info; + + /* move all this setup out later */ + int samples_per_partition=info->grouping; + int partitions_per_word=look->phrasebook->dim; + int max=vb->pcmend>>1; + int end=(info->endend:max); + int n=end-info->begin; + + if(n>0){ + int partvals=n/samples_per_partition; + int partwords=(partvals+partitions_per_word-1)/partitions_per_word; + int ***partword=(int ***)alloca(ch*sizeof(*partword)); + + for(j=0;jstages;s++){ + + /* each loop decodes on partition codeword containing + partitions_pre_word partitions */ + for(i=0,l=0;iphrasebook,&vb->opb); + if(temp==-1)goto eopbreak; + partword[j][l]=look->decodemap[temp]; + if(partword[j][l]==NULL)goto errout; + } + } + + /* now we decode residual values for the partitions */ + for(k=0;kbegin+i*samples_per_partition; + if(info->secondstages[partword[j][l][k]]&(1<partbooks[partword[j][l][k]][s]; + if(stagebook){ + if(decodepart(stagebook,in[j]+offset,&vb->opb, + samples_per_partition,-8)==-1)goto eopbreak; + } + } + } + } + } + } + errout: + eopbreak: + return(0); +} + +int res0_inverse(vorbis_block *vb,vorbis_look_residue *vl, + ogg_int32_t **in,int *nonzero,int ch){ + int i,used=0; + for(i=0;iinfo; + + /* move all this setup out later */ + int samples_per_partition=info->grouping; + int partitions_per_word=look->phrasebook->dim; + int max=(vb->pcmend*ch)>>1; + int end=(info->endend:max); + int n=end-info->begin; + + if(n>0){ + + int partvals=n/samples_per_partition; + int partwords=(partvals+partitions_per_word-1)/partitions_per_word; + int **partword=(int **)_vorbis_block_alloc(vb,partwords*sizeof(*partword)); + int beginoff=info->begin/ch; + + for(i=0;istages;s++){ + for(i=0,l=0;iphrasebook,&vb->opb); + if(temp==-1)goto eopbreak; + partword[l]=look->decodemap[temp]; + if(partword[l]==NULL)goto errout; + } + + /* now we decode residual values for the partitions */ + for(k=0;ksecondstages[partword[l][k]]&(1<partbooks[partword[l][k]][s]; + + if(stagebook){ + if(vorbis_book_decodevv_add(stagebook,in, + i*samples_per_partition+beginoff,ch, + &vb->opb, + samples_per_partition,-8)==-1) + goto eopbreak; + } + } + } + } + } + errout: + eopbreak: + return(0); +} + + +vorbis_func_residue residue0_exportbundle={ + &res0_unpack, + &res0_look, + &res0_free_info, + &res0_free_look, + &res0_inverse +}; + +vorbis_func_residue residue1_exportbundle={ + &res0_unpack, + &res0_look, + &res0_free_info, + &res0_free_look, + &res1_inverse +}; + +vorbis_func_residue residue2_exportbundle={ + &res0_unpack, + &res0_look, + &res0_free_info, + &res0_free_look, + &res2_inverse +}; diff --git a/wolf3d/code/Tremor/sharedbook.c b/wolf3d/code/Tremor/sharedbook.c new file mode 100644 index 0000000..8e07492 --- /dev/null +++ b/wolf3d/code/Tremor/sharedbook.c @@ -0,0 +1,439 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: basic shared codebook operations + + ********************************************************************/ + +#include +#include +#include +#include "ogg.h" +#include "misc.h" +#include "ivorbiscodec.h" +#include "codebook.h" + +/**** pack/unpack helpers ******************************************/ +int _ilog(unsigned int v){ + int ret=0; + while(v){ + ret++; + v>>=1; + } + return(ret); +} + +/* 32 bit float (not IEEE; nonnormalized mantissa + + biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm + Why not IEEE? It's just not that important here. */ + +#define VQ_FEXP 10 +#define VQ_FMAN 21 +#define VQ_FEXP_BIAS 768 /* bias toward values smaller than 1. */ + +static ogg_int32_t _float32_unpack(long val,int *point){ + long mant=val&0x1fffff; + int sign=val&0x80000000; + long exp =(val&0x7fe00000L)>>VQ_FMAN; + + exp-=(VQ_FMAN-1)+VQ_FEXP_BIAS; + + if(mant){ + while(!(mant&0x40000000)){ + mant<<=1; + exp-=1; + } + + if(sign)mant= -mant; + }else{ + sign=0; + exp=-9999; + } + + *point=exp; + return mant; +} + +/* given a list of word lengths, generate a list of codewords. Works + for length ordered or unordered, always assigns the lowest valued + codewords first. Extended to handle unused entries (length 0) */ +ogg_uint32_t *_make_words(long *l,long n,long sparsecount){ + long i,j,count=0; + ogg_uint32_t marker[33]; + ogg_uint32_t *r=(ogg_uint32_t *)_ogg_malloc((sparsecount?sparsecount:n)*sizeof(*r)); + memset(marker,0,sizeof(marker)); + + for(i=0;i0){ + ogg_uint32_t entry=marker[length]; + + /* when we claim a node for an entry, we also claim the nodes + below it (pruning off the imagined tree that may have dangled + from it) as well as blocking the use of any nodes directly + above for leaves */ + + /* update ourself */ + if(length<32 && (entry>>length)){ + /* error condition; the lengths must specify an overpopulated tree */ + _ogg_free(r); + return(NULL); + } + r[count++]=entry; + + /* Look to see if the next shorter marker points to the node + above. if so, update it and repeat. */ + { + for(j=length;j>0;j--){ + + if(marker[j]&1){ + /* have to jump branches */ + if(j==1) + marker[1]++; + else + marker[j]=marker[j-1]<<1; + break; /* invariant says next upper marker would already + have been moved if it was on the same path */ + } + marker[j]++; + } + } + + /* prune the tree; the implicit invariant says all the longer + markers were dangling from our just-taken node. Dangle them + from our *new* node. */ + for(j=length+1;j<33;j++) + if((marker[j]>>1) == entry){ + entry=marker[j]; + marker[j]=marker[j-1]<<1; + }else + break; + }else + if(sparsecount==0)count++; + } + + /* bitreverse the words because our bitwise packer/unpacker is LSb + endian */ + for(i=0,count=0;i>j)&1; + } + + if(sparsecount){ + if(l[i]) + r[count++]=temp; + }else + r[count++]=temp; + } + + return(r); +} + +/* there might be a straightforward one-line way to do the below + that's portable and totally safe against roundoff, but I haven't + thought of it. Therefore, we opt on the side of caution */ +long _book_maptype1_quantvals(const static_codebook *b){ + /* get us a starting hint, we'll polish it below */ + int bits=_ilog(b->entries); + int vals=b->entries>>((bits-1)*(b->dim-1)/b->dim); + + while(1){ + long acc=1; + long acc1=1; + int i; + for(i=0;idim;i++){ + acc*=vals; + acc1*=vals+1; + } + if(acc<=b->entries && acc1>b->entries){ + return(vals); + }else{ + if(acc>b->entries){ + vals--; + }else{ + vals++; + } + } + } +} + +/* different than what _book_unquantize does for mainline: + we repack the book in a fixed point format that shares the same + binary point. Upon first use, we can shift point if needed */ + +/* we need to deal with two map types: in map type 1, the values are + generated algorithmically (each column of the vector counts through + the values in the quant vector). in map type 2, all the values came + in in an explicit list. Both value lists must be unpacked */ + +ogg_int32_t *_book_unquantize(const static_codebook *b,int n,int *sparsemap, + int *maxpoint){ + long j,k,count=0; + if(b->maptype==1 || b->maptype==2){ + int quantvals; + int minpoint,delpoint; + ogg_int32_t mindel=_float32_unpack(b->q_min,&minpoint); + ogg_int32_t delta=_float32_unpack(b->q_delta,&delpoint); + ogg_int32_t *r=(ogg_int32_t *)_ogg_calloc(n*b->dim,sizeof(*r)); + int *rp=(int *)_ogg_calloc(n*b->dim,sizeof(*rp)); + + *maxpoint=minpoint; + + /* maptype 1 and 2 both use a quantized value vector, but + different sizes */ + switch(b->maptype){ + case 1: + /* most of the time, entries%dimensions == 0, but we need to be + well defined. We define that the possible vales at each + scalar is values == entries/dim. If entries%dim != 0, we'll + have 'too few' values (values*dimentries;j++){ + if((sparsemap && b->lengthlist[j]) || !sparsemap){ + ogg_int32_t last=0; + int lastpoint=0; + int indexdiv=1; + for(k=0;kdim;k++){ + int index= (j/indexdiv)%quantvals; + int point=0; + int val=VFLOAT_MULTI(delta,delpoint, + abs(b->quantlist[index]),&point); + + val=VFLOAT_ADD(mindel,minpoint,val,point,&point); + val=VFLOAT_ADD(last,lastpoint,val,point,&point); + + if(b->q_sequencep){ + last=val; + lastpoint=point; + } + + if(sparsemap){ + r[sparsemap[count]*b->dim+k]=val; + rp[sparsemap[count]*b->dim+k]=point; + }else{ + r[count*b->dim+k]=val; + rp[count*b->dim+k]=point; + } + if(*maxpointentries;j++){ + if((sparsemap && b->lengthlist[j]) || !sparsemap){ + ogg_int32_t last=0; + int lastpoint=0; + + for(k=0;kdim;k++){ + int point=0; + int val=VFLOAT_MULTI(delta,delpoint, + abs(b->quantlist[j*b->dim+k]),&point); + + val=VFLOAT_ADD(mindel,minpoint,val,point,&point); + val=VFLOAT_ADD(last,lastpoint,val,point,&point); + + if(b->q_sequencep){ + last=val; + lastpoint=point; + } + + if(sparsemap){ + r[sparsemap[count]*b->dim+k]=val; + rp[sparsemap[count]*b->dim+k]=point; + }else{ + r[count*b->dim+k]=val; + rp[count*b->dim+k]=point; + } + if(*maxpointdim;j++) + if(rp[j]<*maxpoint) + r[j]>>=*maxpoint-rp[j]; + + _ogg_free(rp); + return(r); + } + return(NULL); +} + +void vorbis_staticbook_clear(static_codebook *b){ + if(b->quantlist)_ogg_free(b->quantlist); + if(b->lengthlist)_ogg_free(b->lengthlist); + memset(b,0,sizeof(*b)); + +} + +void vorbis_staticbook_destroy(static_codebook *b){ + vorbis_staticbook_clear(b); + _ogg_free(b); +} + +void vorbis_book_clear(codebook *b){ + /* static book is not cleared; we're likely called on the lookup and + the static codebook belongs to the info struct */ + if(b->valuelist)_ogg_free(b->valuelist); + if(b->codelist)_ogg_free(b->codelist); + + if(b->dec_index)_ogg_free(b->dec_index); + if(b->dec_codelengths)_ogg_free(b->dec_codelengths); + if(b->dec_firsttable)_ogg_free(b->dec_firsttable); + + memset(b,0,sizeof(*b)); +} + +static ogg_uint32_t bitreverse(ogg_uint32_t x){ + x= ((x>>16)&0x0000ffffUL) | ((x<<16)&0xffff0000UL); + x= ((x>> 8)&0x00ff00ffUL) | ((x<< 8)&0xff00ff00UL); + x= ((x>> 4)&0x0f0f0f0fUL) | ((x<< 4)&0xf0f0f0f0UL); + x= ((x>> 2)&0x33333333UL) | ((x<< 2)&0xccccccccUL); + return((x>> 1)&0x55555555UL) | ((x<< 1)&0xaaaaaaaaUL); +} + +static int sort32a(const void *a,const void *b){ + return (**(ogg_uint32_t **)a>**(ogg_uint32_t **)b)- + (**(ogg_uint32_t **)a<**(ogg_uint32_t **)b); +} + +/* decode codebook arrangement is more heavily optimized than encode */ +int vorbis_book_init_decode(codebook *c,const static_codebook *s){ + int i,j,n=0,tabn; + int *sortindex; + memset(c,0,sizeof(*c)); + + /* count actually used entries */ + for(i=0;ientries;i++) + if(s->lengthlist[i]>0) + n++; + + c->entries=s->entries; + c->used_entries=n; + c->dim=s->dim; + + if(n>0){ + /* two different remappings go on here. + + First, we collapse the likely sparse codebook down only to + actually represented values/words. This collapsing needs to be + indexed as map-valueless books are used to encode original entry + positions as integers. + + Second, we reorder all vectors, including the entry index above, + by sorted bitreversed codeword to allow treeless decode. */ + + /* perform sort */ + ogg_uint32_t *codes=_make_words(s->lengthlist,s->entries,c->used_entries); + ogg_uint32_t **codep=(ogg_uint32_t **)alloca(sizeof(*codep)*n); + + if(codes==NULL)goto err_out; + + for(i=0;icodelist=(ogg_uint32_t *)_ogg_malloc(n*sizeof(*c->codelist)); + /* the index is a reverse index */ + for(i=0;icodelist[sortindex[i]]=codes[i]; + _ogg_free(codes); + + + + c->valuelist=_book_unquantize(s,n,sortindex,&c->binarypoint); + c->dec_index=(int *)_ogg_malloc(n*sizeof(*c->dec_index)); + + for(n=0,i=0;ientries;i++) + if(s->lengthlist[i]>0) + c->dec_index[sortindex[n++]]=i; + + c->dec_codelengths=(char *)_ogg_malloc(n*sizeof(*c->dec_codelengths)); + for(n=0,i=0;ientries;i++) + if(s->lengthlist[i]>0) + c->dec_codelengths[sortindex[n++]]=s->lengthlist[i]; + + c->dec_firsttablen=_ilog(c->used_entries)-4; /* this is magic */ + if(c->dec_firsttablen<5)c->dec_firsttablen=5; + if(c->dec_firsttablen>8)c->dec_firsttablen=8; + + tabn=1<dec_firsttablen; + c->dec_firsttable=(ogg_uint32_t *)_ogg_calloc(tabn,sizeof(*c->dec_firsttable)); + c->dec_maxlength=0; + + for(i=0;idec_maxlengthdec_codelengths[i]) + c->dec_maxlength=c->dec_codelengths[i]; + if(c->dec_codelengths[i]<=c->dec_firsttablen){ + ogg_uint32_t orig=bitreverse(c->codelist[i]); + for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++) + c->dec_firsttable[orig|(j<dec_codelengths[i])]=i+1; + } + } + + /* now fill in 'unused' entries in the firsttable with hi/lo search + hints for the non-direct-hits */ + { + ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen); + long lo=0,hi=0; + + for(i=0;idec_firsttablen); + if(c->dec_firsttable[bitreverse(word)]==0){ + while((lo+1)codelist[lo+1]<=word)lo++; + while( hi=(c->codelist[hi]&mask))hi++; + + /* we only actually have 15 bits per hint to play with here. + In order to overflow gracefully (nothing breaks, efficiency + just drops), encode as the difference from the extremes. */ + { + unsigned long loval=lo; + unsigned long hival=n-hi; + + if(loval>0x7fff)loval=0x7fff; + if(hival>0x7fff)hival=0x7fff; + c->dec_firsttable[bitreverse(word)]= + 0x80000000UL | (loval<<15) | hival; + } + } + } + } + } + + return(0); + err_out: + vorbis_book_clear(c); + return(-1); +} + diff --git a/wolf3d/code/Tremor/synthesis.c b/wolf3d/code/Tremor/synthesis.c new file mode 100644 index 0000000..962c730 --- /dev/null +++ b/wolf3d/code/Tremor/synthesis.c @@ -0,0 +1,113 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2003 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: single-block PCM synthesis + last mod: $Id: synthesis.c,v 1.4 2003/03/29 03:07:21 xiphmont Exp $ + + ********************************************************************/ + +#include +#include "ogg.h" +#include "ivorbiscodec.h" +#include "codec_internal.h" +#include "registry.h" +#include "misc.h" +#include "block.h" + +int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep){ + vorbis_dsp_state *vd=vb->vd; + private_state *b=(private_state *)vd->backend_state; + vorbis_info *vi=vd->vi; + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + oggpack_buffer *opb=&vb->opb; + int type,mode,i; + + /* first things first. Make sure decode is ready */ + _vorbis_block_ripcord(vb); + oggpack_readinit(opb,op->packet); + + /* Check the packet type */ + if(oggpack_read(opb,1)!=0){ + /* Oops. This is not an audio data packet */ + return(OV_ENOTAUDIO); + } + + /* read our mode and pre/post windowsize */ + mode=oggpack_read(opb,b->modebits); + if(mode==-1)return(OV_EBADPACKET); + + vb->mode=mode; + vb->W=ci->mode_param[mode]->blockflag; + if(vb->W){ + vb->lW=oggpack_read(opb,1); + vb->nW=oggpack_read(opb,1); + if(vb->nW==-1) return(OV_EBADPACKET); + }else{ + vb->lW=0; + vb->nW=0; + } + + /* more setup */ + vb->granulepos=op->granulepos; + vb->sequence=op->packetno-3; /* first block is third packet */ + vb->eofflag=op->e_o_s; + + if(decodep){ + /* alloc pcm passback storage */ + vb->pcmend=ci->blocksizes[vb->W]; + vb->pcm=(ogg_int32_t **)_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels); + for(i=0;ichannels;i++) + vb->pcm[i]=(ogg_int32_t *)_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i])); + + /* unpack_header enforces range checking */ + type=ci->map_type[ci->mode_param[mode]->mapping]; + + return(_mapping_P[type]->inverse(vb,b->mode[mode])); + }else{ + /* no pcm */ + vb->pcmend=0; + vb->pcm=NULL; + + return(0); + } +} + +long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){ + codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; + oggpack_buffer opb; + int mode; + + oggpack_readinit(&opb,op->packet); + + /* Check the packet type */ + if(oggpack_read(&opb,1)!=0){ + /* Oops. This is not an audio data packet */ + return(OV_ENOTAUDIO); + } + + { + int modebits=0; + int v=ci->modes; + while(v>1){ + modebits++; + v>>=1; + } + + /* read our mode and pre/post windowsize */ + mode=oggpack_read(&opb,modebits); + } + if(mode==-1)return(OV_EBADPACKET); + return(ci->blocksizes[ci->mode_param[mode]->blockflag]); +} + + diff --git a/wolf3d/code/Tremor/vorbisfile.c b/wolf3d/code/Tremor/vorbisfile.c new file mode 100644 index 0000000..0c48f1f --- /dev/null +++ b/wolf3d/code/Tremor/vorbisfile.c @@ -0,0 +1,1586 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2003 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: stdio-based convenience library for opening/seeking/decoding + last mod: $Id: vorbisfile.c,v 1.6 2003/03/30 23:40:56 xiphmont Exp $ + + ********************************************************************/ + +#include +#include +#include +#include +#include + +#include "ivorbiscodec.h" +#include "ivorbisfile.h" + +#include "misc.h" + +/* A 'chained bitstream' is a Vorbis bitstream that contains more than + one logical bitstream arranged end to end (the only form of Ogg + multiplexing allowed in a Vorbis bitstream; grouping [parallel + multiplexing] is not allowed in Vorbis) */ + +/* A Vorbis file can be played beginning to end (streamed) without + worrying ahead of time about chaining (see decoder_example.c). If + we have the whole file, however, and want random access + (seeking/scrubbing) or desire to know the total length/time of a + file, we need to account for the possibility of chaining. */ + +/* We can handle things a number of ways; we can determine the entire + bitstream structure right off the bat, or find pieces on demand. + This example determines and caches structure for the entire + bitstream, but builds a virtual decoder on the fly when moving + between links in the chain. */ + +/* There are also different ways to implement seeking. Enough + information exists in an Ogg bitstream to seek to + sample-granularity positions in the output. Or, one can seek by + picking some portion of the stream roughly in the desired area if + we only want coarse navigation through the stream. */ + +/************************************************************************* + * Many, many internal helpers. The intention is not to be confusing; + * rampant duplication and monolithic function implementation would be + * harder to understand anyway. The high level functions are last. Begin + * grokking near the end of the file */ + + +/* read a little more data from the file/pipe into the ogg_sync framer */ +static long _get_data(OggVorbis_File *vf){ + errno=0; + if(vf->datasource){ + unsigned char *buffer=ogg_sync_bufferin(vf->oy,CHUNKSIZE); + long bytes=(vf->callbacks.read_func)(buffer,1,CHUNKSIZE,vf->datasource); + if(bytes>0)ogg_sync_wrote(vf->oy,bytes); + if(bytes==0 && errno)return(-1); + return(bytes); + }else + return(0); +} + +/* save a tiny smidge of verbosity to make the code more readable */ +static void _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){ + if(vf->datasource){ + (vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET); + vf->offset=offset; + ogg_sync_reset(vf->oy); + }else{ + /* shouldn't happen unless someone writes a broken callback */ + return; + } +} + +/* The read/seek functions track absolute position within the stream */ + +/* from the head of the stream, get the next page. boundary specifies + if the function is allowed to fetch more data from the stream (and + how much) or only use internally buffered data. + + boundary: -1) unbounded search + 0) read no additional data; use cached only + n) search for a new page beginning for n bytes + + return: <0) did not find a page (OV_FALSE, OV_EOF, OV_EREAD) + n) found a page at absolute offset n + + produces a refcounted page */ + +static ogg_int64_t _get_next_page(OggVorbis_File *vf,ogg_page *og, + ogg_int64_t boundary){ + if(boundary>0)boundary+=vf->offset; + while(1){ + long more; + + if(boundary>0 && vf->offset>=boundary)return(OV_FALSE); + more=ogg_sync_pageseek(vf->oy,og); + + if(more<0){ + /* skipped n bytes */ + vf->offset-=more; + }else{ + if(more==0){ + /* send more paramedics */ + if(!boundary)return(OV_FALSE); + { + long ret=_get_data(vf); + if(ret==0)return(OV_EOF); + if(ret<0)return(OV_EREAD); + } + }else{ + /* got a page. Return the offset at the page beginning, + advance the internal offset past the page end */ + ogg_int64_t ret=vf->offset; + vf->offset+=more; + return(ret); + + } + } + } +} + +/* find the latest page beginning before the current stream cursor + position. Much dirtier than the above as Ogg doesn't have any + backward search linkage. no 'readp' as it will certainly have to + read. */ +/* returns offset or OV_EREAD, OV_FAULT and produces a refcounted page */ + +static ogg_int64_t _get_prev_page(OggVorbis_File *vf,ogg_page *og){ + ogg_int64_t begin=vf->offset; + ogg_int64_t end=begin; + ogg_int64_t ret; + ogg_int64_t offset=-1; + + while(offset==-1){ + begin-=CHUNKSIZE; + if(begin<0) + begin=0; + _seek_helper(vf,begin); + while(vf->offsetoffset); + if(ret==OV_EREAD)return(OV_EREAD); + if(ret<0){ + break; + }else{ + offset=ret; + } + } + } + + /* we have the offset. Actually snork and hold the page now */ + _seek_helper(vf,offset); + ret=_get_next_page(vf,og,CHUNKSIZE); + if(ret<0) + /* this shouldn't be possible */ + return(OV_EFAULT); + + return(offset); +} + +/* finds each bitstream link one at a time using a bisection search + (has to begin by knowing the offset of the lb's initial page). + Recurses for each link so it can alloc the link storage after + finding them all, then unroll and fill the cache at the same time */ +static int _bisect_forward_serialno(OggVorbis_File *vf, + ogg_int64_t begin, + ogg_int64_t searched, + ogg_int64_t end, + ogg_uint32_t currentno, + long m){ + ogg_int64_t endsearched=end; + ogg_int64_t next=end; + ogg_page og={0,0,0,0}; + ogg_int64_t ret; + + /* the below guards against garbage seperating the last and + first pages of two links. */ + while(searched=0)next=ret; + }else{ + searched=ret+og.header_len+og.body_len; + } + ogg_page_release(&og); + } + + _seek_helper(vf,next); + ret=_get_next_page(vf,&og,-1); + if(ret==OV_EREAD)return(OV_EREAD); + + if(searched>=end || ret<0){ + ogg_page_release(&og); + vf->links=m+1; + vf->offsets=_ogg_malloc((vf->links+1)*sizeof(*vf->offsets)); + vf->serialnos=_ogg_malloc(vf->links*sizeof(*vf->serialnos)); + vf->offsets[m+1]=searched; + }else{ + ret=_bisect_forward_serialno(vf,next,vf->offset, + end,ogg_page_serialno(&og),m+1); + ogg_page_release(&og); + if(ret==OV_EREAD)return(OV_EREAD); + } + + vf->offsets[m]=begin; + vf->serialnos[m]=currentno; + return(0); +} + +/* uses the local ogg_stream storage in vf; this is important for + non-streaming input sources */ +/* consumes the page that's passed in (if any) */ + +static int _fetch_headers(OggVorbis_File *vf, + vorbis_info *vi, + vorbis_comment *vc, + ogg_uint32_t *serialno, + ogg_page *og_ptr){ + ogg_page og={0,0,0,0}; + ogg_packet op={0,0,0,0,0,0}; + int i,ret; + + if(!og_ptr){ + ogg_int64_t llret=_get_next_page(vf,&og,CHUNKSIZE); + if(llret==OV_EREAD)return(OV_EREAD); + if(llret<0)return OV_ENOTVORBIS; + og_ptr=&og; + } + + ogg_stream_reset_serialno(vf->os,ogg_page_serialno(og_ptr)); + if(serialno)*serialno=vf->os->serialno; + vf->ready_state=STREAMSET; + + /* extract the initial header from the first page and verify that the + Ogg bitstream is in fact Vorbis data */ + + vorbis_info_init(vi); + vorbis_comment_init(vc); + + i=0; + while(i<3){ + ogg_stream_pagein(vf->os,og_ptr); + while(i<3){ + int result=ogg_stream_packetout(vf->os,&op); + if(result==0)break; + if(result==-1){ + ret=OV_EBADHEADER; + goto bail_header; + } + if((ret=vorbis_synthesis_headerin(vi,vc,&op))){ + goto bail_header; + } + i++; + } + if(i<3) + if(_get_next_page(vf,og_ptr,CHUNKSIZE)<0){ + ret=OV_EBADHEADER; + goto bail_header; + } + } + + ogg_packet_release(&op); + ogg_page_release(&og); + return 0; + + bail_header: + ogg_packet_release(&op); + ogg_page_release(&og); + vorbis_info_clear(vi); + vorbis_comment_clear(vc); + vf->ready_state=OPENED; + + return ret; +} + +/* last step of the OggVorbis_File initialization; get all the + vorbis_info structs and PCM positions. Only called by the seekable + initialization (local stream storage is hacked slightly; pay + attention to how that's done) */ + +/* this is void and does not propogate errors up because we want to be + able to open and use damaged bitstreams as well as we can. Just + watch out for missing information for links in the OggVorbis_File + struct */ +static void _prefetch_all_headers(OggVorbis_File *vf, ogg_int64_t dataoffset){ + ogg_page og={0,0,0,0}; + int i; + ogg_int64_t ret; + + vf->vi=_ogg_realloc(vf->vi,vf->links*sizeof(*vf->vi)); + vf->vc=_ogg_realloc(vf->vc,vf->links*sizeof(*vf->vc)); + vf->dataoffsets=_ogg_malloc(vf->links*sizeof(*vf->dataoffsets)); + vf->pcmlengths=_ogg_malloc(vf->links*2*sizeof(*vf->pcmlengths)); + + for(i=0;ilinks;i++){ + if(i==0){ + /* we already grabbed the initial header earlier. Just set the offset */ + vf->dataoffsets[i]=dataoffset; + _seek_helper(vf,dataoffset); + + }else{ + + /* seek to the location of the initial header */ + + _seek_helper(vf,vf->offsets[i]); + if(_fetch_headers(vf,vf->vi+i,vf->vc+i,NULL,NULL)<0){ + vf->dataoffsets[i]=-1; + }else{ + vf->dataoffsets[i]=vf->offset; + } + } + + /* fetch beginning PCM offset */ + + if(vf->dataoffsets[i]!=-1){ + ogg_int64_t accumulated=0,pos; + long lastblock=-1; + int result; + + ogg_stream_reset_serialno(vf->os,vf->serialnos[i]); + + while(1){ + ogg_packet op={0,0,0,0,0,0}; + + ret=_get_next_page(vf,&og,-1); + if(ret<0) + /* this should not be possible unless the file is + truncated/mangled */ + break; + + if(ogg_page_serialno(&og)!=vf->serialnos[i]) + break; + + pos=ogg_page_granulepos(&og); + + /* count blocksizes of all frames in the page */ + ogg_stream_pagein(vf->os,&og); + while((result=ogg_stream_packetout(vf->os,&op))){ + if(result>0){ /* ignore holes */ + long thisblock=vorbis_packet_blocksize(vf->vi+i,&op); + if(lastblock!=-1) + accumulated+=(lastblock+thisblock)>>2; + lastblock=thisblock; + } + } + ogg_packet_release(&op); + + if(pos!=-1){ + /* pcm offset of last packet on the first audio page */ + accumulated= pos-accumulated; + break; + } + } + + /* less than zero? This is a stream with samples trimmed off + the beginning, a normal occurrence; set the offset to zero */ + if(accumulated<0)accumulated=0; + + vf->pcmlengths[i*2]=accumulated; + } + + /* get the PCM length of this link. To do this, + get the last page of the stream */ + { + ogg_int64_t end=vf->offsets[i+1]; + _seek_helper(vf,end); + + while(1){ + ret=_get_prev_page(vf,&og); + if(ret<0){ + /* this should not be possible */ + vorbis_info_clear(vf->vi+i); + vorbis_comment_clear(vf->vc+i); + break; + } + if(ogg_page_granulepos(&og)!=-1){ + vf->pcmlengths[i*2+1]=ogg_page_granulepos(&og)-vf->pcmlengths[i*2]; + break; + } + vf->offset=ret; + } + } + } + ogg_page_release(&og); +} + +static void _make_decode_ready(OggVorbis_File *vf){ + if(vf->ready_state!=STREAMSET)return; + if(vf->seekable){ + vorbis_synthesis_init(&vf->vd,vf->vi+vf->current_link); + }else{ + vorbis_synthesis_init(&vf->vd,vf->vi); + } + vorbis_block_init(&vf->vd,&vf->vb); + vf->ready_state=INITSET; + vf->bittrack=0; + vf->samptrack=0; + return; +} + +static int _open_seekable2(OggVorbis_File *vf){ + ogg_uint32_t serialno=vf->current_serialno; + ogg_uint32_t tempserialno; + ogg_int64_t dataoffset=vf->offset, end; + ogg_page og={0,0,0,0}; + + /* we're partially open and have a first link header state in + storage in vf */ + /* we can seek, so set out learning all about this file */ + (vf->callbacks.seek_func)(vf->datasource,0,SEEK_END); + vf->offset=vf->end=(vf->callbacks.tell_func)(vf->datasource); + + /* We get the offset for the last page of the physical bitstream. + Most OggVorbis files will contain a single logical bitstream */ + end=_get_prev_page(vf,&og); + if(end<0)return(end); + + /* more than one logical bitstream? */ + tempserialno=ogg_page_serialno(&og); + ogg_page_release(&og); + + if(tempserialno!=serialno){ + + /* Chained bitstream. Bisect-search each logical bitstream + section. Do so based on serial number only */ + if(_bisect_forward_serialno(vf,0,0,end+1,serialno,0)<0)return(OV_EREAD); + + }else{ + + /* Only one logical bitstream */ + if(_bisect_forward_serialno(vf,0,end,end+1,serialno,0))return(OV_EREAD); + + } + + /* the initial header memory is referenced by vf after; don't free it */ + _prefetch_all_headers(vf,dataoffset); + return(ov_raw_seek(vf,0)); +} + +/* clear out the current logical bitstream decoder */ +static void _decode_clear(OggVorbis_File *vf){ + vorbis_dsp_clear(&vf->vd); + vorbis_block_clear(&vf->vb); + vf->ready_state=OPENED; +} + +/* fetch and process a packet. Handles the case where we're at a + bitstream boundary and dumps the decoding machine. If the decoding + machine is unloaded, it loads it. It also keeps pcm_offset up to + date (seek and read both use this. seek uses a special hack with + readp). + + return: <0) error, OV_HOLE (lost packet) or OV_EOF + 0) need more data (only if readp==0) + 1) got a packet +*/ + +static int _fetch_and_process_packet(OggVorbis_File *vf, + int readp, + int spanp){ + ogg_page og={0,0,0,0}; + ogg_packet op={0,0,0,0,0,0}; + int ret=0; + + /* handle one packet. Try to fetch it from current stream state */ + /* extract packets from page */ + while(1){ + + /* process a packet if we can. If the machine isn't loaded, + neither is a page */ + if(vf->ready_state==INITSET){ + while(1) { + int result=ogg_stream_packetout(vf->os,&op); + ogg_int64_t granulepos; + + if(result<0){ + ret=OV_HOLE; /* hole in the data. */ + goto cleanup; + } + if(result>0){ + /* got a packet. process it */ + granulepos=op.granulepos; + if(!vorbis_synthesis(&vf->vb,&op,1)){ /* lazy check for lazy + header handling. The + header packets aren't + audio, so if/when we + submit them, + vorbis_synthesis will + reject them */ + + /* suck in the synthesis data and track bitrate */ + { + int oldsamples=vorbis_synthesis_pcmout(&vf->vd,NULL); + /* for proper use of libvorbis within libvorbisfile, + oldsamples will always be zero. */ + if(oldsamples){ + ret=OV_EFAULT; + goto cleanup; + } + + vorbis_synthesis_blockin(&vf->vd,&vf->vb); + vf->samptrack+=vorbis_synthesis_pcmout(&vf->vd,NULL)-oldsamples; + vf->bittrack+=op.bytes*8; + } + + /* update the pcm offset. */ + if(granulepos!=-1 && !op.e_o_s){ + int link=(vf->seekable?vf->current_link:0); + int i,samples; + + /* this packet has a pcm_offset on it (the last packet + completed on a page carries the offset) After processing + (above), we know the pcm position of the *last* sample + ready to be returned. Find the offset of the *first* + + As an aside, this trick is inaccurate if we begin + reading anew right at the last page; the end-of-stream + granulepos declares the last frame in the stream, and the + last packet of the last page may be a partial frame. + So, we need a previous granulepos from an in-sequence page + to have a reference point. Thus the !op.e_o_s clause + above */ + + if(vf->seekable && link>0) + granulepos-=vf->pcmlengths[link*2]; + if(granulepos<0)granulepos=0; /* actually, this + shouldn't be possible + here unless the stream + is very broken */ + + samples=vorbis_synthesis_pcmout(&vf->vd,NULL); + + granulepos-=samples; + for(i=0;ipcmlengths[i*2+1]; + vf->pcm_offset=granulepos; + } + ret=1; + goto cleanup; + } + } + else + break; + } + } + + if(vf->ready_state>=OPENED){ + int ret; + if(!readp){ + ret=0; + goto cleanup; + } + if((ret=_get_next_page(vf,&og,-1))<0){ + ret=OV_EOF; /* eof. leave unitialized */ + goto cleanup; + } + + /* bitrate tracking; add the header's bytes here, the body bytes + are done by packet above */ + vf->bittrack+=og.header_len*8; + + /* has our decoding just traversed a bitstream boundary? */ + if(vf->ready_state==INITSET){ + if(vf->current_serialno!=ogg_page_serialno(&og)){ + if(!spanp){ + ret=OV_EOF; + goto cleanup; + } + + _decode_clear(vf); + + if(!vf->seekable){ + vorbis_info_clear(vf->vi); + vorbis_comment_clear(vf->vc); + } + } + } + } + + /* Do we need to load a new machine before submitting the page? */ + /* This is different in the seekable and non-seekable cases. + + In the seekable case, we already have all the header + information loaded and cached; we just initialize the machine + with it and continue on our merry way. + + In the non-seekable (streaming) case, we'll only be at a + boundary if we just left the previous logical bitstream and + we're now nominally at the header of the next bitstream + */ + + if(vf->ready_state!=INITSET){ + int link; + + if(vf->ready_stateseekable){ + vf->current_serialno=ogg_page_serialno(&og); + + /* match the serialno to bitstream section. We use this rather than + offset positions to avoid problems near logical bitstream + boundaries */ + for(link=0;linklinks;link++) + if(vf->serialnos[link]==vf->current_serialno)break; + if(link==vf->links){ + ret=OV_EBADLINK; /* sign of a bogus stream. error out, + leave machine uninitialized */ + goto cleanup; + } + + vf->current_link=link; + + ogg_stream_reset_serialno(vf->os,vf->current_serialno); + vf->ready_state=STREAMSET; + + }else{ + /* we're streaming */ + /* fetch the three header packets, build the info struct */ + + int ret=_fetch_headers(vf,vf->vi,vf->vc,&vf->current_serialno,&og); + if(ret) goto cleanup; + vf->current_link++; + link=0; + } + } + + _make_decode_ready(vf); + } + ogg_stream_pagein(vf->os,&og); + } + cleanup: + ogg_packet_release(&op); + ogg_page_release(&og); + return ret; +} + +/* if, eg, 64 bit stdio is configured by default, this will build with + fseek64 */ +static int _fseek64_wrap(FILE *f,ogg_int64_t off,int whence){ + if(f==NULL)return(-1); + return fseek(f,off,whence); +} + +static int _ov_open1(void *f,OggVorbis_File *vf,char *initial, + long ibytes, ov_callbacks callbacks){ + int offsettest=(f?callbacks.seek_func(f,0,SEEK_CUR):-1); + int ret; + + memset(vf,0,sizeof(*vf)); + vf->datasource=f; + vf->callbacks = callbacks; + + /* init the framing state */ + vf->oy=ogg_sync_create(); + + /* perhaps some data was previously read into a buffer for testing + against other stream types. Allow initialization from this + previously read data (as we may be reading from a non-seekable + stream) */ + if(initial){ + unsigned char *buffer=ogg_sync_bufferin(vf->oy,ibytes); + memcpy(buffer,initial,ibytes); + ogg_sync_wrote(vf->oy,ibytes); + } + + /* can we seek? Stevens suggests the seek test was portable */ + if(offsettest!=-1)vf->seekable=1; + + /* No seeking yet; Set up a 'single' (current) logical bitstream + entry for partial open */ + vf->links=1; + vf->vi=_ogg_calloc(vf->links,sizeof(*vf->vi)); + vf->vc=_ogg_calloc(vf->links,sizeof(*vf->vc)); + vf->os=ogg_stream_create(-1); /* fill in the serialno later */ + + /* Try to fetch the headers, maintaining all the storage */ + if((ret=_fetch_headers(vf,vf->vi,vf->vc,&vf->current_serialno,NULL))<0){ + vf->datasource=NULL; + ov_clear(vf); + }else if(vf->ready_state < PARTOPEN) + vf->ready_state=PARTOPEN; + return(ret); +} + +static int _ov_open2(OggVorbis_File *vf){ + if(vf->ready_state < OPENED) + vf->ready_state=OPENED; + if(vf->seekable){ + int ret=_open_seekable2(vf); + if(ret){ + vf->datasource=NULL; + ov_clear(vf); + } + return(ret); + } + return 0; +} + + +/* clear out the OggVorbis_File struct */ +int ov_clear(OggVorbis_File *vf){ + if(vf){ + vorbis_block_clear(&vf->vb); + vorbis_dsp_clear(&vf->vd); + ogg_stream_destroy(vf->os); + + if(vf->vi && vf->links){ + int i; + for(i=0;ilinks;i++){ + vorbis_info_clear(vf->vi+i); + vorbis_comment_clear(vf->vc+i); + } + _ogg_free(vf->vi); + _ogg_free(vf->vc); + } + if(vf->dataoffsets)_ogg_free(vf->dataoffsets); + if(vf->pcmlengths)_ogg_free(vf->pcmlengths); + if(vf->serialnos)_ogg_free(vf->serialnos); + if(vf->offsets)_ogg_free(vf->offsets); + ogg_sync_destroy(vf->oy); + + if(vf->datasource)(vf->callbacks.close_func)(vf->datasource); + memset(vf,0,sizeof(*vf)); + } +#ifdef DEBUG_LEAKS + _VDBG_dump(); +#endif + return(0); +} + +/* inspects the OggVorbis file and finds/documents all the logical + bitstreams contained in it. Tries to be tolerant of logical + bitstream sections that are truncated/woogie. + + return: -1) error + 0) OK +*/ + +int ov_open_callbacks(void *f,OggVorbis_File *vf,char *initial,long ibytes, + ov_callbacks callbacks){ + int ret=_ov_open1(f,vf,initial,ibytes,callbacks); + if(ret)return ret; + return _ov_open2(vf); +} + +int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes){ + ov_callbacks callbacks = { + (size_t (*)(void *, size_t, size_t, void *)) fread, + (int (*)(void *, ogg_int64_t, int)) _fseek64_wrap, + (int (*)(void *)) fclose, + (long (*)(void *)) ftell + }; + + return ov_open_callbacks((void *)f, vf, initial, ibytes, callbacks); +} + +/* Only partially open the vorbis file; test for Vorbisness, and load + the headers for the first chain. Do not seek (although test for + seekability). Use ov_test_open to finish opening the file, else + ov_clear to close/free it. Same return codes as open. */ + +int ov_test_callbacks(void *f,OggVorbis_File *vf,char *initial,long ibytes, + ov_callbacks callbacks) +{ + return _ov_open1(f,vf,initial,ibytes,callbacks); +} + +int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes){ + ov_callbacks callbacks = { + (size_t (*)(void *, size_t, size_t, void *)) fread, + (int (*)(void *, ogg_int64_t, int)) _fseek64_wrap, + (int (*)(void *)) fclose, + (long (*)(void *)) ftell + }; + + return ov_test_callbacks((void *)f, vf, initial, ibytes, callbacks); +} + +int ov_test_open(OggVorbis_File *vf){ + if(vf->ready_state!=PARTOPEN)return(OV_EINVAL); + return _ov_open2(vf); +} + +/* How many logical bitstreams in this physical bitstream? */ +long ov_streams(OggVorbis_File *vf){ + return vf->links; +} + +/* Is the FILE * associated with vf seekable? */ +long ov_seekable(OggVorbis_File *vf){ + return vf->seekable; +} + +/* returns the bitrate for a given logical bitstream or the entire + physical bitstream. If the file is open for random access, it will + find the *actual* average bitrate. If the file is streaming, it + returns the nominal bitrate (if set) else the average of the + upper/lower bounds (if set) else -1 (unset). + + If you want the actual bitrate field settings, get them from the + vorbis_info structs */ + +long ov_bitrate(OggVorbis_File *vf,int i){ + if(vf->ready_state=vf->links)return(OV_EINVAL); + if(!vf->seekable && i!=0)return(ov_bitrate(vf,0)); + if(i<0){ + ogg_int64_t bits=0; + int i; + for(i=0;ilinks;i++) + bits+=(vf->offsets[i+1]-vf->dataoffsets[i])*8; + /* This once read: return(rint(bits/ov_time_total(vf,-1))); + * gcc 3.x on x86 miscompiled this at optimisation level 2 and above, + * so this is slightly transformed to make it work. + */ + return(bits*1000/ov_time_total(vf,-1)); + }else{ + if(vf->seekable){ + /* return the actual bitrate */ + return((vf->offsets[i+1]-vf->dataoffsets[i])*8000/ov_time_total(vf,i)); + }else{ + /* return nominal if set */ + if(vf->vi[i].bitrate_nominal>0){ + return vf->vi[i].bitrate_nominal; + }else{ + if(vf->vi[i].bitrate_upper>0){ + if(vf->vi[i].bitrate_lower>0){ + return (vf->vi[i].bitrate_upper+vf->vi[i].bitrate_lower)/2; + }else{ + return vf->vi[i].bitrate_upper; + } + } + return(OV_FALSE); + } + } + } +} + +/* returns the actual bitrate since last call. returns -1 if no + additional data to offer since last call (or at beginning of stream), + EINVAL if stream is only partially open +*/ +long ov_bitrate_instant(OggVorbis_File *vf){ + int link=(vf->seekable?vf->current_link:0); + long ret; + if(vf->ready_statesamptrack==0)return(OV_FALSE); + ret=vf->bittrack/vf->samptrack*vf->vi[link].rate; + vf->bittrack=0; + vf->samptrack=0; + return(ret); +} + +/* Guess */ +long ov_serialnumber(OggVorbis_File *vf,int i){ + if(i>=vf->links)return(ov_serialnumber(vf,vf->links-1)); + if(!vf->seekable && i>=0)return(ov_serialnumber(vf,-1)); + if(i<0){ + return(vf->current_serialno); + }else{ + return(vf->serialnos[i]); + } +} + +/* returns: total raw (compressed) length of content if i==-1 + raw (compressed) length of that logical bitstream for i==0 to n + OV_EINVAL if the stream is not seekable (we can't know the length) + or if stream is only partially open +*/ +ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i){ + if(vf->ready_stateseekable || i>=vf->links)return(OV_EINVAL); + if(i<0){ + ogg_int64_t acc=0; + int i; + for(i=0;ilinks;i++) + acc+=ov_raw_total(vf,i); + return(acc); + }else{ + return(vf->offsets[i+1]-vf->offsets[i]); + } +} + +/* returns: total PCM length (samples) of content if i==-1 PCM length + (samples) of that logical bitstream for i==0 to n + OV_EINVAL if the stream is not seekable (we can't know the + length) or only partially open +*/ +ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i){ + if(vf->ready_stateseekable || i>=vf->links)return(OV_EINVAL); + if(i<0){ + ogg_int64_t acc=0; + int i; + for(i=0;ilinks;i++) + acc+=ov_pcm_total(vf,i); + return(acc); + }else{ + return(vf->pcmlengths[i*2+1]); + } +} + +/* returns: total milliseconds of content if i==-1 + milliseconds in that logical bitstream for i==0 to n + OV_EINVAL if the stream is not seekable (we can't know the + length) or only partially open +*/ +ogg_int64_t ov_time_total(OggVorbis_File *vf,int i){ + if(vf->ready_stateseekable || i>=vf->links)return(OV_EINVAL); + if(i<0){ + ogg_int64_t acc=0; + int i; + for(i=0;ilinks;i++) + acc+=ov_time_total(vf,i); + return(acc); + }else{ + return(((ogg_int64_t)vf->pcmlengths[i*2+1])*1000/vf->vi[i].rate); + } +} + +/* seek to an offset relative to the *compressed* data. This also + scans packets to update the PCM cursor. It will cross a logical + bitstream boundary, but only if it can't get any packets out of the + tail of the bitstream we seek to (so no surprises). + + returns zero on success, nonzero on failure */ + +int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ + ogg_stream_state *work_os=NULL; + ogg_page og={0,0,0,0}; + ogg_packet op={0,0,0,0,0,0}; + + if(vf->ready_stateseekable) + return(OV_ENOSEEK); /* don't dump machine if we can't seek */ + + if(pos<0 || pos>vf->end)return(OV_EINVAL); + + /* don't yet clear out decoding machine (if it's initialized), in + the case we're in the same link. Restart the decode lapping, and + let _fetch_and_process_packet deal with a potential bitstream + boundary */ + vf->pcm_offset=-1; + ogg_stream_reset_serialno(vf->os, + vf->current_serialno); /* must set serialno */ + vorbis_synthesis_restart(&vf->vd); + + _seek_helper(vf,pos); + + /* we need to make sure the pcm_offset is set, but we don't want to + advance the raw cursor past good packets just to get to the first + with a granulepos. That's not equivalent behavior to beginning + decoding as immediately after the seek position as possible. + + So, a hack. We use two stream states; a local scratch state and + the shared vf->os stream state. We use the local state to + scan, and the shared state as a buffer for later decode. + + Unfortuantely, on the last page we still advance to last packet + because the granulepos on the last page is not necessarily on a + packet boundary, and we need to make sure the granpos is + correct. + */ + + { + int lastblock=0; + int accblock=0; + int thisblock; + int eosflag=0; + + work_os=ogg_stream_create(vf->current_serialno); /* get the memory ready */ + while(1){ + if(vf->ready_state>=STREAMSET){ + /* snarf/scan a packet if we can */ + int result=ogg_stream_packetout(work_os,&op); + + if(result>0){ + + if(vf->vi[vf->current_link].codec_setup){ + thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op); + if(thisblock<0){ + ogg_stream_packetout(vf->os,NULL); + thisblock=0; + }else{ + + if(eosflag) + ogg_stream_packetout(vf->os,NULL); + else + if(lastblock)accblock+=(lastblock+thisblock)>>2; + } + + if(op.granulepos!=-1){ + int i,link=vf->current_link; + ogg_int64_t granulepos=op.granulepos-vf->pcmlengths[link*2]; + if(granulepos<0)granulepos=0; + + for(i=0;ipcmlengths[i*2+1]; + vf->pcm_offset=granulepos-accblock; + break; + } + lastblock=thisblock; + continue; + }else + ogg_stream_packetout(vf->os,NULL); + } + } + + if(!lastblock){ + if(_get_next_page(vf,&og,-1)<0){ + vf->pcm_offset=ov_pcm_total(vf,-1); + break; + } + }else{ + /* huh? Bogus stream with packets but no granulepos */ + vf->pcm_offset=-1; + break; + } + + /* has our decoding just traversed a bitstream boundary? */ + if(vf->ready_state>=STREAMSET) + if(vf->current_serialno!=ogg_page_serialno(&og)){ + _decode_clear(vf); /* clear out stream state */ + ogg_stream_destroy(work_os); + } + + if(vf->ready_statecurrent_serialno=ogg_page_serialno(&og); + for(link=0;linklinks;link++) + if(vf->serialnos[link]==vf->current_serialno)break; + if(link==vf->links) + goto seek_error; /* sign of a bogus stream. error out, + leave machine uninitialized */ + + vf->current_link=link; + + ogg_stream_reset_serialno(vf->os,vf->current_serialno); + ogg_stream_reset_serialno(work_os,vf->current_serialno); + vf->ready_state=STREAMSET; + + } + + { + ogg_page dup; + ogg_page_dup(&dup,&og); + eosflag=ogg_page_eos(&og); + ogg_stream_pagein(vf->os,&og); + ogg_stream_pagein(work_os,&dup); + } + } + } + + ogg_packet_release(&op); + ogg_page_release(&og); + ogg_stream_destroy(work_os); + vf->bittrack=0; + vf->samptrack=0; + return(0); + + seek_error: + ogg_packet_release(&op); + ogg_page_release(&og); + + /* dump the machine so we're in a known state */ + vf->pcm_offset=-1; + ogg_stream_destroy(work_os); + _decode_clear(vf); + return OV_EBADLINK; +} + +/* Page granularity seek (faster than sample granularity because we + don't do the last bit of decode to find a specific sample). + + Seek to the last [granule marked] page preceeding the specified pos + location, such that decoding past the returned point will quickly + arrive at the requested position. */ +int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ + int link=-1; + ogg_int64_t result=0; + ogg_int64_t total=ov_pcm_total(vf,-1); + ogg_page og={0,0,0,0}; + ogg_packet op={0,0,0,0,0,0}; + + if(vf->ready_stateseekable)return(OV_ENOSEEK); + if(pos<0 || pos>total)return(OV_EINVAL); + + /* which bitstream section does this pcm offset occur in? */ + for(link=vf->links-1;link>=0;link--){ + total-=vf->pcmlengths[link*2+1]; + if(pos>=total)break; + } + + /* search within the logical bitstream for the page with the highest + pcm_pos preceeding (or equal to) pos. There is a danger here; + missing pages or incorrect frame number information in the + bitstream could make our task impossible. Account for that (it + would be an error condition) */ + + /* new search algorithm by HB (Nicholas Vinen) */ + { + ogg_int64_t end=vf->offsets[link+1]; + ogg_int64_t begin=vf->offsets[link]; + ogg_int64_t begintime = vf->pcmlengths[link*2]; + ogg_int64_t endtime = vf->pcmlengths[link*2+1]+begintime; + ogg_int64_t target=pos-total+begintime; + ogg_int64_t best=begin; + + while(beginoffset); + if(result==OV_EREAD) goto seek_error; + if(result<0){ + if(bisect<=begin+1) + end=begin; /* found it */ + else{ + if(bisect==0) goto seek_error; + bisect-=CHUNKSIZE; + if(bisect<=begin)bisect=begin+1; + _seek_helper(vf,bisect); + } + }else{ + ogg_int64_t granulepos=ogg_page_granulepos(&og); + if(granulepos==-1)continue; + if(granuleposoffset; /* raw offset of next page */ + begintime=granulepos; + + if(target-begintime>44100)break; + bisect=begin; /* *not* begin + 1 */ + }else{ + if(bisect<=begin+1) + end=begin; /* found it */ + else{ + if(end==vf->offset){ /* we're pretty close - we'd be stuck in */ + end=result; + bisect-=CHUNKSIZE; /* an endless loop otherwise. */ + if(bisect<=begin)bisect=begin+1; + _seek_helper(vf,bisect); + }else{ + end=result; + endtime=granulepos; + break; + } + } + } + } + } + } + + /* found our page. seek to it, update pcm offset. Easier case than + raw_seek, don't keep packets preceeding granulepos. */ + { + + /* seek */ + _seek_helper(vf,best); + vf->pcm_offset=-1; + + if(_get_next_page(vf,&og,-1)<0){ + ogg_page_release(&og); + return(OV_EOF); /* shouldn't happen */ + } + + if(link!=vf->current_link){ + /* Different link; dump entire decode machine */ + _decode_clear(vf); + + vf->current_link=link; + vf->current_serialno=ogg_page_serialno(&og); + vf->ready_state=STREAMSET; + + }else{ + vorbis_synthesis_restart(&vf->vd); + } + + ogg_stream_reset_serialno(vf->os,vf->current_serialno); + ogg_stream_pagein(vf->os,&og); + + /* pull out all but last packet; the one with granulepos */ + while(1){ + result=ogg_stream_packetpeek(vf->os,&op); + if(result==0){ + /* !!! the packet finishing this page originated on a + preceeding page. Keep fetching previous pages until we + get one with a granulepos or without the 'continued' flag + set. Then just use raw_seek for simplicity. */ + + _seek_helper(vf,best); + + while(1){ + result=_get_prev_page(vf,&og); + if(result<0) goto seek_error; + if(ogg_page_granulepos(&og)>-1 || + !ogg_page_continued(&og)){ + return ov_raw_seek(vf,result); + } + vf->offset=result; + } + } + if(result<0){ + result = OV_EBADPACKET; + goto seek_error; + } + if(op.granulepos!=-1){ + vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; + if(vf->pcm_offset<0)vf->pcm_offset=0; + vf->pcm_offset+=total; + break; + }else + result=ogg_stream_packetout(vf->os,NULL); + } + } + } + + /* verify result */ + if(vf->pcm_offset>pos || pos>ov_pcm_total(vf,-1)){ + result=OV_EFAULT; + goto seek_error; + } + vf->bittrack=0; + vf->samptrack=0; + + ogg_page_release(&og); + ogg_packet_release(&op); + return(0); + + seek_error: + + ogg_page_release(&og); + ogg_packet_release(&op); + + /* dump machine so we're in a known state */ + vf->pcm_offset=-1; + _decode_clear(vf); + return (int)result; +} + +/* seek to a sample offset relative to the decompressed pcm stream + returns zero on success, nonzero on failure */ + +int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos){ + ogg_packet op={0,0,0,0,0,0}; + ogg_page og={0,0,0,0}; + int thisblock,lastblock=0; + int ret=ov_pcm_seek_page(vf,pos); + if(ret<0)return(ret); + _make_decode_ready(vf); + + /* discard leading packets we don't need for the lapping of the + position we want; don't decode them */ + + while(1){ + + int ret=ogg_stream_packetpeek(vf->os,&op); + if(ret>0){ + thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op); + if(thisblock<0){ + ogg_stream_packetout(vf->os,NULL); + continue; /* non audio packet */ + } + if(lastblock)vf->pcm_offset+=(lastblock+thisblock)>>2; + + if(vf->pcm_offset+((thisblock+ + vorbis_info_blocksize(vf->vi,1))>>2)>=pos)break; + + /* remove the packet from packet queue and track its granulepos */ + ogg_stream_packetout(vf->os,NULL); + vorbis_synthesis(&vf->vb,&op,0); /* set up a vb with + only tracking, no + pcm_decode */ + vorbis_synthesis_blockin(&vf->vd,&vf->vb); + + /* end of logical stream case is hard, especially with exact + length positioning. */ + + if(op.granulepos>-1){ + int i; + /* always believe the stream markers */ + vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; + if(vf->pcm_offset<0)vf->pcm_offset=0; + for(i=0;icurrent_link;i++) + vf->pcm_offset+=vf->pcmlengths[i*2+1]; + } + + lastblock=thisblock; + + }else{ + if(ret<0 && ret!=OV_HOLE)break; + + /* suck in a new page */ + if(_get_next_page(vf,&og,-1)<0)break; + if(vf->current_serialno!=ogg_page_serialno(&og))_decode_clear(vf); + + if(vf->ready_statecurrent_serialno=ogg_page_serialno(&og); + for(link=0;linklinks;link++) + if(vf->serialnos[link]==vf->current_serialno)break; + if(link==vf->links){ + ogg_page_release(&og); + ogg_packet_release(&op); + return(OV_EBADLINK); + } + vf->current_link=link; + + ogg_stream_reset_serialno(vf->os,vf->current_serialno); + vf->ready_state=STREAMSET; + _make_decode_ready(vf); + lastblock=0; + } + + ogg_stream_pagein(vf->os,&og); + } + } + + vf->bittrack=0; + vf->samptrack=0; + /* discard samples until we reach the desired position. Crossing a + logical bitstream boundary with abandon is OK. */ + while(vf->pcm_offsetpcm_offset; + long samples=vorbis_synthesis_pcmout(&vf->vd,NULL); + + if(samples>target)samples=target; + vorbis_synthesis_read(&vf->vd,samples); + vf->pcm_offset+=samples; + + if(samplespcm_offset=ov_pcm_total(vf,-1); /* eof */ + } + + ogg_page_release(&og); + ogg_packet_release(&op); + return 0; +} + +/* seek to a playback time relative to the decompressed pcm stream + returns zero on success, nonzero on failure */ +int ov_time_seek(OggVorbis_File *vf,ogg_int64_t milliseconds){ + /* translate time to PCM position and call ov_pcm_seek */ + + int link=-1; + ogg_int64_t pcm_total=ov_pcm_total(vf,-1); + ogg_int64_t time_total=ov_time_total(vf,-1); + + if(vf->ready_stateseekable)return(OV_ENOSEEK); + if(milliseconds<0 || milliseconds>time_total)return(OV_EINVAL); + + /* which bitstream section does this time offset occur in? */ + for(link=vf->links-1;link>=0;link--){ + pcm_total-=vf->pcmlengths[link*2+1]; + time_total-=ov_time_total(vf,link); + if(milliseconds>=time_total)break; + } + + /* enough information to convert time offset to pcm offset */ + { + ogg_int64_t target=pcm_total+(milliseconds-time_total)*vf->vi[link].rate/1000; + return(ov_pcm_seek(vf,target)); + } +} + +/* page-granularity version of ov_time_seek + returns zero on success, nonzero on failure */ +int ov_time_seek_page(OggVorbis_File *vf,ogg_int64_t milliseconds){ + /* translate time to PCM position and call ov_pcm_seek */ + + int link=-1; + ogg_int64_t pcm_total=ov_pcm_total(vf,-1); + ogg_int64_t time_total=ov_time_total(vf,-1); + + if(vf->ready_stateseekable)return(OV_ENOSEEK); + if(milliseconds<0 || milliseconds>time_total)return(OV_EINVAL); + + /* which bitstream section does this time offset occur in? */ + for(link=vf->links-1;link>=0;link--){ + pcm_total-=vf->pcmlengths[link*2+1]; + time_total-=ov_time_total(vf,link); + if(milliseconds>=time_total)break; + } + + /* enough information to convert time offset to pcm offset */ + { + ogg_int64_t target=pcm_total+(milliseconds-time_total)*vf->vi[link].rate/1000; + return(ov_pcm_seek_page(vf,target)); + } +} + +/* tell the current stream offset cursor. Note that seek followed by + tell will likely not give the set offset due to caching */ +ogg_int64_t ov_raw_tell(OggVorbis_File *vf){ + if(vf->ready_stateoffset); +} + +/* return PCM offset (sample) of next PCM sample to be read */ +ogg_int64_t ov_pcm_tell(OggVorbis_File *vf){ + if(vf->ready_statepcm_offset); +} + +/* return time offset (milliseconds) of next PCM sample to be read */ +ogg_int64_t ov_time_tell(OggVorbis_File *vf){ + int link=0; + ogg_int64_t pcm_total=0; + ogg_int64_t time_total=0; + + if(vf->ready_stateseekable){ + pcm_total=ov_pcm_total(vf,-1); + time_total=ov_time_total(vf,-1); + + /* which bitstream section does this time offset occur in? */ + for(link=vf->links-1;link>=0;link--){ + pcm_total-=vf->pcmlengths[link*2+1]; + time_total-=ov_time_total(vf,link); + if(vf->pcm_offset>=pcm_total)break; + } + } + + return(time_total+(1000*vf->pcm_offset-pcm_total)/vf->vi[link].rate); +} + +/* link: -1) return the vorbis_info struct for the bitstream section + currently being decoded + 0-n) to request information for a specific bitstream section + + In the case of a non-seekable bitstream, any call returns the + current bitstream. NULL in the case that the machine is not + initialized */ + +vorbis_info *ov_info(OggVorbis_File *vf,int link){ + if(vf->seekable){ + if(link<0) + if(vf->ready_state>=STREAMSET) + return vf->vi+vf->current_link; + else + return vf->vi; + else + if(link>=vf->links) + return NULL; + else + return vf->vi+link; + }else{ + return vf->vi; + } +} + +/* grr, strong typing, grr, no templates/inheritence, grr */ +vorbis_comment *ov_comment(OggVorbis_File *vf,int link){ + if(vf->seekable){ + if(link<0) + if(vf->ready_state>=STREAMSET) + return vf->vc+vf->current_link; + else + return vf->vc; + else + if(link>=vf->links) + return NULL; + else + return vf->vc+link; + }else{ + return vf->vc; + } +} + +/* up to this point, everything could more or less hide the multiple + logical bitstream nature of chaining from the toplevel application + if the toplevel application didn't particularly care. However, at + the point that we actually read audio back, the multiple-section + nature must surface: Multiple bitstream sections do not necessarily + have to have the same number of channels or sampling rate. + + ov_read returns the sequential logical bitstream number currently + being decoded along with the PCM data in order that the toplevel + application can take action on channel/sample rate changes. This + number will be incremented even for streamed (non-seekable) streams + (for seekable streams, it represents the actual logical bitstream + index within the physical bitstream. Note that the accessor + functions above are aware of this dichotomy). + + input values: buffer) a buffer to hold packed PCM data for return + length) the byte length requested to be placed into buffer + + return values: <0) error/hole in data (OV_HOLE), partial open (OV_EINVAL) + 0) EOF + n) number of bytes of PCM actually returned. The + below works on a packet-by-packet basis, so the + return length is not related to the 'length' passed + in, just guaranteed to fit. + + *section) set to the logical bitstream number */ + +long ov_read(OggVorbis_File *vf,char *buffer,int bytes_req,int *bitstream){ + int i,j; + + ogg_int32_t **pcm; + long samples; + + if(vf->ready_stateready_state==INITSET){ + samples=vorbis_synthesis_pcmout(&vf->vd,&pcm); + if(samples)break; + } + + /* suck in another packet */ + { + int ret=_fetch_and_process_packet(vf,1,1); + if(ret==OV_EOF) + return(0); + if(ret<=0) + return(ret); + } + + } + + if(samples>0){ + + /* yay! proceed to pack data into the byte buffer */ + + long channels=ov_info(vf,-1)->channels; + + if(samples>(bytes_req/(2*channels))) + samples=bytes_req/(2*channels); + + for(i=0;i>9); + dest+=channels; + } + } + + vorbis_synthesis_read(&vf->vd,samples); + vf->pcm_offset+=samples; + if(bitstream)*bitstream=vf->current_link; + return(samples*2*channels); + }else{ + return(samples); + } +} diff --git a/wolf3d/code/Tremor/window.c b/wolf3d/code/Tremor/window.c new file mode 100644 index 0000000..006a1ee --- /dev/null +++ b/wolf3d/code/Tremor/window.c @@ -0,0 +1,83 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * + * * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * + * * + ******************************************************************** + + function: window functions + + ********************************************************************/ + +#include +#include +#include "misc.h" +#include "window.h" +#include "window_lookup.h" + +const void *_vorbis_window(int type, int left){ + + switch(type){ + case 0: + + switch(left){ + case 32: + return vwin64; + case 64: + return vwin128; + case 128: + return vwin256; + case 256: + return vwin512; + case 512: + return vwin1024; + case 1024: + return vwin2048; + case 2048: + return vwin4096; + case 4096: + return vwin8192; + default: + return(0); + } + break; + default: + return(0); + } +} + +void _vorbis_apply_window(ogg_int32_t *d,const void *window_p[2], + long *blocksizes, + int lW,int W,int nW){ + + LOOKUP_T *window[2]={window_p[0],window_p[1]}; + long n=blocksizes[W]; + long ln=blocksizes[lW]; + long rn=blocksizes[nW]; + + long leftbegin=n/4-ln/4; + long leftend=leftbegin+ln/2; + + long rightbegin=n/2+n/4-rn/4; + long rightend=rightbegin+rn/2; + + int i,p; + + for(i=0;i + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * angle.h: Angle math routines. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +/* +----------------------------------------------------------------------------- + Function: angle_diff -Finds the difference between two angles. + + Parameters: angle1, angle2 -[in] Angles in Radians. + + Returns: + Returns the absolute difference between two angles, this will always + be between 0 and 180 degrees. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL float angle_diff( float angle1, float angle2 ) +{ + float d; + + if( angle1 > angle2 ) + { + d = angle1 - angle2; + } + else + { + d = angle2 - angle1; + } + + if( d > M_PI ) + { + return 2 * M_PI - d; + } + else + { + return d; + } +} + +/* +----------------------------------------------------------------------------- + Function: angle_wise -Clockwise distance between two angles. + + Parameters: angle1, angle2 -[in] Angles in Radians. + + Returns: + Returns the clockwise distance from angle2 to angle1, this may be + greater than 180 degrees. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL float angle_wise( float angle1, float angle2 ) +{ + if( angle1 > angle2 ) + { + return angle1 - angle2; + } + else + { + return angle1 + 2 * M_PI - angle2; + } +} + +/* +----------------------------------------------------------------------------- + Function: interpolate_angle -Linear interpolate between angle A and B by + fraction 'f'. + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL float interpolate_angle( float from, float to, float fraction ) +{ + float diff = angle_diff( from, to ) * fraction; + + if( angle_wise( to, from ) >= M_PI ) + { + return from - diff; + } + else + { + return from + diff; + } +} + +/* +----------------------------------------------------------------------------- + Function: normalize_angle - + + Parameters: + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL float normalize_angle( float angle ) +{ + while( angle < 0 ) + { + angle += (2 * M_PI); + } + + while( angle >= (2 * M_PI) ) + { + angle -= (2 * M_PI); + } + + return angle; +} + +/* +----------------------------------------------------------------------------- + Function: LerpAngle -Linear interpolate allowing for the Modulo 360 problem. + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL float LerpAngle( float from, float to, float frac ) +{ + if( to - from > 180 ) + { + to -= 360; + } + + if( to - from < -180 ) + { + to += 360; + } + + return from + frac * (to - from); +} diff --git a/wolf3d/code/env/angle.h b/wolf3d/code/env/angle.h new file mode 100644 index 0000000..500ac28 --- /dev/null +++ b/wolf3d/code/env/angle.h @@ -0,0 +1,53 @@ +/* + + Copyright (C) 2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * angle.h: Angle math routines. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#ifndef __ANGLE_H__ +#define __ANGLE_H__ + + +#define DEG2RAD( a ) ( (a) * 0.01745329251994329576f ) // a * M_PI / 180.0f +#define RAD2DEG( a ) ( (int)((a) / 0.01745329251994329576f) ) // a * 180.0f / M_PI + +#define ANGLE2SHORT( x ) ( (int)((x) * 65536 / 360) & 65535 ) +#define SHORT2ANGLE( x ) ( (x) * (360.0 / 65536) ) + + + +extern float angle_diff( float angle1, float angle2 ); +extern float angle_wise( float angle1, float angle2 ); +extern float interpolate_angle( float from, float to, float fraction ); +extern float normalize_angle( float angle ); +extern float LerpAngle( float from, float to, float frac ); + + + +#endif /* __ANGLE_H__ */ diff --git a/wolf3d/code/env/app_def.h b/wolf3d/code/env/app_def.h new file mode 100644 index 0000000..d74edb8 --- /dev/null +++ b/wolf3d/code/env/app_def.h @@ -0,0 +1,50 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * app_def.h: Engine interface to game layer. + * + */ + +#ifndef __APP_DEF__ +#define __APP_DEF__ + + + +#define WOLFENSTEIN3D 1 + + +#if WOLFENSTEIN3D + + #define APP_VERSION "0.01i" + + #define RELEASENAME "Nebka" + + #define BASEDIRNAME "base" + + + #define GAME_NAME "Wolfenstein 3-D Redux" + +#endif /* WOLFENSTEIN3D */ + + + +#endif /* __APP_DEF__ */ + diff --git a/wolf3d/code/env/arch.c b/wolf3d/code/env/arch.c new file mode 100644 index 0000000..9fb7aa0 --- /dev/null +++ b/wolf3d/code/env/arch.c @@ -0,0 +1,60 @@ +/* + + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * arch.c: Portable byte swapping. + * + * Author: Id Software, Inc. + * Date: 1997-2001 + * + */ + +#include "../wolfiphone.h" + + +/* +----------------------------------------------------------------------------- + Function: FloatSwap -Endian byte swapping on Float value. + + Parameters: f -[in] Float value to byte swap. + + Returns: Byte swapped float value. + + Notes: + +----------------------------------------------------------------------------- +*/ +INLINECALL float FloatSwap( float f ) +{ + union + { + float f; + W8 b[ 4 ]; + + } dat1, dat2; + + dat1.f = f; + dat2.b[ 0 ] = dat1.b[ 3 ]; + dat2.b[ 1 ] = dat1.b[ 2 ]; + dat2.b[ 2 ] = dat1.b[ 1 ]; + dat2.b[ 3 ] = dat1.b[ 0 ]; + + return dat2.f; +} diff --git a/wolf3d/code/env/arch.h b/wolf3d/code/env/arch.h new file mode 100644 index 0000000..73badb0 --- /dev/null +++ b/wolf3d/code/env/arch.h @@ -0,0 +1,273 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * arch.h: System dependant #defines and macros. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#ifndef __ARCH_H__ +#define __ARCH_H__ + + + +// Define BUILDSTRING and CPUSTRING based on platform +#ifdef _WIN32 + + #ifdef _DEBUG + + #define BUILDSTRING "Win32 DEBUG" + + #else + + #define BUILDSTRING "Win32 RELEASE" + + #endif + + + #ifdef _M_IX86 + + #define CPUSTRING "x86" + + #elif defined _M_ALPHA + + #define CPUSTRING "AXP" + + #else + + #define CPUSTRING "Unknown CPU" + + #endif + + +#elif defined __linux__ + + #define BUILDSTRING "Linux" + + #ifdef __i386__ + + #define CPUSTRING "i386" + + #elif defined __alpha__ + + #define CPUSTRING "AXP" + + #else + + #define CPUSTRING "Unknown CPU" + + #endif + + +#elif defined __FreeBSD__ + + #define BUILDSTRING "FreeBSD" + + #ifdef __i386__ + + #define CPUSTRING "i386" + + #else + + #define CPUSTRING "Unknown CPU" + + #endif + + +#elif defined __sun__ + + #define BUILDSTRING "Solaris" + + #ifdef __i386__ + + #define CPUSTRING "i386" + + #else + + #define CPUSTRING "sparc" + + #endif + + +#elif defined MACOS + + #define BUILDSTRING "MAC" + + #ifdef __powerpc__ + + #define CPUSTRING "PowerPC" + + #else + + #define CPUSTRING "Unknown CPU" + + #endif + + +#else + + #define BUILDSTRING "Unknown OS" + #define CPUSTRING "Unknown CPU" + +#endif /* if WIN32 else __linux__ else __FreeBSD__ else __sun__ else MACOS */ + + + + + +/* + correct numeric types: W8, SW8, W16, SW16, W32, SW32, W64, SW64 + correct misc types: void, float, _boolean + + s -signed + XX -Number of bits + +*/ +#if( __GNUC__ || __WATCOMC__ || _MSC_VER ) + + + typedef unsigned char W8, *PW8; + typedef signed char SW8, *PSW8; + typedef unsigned short W16, *PW16; + typedef signed short SW16, *PSW16; + typedef unsigned long W32, *PW32; + typedef signed long SW32, *PSW32; + + + + #if( __GNUC__ ) + + typedef unsigned long long W64, *PW64; + typedef long long SW64, *PSW64; + + #elif( _MSC_VER || __WATCOMC__ ) + + typedef unsigned __int64 W64, *PW64; + typedef __int64 SW64, *PSW64; + + #else + + #error "please define W64" + + #endif + +#else + + #error "Unknown compiler, please define basic types" + +#endif + + +/* Define NULL pointer value */ +#ifndef NULL + + #ifdef __cplusplus + #define NULL 0 + #else + #define NULL ((void *)0) + #endif + +#endif /* NULL */ + + + +/* Define INLINECALL keyword */ +#ifndef INLINECALL + + #if defined(__cplusplus) || defined(__GNUC__) + + #define INLINECALL inline + + #elif defined(_WIN32) && !defined(__WATCOMC__) + + #define INLINECALL __inline + + #else + + #define INLINECALL /* Not supported */ + + #endif + +#endif /* INLINECALL */ + + + + +typedef W8 colour3_t[ 3 ]; // RGB +typedef W8 colour4_t[ 4 ]; // RGBA +typedef W32 COLOURVAL, *PCOLOURVAL; // Represents a 32-bit colour value. + +#ifdef _WIN32 + + #define vsnprintf _vsnprintf + +#endif + + +typedef W8 _boolean; + +#define false 0 +#define true 1 + +//enum { false = 0, +// true = 1 }; + + + + +#define ShortSwap( x ) ( ( (((W16) (x)) & 0x00FF) << 8 ) | ( (((W16) (x))& 0xFF00) >> 8) ) +#define LongSwap( x ) ( ( ((W32) (x)) & 0xFF000000) >> 24 ) | ( ((( (W32) (x) ) & 0xFF0000) >> 8) ) | ( ((( (W32) (x) ) & 0xFF00) << 8 ) ) | ( (( (W32) (x) ) & 0xFF) << 24 ) + + + +#if defined( IPHONE) || defined(__i386__) || defined(_M_IX86) // Little endian + + #define BigShort( x ) ShortSwap( x ) + #define LittleShort( x ) ( x ) + + #define BigLong( x ) LongSwap( x ) + #define LittleLong( x ) ( x ) + + #define BigFloat( x ) FloatSwap( x ) + #define LittleFloat( x ) ( x ) + + +#else // Big endian + + #define BigShort( x ) ( x ) + #define LittleShort( x ) ShortSwap( x ) + + #define BigLong( x ) ( x ) + #define LittleLong( x ) LongSwap( x ) + + #define BigFloat( x ) ( x ) + #define LittleFloat( x ) FloatSwap( x ) + +#endif + + +#endif /* __ARCH_H__ */ diff --git a/wolf3d/code/env/cmd.c b/wolf3d/code/env/cmd.c new file mode 100644 index 0000000..b8644bd --- /dev/null +++ b/wolf3d/code/env/cmd.c @@ -0,0 +1,1195 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * cmd.c: Script command processing module. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + + + +//void Cmd_ForwardToServer( void ); + +#define MAX_ALIAS_NAME 32 + +typedef struct cmdalias_s +{ + struct cmdalias_s *next; + char name[ MAX_ALIAS_NAME ]; + W32 id; + char *value; + +} cmdalias_t; + +cmdalias_t *cmd_alias; + +_boolean cmd_wait; + +#define ALIAS_LOOP_COUNT 16 +int alias_count; // for detecting runaway loops + + +//============================================================================= + +/* +----------------------------------------------------------------------------- + Function: Cmd_Wait_f -Wait command. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + Causes execution of the remainder of the command buffer to be delayed until + next frame. This allows commands like: + bind g "impulse 5 ; +attack ; wait ; -attack ; impulse 2" + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cmd_Wait_f( void ) +{ + cmd_wait = true; +} + + +/* +============================================================================= + + COMMAND BUFFER + +============================================================================= +*/ + +PRIVATE sizebuf_t cmd_text; + +PRIVATE W8 cmd_text_buf[ 8192 ]; +PRIVATE W8 defer_text_buf[ 8192 ]; + + +/* +----------------------------------------------------------------------------- + Function: Cmd_Init -Allocates an initial text buffer that will grow as needed. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: This must be called before using command buffer. + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cbuf_Init( void ) +{ + SZ_Init( &cmd_text, cmd_text_buf, sizeof( cmd_text_buf ) ); +} + + +/* +----------------------------------------------------------------------------- + Function: Cbuf_AddText -Adds command text at the end of the buffer. + + Parameters: text -[in] Ponter to NUL-terminated string. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Cbuf_AddText( const char *text ) +{ + W32 length; + + length = strlen( text ); + + if( cmd_text.cursize + length >= cmd_text.maxsize ) + { + Com_Printf( "Cbuf_AddText: overflow\n" ); + return; + } + + SZ_Write( &cmd_text, (void *)text, length ); +} + +/* +----------------------------------------------------------------------------- + Function: Cbuf_InsertText -Adds command text immediately after the current + command. + + Parameters: text -[in] Command text to add to buffer. + + Returns: Nothing. + + Notes: + Adds a \n to the text + FIXME: actually change the command buffer to do less copying +----------------------------------------------------------------------------- +*/ +PUBLIC void Cbuf_InsertText( char *text ) +{ + char *temp; + size_t templen; + +// copy off any commands still remaining in the exec buffer + templen = cmd_text.cursize; + if( templen ) + { + temp = Z_Malloc( templen ); + memcpy( temp, cmd_text.data, templen ); + SZ_Clear( &cmd_text ); + } + else + { + temp = NULL; // shut up compiler + } + +// add the entire text of the file + Cbuf_AddText( text ); + +// add the copied off data + if( templen ) + { + SZ_Write( &cmd_text, temp, templen ); + Z_Free( temp ); + } +} + + +/* +----------------------------------------------------------------------------- + Function: Cbuf_CopyToDefer -Copy command buffer to defer buffer. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Cbuf_CopyToDefer( void ) +{ + memcpy( defer_text_buf, cmd_text_buf, cmd_text.cursize ); + defer_text_buf[ cmd_text.cursize ] = 0; + cmd_text.cursize = 0; +} + +/* +----------------------------------------------------------------------------- + Function: Cbuf_InsertFromDefer -Insert commands from defer buffer to command + buffer. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Cbuf_InsertFromDefer( void ) +{ + Cbuf_InsertText( (char *)defer_text_buf ); + defer_text_buf[ 0 ] = 0; +} + + +/* +----------------------------------------------------------------------------- + Function: Cbuf_ExecuteText -Execute string. + + Parameters: exec_when -[in] see execwhen_t definition. + text -[in] string with command to execute. + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Cbuf_ExecuteText( execwhen_t exec_when, char *text ) +{ + switch( exec_when ) + { + case EXEC_NOW: + Cmd_ExecuteString( text ); + break; + + case EXEC_INSERT: + Cbuf_InsertText( text ); + break; + + case EXEC_APPEND: + Cbuf_AddText( text ); + break; + + default: + Com_DPrintf( "Cbuf_ExecuteText: bad exec_when" ); + } +} + +/* +----------------------------------------------------------------------------- + Function: Cbuf_Execute -execute string from command buffer. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Cbuf_Execute( void ) +{ + int i; + char *text; + char line[ 1024 ]; + int quotes; + + alias_count = 0; // don't allow infinite alias loops + + while( cmd_text.cursize ) + { +// find a \n or ; line break + text = (char *)cmd_text.data; + + quotes = 0; + for( i = 0; i < cmd_text.cursize; ++i ) + { + if( text[ i ] == '"' ) + { + quotes++; + } + + if( !(quotes & 1) && text[ i ] == ';' ) + { + break; // don't break if inside a quoted string + } + + if( text[ i ] == '\n' || text[ i ] == '#' ) + { + break; // break on a newline or a hash mark + } + } + + + memcpy( line, text, i ); + line[ i ] = '\0'; // NUL-terminate string + +// delete the text from the command buffer and move remaining commands down +// this is necessary because commands (exec, alias) can insert data at the +// beginning of the text buffer + + if( i == cmd_text.cursize ) + { + cmd_text.cursize = 0; + } + else + { + i++; + cmd_text.cursize -= i; + memmove( text, text+i, cmd_text.cursize ); + } + +// execute the command line + Cmd_ExecuteString( line ); + + + if( cmd_wait ) + { + // skip out while text still remains in buffer, leaving it + // for next frame + cmd_wait = false; + break; + } + } +} + + + +/* +----------------------------------------------------------------------------- + Function: Cbuf_AddEarlyCommands -Adds command line parameters as script + statements. + + Parameters: clear -[in] Remove item from global array com_argv. + + Returns: Nothing. + + Notes: + Adds command line parameters as script statements + Commands lead with a +, and continue until another + + + Set commands are added early, so they are guaranteed to be set + before the client and server initialize for the first time. + + Other commands are added late, after all initialization is complete. +----------------------------------------------------------------------------- +*/ +PUBLIC void Cbuf_AddEarlyCommands( _boolean clear ) +{ + int i; + char *s; + + for( i = 0; i < COM_Argc(); ++i ) + { + s = COM_Argv( i ); + + if( strcmp( s, "+set" ) ) + continue; + + Cbuf_AddText( va("set %s %s\n", COM_Argv(i+1), COM_Argv(i+2))); + if( clear ) + { + COM_ClearArgv( i ); + COM_ClearArgv( i+1 ); + COM_ClearArgv( i+2 ); + } + i += 2; + } +} + +/* +----------------------------------------------------------------------------- + Function: Cbuf_AddLateCommands -Adds command line parameters as script + statements. + + Parameters: Nothing. + + Returns: true if any late commands were added, otherwise false. + + Notes: + Commands lead with a + and continue until another + or - + application.exe +map amlev1 + + Returns true if any late commands were added, which + will keep the demoloop from immediately starting +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean Cbuf_AddLateCommands( void ) +{ + int i, j; + int s; + char *text, *build, c; + int argc; + _boolean ret; + +// build the combined string to parse from + s = 0; + argc = COM_Argc(); + for( i = 1; i < argc; ++i ) + { + s += strlen( COM_Argv( i ) ) + 1; + } + + if( ! s ) + { + return false; + } + + text = Z_Malloc( s + 1 ); + text[ 0 ] = '\0'; // Start with a NUL-terminated string. + + for( i = 1; i < argc; ++i ) + { + my_strlcat( text, COM_Argv( i ), s ); + if( i != argc-1 ) + { + my_strlcat( text, " ", s ); + } + } + +// pull out the commands + build = Z_Malloc( s + 1 ); + build[ 0 ] = '\0'; // Start with a NUL-terminated string. + + for( i = 0; i < s-1; ++i ) + { + if( text[ i ] == '+' ) + { + i++; + + for( j = i ; (text[ j ] != '+') && (text[ j ] != '-') && (text[ j ] != 0) ; j++ ) + ; + + c = text[ j ]; + text[ j ] = 0; + + my_strlcat( build, text+i, s+1 ); + my_strlcat( build, "\n", s+1 ); + text[ j ] = c; + i = j - 1; + } + } + + ret = (build[ 0 ] != 0); + if( ret ) + { + Cbuf_AddText (build); + } + + Z_Free( text ); + Z_Free( build ); + + return ret; +} + + +/* +============================================================================== + + SCRIPT COMMANDS + +============================================================================== +*/ + + + +/* +----------------------------------------------------------------------------- + Function: Cmd_Exec_f -Execute script file. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: Console function, exec + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cmd_Exec_f( void ) +{ + filehandle_t *hfile; + char *f2; + int len; + + if( Cmd_Argc () != 2 ) + { + Com_Printf( "exec : execute a script file\n" ); + return; + } + + hfile = FS_OpenFile( Cmd_Argv( 1 ), FA_FILE_IPHONE_DOC_DIR ); + if( ! hfile ) + { + Com_Printf( "couldn't exec %s\n", Cmd_Argv( 1 ) ); + return; + } + + len = FS_GetFileSize( hfile ); + + Com_Printf( "execing %s\n", Cmd_Argv( 1 ) ); + + // the file doesn't have a trailing 0, so we need to copy it off + f2 = Z_Malloc( len + 1 ); + memcpy( f2, hfile->filedata, len ); + f2[ len ] = 0; + + printf( "%s", f2 ); // !@# + Cbuf_InsertText( f2 ); + + Z_Free( f2 ); + + FS_CloseFile( hfile ); +} + + +/* +----------------------------------------------------------------------------- + Function: Cmd_Echo_f -Prints the rest of the line to the console. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cmd_Echo_f( void ) +{ + int i; + + for( i = 1 ; i < Cmd_Argc() ; ++i ) + { + Com_Printf( "%s ",Cmd_Argv( i ) ); + } + + Com_Printf( "\n" ); +} + + +/* +----------------------------------------------------------------------------- + Function: Cmd_Alias_f -Creates a new command that executes a command + string (possibly ; seperated). + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cmd_Alias_f( void ) +{ + cmdalias_t *a; + char cmd[ 1024 ]; + int i, c; + char *s; + W32 hashid; + + if( Cmd_Argc() == 1 ) + { + Com_Printf( "Current alias commands:\n" ); + for( a = cmd_alias ; a ; a = a->next ) + { + Com_Printf( "%s : %s\n", a->name, a->value ); + } + return; + } + + s = Cmd_Argv( 1 ); + if( strlen( s ) >= MAX_ALIAS_NAME ) + { + Com_Printf( "Alias name is too long\n" ); + return; + } + + hashid = my_strhash( s ); + + // if the alias already exists, reuse it + for( a = cmd_alias ; a ; a = a->next ) + { + if( hashid == a->id ) + { + Z_Free( a->value ); + break; + } + } + + if( ! a ) + { + a = Z_Malloc( sizeof( cmdalias_t ) ); + a->next = cmd_alias; + cmd_alias = a; + } + my_strlcpy( a->name, s, sizeof( a->name ) ); + a->id = hashid; + +// copy the rest of the command line + cmd[ 0 ] = '\0'; // start out with a NUL-terminated string + c = Cmd_Argc(); + for( i = 2; i < c; ++i ) + { + my_strlcat( cmd, Cmd_Argv( i ), sizeof( cmd ) ); + if( i != (c - 1) ) + { + my_strlcat( cmd, " ", sizeof( cmd ) ); + } + } + my_strlcat( cmd, "\n", sizeof( cmd ) ); + + a->value = my_CopyString( cmd ); +} + +/* +============================================================================= + + COMMAND EXECUTION + +============================================================================= +*/ + +typedef struct cmd_function_s +{ + struct cmd_function_s *next; + char *name; + W32 id; + xcommand_t function; + +} cmd_function_t; + + +PRIVATE int cmd_argc; +PRIVATE char *cmd_argv[ MAX_STRING_TOKENS ]; +PRIVATE char *cmd_null_string = ""; +PRIVATE char cmd_args[ MAX_STRING_CHARS ]; + +PRIVATE cmd_function_t *cmd_functions; // possible commands to execute + +/* +----------------------------------------------------------------------------- + Function: Cmd_Argc -How many arguments are passed in. + + Parameters: Nothing. + + Returns: How many arguments are passed in. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC int Cmd_Argc( void ) +{ + return cmd_argc; +} + +/* +----------------------------------------------------------------------------- + Function: Cmd_Argv -Retrieve one argument. + + Parameters: arg -[in] Which argument to retrieve. + + Returns: NULL if outside argument index, otherwise returns the argument + string. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *Cmd_Argv( int arg ) +{ + if( arg >= cmd_argc ) + { + return cmd_null_string; + } + + return cmd_argv[ arg ]; +} + +/* +----------------------------------------------------------------------------- + Function: Cmd_Args -Retrieve all arguments. + + Parameters: Nothing. + + Returns: A single string containing argv(1) to argv(argc()-1) + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *Cmd_Args( void ) +{ + return cmd_args; +} + +/* +----------------------------------------------------------------------------- + Function: Cmd_MacroExpandString + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE char *Cmd_MacroExpandString( char *text ) +{ + int i, j, count, len; + _boolean inquote; + char *scan; + static char expanded[ MAX_STRING_CHARS ]; + char temporary[MAX_STRING_CHARS]; + char *token, *start; + + inquote = false; + scan = text; + + len = strlen( scan ); + if( len >= MAX_STRING_CHARS ) + { + Com_Printf( "Line exceeded %i chars, discarded.\n", MAX_STRING_CHARS ); + return NULL; + } + + count = 0; + + for( i = 0 ; i < len ; ++i ) + { + if (scan[i] == '"') + inquote ^= 1; + + if (inquote) + continue; // don't expand inside quotes + + if (scan[i] != '$') + continue; + + // scan out the complete macro + start = scan+i+1; + token = COM_Parse( &start ); + if (!start) + continue; + + token = Cvar_VariableString (token); + + j = strlen(token); + len += j; + if (len >= MAX_STRING_CHARS) + { + Com_Printf ("Expanded line exceeded %i chars, discarded.\n", MAX_STRING_CHARS); + return NULL; + } + + strncpy( temporary, scan, i ); + my_strlcpy( temporary+i, token, sizeof( temporary ) - i ); + my_strlcpy( temporary+i+j, start, sizeof( temporary ) - i - j ); + + my_strlcpy( expanded, temporary, sizeof( expanded ) ); + scan = expanded; + i--; + + if( ++count == 100 ) + { + Com_Printf( "Macro expansion loop, discarded.\n" ); + return NULL; + } + } + + if( inquote ) + { + Com_Printf( "Line has unmatched quote, discarded.\n" ); + return NULL; + } + + return scan; +} + + +/* +----------------------------------------------------------------------------- + Function: Cmd_TokenizeString -Parses the given string into command line tokens. + + Parameters: text -[in] string to tokenize. + macroExpand -[in] Expand macro, true for yes, otherwise false. + + Returns: Nothing + + Notes: + $Cvars will be expanded unless they are in a quoted token +----------------------------------------------------------------------------- +*/ +PUBLIC void Cmd_TokenizeString( char *text, _boolean macroExpand ) +{ + int i; + char *com_token; + +// clear the args from the last string + for( i = 0 ; i < cmd_argc ; ++i ) + { + Z_Free( cmd_argv[ i ] ); + } + + cmd_argc = 0; + cmd_args[ 0 ] = 0; + + // macro expand the text + if( macroExpand ) + { + text = Cmd_MacroExpandString( text ); + } + + if( ! text ) + { + return; + } + + while( 1 ) + { +// skip whitespace up to a /n + while( *text && *text <= ' ' && *text != '\n' ) + { + text++; + } + + if( *text == '\n' ) + { // a newline seperates commands in the buffer + text++; + break; + } + + if( ! *text ) + { + return; + } + + // set cmd_args to everything after the first arg + if( cmd_argc == 1 ) + { + int l; + + my_strlcpy( cmd_args, text, sizeof( cmd_args ) - 1 ); + + // strip off any trailing whitespace + l = strlen( cmd_args ) - 1; + for( ; l >= 0 ; --l ) + { + if (cmd_args[l] <= ' ') + { + cmd_args[l] = 0; + } + else + { + break; + } + } + } + + com_token = COM_Parse( &text ); + if( ! text ) + { + return; + } + + if( cmd_argc < MAX_STRING_TOKENS ) + { + cmd_argv[ cmd_argc ] = Z_Malloc( strlen( com_token ) + 1 ); + my_strlcpy( cmd_argv[ cmd_argc ], com_token, strlen( com_token ) + 1 ); + cmd_argc++; + } + } + +} + + +/* +----------------------------------------------------------------------------- + Function: Cmd_AddCommand -Add a command name and function to the cmd repository. + + Parameters: + cmd_name -[in] Pointer to a NUL-terminated string that constains a + command name. + function -[in] Function to associate with cmd_name. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Cmd_AddCommand( char *cmd_name, xcommand_t function ) +{ + cmd_function_t *cmd; + W32 hashid; + +// fail if the command is a variable name + if( Cvar_VariableString( cmd_name )[ 0 ] ) + { + Com_Printf( "Cmd_AddCommand: \"%s\" already defined as a var\n", cmd_name ); + return; + } + + hashid = my_strhash( cmd_name ); + +// fail if the command already exists + for( cmd = cmd_functions ; cmd ; cmd = cmd->next ) + { + if( hashid == cmd->id ) + { + Com_Printf( "Cmd_AddCommand: \"%s\" already defined\n", cmd_name ); + return; + } + } + + cmd = Z_Malloc( sizeof( cmd_function_t ) ); + cmd->name = cmd_name; + cmd->id = hashid; + cmd->function = function; + cmd->next = cmd_functions; + cmd_functions = cmd; + +} + +/* +----------------------------------------------------------------------------- + Function: Cmd_RemoveCommand -Remove command. + + Parameters: cmd_name -[in] name of command to remove. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Cmd_RemoveCommand( char *cmd_name ) +{ + cmd_function_t *cmd, **back; + W32 hashid; + + hashid = my_strhash( cmd_name ); + + back = &cmd_functions; + while( 1 ) + { + cmd = *back; + if( ! cmd ) + { + Com_DPrintf( "Cmd_RemoveCommand: %s was not added\n", cmd_name ); + return; + } + + if( hashid == cmd->id ) + { + *back = cmd->next; + Z_Free( cmd ); + return; + } + + back = &cmd->next; + } +} + +/* +----------------------------------------------------------------------------- + Function: Cmd_Exists -Check to see if command already exists. + + Parameters: cmd_name -[in] name of command to check. + + Returns: true if the command already exists, otherwise false. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean Cmd_Exists( char *cmd_name ) +{ + cmd_function_t *cmd; + W32 hashid = my_strhash( cmd_name ); + + for( cmd = cmd_functions ; cmd ; cmd = cmd->next ) + { + if( hashid == cmd->id ) + { + return true; + } + } + + return false; +} + + +/* +----------------------------------------------------------------------------- + Function: Cmd_CompleteCommand -Complete partial command on console + command-line. + + Parameters: partial -[in] Partial name of command. + + Returns: NULL if no command exists, otherwise returns the complete name of + command. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *Cmd_CompleteCommand( char *partial ) +{ + cmd_function_t *cmd; + int len; + cmdalias_t *a; + W32 hashid; + + len = strlen( partial ); + + if( ! len ) + { + return NULL; + } + + + +// +// Check for exact match. +// + hashid = my_strhash( partial ); + + for( cmd = cmd_functions ; cmd ; cmd = cmd->next ) + { + if( hashid == cmd->id ) + { + return cmd->name; + } + } + + for( a = cmd_alias ; a ; a = a->next ) + { + if( hashid == a->id ) + { + return a->name; + } + } + +// +// Check for partial match. +// + for( cmd = cmd_functions ; cmd ; cmd = cmd->next ) + { + if( ! strncmp( partial, cmd->name, len ) ) + { + return cmd->name; + } + } + + for( a = cmd_alias ; a ; a = a->next ) + { + if( ! strncmp( partial, a->name, len ) ) + { + return a->name; + } + } + + return NULL; +} + + +/* +----------------------------------------------------------------------------- + Function: Cmd_ExecuteString -Execute command string. + + Parameters: text -[in] text string to execute. + + Returns: Nothing. + + Notes: + A complete command line has been parsed, so try to execute it + FIXME: lookupnoadd the token to speed search? +----------------------------------------------------------------------------- +*/ +PUBLIC void Cmd_ExecuteString( char *text ) +{ + cmd_function_t *cmd; + cmdalias_t *a; + W32 hashid; + + Cmd_TokenizeString( text, true ); + + // execute the command line + if( ! Cmd_Argc() ) + { + return; // no tokens + } + + hashid = my_strhash( cmd_argv[ 0 ] ); + + // check functions + for( cmd = cmd_functions ; cmd ; cmd = cmd->next ) + { + if( hashid == cmd->id ) + { + if( ! cmd->function ) + { // forward to server command + Cmd_ExecuteString( va( "cmd %s", text ) ); + } + else + { + cmd->function(); + } + + return; + } + } + + // check alias + for( a = cmd_alias ; a ; a = a->next ) + { + if( ! my_stricmp( cmd_argv[ 0 ], a->name ) ) + { + if( ++alias_count == ALIAS_LOOP_COUNT ) + { + Com_Printf( "ALIAS_LOOP_COUNT\n" ); + return; + } + Cbuf_InsertText( a->value ); + return; + } + } + + // check cvars + if( Cvar_Command() ) + { + return; + } + + // send it as a server command if we are connected +// Cmd_ForwardToServer(); +} + +/* +----------------------------------------------------------------------------- + Function: Cmd_List_f -Callback function that list commands. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: List commands and total number of commands. +----------------------------------------------------------------------------- +*/ +PRIVATE void Cmd_List_f( void ) +{ + cmd_function_t *cmd; + int i = 0; + + for( cmd = cmd_functions; cmd; cmd = cmd->next, ++i ) + { + Com_Printf( "%s\n", cmd->name ); + } + + Com_Printf( "%i commands\n", i ); +} + +/* +----------------------------------------------------------------------------- + Function: Cmd_Init -Initialize the command buffer. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Cmd_Init( void ) +{ + Cbuf_Init(); + +// +// register our commands +// + Cmd_AddCommand( "listCmds", Cmd_List_f ); + Cmd_AddCommand( "exec", Cmd_Exec_f ); + Cmd_AddCommand( "echo", Cmd_Echo_f ); + Cmd_AddCommand( "alias", Cmd_Alias_f); + Cmd_AddCommand( "wait", Cmd_Wait_f ); +} + diff --git a/wolf3d/code/env/cmd.h b/wolf3d/code/env/cmd.h new file mode 100644 index 0000000..0bf5192 --- /dev/null +++ b/wolf3d/code/env/cmd.h @@ -0,0 +1,150 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * cmd.h: Command text buffering and command execution. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + + Notes: + + Any number of commands can be added in a frame, from several different sources. + Most commands come from either keybindings or console line input, but remote + servers can also send across commands and entire text files can be execed. + + The + command line options are also added to the command buffer. + + The game starts with a Cbuf_AddText( "exec DEFAULT.CFG\n" ); Cbuf_Execute(); + +*/ + +#ifndef __CMD_H__ +#define __CMD_H__ + +#include "arch.h" + + +typedef enum { + + EXEC_NOW, // don't return until completed + EXEC_INSERT, // insert at current position, but don't run yet + EXEC_APPEND // add to end of the command buffer + +} execwhen_t; + + +extern void Cbuf_AddText( const char *text ); +// as new commands are generated from the console or keybindings, +// the text is added to the end of the command buffer. + +extern void Cbuf_InsertText( char *text ); +// when a command wants to issue other commands immediately, the text is +// inserted at the beginning of the buffer, before any remaining unexecuted +// commands. + +extern void Cbuf_ExecuteText( execwhen_t exec_when, char *text ); +// this can be used in place of either Cbuf_AddText or Cbuf_InsertText + +extern void Cbuf_AddEarlyCommands( _boolean clear ); +// adds all the +set commands from the command line + +extern _boolean Cbuf_AddLateCommands( void ); +// adds all the remaining + commands from the command line +// Returns true if any late commands were added, which +// will keep the demoloop from immediately starting + +extern void Cbuf_Execute( void ); +// Pulls off \n terminated lines of text from the command buffer and sends +// them through Cmd_ExecuteString. Stops when the buffer is empty. +// Normally called once per frame, but may be explicitly invoked. +// Do not call inside a command function! + +extern void Cbuf_CopyToDefer( void ); +extern void Cbuf_InsertFromDefer( void ); +// These two functions are used to defer any pending commands while a map +// is being loaded + +//=========================================================================== + +#define MAX_STRING_CHARS 1024 // max length of a string passed to Cmd_TokenizeString +#define MAX_STRING_TOKENS 80 // max tokens resulting from Cmd_TokenizeString +#define MAX_TOKEN_CHARS 128 // max length of an individual token + +/* + +Command execution takes a NUL-terminated string, breaks it into tokens, +then searches for a command or variable that matches the first token. + +*/ + +typedef void (*xcommand_t) (void); + +extern void Cmd_Init( void ); + +extern void Cmd_AddCommand( char *cmd_name, xcommand_t function ); +// called by the init functions of other parts of the program to +// register commands and functions to call for them. +// The cmd_name is referenced later, so it should not be in temp memory +// if function is NULL, the command will be forwarded to the server +// as a clc_stringcmd instead of executed locally +extern void Cmd_RemoveCommand( char *cmd_name ); + +extern _boolean Cmd_Exists( char *cmd_name ); +// used by the cvar code to check for cvar / command name overlap + +extern char *Cmd_CompleteCommand( char *partial ); +// attempts to match a partial command for automatic command line completion +// returns NULL if nothing fits + +extern int Cmd_Argc( void ); +extern char *Cmd_Argv( int arg ); +extern char *Cmd_Args( void ); +// The functions that execute commands get their parameters with these +// functions. Cmd_Argv () will return an empty string, not a NULL +// if arg > argc, so string operations are always safe. + +extern void Cmd_TokenizeString( char *text, _boolean macroExpand ); +// Takes a NUL-terminated string. Does not need to be /n terminated. +// breaks the string up into arg tokens. + +extern void Cmd_ExecuteString( char *text ); +// Parses a single line of text into arguments and tries to execute it +// as if it was typed at the console + +//extern void Cmd_ForwardToServer( void ); +// adds the current command line as a clc_stringcmd to the client message. +// things like godmode, noclip, etc, are commands directed to the server, +// so when they are typed in at the console, they will need to be forwarded. + + + + + + +#endif /* __CMD_H__ */ diff --git a/wolf3d/code/env/com_string.c b/wolf3d/code/env/com_string.c new file mode 100644 index 0000000..400007e --- /dev/null +++ b/wolf3d/code/env/com_string.c @@ -0,0 +1,518 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1998 Todd C. Miller + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * com_string.c: Common string functions done in a portable manner. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + * Portion of this code was derived from code that was originally + * written by Todd C. Miller. + * + */ + +#include "../wolfiphone.h" + + + + + +/* +----------------------------------------------------------------------------- + Function: my_strlcpy -Copies a specified number of characters from a + source string into a buffer. + + Parameters: dest -[in/out] Pointer to a buffer into which the function + copies characters + source -[in] Pointer to a NUL-terminated string from which + the function copies characters. + nMaxLength -[in] Specifies the number of bytes to be copied + from the string pointed to by source into the + buffer pointed to by dest. + + Returns: Returns strlen( source ); if retval >= nMaxLength, truncation + occurred. + + Notes: + At most nMaxLength-1 characters will be copied. Always NUL- + terminates (unless nMaxLength == 0). +----------------------------------------------------------------------------- +*/ +PUBLIC size_t my_strlcpy( char *dest, const char *source, size_t nMaxLength ) +{ + char *d = dest; + const char *s = source; + size_t n = nMaxLength; + + /* Copy as many bytes as will fit */ + if( n != 0 && --n != 0 ) + { + do + { + if( (*d++ = *s++) == 0 ) + { + break; + } + + } while( --n != 0 ); + } + + /* Not enough room in dest, add NUL and traverse rest of source */ + if( n == 0 ) + { + if( nMaxLength != 0 ) + { + *d = '\0'; /* NUL-terminate dest */ + } + + while( *s++ ) + { + ; + } + } + + return( s - source - 1 ); /* count does not include NUL */ +} + +/* +----------------------------------------------------------------------------- + Function: my_strlcat -Appends one string to another. + + Parameters: dest -[in/out] Pointer to a NUL-terminated string. The buffer + must be large enough to contain both strings or else + truncation will occur. + source -[in] Pointer to a NUL-terminated string from which + the function copies characters. + nMaxLength -[in] full size of dest, not space left. + + Returns: Returns strlen( source ) + MIN( nMaxLength, strlen( initial dest ) ). + If retval >= nMaxLength, truncation occurred. + + Notes: + At most nMaxLength-1 characters will be copied. Always NUL- + terminates (unless nMaxLength <= strlen( dest ) ). +----------------------------------------------------------------------------- +*/ +PUBLIC size_t my_strlcat( char *dest, const char *source, size_t nMaxLength ) +{ + char *d = dest; + const char *s = source; + size_t n = nMaxLength; + size_t dlen; + + /* Find the end of dest and adjust bytes left but don't go past end */ + while( n-- != 0 && *d != '\0' ) + { + d++; + } + + dlen = d - dest; + n = nMaxLength - dlen; + + /* No room left to append string */ + if( n == 0 ) + { + return( dlen + strlen( s ) ); + } + + while( *s != '\0' ) + { + if( n != 1 ) + { + *d++ = *s; + n--; + } + s++; + } + *d = '\0'; /* NUL-terminate string */ + + return( dlen + (s - source) ); /* count does not include NUL */ + +} + + +/* +----------------------------------------------------------------------------- + Function: my_strnicmp -Compare characters of two strings without regard to case. + + Parameters: string1, string2 -[in] NUL-terminated strings to compare. + count -[in] Number of characters to compare. + + Returns: 0 string1 identical to string2, -1 otherwise. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC int my_strnicmp( const char *string1, const char *string2, size_t count ) +{ + char c1, c2; + + if( ! string1 || ! *string1 || + ! string2 || ! *string2 ) + { + return -1; + } + + do + { + c1 = *string1++; + c2 = *string2++; + + if( ! count-- ) + { + return 0; /* strings are equal until end point */ + } + + if( c1 != c2 ) + { + if( TOUPPER( c1 ) != TOUPPER( c2 ) ) /* Uppercase compare */ + { + return -1; /* strings are not equal */ + } + } + + } while( c1 ); + + return 0; /* strings are equal */ +} + +/* +----------------------------------------------------------------------------- + Function: my_stricmp -Perform an uppercase comparison of strings. + + Parameters: string1, string2 -[in] NUL-terminated strings to compare. + + Returns: 0 string1 identical to string2, -1 otherwise. + + Notes: + Calls my_strnicmp, where count is 99999 +----------------------------------------------------------------------------- +*/ +PUBLIC int my_stricmp( const char *string1, const char *string2 ) +{ + return my_strnicmp( string1, string2, 99999 ); +} + +/* +----------------------------------------------------------------------------- + Function: my_snprintf -Write formatted data to a string. + + Parameters: dest -[out] Storage location for output. + size -[in] Maximum number of characters to store. + format -[in] Format-control string. + ... -[in] Optional arguments. + + Returns: Nothing. + + Notes: If the format string is longer than 32768 truncation will occur. + Also, if format is longer than dest truncation will occur. +----------------------------------------------------------------------------- +*/ +PUBLIC void my_snprintf( char *dest, size_t size, const char *format, ... ) +{ + va_list argptr; + char bigbuffer[ 0x8000 ]; + + va_start( argptr, format ); + (void)vsnprintf( bigbuffer, sizeof( bigbuffer ), format, argptr ); + va_end( argptr ); + + bigbuffer[ sizeof( bigbuffer ) - 1 ] = '\0'; + + my_strlcpy( dest, bigbuffer, size ); +} + + +/* +----------------------------------------------------------------------------- + Function: my_CopyString -Allocate a duplicate copy of a string, and return + duplicate. + + Parameters: in -[in] String to duplicate. + + + Returns: + Pointer to duplicate string. Caller is responsible for freeing + memory with Z_Free. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC char *my_CopyString( const char *in ) +{ + char *out; + + out = Z_Malloc( strlen( in ) + 1 ); + my_strlcpy( out, in, strlen( in ) + 1 ); + + return out; +} + +/* +----------------------------------------------------------------------------- + Function: my_strhash -Create a hash id from string. + + Parameters: string -[in] NUL-terminated string. + + + Returns: Hash id. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC W32 my_strhash( const char *string ) +{ + W32 hash = *string; + + if( hash ) + { + for( string += 1; *string != '\0'; ++string ) + { + hash = (hash << 5) - hash + *string; + } + } + + return hash; +} + + +/* +----------------------------------------------------------------------------- + Function: my_strupr -Convert a string to uppercase. + + Parameters: string -[in/out] NUL-terminated string to capitalize. + + Returns: + This functions returns a pointer to the converted string. Because + the modification is done in place, the pointer returned is the same + as the pointer passed as the input argument. No return value is + reserved to indicate an error. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *my_strupr( char *string ) +{ + char *ptr; + + if( ! string || ! *string ) + { + return string; + } + + ptr = string; + + do + { + *ptr = TOUPPER( *ptr ); + + } while( *ptr++ ); + + + return string; +} + +/* +----------------------------------------------------------------------------- + Function: my_strlwr -Convert a string to lowercase. + + Parameters: string -[in/out] NUL-terminated string to convert to lowercase. + + Returns: + This functions returns a pointer to the converted string. Because + the modification is done in place, the pointer returned is the same + as the pointer passed as the input argument. No return value is + reserved to indicate an error. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *my_strlwr( char *string ) +{ + char *ptr; + + if( ! string || ! *string ) + { + return string; + } + + ptr = string; + + do + { + *ptr = TOLOWER( *ptr ); + + } while( *ptr++ ); + + + return string; +} + +/* +----------------------------------------------------------------------------- + Function: StringToInteger -Convert string to integer. + + Parameters: string -[in] NUL-terminated string to be converted. + error -[out] Error code. See header. + + Returns: An integer value. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC SW32 StringToInteger( const char *string, W32 *error ) +{ + const char *ptr = string; + SW32 temp; + SW32 number = 0; + W32 errortag = 0; + _boolean bNegative = false; + + if( ! string || ! *string ) + { + *error = SCE_NULL_VALUE; + + return 0; + } + + if( *ptr == '-' ) + { + bNegative = true; + + ptr++; + } + + while( *ptr && ISNUMERIC( *ptr ) ) + { + temp = number; + number = (number * 10) + *ptr - '0'; + + if( number < temp ) + { + errortag &= SCE_BUFFER_OVERFLOW; + } + + ptr++; + } + + if( *ptr ) + { + errortag &= SCE_NON_NUMERIC; + } + + + if( bNegative ) + { + number = -number; + } + + + *error = errortag; + + return number; +} + +/* +----------------------------------------------------------------------------- + Function: StringToFloat -Convert string to float. + + Parameters: string -[in] NUL-terminated string to be converted. + error -[out] Error code. See header. + + Returns: A float value. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC double StringToFloat( const char *string, W32 *error ) +{ + const char *ptr = string; + double number = 0; + SW32 exponent = 0; + W32 expError; + _boolean bNegative = false; + + *error = 0; + + if( ! string || ! *string ) + { + *error &= SCE_NULL_VALUE; + + return 0; + } + + if( *ptr == '-' ) + { + bNegative = true; + + ptr++; + } + else if( *ptr == '+' ) + { + ptr++; + } + + while( *ptr && ISNUMERIC( *ptr ) ) + { + number = (number * 10) + (double)(*ptr - '0'); + + ptr++; + } + + if( *ptr == '.' ) + { + ptr++; + + while( *ptr && ISNUMERIC( *ptr ) ) + { + number = (number * 10) + (double)(*ptr - '0'); + exponent--; + + ptr++; + } + } + + if( TOLOWER( *ptr ) == 'e' ) + { + ptr++; + + exponent += StringToInteger( ptr, &expError ); + } + + if( bNegative ) + { + number = -number; + } + + if( expError ) + { + *error |= expError; + } + + return (number * pow( 10, exponent )); +} diff --git a/wolf3d/code/env/com_string.h b/wolf3d/code/env/com_string.h new file mode 100644 index 0000000..ae510f8 --- /dev/null +++ b/wolf3d/code/env/com_string.h @@ -0,0 +1,87 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (c) 1998 Todd C. Miller + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * com_string.h: Common string functions done in a portable manner. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + * Portion of this code was derived from code that was originally + * written by Todd C. Miller. + * + */ + +/* + Notes: + This module is implemented by com_string.c. + +*/ + +#ifndef __COM_STRING_H__ +#define __COM_STRING_H__ + +#define ISSPACE( c ) ( ( c ) == ' ' || ( c ) == '\f' || ( c ) == '\n' || ( c ) == '\r' || ( c ) == '\t' || ( c ) == '\v' ) +#define ISUPPER( c ) ( ( c ) >= 'A' && ( c ) <= 'Z' ) +#define ISLOWER( c ) ( ( c ) >= 'a' && ( c ) <= 'z' ) +#define ISALPHA( c ) ( ISUPPER( c ) || ISLOWER( c ) ) +#define TOUPPER( c ) ( ISLOWER( c ) ? (c) - 'a' + 'A' : ( c ) ) +#define TOLOWER( c ) ( ISUPPER( c ) ? (c) - 'A' + 'a' : ( c ) ) + +#define ISNUMERIC( c ) ( ( c ) >= '0' && ( c ) <= '9' ) +#define ISALPHANUMERIC( c ) ( ISALPHA( c ) || ISNUMERIC( c ) ) + + + + +extern size_t my_strlcpy( char *dest, const char *source, size_t nMaxLength ); +extern size_t my_strlcat( char *dest, const char *source, size_t nMaxLength ); + + +extern int my_stricmp( const char *string1, const char *string2 ); +extern int my_strnicmp( const char *string1, const char *string2, size_t count ); + + +extern void my_snprintf( char *dest, size_t size, const char *format, ... ); + +extern char *my_CopyString( const char *in ); + +extern W32 my_strhash( const char *string ); + +extern char *my_strupr( char *string ); +extern char *my_strlwr( char *string ); + + +/* String conversion error */ +#define SCE_NON_NUMERIC (1 << 0) /* Non-numeric value was encountered */ +#define SCE_BUFFER_OVERFLOW (1 << 1) /* Numberic overflowed */ +#define SCE_NULL_VALUE (1 << 2) /* NULL string was passed into function */ + + +extern SW32 StringToInteger( const char *string, W32 *error ); +extern double StringToFloat( const char *string, W32 *error ); + + +#endif /* __COM_STRING_H__ */ diff --git a/wolf3d/code/env/common.c b/wolf3d/code/env/common.c new file mode 100644 index 0000000..1572967 --- /dev/null +++ b/wolf3d/code/env/common.c @@ -0,0 +1,593 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * common.c: Misc functions used in client and server. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + + +#define MAXPRINTMSG 4096 + +#define MAX_NUM_ARGVS 50 + + +colour3_t colourBlack = { 0, 0, 0 }; +colour3_t colourRed = { 255, 0, 0 }; +colour3_t colourGreen = { 0, 255, 0 }; +colour3_t colourBlue = { 0, 0, 255 }; +colour3_t colourWhite = { 255, 255, 255 }; + + +int com_argc; +char *com_argv[ MAX_NUM_ARGVS + 1 ]; + + +jmp_buf abortframe; // an ERR_DROP occured, exit the entire frame + + +FILE *log_stats_file; + +cvar_t *log_stats; +cvar_t *developer; +cvar_t *logfile_active; // 1 = buffer log, 2 = flush after each print + +FILE *logfile; + + +/* +============================================================================ + +CLIENT / SERVER interactions + +============================================================================ +*/ +static int rd_target; +static char *rd_buffer; +static int rd_buffersize; +static void (*rd_flush)( int target, char *buffer ); + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Com_BeginRedirect( int target, char *buffer, int buffersize, void (*flush) ) +{ + if( ! target || ! buffer || ! buffersize || ! flush ) + { + return; + } + + rd_target = target; + rd_buffer = buffer; + rd_buffersize = buffersize; + rd_flush = flush; + + *rd_buffer = 0; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Com_EndRedirect( void ) +{ + rd_flush( rd_target, rd_buffer ); + + rd_target = 0; + rd_buffer = NULL; + rd_buffersize = 0; + rd_flush = NULL; +} + +/* +----------------------------------------------------------------------------- + Function: Com_Printf -print out message. + + Parameters: + + Returns: Nothing. + + Notes: + Both client and server can use this, and it will output + to the apropriate place. +----------------------------------------------------------------------------- +*/ +PUBLIC void Com_Printf( const char *fmt, ... ) +{ + va_list argptr; + static char msg[ MAXPRINTMSG ]; + + va_start( argptr, fmt ); + (void)vsnprintf( msg, sizeof( msg ), fmt, argptr ); + va_end( argptr ); + + msg[ sizeof( msg ) - 1 ] = '\0'; + + if( rd_target ) + { + if( (strlen( msg ) + strlen( rd_buffer ) ) > (rd_buffersize - 1) ) + { + rd_flush( rd_target, rd_buffer ); + *rd_buffer = '\0'; + } + my_strlcat( rd_buffer, msg, rd_buffersize ); + return; + } + + Con_Print( msg ); +#ifdef _WIN32 + OutputDebugString( msg ); +#endif + + // also echo to debugging console +// Sys_ConsoleOutput( msg ); + + // logfile + if( logfile_active && logfile_active->value ) + { + char name[ MAX_GAMEPATH ]; + + if( ! logfile ) + { + my_snprintf( name, sizeof( name ), "%s/console.log", FS_Gamedir() ); + if( logfile_active->value > 2 ) + { + logfile = fopen( name, "a" ); + } + else + { + logfile = fopen( name, "w" ); + } + } + if( logfile ) + { + fprintf( logfile, "%s", msg ); + } + + if( logfile_active->value > 1 ) + { + fflush( logfile ); // force it to save every time + } + } +} + +/* +----------------------------------------------------------------------------- + Function: Com_DPrintf -A Com_Printf that only shows up if the "developer" + cvar is set + + Parameters: + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Com_DPrintf( const char *fmt, ... ) +{ + va_list argptr; + static char msg[ MAXPRINTMSG ]; + + if( ! developer || ! developer->value ) + { + return; // don't confuse non-developers with techie stuff... + } + + va_start( argptr, fmt ); + (void)vsnprintf( msg, sizeof( msg ), fmt, argptr ); + va_end( argptr ); + + msg[ sizeof( msg ) - 1 ] = '\0'; + + Com_Printf( "%s", msg ); +} + + +/* +----------------------------------------------------------------------------- + Function: Com_Error + + Parameters: + + Returns: + + Notes: + Both client and server can use this, and it will + do the apropriate things. +----------------------------------------------------------------------------- +*/ +PUBLIC void Com_Error( int code, const char *fmt, ... ) +{ + va_list argptr; + static char msg[ MAXPRINTMSG ]; + static _boolean recursive; + + if( recursive ) + { + Sys_Error( "recursive error after: %s", msg ); + } + + recursive = true; + + va_start (argptr,fmt); + (void)vsnprintf( msg, sizeof( msg ), fmt, argptr ); + va_end (argptr); + + msg[ sizeof( msg ) - 1 ] = '\0'; + + if( code == ERR_DISCONNECT ) + { + recursive = false; + longjmp (abortframe, -1); + } + else if( code == ERR_DROP ) + { + Com_Printf( "********************\nERROR: %s\n********************\n", msg ); + recursive = false; + longjmp( abortframe, -1 ); + } + else + { + } + + if( logfile ) + { + fclose( logfile ); + logfile = NULL; + } + + Sys_Error( "%s", msg ); +} + + + +//=========================================================================== + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void SZ_Init( sizebuf_t *buf, PW8 data, int length ) +{ + memset( buf, 0, sizeof( *buf ) ); + buf->data = data; + buf->maxsize = length; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void SZ_Clear( sizebuf_t *buf ) +{ + buf->cursize = 0; + buf->overflowed = false; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void *SZ_GetSpace( sizebuf_t *buf, int length ) +{ + void *data; + + if( buf->cursize + length > buf->maxsize ) + { + if( ! buf->allowoverflow ) + { + Com_Error( ERR_FATAL, "SZ_GetSpace: overflow without allowoverflow set" ); + } + + if( length > buf->maxsize ) + { + Com_Error( ERR_FATAL, "SZ_GetSpace: %i is > full buffer size", length ); + } + + Com_Printf( "SZ_GetSpace: overflow\n" ); + SZ_Clear( buf ); + buf->overflowed = true; + } + + data = buf->data + buf->cursize; + buf->cursize += length; + + return data; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void SZ_Write( sizebuf_t *buf, void *data, int length ) +{ + memcpy( SZ_GetSpace( buf, length ), data, length ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void SZ_Print( sizebuf_t *buf, W8 *data ) +{ + int len; + + len = strlen( (char *)data ) + 1; + + if (buf->cursize) + { + if( buf->data[ buf->cursize - 1 ] ) + { + memcpy( (PW8)SZ_GetSpace( buf, len ), data, len ); // no trailing 0 + } + else + { + memcpy( (PW8)SZ_GetSpace( buf, len - 1 ) - 1, data, len ); // write over trailing 0 + } + } + else + { + memcpy( (PW8)SZ_GetSpace( buf, len ),data,len ); + } +} + + +//============================================================================ + + +/* +----------------------------------------------------------------------------- + Function: COM_CheckParm + + Parameters: + + Returns: + The position (1 to argc-1) in the program's argument list + where the given parameter apears, or 0 if not present + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC int COM_CheckParm( char *parm ) +{ + int i; + + for( i = 1 ; i < com_argc ; ++i ) + { + if( ! strcmp( parm, com_argv[ i ] ) ) + { + return i; + } + } + + return 0; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC int COM_Argc (void) +{ + return com_argc; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *COM_Argv (int arg) +{ + if (arg < 0 || arg >= com_argc || !com_argv[arg]) + return ""; + return com_argv[arg]; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void COM_ClearArgv( int arg ) +{ + if (arg < 0 || arg >= com_argc || !com_argv[arg]) + { + return; + } + + com_argv[ arg ] = ""; +} + + +/* +----------------------------------------------------------------------------- + Function: COM_InitArgv -Set global argv values with commadline argv values. + + Parameters: + argc -[in] An integer specifying how many arguments are in argv[]. + argv -[in] An array of null-terminated strings. The last pointer + (argv[argc]) is NULL. + + Returns: Nothing. + + Notes: Sets global variables com_argc and com_argv. +----------------------------------------------------------------------------- +*/ +PUBLIC void COM_InitArgv( int argc, char *argv[] ) +{ + int i; + + if( argc > MAX_NUM_ARGVS ) + { + argc = MAX_NUM_ARGVS; + Com_DPrintf( "argc > MAX_NUM_ARGVS\n" ); + } + + com_argc = argc; + for( i = 0; i < argc; ++i ) + { + if( ! argv[ i ] || strlen( argv[ i ] ) >= MAX_TOKEN_CHARS ) + { + com_argv[ i ] = ""; + } + else + { + com_argv[ i ] = argv[ i ]; + } + } +} + + +/* +----------------------------------------------------------------------------- + Function: COM_AddParm -Adds the given string at the end of the current + argument list + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void COM_AddParm( char *parm ) +{ + if( com_argc == MAX_NUM_ARGVS ) + { + Com_Error( ERR_FATAL, "COM_AddParm: MAX_NUM_ARGS" ); + } + + com_argv[ com_argc++ ] = parm; +} + +/* +----------------------------------------------------------------------------- + Function: Com_Error_f -Just throw a fatal error to test error shutdown + procedures. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Com_Error_f (void) +{ + Com_Error( ERR_FATAL, "%s", Cmd_Argv( 1 ) ); +} + + diff --git a/wolf3d/code/env/common.h b/wolf3d/code/env/common.h new file mode 100644 index 0000000..ad0d486 --- /dev/null +++ b/wolf3d/code/env/common.h @@ -0,0 +1,207 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * common.h: Common definitions between client and server. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by common.c. + +*/ + + +#ifndef __COMMON_H__ +#define __COMMON_H__ + + +//============================================================================ + +typedef struct sizebuf_s +{ + _boolean allowoverflow; // if false, do a Com_Error + _boolean overflowed; // set to true if the buffer size failed + W8 *data; + int maxsize; + int cursize; + int readcount; + +} sizebuf_t; + +extern void SZ_Init( sizebuf_t *buf, PW8 data, int length ); +extern void SZ_Clear( sizebuf_t *buf ); +extern void *SZ_GetSpace( sizebuf_t *buf, int length ); +extern void SZ_Write( sizebuf_t *buf, void *data, int length ); +extern void SZ_Print( sizebuf_t *buf, W8 *data ); // memcpy onto the sizebuf + +//============================================================================ + + +extern int COM_Argc( void ); +extern char *COM_Argv( int arg ); // range and null checked +extern void COM_ClearArgv( int arg ); +extern int COM_CheckParm( char *parm ); +extern void COM_AddParm( char *parm ); + +extern void COM_Init( void ); +extern void COM_InitArgv( int argc, char *argv[] ); + + +extern char *COM_Parse( char **data_p ); +// data is an in/out parm, returns a parsed out token + + + +//============================================================================ + + + + +///////////////////////////////////////////////////////////////////// +// +// Colour +// +///////////////////////////////////////////////////////////////////// + +extern colour3_t colourBlack; +extern colour3_t colourRed; +extern colour3_t colourBlue; +extern colour3_t colourGreen; +extern colour3_t colourWhite; + + +///////////////////////////////////////////////////////////////////// +// End Colour +///////////////////////////////////////////////////////////////////// + + + + +/* +============================================================== + + MISC + +============================================================== +*/ + + +#define ERR_FATAL 0 // exit the entire game with a popup window +#define ERR_DROP 1 // print to console and disconnect from game +#define ERR_QUIT 2 // not an error, just a normal exit +#define ERR_DISCONNECT 4 // don't kill server + +#define EXEC_NOW 0 // don't return until completed +#define EXEC_INSERT 1 // insert at current position, but don't run yet +#define EXEC_APPEND 2 // add to end of the command buffer + +#define PRINT_ALL 0 +#define PRINT_DEVELOPER 1 // only print when "developer 1" + +extern void Com_BeginRedirect( int target, char *buffer, int buffersize, void (*flush) ); +extern void Com_EndRedirect( void ); +extern void Com_Printf( const char *fmt, ... ); +extern void Com_DPrintf( const char *fmt, ... ); +extern void Com_Error( int code, const char *fmt, ... ); + + +extern char *va( char *format, ... ); + + + +extern cvar_t *developer; +extern cvar_t *log_stats; +extern cvar_t *logfile_active; +extern FILE *log_stats_file; + + +extern void common_Init( int argc, char *argv[] ); +extern void common_Frame( int msec ); + + + + +/* +============================================================== + + NON-PORTABLE SYSTEM SERVICES + +============================================================== +*/ +extern char *Sys_ConsoleInput( void ); +extern void Sys_ConsoleOutput( const char *string ); +extern void Sys_SendKeyEvents( void ); +extern void Sys_Error( const char *format, ... ); +extern void Sys_Quit( void ); +extern char *Sys_GetClipboardData( void ); +extern void Sys_CopyProtect( void ); + + +/* +============================================================== + + CLIENT / SERVER SYSTEMS + +============================================================== +*/ +extern void Client_Init( void ); + + + + +// +// button bits +// +#define BUTTON_ATTACK 1 +#define BUTTON_USE 2 +#define BUTTON_CHANGE_WEAPON 4 +#define BUTTON_ANY 128 // any key whatsoever + + + + +// usercmd_t is sent to the server each client frame +typedef struct usercmd_s +{ + W8 msec; + W8 buttons; + short angles[ 3 ]; + short forwardmove, sidemove, upmove; + W8 impulse; // remove? + W8 lightlevel; // light level the player is standing on + +} usercmd_t; + + + + + + +#endif /* __COMMON_H__ */ + diff --git a/wolf3d/code/env/common_utils.h b/wolf3d/code/env/common_utils.h new file mode 100644 index 0000000..e53f68e --- /dev/null +++ b/wolf3d/code/env/common_utils.h @@ -0,0 +1,62 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * common_utils.h: General Purpose Macros. + * + * Author: Michael Liebscher + * + */ + +#ifndef __COMMON_UTILS_H__ +#define __COMMON_UTILS_H__ + + + +/* + Make sure the following macros are defined. +*/ + +#ifndef __FILE__ + + #define __FILE__ "" + +#endif + +#ifndef __LINE__ + + #define __LINE__ 0L + +#endif + + + +/* + These function prefixes are used for figuring out which + functions are exported and which are not. +*/ + +#define PUBLIC /* Accessible outside this module */ +#define PRIVATE static /* Accessible only within this module */ + + + +#endif /* __COMMON_UTILS_H__ */ + diff --git a/wolf3d/code/env/console.c b/wolf3d/code/env/console.c new file mode 100644 index 0000000..735ab86 --- /dev/null +++ b/wolf3d/code/env/console.c @@ -0,0 +1,811 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * console.c: Console drawing and management. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +extern viddef_t viddef; +extern int consoleActive; + + +console_t con; + +float scr_conlines; +float scr_con_current; + +cvar_t *con_notifytime; +cvar_t *scr_conspeed; + + +#define MAXCMDLINE 256 + +char key_lines[ 32 ][ MAXCMDLINE ]; +int edit_line; +int key_linepos; + + +colour3_t colourconLGray = { 220, 220, 220 }; +colour3_t colourconLLGray = { 192, 192, 192 }; + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void DrawString( int x, int y, char *s ) +{ + Font_put_line( FONT0, x, y, s ); +} + +/* +----------------------------------------------------------------------------- + Function: Key_ClearTyping -Clear any keys that where typed. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +void Key_ClearTyping( void ) +{ + key_lines[ edit_line ][ 1 ] = 0; // clear any typing + key_linepos = 1; +} + +/* +----------------------------------------------------------------------------- + Function: Con_ToggleConsole_f -Get ready to enter console. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Con_ToggleConsole_f( void ) +{ + Key_ClearTyping(); + Con_ClearNotify(); +} + +/* +----------------------------------------------------------------------------- + Function: Con_Clear_f -Clear console text buffer. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + Zero sets con.text memory block. +----------------------------------------------------------------------------- +*/ +PRIVATE void Con_Clear_f( void ) +{ + memset( con.text, ' ', CON_TEXTSIZE ); +} + + +/* +----------------------------------------------------------------------------- + Function: Con_Dump_f -Save the console contents out to a file. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Con_Dump_f( void ) +{ + int length, x; + char *line; + FILE *f; + char buffer[1024]; + char name[MAX_OSPATH]; + + if( Cmd_Argc() != 2 ) + { + Com_Printf( "usage: conDump \n" ); + return; + } + + my_snprintf( name, sizeof( name ), "%s/%s.txt", FS_Gamedir(), Cmd_Argv( 1 ) ); + + Com_Printf( "Dumped console text to %s.\n", name ); + FS_CreatePath( name ); + f = fopen( name, "w" ); + if( ! f ) + { + Com_Printf( "ERROR: couldn't open.\n" ); + return; + } + + // skip empty lines + for( length = con.current - con.totallines + 1; length <= con.current; ++length ) + { + line = con.text + (length % con.totallines) * con.linewidth; + for( x = 0; x < con.linewidth; ++x ) + { + if( line[ x ] != ' ' ) + { + break; + } + } + + if( x != con.linewidth ) + { + break; + } + } + + // write the remaining lines + buffer[ con.linewidth ] = '\0'; + for( ; length <= con.current ; ++length ) + { + line = con.text + (length % con.totallines) * con.linewidth; + my_strlcpy( buffer, line, con.linewidth ); + for( x = con.linewidth - 1; x >= 0; --x ) + { + if( buffer[ x ] == ' ' ) + { + buffer[ x ] = '\0'; // NUL-terminate string + } + else + { + break; + } + } + for( x = 0; buffer[ x ]; ++x ) + { + buffer[ x ] &= 0x7f; + } + + fprintf( f, "%s\n", buffer ); + } + + fclose( f ); +} + +/* +----------------------------------------------------------------------------- + Function: Con_ClearNotify -Clear console con.times. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Con_ClearNotify( void ) +{ + int i; + + for( i = 0; i < NUM_CON_TIMES; ++i ) + { + con.times[ i ] = 0; + } +} + + +/* +----------------------------------------------------------------------------- + Function: Con_CheckResize -If the line width has changed, reformat the buffer. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Con_CheckResize( void ) +{ + int i, j, width, oldwidth, oldtotallines, numlines, numchars; + char tbuf[ CON_TEXTSIZE ]; + + width = (viddef.width >> 3) - 2; + + if( width == con.linewidth ) + { + return; + } + + if( width < 1 ) // video hasn't been initialized yet + { + width = 38; + con.linewidth = width; + con.totallines = CON_TEXTSIZE / con.linewidth; + memset( con.text, ' ', CON_TEXTSIZE ); + } + else + { + oldwidth = con.linewidth; + con.linewidth = width; + oldtotallines = con.totallines; + con.totallines = CON_TEXTSIZE / con.linewidth; + numlines = oldtotallines; + + if( con.totallines < numlines ) + { + numlines = con.totallines; + } + + numchars = oldwidth; + + if( con.linewidth < numchars ) + { + numchars = con.linewidth; + } + + memcpy( tbuf, con.text, CON_TEXTSIZE ); + memset( con.text, ' ', CON_TEXTSIZE ); + + for( i = 0; i < numlines; ++i ) + { + for( j = 0; j < numchars; ++j ) + { + con.text[(con.totallines - 1 - i) * con.linewidth + j] = + tbuf[((con.current - i + oldtotallines) % + oldtotallines) * oldwidth + j]; + } + } + + Con_ClearNotify(); + } + + con.current = con.totallines - 1; + con.display = con.current; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Con_Init( void ) +{ + con.linewidth = -1; + + Con_CheckResize(); + + Com_Printf( "Console Initialized\n" ); + +// +// register our commands +// + con_notifytime = Cvar_Get( "con_notifytime", "90", CVAR_INIT ); + scr_conspeed = Cvar_Get( "scr_conspeed", "90", CVAR_INIT ); + + Cmd_AddCommand( "toggleconsole", Con_ToggleConsole_f ); + Cmd_AddCommand( "clear", Con_Clear_f ); + Cmd_AddCommand( "conDump", Con_Dump_f ); + + con.initialized = true; +} + +/* +----------------------------------------------------------------------------- + Function: Con_Linefeed -Fill rest of line with spaces. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Con_Linefeed( void ) +{ + con.x = 0; + if( con.display == con.current ) + { + con.display++; + } + con.current++; + memset( &con.text[ (con.current % con.totallines) * con.linewidth ] + , ' ', con.linewidth ); +} + +/* +----------------------------------------------------------------------------- + Function: Con_Print -Print formatted message to the console. + + Parameters: txt -[in] Text message to print + + Returns: Nothing. + + Notes: + Handles cursor positioning, line wrapping, etc + All console printing must go through this in order to be logged to disk + If no console is visible, the text will appear at the top of the game window +----------------------------------------------------------------------------- +*/ +PUBLIC void Con_Print( char *txt ) +{ + int y; + int c, wordlength; + static int cr; + int mask; + +#ifdef IPHONE + printf( "%s", txt ); +#endif + + if( ! con.initialized ) + { + return; + } + + if( txt[ 0 ] == 1 || txt[ 0 ] == 2 ) + { + mask = 128; // go to colored text + txt++; + } + else + { + mask = 0; + } + + + while( (c = *txt) ) + { + // count word length + for( wordlength = 0 ; wordlength < con.linewidth ; ++wordlength ) + { + if( txt[ wordlength ] <= ' ') + { + break; + } + } + + // word wrap + if( wordlength != con.linewidth && (con.x + wordlength > con.linewidth) ) + { + con.x = 0; + } + + txt++; + + if( cr ) + { + con.current--; + cr = false; + } + + + if( ! con.x ) + { + Con_Linefeed(); + // mark time for transparent overlay + if( con.current >= 0 ) + { + con.times[ con.current % NUM_CON_TIMES ] = iphoneFrameNum; + } + } + + switch( c ) + { + case '\n': + con.x = 0; + break; + + case '\r': + con.x = 0; + cr = 1; + break; + + default: // display character and advance + y = con.current % con.totallines; + con.text[ y * con.linewidth + con.x] = c | mask | con.ormask; + con.x++; + if( con.x >= con.linewidth ) + { + con.x = 0; + } + break; + } + + } +} + + +/* +----------------------------------------------------------------------------- + Function: Con_CenteredPrint -Print message that is centered on screen. + + Parameters: text -[in] Message string. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Con_CenteredPrint( const char *text ) +{ + int length; + char buffer[ 1024 ]; + + length = strlen( text ); + length = ( con.linewidth - length ) >> 1; + if( length < 0 ) + { + length = 0; + } + + memset( buffer, ' ', length ); + my_strlcpy( buffer + length, text, sizeof( buffer ) - length ); + my_strlcat( buffer, "\n", sizeof( buffer ) ); + Con_Print( buffer ); +} + + +/* +============================================================================== + + DRAWING + +============================================================================== +*/ + + +/* +----------------------------------------------------------------------------- + Function: Con_DrawInput -The input line scrolls horizontally if typing + goes beyond the right edge. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void Con_DrawInput( void ) +{ + int y; + int i; + char *text; + char buf[256]; + W16 heightfont, charwidth; + static char ccursor[ 2 ] = { ' ', '_' }; + + + heightfont = Font_GetSize( FONT0 ) + 4; + +#ifdef IPHONE + { + if ( consoleActive == 0 ) { + return; + } + strcpy( buf, SysIPhoneGetConsoleTextField() ); + key_linepos = strlen( buf ); + buf[key_linepos+1] = 0; + text = buf; + } +#else + if( ClientStatic.key_dest != key_console ) + { + return; // don't draw anything (always draw if not active) + } + + text = key_lines[ edit_line ]; +#endif + +// add the cursor frame + text[ key_linepos ] = ccursor[ 0 + ((int)( iphoneFrameNum >> 3 ) & 1 ) ]; + +// fill out remainder with spaces + for( i = key_linepos + 1 ; i < con.linewidth ; ++i ) + { + text[ i ] = ' '; + } + +// prestep if horizontally scrolling + if( key_linepos >= con.linewidth ) + { + text += 1 + key_linepos - con.linewidth; + } + +// draw it + y = con.vislines - heightfont; + + charwidth = 8; + for( i = 0 ; i < con.linewidth ; ++i ) + { + charwidth += Font_put_character( FONT0, charwidth, con.vislines - 22, text[ i ] ); + } + +// remove cursor + key_lines[ edit_line ][ key_linepos ] = 0; +} + +/* +----------------------------------------------------------------------------- + Function: Con_DrawNotify -Draws the last few lines of output transparently + over the game top. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Con_DrawNotify( void ) +{ + int x, v; + int charwidth; + char *text; + int i; + int time; +// char *s; +// int skip; + W16 size; + + + Font_SetSize( FONT1, 1 ); + size = Font_GetSize( FONT1 ); + + Font_SetColour( FONT1, colourWhite ); + + v = 0; + for( i = con.current - NUM_CON_TIMES+1 ; i <= con.current ; ++i ) + { + if( i < 0 ) + { + continue; + } + + time = FloatToInt( con.times[ i % NUM_CON_TIMES ] ); + if( time == 0 ) + { + continue; + } + + time = iphoneFrameNum- time; + if( time > con_notifytime->value ) + { + continue; + } + + text = con.text + (i % con.totallines) * con.linewidth; + + charwidth = 0; + for( x = 0 ; x < con.linewidth ; ++x ) + { + charwidth += Font_put_character( FONT1, charwidth, v, text[ x ] ); + } + + v += size; + } + + Font_SetSize( FONT1, 2 ); + +} + + +/* +----------------------------------------------------------------------------- + Function: Con_DrawConsole -Draws the console. + + Parameters: frac -[in] Fraction of the screen the console will take up. + Range is 0.0 to 1.0 + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Con_DrawConsole( float frac ) +{ + int i, x, y; + int rows; + char *text; + int row; + W32 lines; +// int w, h; + int heightfont, charwidth; + + lines = FloatToInt( viddef.height * frac ); + if( lines < 1 ) + { + return; + } + + + Font_SetSize( FONT0, 1 ); + Font_SetColour( FONT0, colourconLLGray ); + heightfont = Font_GetSize( FONT0 ); + + + + if( lines > viddef.height ) + { + lines = viddef.height; + } + +// +// Draw the background +// + R_Draw_Fill( 0, -viddef.height + lines, viddef.width, viddef.height, colourBlack ); + R_Draw_Fill( 0, lines-2, viddef.width, 2, colourconLGray ); + + Font_SetColour( FONT0, colourconLLGray ); + +// +// Draw the text +// + con.vislines = lines; + +#if 0 + + rows = (lines - 8) >> 3; // rows of text to draw + + y = lines - 24; + +#else + + rows = (lines - 22) >> 3; // rows of text to draw + + y = lines - 30; + +#endif + +// draw from the bottom up + if( con.display != con.current ) + { + // draw arrows to show the buffer is backscrolled + for( x = 0; x < con.linewidth; x += 4 ) + { + Font_put_character( FONT0, (x+1) << 3, y, '^' ); + } + + y -= heightfont; + rows--; + } + + row = con.display; + for( i = 0 ; i < rows ; ++i, y -= heightfont, --row ) + { + if( row < 0 ) + { + break; + } + + if( con.current - row >= con.totallines ) + { + break; // past scrollback wrap point + } + + text = con.text + (row % con.totallines) * con.linewidth; + + charwidth = 0; + for( x = 0; x < con.linewidth; ++x ) + { + charwidth += Font_put_character( FONT0, charwidth, y, text[ x ] ); + } + } + +// draw the input prompt, user text, and cursor if desired + Con_DrawInput(); + + Font_SetSize( FONT0, 2 ); +} + +/* + ----------------------------------------------------------------------------- + Function: Client_Screen_RunConsole -Figure out how the console should be + drawn. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + + ----------------------------------------------------------------------------- + */ +PUBLIC void Client_Screen_RunConsole( void ) +{ + if( scr_conlines < scr_con_current ) + { + scr_con_current -= scr_conspeed->value * iphoneFrameNum; + if( scr_conlines > scr_con_current ) + { + scr_con_current = scr_conlines; + } + + } + else if( scr_conlines > scr_con_current ) + { + scr_con_current += scr_conspeed->value * iphoneFrameNum; + if( scr_conlines < scr_con_current ) + { + scr_con_current = scr_conlines; + } + } + +} + +/* + ----------------------------------------------------------------------------- + Function: Client_Screen_DrawConsole -Draw the console on the screen. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + + ----------------------------------------------------------------------------- + */ +PUBLIC void Client_Screen_DrawConsole( void ) +{ + Con_CheckResize(); + + if( scr_con_current ) + { + Con_DrawConsole( scr_con_current ); + } + else + { + Con_DrawNotify(); + } +} + + + diff --git a/wolf3d/code/env/console.h b/wolf3d/code/env/console.h new file mode 100644 index 0000000..6134aaa --- /dev/null +++ b/wolf3d/code/env/console.h @@ -0,0 +1,86 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * console.h: Console drawing and management.. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by console.c. + +*/ + +#ifndef __CONSOLE_H__ +#define __CONSOLE_H__ + + +#define NUM_CON_TIMES 4 + +#define CON_TEXTSIZE 32768 + +typedef struct +{ + _boolean initialized; + + char text[CON_TEXTSIZE]; + int current; // line where next message will be printed + int x; // offset in current line for next print + int display; // bottom of console displays this line + + int ormask; // high bit mask for colored characters + + int linewidth; // characters across screen + int totallines; // total lines in console scrollback + + float cursorspeed; + + int vislines; + + float times[NUM_CON_TIMES]; // cls.realtime time the line was generated + // for transparent notify lines +} console_t; + +extern console_t con; + +extern void Con_DrawCharacter( int cx, int line, int num ); + +extern void Con_CheckResize( void ); +extern void Con_Init( void ); +extern void Con_DrawConsole( float frac ); +extern void Con_Print( char *txt ); +extern void Con_CenteredPrint( const char *text ); +extern void Con_DrawNotify( void ); +extern void Con_ClearNotify( void ); +extern void Con_ToggleConsole_f( void ); + +extern void Client_Screen_RunConsole( void ); +extern void Client_Screen_DrawConsole( void ); + +#endif /* __CONSOLE_H__ */ + diff --git a/wolf3d/code/env/cvar.c b/wolf3d/code/env/cvar.c new file mode 100644 index 0000000..da3125c --- /dev/null +++ b/wolf3d/code/env/cvar.c @@ -0,0 +1,765 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * cvar.c: Dynamic variable tracking. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + + +cvar_t *cvar_vars; + + +/* +----------------------------------------------------------------------------- + Function: Cvar_InfoValidate -String can not have / " ; + + Parameters: string -[in] String to validate. + + Returns: 1 if string is valid, otherwise 0; + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean Cvar_InfoValidate( const char *string ) +{ + if( strstr( string, "\\" ) ) + { + return false; + } + + if( strstr( string, "\"" ) ) + { + return false; + } + + if( strstr( string, ";" ) ) + { + return false; + } + + return true; +} + +/* +----------------------------------------------------------------------------- + Function: Cvar_FindVar -Return cvar; + + Parameters: var_name -[in] Name of cvar to lookup. + + Returns: NULL if cvar not found, otherwise returns the cvar. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE cvar_t *Cvar_FindVar( const char *var_name ) +{ + cvar_t *var; + W32 hashid; + + hashid = my_strhash( var_name ); + + for( var = cvar_vars ; var ; var = var->next ) + { + if( hashid == var->id ) + { + return var; + } + } + + return NULL; +} + +/* +----------------------------------------------------------------------------- + Function: Cvar_VariableValue -Get value of cvar. + + Parameters: var_name -[in] Name of cvar to get value. + + Returns: 0 if not found, other the value of the cvar. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC float Cvar_VariableValue( const char *var_name ) +{ + cvar_t *var; + + var = Cvar_FindVar( var_name ); + if( ! var ) + { + return 0; + } + + return (float)atof( var->string ); +} + + +/* +----------------------------------------------------------------------------- + Function: Cvar_VariableString -Get cvar variable as string. + + Parameters: var_name -[in] Name of cvar to get value. + + Returns: Blank string on error, otherwise value string. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *Cvar_VariableString( const char *var_name ) +{ + cvar_t *var; + + var = Cvar_FindVar( var_name ); + if( ! var ) + { + return ""; + } + + return var->string; +} + +/* +----------------------------------------------------------------------------- + Function: Cvar_CompleteVariable -Complete cvar string name. + + Parameters: partial -[in] Partial name of string to look up. + + Returns: NULL if partial string not found, otherwise the complete + string name. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *Cvar_CompleteVariable( const char *partial ) +{ + cvar_t *cvar; + size_t len; + W32 hashid; + + len = strlen( partial ); + + if( ! len ) + { + return NULL; + } + +// +// Check exact match. +// + hashid = my_strhash( partial ); + + for( cvar = cvar_vars ; cvar ; cvar = cvar->next ) + { + if( hashid == cvar->id ) + { + return cvar->name; + } + } + +// +// Check partial match. +// + for( cvar = cvar_vars ; cvar ; cvar = cvar->next ) + { + if( ! strncmp( partial, cvar->name, len ) ) + { + return cvar->name; + } + } + + return NULL; +} + +/* +----------------------------------------------------------------------------- + Function: Cvar_Get -Get cvar structure. + + Parameters: + var_name -[in] the name of the cvar variable. + var_value -[in] string value of the cvar variable. + flags -[in] see CVARFlags for more information. + + Returns: NULL on error, otherwise valid pointer to cvar_t structure. + + Notes: + If the variable already exists, the value will not be set and + the flags will be or'ed. +----------------------------------------------------------------------------- +*/ +PUBLIC cvar_t *Cvar_Get( const char *var_name, const char *var_value, CVARFlags flags ) +{ + cvar_t *var; + + if( flags & (CVAR_USERINFO | CVAR_SERVERINFO) ) + { + if( ! Cvar_InfoValidate( var_name ) ) + { + Com_Printf( "invalid info cvar name\n" ); + return NULL; + } + } + + var = Cvar_FindVar( var_name ); + if( var ) + { + var->flags |= flags; + return var; + } + + if( ! var_value ) + { + return NULL; + } + + if( flags & (CVAR_USERINFO | CVAR_SERVERINFO) ) + { + if( ! Cvar_InfoValidate( var_value ) ) + { + Com_Printf( "invalid info cvar value\n" ); + return NULL; + } + } + + var = Z_Malloc( sizeof( *var ) ); + var->name = my_CopyString( var_name ); + var->string = my_CopyString( var_value ); + var->id = my_strhash( var_name ); + var->modified = true; + var->value = (float)atof( var->string ); + + // link the variable in + var->next = cvar_vars; + cvar_vars = var; + + var->flags = flags; + + return var; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE cvar_t *Cvar_Set2( const char *var_name, const char *value, _boolean force ) +{ + cvar_t *var; + + var = Cvar_FindVar( var_name ); + if( ! var ) + { // create it + return Cvar_Get( var_name, value, CVAR_INIT ); + } + + if( var->flags & (CVAR_USERINFO | CVAR_SERVERINFO) ) + { + if( ! Cvar_InfoValidate( value ) ) + { + Com_Printf( "invalid info cvar value\n" ); + return var; + } + } + + if( ! force ) + { + if( var->flags & CVAR_NOSET ) + { + Com_Printf( "%s is write protected.\n", var_name ); + return var; + } + + if( var->flags & CVAR_LATCH ) + { + if( var->latched_string ) + { + if( strcmp( value, var->latched_string ) == 0 ) + { + return var; + } + + Z_Free( var->latched_string ); + } + else + { + if( strcmp( value, var->string ) == 0 ) + { + return var; + } + } + return var; + } + } + else + { + if( var->latched_string ) + { + Z_Free( var->latched_string ); + var->latched_string = NULL; + } + } + + if( ! strcmp( value, var->string ) ) + { + return var; // not changed + } + + var->modified = true; + + if( var->flags & CVAR_USERINFO ) + { + userinfo_modified = true; // transmit at next oportunity + } + + Z_Free( var->string ); // free the old value string + + var->string = my_CopyString( value ); + var->value = (float)atof( var->string ); + + return var; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC cvar_t *Cvar_ForceSet( const char *var_name, const char *value ) +{ + return Cvar_Set2( var_name, value, true ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC cvar_t *Cvar_Set( const char *var_name, const char *value ) +{ + return Cvar_Set2( var_name, value, false ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC cvar_t *Cvar_FullSet( const char *var_name, const char *value, CVARFlags flags ) +{ + cvar_t *var; + + var = Cvar_FindVar( var_name ); + if( ! var ) + { // create it + return Cvar_Get( var_name, value, flags ); + } + + var->modified = true; + + if( var->flags & CVAR_USERINFO ) + { + userinfo_modified = true; // transmit at next oportunity + } + + Z_Free( var->string ); // free the old value string + + var->string = my_CopyString( value ); + var->value = (float)atof( var->string ); + var->flags = flags; + + return var; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Cvar_SetValue( const char *var_name, float value ) +{ + char val[ 32 ]; + + if( value == (int)value ) + { + my_snprintf( val, sizeof( val ), "%i", (int)value ); + } + else + { + my_snprintf( val, sizeof( val ), "%f", value ); + } + + Cvar_Set( var_name, val ); +} + +/* +----------------------------------------------------------------------------- + Function: Cvar_GetLatchedVars -Any variables with latched values will now + be updated + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Cvar_GetLatchedVars( void ) +{ + cvar_t *var; + + for( var = cvar_vars ; var ; var = var->next ) + { + if( ! var->latched_string ) + { + continue; + } + + Z_Free( var->string ); + var->string = var->latched_string; + var->latched_string = NULL; + var->value = (float)atof(var->string); + } +} + + +/* +----------------------------------------------------------------------------- + Function: Cvar_Command -Handles variable inspection and changing from + the console. + + Parameters: Nothing. + + Returns: false if variable not found, otherwise true. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean Cvar_Command( void ) +{ + cvar_t *v; + +// check variables + v = Cvar_FindVar( Cmd_Argv( 0 ) ); + if( ! v ) + { + return false; + } + +// perform a variable print or set + if( Cmd_Argc() == 1 ) + { + Com_Printf( "\"%s\" is \"%s\"\n", v->name, v->string ); + return true; + } + + Cvar_Set( v->name, Cmd_Argv( 1 ) ); + return true; +} + +/* +----------------------------------------------------------------------------- + Function: Cvar_Set_f -Allows setting and defining of arbitrary cvars from console. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cvar_Set_f( void ) +{ + int c; + int flags; + + c = Cmd_Argc(); + if( c != 3 && c != 4 ) + { + Com_Printf( "usage: set [u / s]\n" ); + return; + } + + if( c == 4 ) + { + if( ! strcmp( Cmd_Argv( 3 ), "u" ) ) + { + flags = CVAR_USERINFO; + } + else if( ! strcmp( Cmd_Argv( 3 ), "s" ) ) + { + flags = CVAR_SERVERINFO; + } + else + { + Com_Printf( "flags can only be 'u' or 's'\n" ); + return; + } + Cvar_FullSet( Cmd_Argv( 1 ), Cmd_Argv( 2 ), flags ); + } + else + { + Cvar_Set( Cmd_Argv( 1 ), Cmd_Argv( 2 ) ); + } +} + + +/* +----------------------------------------------------------------------------- + Function: Cvar_WriteVariables -Appends lines containing "set variable value" + for all variables with the archive flag set + to true. + + Parameters: + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Cvar_WriteVariables( const char *path ) +{ + cvar_t *var; + char buffer[1024]; + FILE *f; + + f = fopen( path, "a" ); + for( var = cvar_vars ; var ; var = var->next ) + { + if( var->flags & CVAR_ARCHIVE ) + { + my_snprintf( buffer, sizeof( buffer ), "set %s \"%s\"\n", var->name, var->string ); + fprintf( f, "%s", buffer ); + } + } + fclose( f ); +} + +/* +----------------------------------------------------------------------------- + Function: Cvar_List_f -Print all cvars to the console. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cvar_List_f( void ) +{ + cvar_t *var; + int i; + + i = 0; + for( var = cvar_vars ; var ; var = var->next, ++i ) + { + if( var->flags & CVAR_ARCHIVE ) + { + Com_Printf ("*"); + } + else + { + Com_Printf (" "); + } + + + if( var->flags & CVAR_USERINFO ) + { + Com_Printf ("U"); + } + else + { + Com_Printf (" "); + } + + + if (var->flags & CVAR_SERVERINFO) + { + Com_Printf ("S"); + } + else + { + Com_Printf (" "); + } + + + if( var->flags & CVAR_NOSET ) + { + Com_Printf ("-"); + } + else if (var->flags & CVAR_LATCH) + { + Com_Printf ("L"); + } + else + { + Com_Printf (" "); + } + + Com_Printf (" %s \"%s\"\n", var->name, var->string); + } + + Com_Printf ("%i cvars\n", i); +} + + +PUBLIC _boolean userinfo_modified; + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE char *Cvar_BitInfo( int bit ) +{ + return NULL; +/* static char info[ MAX_INFO_STRING ]; + cvar_t *var; + + info[0] = 0; + + for (var = cvar_vars ; var ; var = var->next) + { + if (var->flags & bit) + Info_SetValueForKey (info, var->name, var->string); + } + return info; +*/ +} + + +/* +----------------------------------------------------------------------------- + Function: Cvar_Userinfo -Get CVAR_USERINFO cvars in a string. + + Parameters: Nothing. + + Returns: An info string containing all the CVAR_USERINFO cvars. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *Cvar_Userinfo( void ) +{ + return Cvar_BitInfo( CVAR_USERINFO ); +} + + +/* +----------------------------------------------------------------------------- + Function: Cvar_Serverinfo -Get CVAR_SERVERINFO cvars in a string. + + Parameters: Nothing. + + Returns: An info string containing all the CVAR_SERVERINFO cvars. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *Cvar_Serverinfo( void ) +{ + return Cvar_BitInfo( CVAR_SERVERINFO ); +} + + +/* +----------------------------------------------------------------------------- + Function: Cvar_Init -Initialize cvar console functions. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + + This is done so that we can read in archived cvars from cfg files. + Also to list all the cvar variables. +----------------------------------------------------------------------------- +*/ +PUBLIC void Cvar_Init( void ) +{ + Cmd_AddCommand( "set", Cvar_Set_f ); + Cmd_AddCommand( "listCvars", Cvar_List_f ); +} + diff --git a/wolf3d/code/env/cvar.h b/wolf3d/code/env/cvar.h new file mode 100644 index 0000000..aa41f2f --- /dev/null +++ b/wolf3d/code/env/cvar.h @@ -0,0 +1,162 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * cvar.h: Dynamic variable tracking. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + +Notes: + + Dynamic variable tracking. + + cvar_t variables are used to hold scalar or string variables + that can be changed or displayed at the console or prog code + as well as accessed directly in C code. + + The user can access cvars from the console in three ways: + r_draworder -prints the current value + r_draworder 0 -sets the current value to 0 + set r_draworder 0 -as above, but creates the cvar if not present + + Cvars are restricted from having the same names as commands to keep this + module from being ambiguous. + + This module is implemented by cvar.c + +*/ + +#ifndef __CVAR_H__ +#define __CVAR_H__ + + +#include "arch.h" + +#if 0 +typedef enum _CVARType +{ + CVAR_DEFAULT = BIT( 0 ), // Just create it with no flag value. + CVAR_BOOL = BIT( 0 ), // Set to cause it to be saved to vars.rc + CVAR_INT = BIT( 0 ), // Added to userinfo when changed. + CVAR_FLOAT = BIT( 0 ), // Added to serverinfo when changed. + CVAR_STRING = BIT( 0 ), // Don't allow change from console at all, + // but can be set from the command line. + + CVAR_LATCH = BIT( 0 ), // Save changes until server restart. + +} CVARType; +#endif + +typedef enum _CVARFlags +{ + CVAR_INIT = 0x0, // Just create it with no flag value. + CVAR_ARCHIVE = 0x1, // Set to cause it to be saved to vars.rc + CVAR_USERINFO = 0x2, // Added to userinfo when changed. + CVAR_SERVERINFO = 0x4, // Added to serverinfo when changed. + CVAR_NOSET = 0x8, // Don't allow change from console at all, + // but can be set from the command line. + + CVAR_LATCH = 0x10, // Save changes until server restart. + +} CVARFlags; + + +// nothing outside the Cvar_*() functions should modify these fields! +typedef struct cvar_s +{ + char *name; + char *string; + W32 id; + char *latched_string; // for CVAR_LATCH vars + int flags; + _boolean modified; // set each time the cvar is changed + float value; + + struct cvar_s *next; + +} cvar_t; + +extern cvar_t *cvar_vars; + + + +extern cvar_t *Cvar_Get( const char *var_name, const char *value, CVARFlags flags ); +// creates the variable if it doesn't exist, or returns the existing one +// if it exists, the value will not be changed, but flags will be ORed in +// that allows variables to be unarchived without needing bitflags + +extern cvar_t *Cvar_Set( const char *var_name, const char *value ); +// will create the variable if it doesn't exist + +extern cvar_t *Cvar_ForceSet( const char *var_name, const char *value ); +// will set the variable even if NOSET or LATCH + +extern cvar_t *Cvar_FullSet( const char *var_name, const char *value, CVARFlags flags ); + +extern void Cvar_SetValue( const char *var_name, float value ); +// expands value to a string and calls Cvar_Set + +extern float Cvar_VariableValue( const char *var_name ); +// returns 0 if not defined or non numeric + +extern char *Cvar_VariableString( const char *var_name ); +// returns an empty string if not defined + +extern char *Cvar_CompleteVariable( const char *partial ); +// attempts to match a partial variable name for command line completion +// returns NULL if nothing fits + +extern void Cvar_GetLatchedVars( void ); +// any CVAR_LATCHED variables that have been set will now take effect + +extern _boolean Cvar_Command( void ); +// called by Cmd_ExecuteString when Cmd_Argv(0) doesn't match a known +// command. Returns true if the command was a variable reference that +// was handled. (print or change) + +extern void Cvar_WriteVariables( const char *path ); +// appends lines containing "set variable value" for all variables +// with the archive flag set to true. + +extern void Cvar_Init( void ); + +extern char *Cvar_Userinfo( void ); +// returns an info string containing all the CVAR_USERINFO cvars + +extern char *Cvar_Serverinfo( void ); +// returns an info string containing all the CVAR_SERVERINFO cvars + +extern _boolean userinfo_modified; +// this is set each time a CVAR_USERINFO variable is changed +// so that the client knows to send it to the server + + +#endif /* __CVAR_H__ */ + diff --git a/wolf3d/code/env/fileio.c b/wolf3d/code/env/fileio.c new file mode 100644 index 0000000..1848e55 --- /dev/null +++ b/wolf3d/code/env/fileio.c @@ -0,0 +1,302 @@ +/* + + Copyright (C) 2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + +// if true, use mmap instead of alloc and read +//#define USE_MMAP + +/* +----------------------------------------------------------------------------- + Function: FS_GetLoadedFilePointer() -Get file pointer. + + Parameters: + filestream -[in] Target file handle. + origin -[in] Pointer position + SEEK_SET -Beginning of file. + SEEK_CUR -Current position of file pointer. + SEEK_END -End of file. + + Returns: File pointer on success, otherwise NULL. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void *FS_GetLoadedFilePointer( filehandle_t *fhandle, W32 origin ) +{ + switch( origin ) + { + case SEEK_SET: + return( (void *)fhandle->ptrStart ); + + case SEEK_END: + return( (void *)fhandle->ptrEnd ); + + case SEEK_CUR: + return( (void *)fhandle->ptrCurrent ); + } + + return NULL; +} + +/* +----------------------------------------------------------------------------- + Function: FS_GetFileSize() -Get the length of a file. + + Parameters: filestream -[in] Target file handle. + + Returns: The file length in bytes. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC SW32 FS_GetFileSize( filehandle_t *fhandle ) +{ + return fhandle->filesize; +} + +/* +----------------------------------------------------------------------------- + Function: FS_FileSeek() -Moves the file pointer to a specified location. + + Parameters: + fhandle -[in] Pointer to filehandle_t structure. + offset -[in] Number of bytes from origin + origin -[in] Initial position + SEEK_SET -Beginning of file. + SEEK_CUR -Current position of file pointer. + SEEK_END -End of file. + + Returns: If successful zero, otherwise a nonzero value. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC W32 FS_FileSeek( filehandle_t *fhandle, SW32 offset, W32 origin ) +{ + switch( origin ) + { + case SEEK_SET: + if( offset < 0 || + offset > fhandle->filesize ) + { + return 1; + } + + fhandle->ptrCurrent = fhandle->ptrStart + offset; + break; + + case SEEK_END: + if( offset > 0 ) + { + return 1; + } + + // offset is negative + if( (fhandle->filesize + offset) < 0 ) + { + return 1; + } + + // offset is negative + fhandle->ptrCurrent = fhandle->ptrEnd + offset; + break; + + case SEEK_CUR: + if( offset < 0 ) + { + // offset is negative + if( ((fhandle->ptrCurrent - fhandle->ptrStart) + offset) < 0 ) + { + return 1; + } + } + + if( offset > 0 ) + { + if( offset > (fhandle->ptrEnd - fhandle->ptrCurrent) ) + { + return 1; + } + } + + fhandle->ptrCurrent += offset; + break; + + default: + return 1; + } + + return 0; +} + +/* +----------------------------------------------------------------------------- + Function: FS_FileTell() -Gets the current position of a file pointer. + + Parameters: fhandle -[in] Pointer to filehandle_t structure. + + Returns: If successful current file position, otherwise -1. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC SW32 FS_FileTell( filehandle_t *fhandle ) +{ + return( fhandle->ptrCurrent - fhandle->ptrStart ); +} + +/* +----------------------------------------------------------------------------- + Function: FS_CloseFile -Close file handle. + + Parameters: filestream -[in] Pointer to valid FILE structure. + + Returns: Nothing. + + Notes: Closes a file stream that was returned by FS_FOpenFile. + +----------------------------------------------------------------------------- +*/ +PUBLIC void FS_CloseFile( filehandle_t *fhandle ) +{ + if( fhandle->filedata ) + { +#ifdef USE_MMAP + if ( munmap( fhandle->filedata, fhandle->filesize ) != 0 ) { + assert( 0 ); + } +#else + free( fhandle->filedata ); +#endif + fhandle->filedata = NULL; + } + + Z_Free( fhandle ); +} + + +/* +----------------------------------------------------------------------------- + Function: FS_OpenFile -Open file from the file system. + +----------------------------------------------------------------------------- +*/ +PUBLIC filehandle_t *FS_OpenFile( const char *filename, W32 FlagsAndAttributes ) +{ + char netpath[ MAX_OSPATH ]; + filehandle_t *hFile; + const char *pathBase; + struct stat s; + int fd; + + +// +// Check for the file in the directory tree +// + if ( FlagsAndAttributes & FA_FILE_IPHONE_DOC_DIR ) { + extern char iphoneDocDirectory[1024]; + pathBase = iphoneDocDirectory; + my_snprintf( netpath, sizeof( netpath ), "%s/%s", pathBase, filename ); + } else { +// extern char iphoneAppDirectory[1024]; +// pathBase = iphoneAppDirectory; + pathBase = FS_Gamedir(); + my_snprintf( netpath, sizeof( netpath ), "%s/%s", pathBase, filename ); + } + + // high performance file mapping path, avoiding stdio + fd = open( netpath, O_RDONLY ); + if ( fd == -1 ) { + return NULL; + } + fstat( fd, &s ); + + hFile = Z_Malloc( sizeof( filehandle_t ) ); + memset( hFile, 0, sizeof( filehandle_t ) ); + + hFile->filesize = s.st_size; +#ifdef USE_MMAP + hFile->filedata = mmap( NULL, hFile->filesize, PROT_READ, MAP_FILE|MAP_PRIVATE, fd, 0 ); + if ( (int)hFile->filedata == -1 ) { + Com_Printf( "mmap failed: %s\n", strerror( errno ) ); + assert( 0 ); + } +#else + hFile->filedata = malloc( hFile->filesize ); + read( fd, hFile->filedata, hFile->filesize ); +#endif + hFile->ptrStart = hFile->ptrCurrent = (PW8)hFile->filedata; + hFile->ptrEnd = (PW8)hFile->filedata + hFile->filesize; + hFile->bLoaded = true; + // mmap doesn't require the file to stay open + close( fd ); + return hFile; +} + + +/* +----------------------------------------------------------------------------- + Function: FS_ReadFile -Reads data from a stream. + + Parameters: buffer -[in/out] Storage location for data. + size -[in] Item size in bytes. + count -[in] Maximum number of items to be read. + fhandle -[in] Pointer to valid filehandle_t structure. + + Returns: On success number of full items actually read, otherwise -1. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC SW32 FS_ReadFile( void *buffer, W32 size, W32 count, filehandle_t *fhandle ) +{ + W8 *buf = (PW8)buffer; + W32 i; + + if( (size * count) > (fhandle->ptrEnd - fhandle->ptrCurrent) ) + { + SW32 read; + + read = (fhandle->ptrEnd - fhandle->ptrCurrent); + + for( i = 0 ; i < (fhandle->ptrEnd - fhandle->ptrCurrent) ; ++i ) + { + buf[ i ] = fhandle->ptrCurrent[ i ]; + } + + fhandle->ptrCurrent = fhandle->ptrEnd; + + return( read ); + } + else + { + for( i = 0 ; i < (size * count) ; ++i, fhandle->ptrCurrent++ ) + { + buf[ i ] = *fhandle->ptrCurrent; + } + + return( (size * count) / size ); + } + + /* should never get here */ + return -1; +} diff --git a/wolf3d/code/env/files.c b/wolf3d/code/env/files.c new file mode 100644 index 0000000..acd92e2 --- /dev/null +++ b/wolf3d/code/env/files.c @@ -0,0 +1,162 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * files.c: Interface to file i/o layer. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + + Notes: + + This module accesses data through a hierarchal file system, but the + contents of the file system can be transparently merged from several + sources. + + The "base directory" is the path to the directory holding the + executable and all game directories. The sys_* files pass this to + host_init in quakeparms_t->basedir. This can be overridden with the + "-basedir" command line parm to allow code debugging in a different + directory. The base directory is only used during file system + initialization. + + The "game directory" is the first tree on the search path and directory + that all generated files (save games, screen shots, demos, config + files) will be saved to. This can be overridden with the "-game" + command line parameter. The game directory can never be changed while + the application is executing. This is a precaution against having a + malicious server instruct clients to write files over areas they + shouldn't. + +*/ + +#include "../wolfiphone.h" + + + +PRIVATE char fs_gamedir[ MAX_OSPATH ]; + + + +/* +----------------------------------------------------------------------------- + Function: FS_Gamedir -Get root directory. + + Parameters: Nothing. + + Returns: String with the name of the root directory. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *FS_Gamedir( void ) +{ + return fs_gamedir; +} + + +/* +----------------------------------------------------------------------------- + Function: FS_ListFiles -List files. + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE char **FS_ListFiles( char *findname, int *numfiles, unsigned musthave, unsigned canthave ) +{ + char *s; + int nfiles = 0; + char **list = 0; + + s = FS_FindFirst( findname, musthave, canthave ); + while ( s ) + { + if ( s[strlen(s)-1] != '.' ) + nfiles++; + s = FS_FindNext( musthave, canthave ); + } + FS_FindClose (); + + if ( !nfiles ) + return NULL; + + nfiles++; // add space for a guard + *numfiles = nfiles; + + list = MM_MALLOC( sizeof( char * ) * nfiles ); + if( list == NULL ) + { + MM_OUTOFMEM( "list" ); + } + + memset( list, 0, sizeof( char * ) * nfiles ); + + s = FS_FindFirst( findname, musthave, canthave ); + nfiles = 0; + while( s ) + { + if( s[ strlen( s ) - 1 ] != '.' ) + { + list[ nfiles ] = strdup( s ); + + (void)my_strlwr( list[ nfiles ] ); + + nfiles++; + } + s = FS_FindNext( musthave, canthave ); + } + FS_FindClose(); + + return list; +} + + +/* +----------------------------------------------------------------------------- + Function: FS_InitFilesystem -Initialize file system. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void FS_InitFilesystem( void ) +{ + char *p; + p = getenv("CWD"); + sprintf( fs_gamedir, "%s/base", p ); +} diff --git a/wolf3d/code/env/filestring.c b/wolf3d/code/env/filestring.c new file mode 100644 index 0000000..d36603d --- /dev/null +++ b/wolf3d/code/env/filestring.c @@ -0,0 +1,161 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * filestring.c: Portable file path/name manipulation methods. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + + +/* +----------------------------------------------------------------------------- + Function: FS_CreatePath -Creates given path. + + Parameters: path -[in] Pointer to NULL terminated string that contains directory + path. + + Returns: Nothing. + + Notes: Creates any directories needed to store the given filename. + +----------------------------------------------------------------------------- +*/ +PUBLIC void FS_CreatePath( char *path ) +{ + char *ofs; + + for( ofs = path + 1; *ofs; ofs++ ) + { + if( *ofs == '/' ) + { // create the directory + *ofs = '\0'; + FS_CreateDirectory( path ); + *ofs = '/'; + } + } + +} + +PUBLIC void FS_FilePath( char *in, char *out ) +{ + char *s; + + s = in + strlen( in ) - 1; + + while( s != in && *s != '/' ) + { + s--; + } + + strncpy( out, in, s-in ); + out[ s - in ] = '\0'; // NUL-terminate string. +} + +PUBLIC char *FS_SkipPath( char *pathname ) +{ + char *last; + + last = pathname; + while( *pathname ) + { + if( *pathname == '/' ) + { + last = pathname + 1; + } + pathname++; + } + + return last; +} + +PUBLIC void FS_StripExtension( char *in, char *out ) +{ + while( *in && *in != '.' ) + { + *out++ = *in++; + } + + *out = '\0'; // NUL-terminate string. +} + +PUBLIC char *FS_FileExtension( char *in ) +{ + static char exten[ 8 ]; + int i; + + while( *in && *in != '.' ) + { + in++; + } + + if( ! *in ) + { + return ""; + } + + in++; + for( i = 0 ; i < 7 && *in ; i++, in++ ) + { + exten[ i ] = *in; + } + + exten[ i ] = '\0'; // NUL-terminate string. + + return exten; +} + +PUBLIC void FS_FileBase( char *in, char *out ) +{ + char *s, *s2; + + s = in + strlen( in ) - 1; + + while( s != in && *s != '.' ) + { + s--; + } + + for( s2 = s ; s2 != in && *s2 != '/' ; s2-- ) + { + ; + } + + if( s - s2 < 2 ) + { + out[ 0 ] = '\0'; // NUL-terminate string. + } + else + { + s--; + strncpy( out, s2 + 1, s - s2 ); + out[ s - s2 ] = '\0'; // NUL-terminate string. + } +} + + diff --git a/wolf3d/code/env/filestring.h b/wolf3d/code/env/filestring.h new file mode 100644 index 0000000..696fa1a --- /dev/null +++ b/wolf3d/code/env/filestring.h @@ -0,0 +1,55 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * filesystem.h: Interface to filesystem layer. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by filestring.c. + +*/ + +#ifndef __FILESTRING_H__ +#define __FILESTRING_H__ + + +extern void FS_CreatePath( char *path ); + +extern void FS_FilePath( char *in, char *out ); + +extern char *FS_SkipPath( char *pathname ); + +extern void FS_StripExtension( char *in, char *out ); + +extern char *FS_FileExtension( char *in ); + +extern void FS_FileBase( char *in, char *out ); + +#endif /* __FILESTRING_H__ */ diff --git a/wolf3d/code/env/filesystem.h b/wolf3d/code/env/filesystem.h new file mode 100644 index 0000000..59bde77 --- /dev/null +++ b/wolf3d/code/env/filesystem.h @@ -0,0 +1,134 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * filesystem.h: Interface to filesystem layer. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by files.c. + +*/ + +#ifndef __FILESYSTEM_H__ +#define __FILESYSTEM_H__ + +#define MAX_GAMEPATH 256 // max length of a game pathname +#define MAX_OSPATH 256 // max length of a filesystem pathname + + +extern void FS_InitFilesystem(void); +extern char *FS_Gamedir(void); + + + +///////////////////////////////////////////////////////////////////// +// +// PORTABLE FILE SYSTEM SERVICES +// +///////////////////////////////////////////////////////////////////// + +typedef struct +{ + FILE *hFile; + + /* Following is used when the file is loaded into memory */ + _boolean bLoaded; /* Was file loaded into memory? */ + W32 filesize; /* Size of file data in bytes */ + + W8 *ptrStart; /* pointer to start of file data block */ + W8 *ptrCurrent; /* pointer to current position in file data block */ + W8 *ptrEnd; /* pointer to end of file data block */ + + void *filedata; /* file data loaded into memory */ + +} filehandle_t; + + +/* Desired Access Flags */ +#define DA_GENERIC_READ 0x01 +#define DA_GENERIC_WRITE 0x02 + +/* Flags and Attributes */ +#define FA_FILE_FLAG_LOAD 0x01 +#define FA_FILE_FLAG_CACHE 0x02 +#define FA_FILE_IPHONE_DOC_DIR 0x04 + +extern filehandle_t *FS_OpenFile( const char *filename, W32 FlagsAndAttributes ); +extern void FS_CloseFile( filehandle_t *fhandle ); +// note: this can't be called from another DLL, due to MS libc issues + +extern SW32 FS_ReadFile( void *buffer, W32 size, W32 count, filehandle_t *fhandle ); + +extern SW32 FS_FileTell( filehandle_t *fhandle ); + +extern W32 FS_FileSeek( filehandle_t *fhandle, SW32 offset, W32 origin ); + +extern SW32 FS_GetFileSize( filehandle_t *fhandle ); + +extern void *FS_GetLoadedFilePointer( filehandle_t *fhandle, W32 origin ); + + + +extern void FS_CreatePath( char *path ); + +extern void FS_FilePath( char *in, char *out ); + +extern char *FS_SkipPath( char *pathname ); + +///////////////////////////////////////////////////////////////////// +// +// NON-PORTABLE FILE SYSTEM SERVICES +// +///////////////////////////////////////////////////////////////////// + +extern W8 FS_CreateDirectory( const char *dirname ); +extern W8 FS_ChangeCurrentDirectory( const char *path ); + +extern _boolean FS_DeleteFile( const char *filename ); +extern _boolean FS_RemoveDirectory( const char *pathname ); + +// directory/file attributes +#define FA_ARCH 0x01 +#define FA_HIDDEN 0x02 +#define FA_RDONLY 0x04 +#define FA_DIR 0x08 +#define FA_SYSTEM 0x10 + +// pass in an attribute mask of things you wish to REJECT +extern char *FS_FindFirst( const char *path, W32 musthave, W32 canthave ); +extern char *FS_FindNext( W32 musthave, W32 canthave ); +extern void FS_FindClose( void ); + + + + + +#endif /* __FILESYSTEM_H__ */ + diff --git a/wolf3d/code/env/font_manager.c b/wolf3d/code/env/font_manager.c new file mode 100644 index 0000000..b4bf57e --- /dev/null +++ b/wolf3d/code/env/font_manager.c @@ -0,0 +1,492 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * font_manager.c: Font management. + * + */ + + +#include "../wolfiphone.h" + +/* + + ! " # $ % & ' ( ) * + , - . / +0 1 2 3 4 5 6 7 8 9 : ; ( = ) ? +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ / ] ^ - +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + +*/ + + +#define MAX_FONTS 4 +font_t *myfonts[ MAX_FONTS ]; +PRIVATE W32 num_fonts = 0; + + +typedef struct +{ + char *start, *end; + +} string_seg_t; + + +font_t *createFont( const char *filename ) +{ + font_t *temp_font; + char *datname; + filehandle_t *fp; + W32 size; + W32 i; + + if( num_fonts == (MAX_FONTS - 1) ) + { + Com_Printf( "[createFont]: No more font slots open\n" ); + + return NULL; + } + + + temp_font = Z_Malloc( sizeof( font_t ) ); + + temp_font->texfont = TM_FindTexture( filename, TT_Pic ); + if( NULL == temp_font->texfont ) + { + Com_Printf( "[createFont]: unable to open file (%s)\n", filename ); + + Z_Free( temp_font ); + + return NULL; + } + + memset( temp_font->nCharWidth, 0, sizeof( temp_font->nCharWidth ) ); + + datname = MM_MALLOC( strlen( filename ) + 1 ); + + FS_StripExtension( (char *)filename, datname ); + + my_strlcat( datname, ".dat", strlen( filename ) + 1 ); + + fp = FS_OpenFile( datname, 0 ); + if( NULL == fp ) + { + Com_Printf( "[createFont]: unable to open file (%s)\n", datname ); + + MM_FREE( datname ); + Z_Free( temp_font ); + + return NULL; + } + + size = FS_GetFileSize( fp ); + + // check header size + if( size < 10 ) + { + Com_Printf( "[createFont]: File (%s) has incorrect file length\n", datname ); + + MM_FREE( datname ); + Z_Free( temp_font ); + + FS_CloseFile( fp ); + + return NULL; + } + + + // Check sig of font dat file + + FS_ReadFile( &size, 1, 4, fp ); + + + FS_ReadFile( &temp_font->nMaxWidth, 1, 1, fp ); + FS_ReadFile( &temp_font->nMaxHeight, 1, 1, fp ); + + + FS_ReadFile( &size, 1, 4, fp ); + size = LittleLong( size ); + + if( size > 127 ) + { + Com_Printf( "[createFont]: File (%s) has incorrect Character Width array\n", datname ); + + MM_FREE( datname ); + Z_Free( temp_font ); + + FS_CloseFile( fp ); + + return NULL; + } + + FS_ReadFile( &temp_font->nCharWidth, 1, size, fp ); + + FS_CloseFile( fp ); + + + + + temp_font->nSize = 2; + temp_font->colour[ 3 ] = 255; + + temp_font->hFrac = (float)(temp_font->nMaxHeight / (float)temp_font->texfont->height); + temp_font->wFrac = (float)(temp_font->nMaxWidth / (float)temp_font->texfont->width); + + + + for( i = 0 ; i < MAX_FONTS ; ++i ) + { + if( ! myfonts[ i ] ) + { + break; + } + } + + if( i == (MAX_FONTS - 1) ) + { + Com_Printf( "[createFont]: No more font slots open\n" ); + + MM_FREE( datname ); + Z_Free( temp_font ); + + return NULL; + } + + myfonts[ i ] = temp_font; + + MM_FREE( datname ); + + + return temp_font; +} + +void Font_Init( void ) +{ + W32 i; + + for( i = 0 ; i < MAX_FONTS ; ++i ) + { + myfonts[ i ] = NULL; + } + + (void)createFont( "iphone/font1.tga" ); +// (void)createFont( "iphone/font2.tga" ); +} + +void Font_Shutdown( void ) +{ + +} + +void Font_GetMsgDimensions( FONTSELECT fs, const char *string, int *w, int *h ) +{ + int width = 0; + int mx = 0; + W16 scale; + int height; + + if( ! myfonts[ fs ] ) + { + *w = *h = 0; + + return; + } + + scale = myfonts[ fs ]->nMaxHeight * myfonts[ fs ]->nSize; + height = scale; + + while( *string ) + { + if( *string == '\n' ) + { + if( mx > width ) + { + width = mx; + } + + mx = 0; + height += scale; + ++string; + + continue; + } + + mx += myfonts[ fs ]->nCharWidth[ (*string)-32 ] * myfonts[ fs ]->nSize; + + ++string; + } + + if( mx > width ) + { + width = mx; + } + + *w = width; + *h = height; +} + +void Font_SetSize( FONTSELECT fs, W16 size ) +{ + if( myfonts[ fs ] ) + { + myfonts[ fs ]->nSize = size; + } +} + +W16 Font_GetSize( FONTSELECT fs ) +{ + if( myfonts[ fs ] ) + { + return( myfonts[ fs ]->nMaxHeight * myfonts[ fs ]->nSize ); + } + + return 0; +} + +void Font_SetColour( FONTSELECT fs, colour3_t c ) +{ + if( myfonts[ fs ] ) + { + myfonts[ fs ]->colour[ 0 ] = c[ 0 ]; + myfonts[ fs ]->colour[ 1 ] = c[ 1 ]; + myfonts[ fs ]->colour[ 2 ] = c[ 2 ]; + } +} + +extern void R_Draw_Character( int x, int y, int num, font_t *myfont ); + +void Font_put_line( FONTSELECT fs, int x, int y, const char *string ) +{ + int mx = x; + W16 scale; + + if( ! myfonts[ fs ] ) + { + return; + } + + scale = myfonts[ fs ]->nSize; + + while( *string ) + { + if( *string == '\n' ) + { + mx = x; + y += myfonts[ fs ]->nMaxHeight * scale; + ++string; + continue; + } + + R_Draw_Character( mx, y, *string, myfonts[ fs ] ); + mx += myfonts[ fs ]->nCharWidth[ (*string)-32 ] * scale; + ++string; + } +} + + +void Font_put_lineR2L( FONTSELECT fs, int x, int y, const char *string ) +{ + int mx = x; + unsigned int charindex; + unsigned int i; + + if( ! myfonts[ fs ] ) + { + return; + } + + for ( i = 0; i < strlen( string ); ++i ) + { + charindex = strlen( string ) - i - 1; + mx -= myfonts[ fs ]->nCharWidth[ string[ charindex ]-32 ] * myfonts[ fs ]->nSize; + + R_Draw_Character( mx, y, string[ charindex ], myfonts[ fs ] ); + } +} + +W16 Font_put_character( FONTSELECT fs, int x, int y, W16 num ) +{ + if( ! myfonts[ fs ] || num > 126 ) + { + return 0; + } + + R_Draw_Character( x, y, num, myfonts[ fs ] ); + + return( myfonts[ fs ]->nCharWidth[ num - 32 ] * myfonts[ fs ]->nSize ); +} + + +void Font_put_line_size( FONTSELECT fs, int x, int y, const char *start, const char *end ) +{ + int mx = x; + W16 scale; + + if( ! myfonts[ fs ] ) + { + return; + } + + scale = myfonts[ fs ]->nSize; + + while( start != end ) + { + R_Draw_Character( mx, y, *start, myfonts[ fs ] ); + mx += myfonts[ fs ]->nCharWidth[ (*start)-32 ] * scale; + ++start; + } + +} + + + +W8 Font_get_line( FONTSELECT fs, int line_width, string_seg_t *sst ) +{ + int x = 0, last_word_width = 0, last_word_spaces = 0; + int in_a_word = 0; + int t_words = 0; + int t_spaces = 0; + int chars_width = 0; + W16 scale; + const char *word_start = sst->start; + + + if( ! myfonts[ fs ] ) + { + return false; + } + + + scale = myfonts[ fs ]->nSize; + + + if( line_width < 0 ) + { + line_width = 1000000; + } + + + while( *sst->end != '\0' && *sst->end != '\n' ) + { + char c = *sst->end; + + int c_width = myfonts[ fs ]->nCharWidth[ c - 32 ] * scale; // FIX ME + + // we exceeded the space available for this line + if( x + c_width > line_width ) + { + if( in_a_word ) + { + chars_width = last_word_width; + sst->end = (char *)word_start; + t_spaces = last_word_spaces; + } + + return t_words ? true : false; + } + + + x += c_width; + + if( c != ' ' ) + { + if( ! in_a_word ) + { + last_word_width = chars_width; + word_start = sst->end; + } + + in_a_word = 1; + chars_width += c_width; + } + else + { + if( in_a_word ) + { + in_a_word = 0; + t_words++; + last_word_spaces = t_spaces; + } + + t_spaces++; + } + + ++sst->end; + } + + if( in_a_word ) + { + t_words++; + } + + if( *sst->end != '\0' && *sst->end == '\n' ) + { + ++sst->end; + } + + return t_words ? true : false; + +} + + +void Font_put_paragraph( FONTSELECT fs, short x, short y, + const char *string, + int space_between_lines, + int line_width_in_pixel ) +{ + string_seg_t sst; + sst.start = sst.end = (char *)string; + + if( ! myfonts[ fs ] ) + { + return; + } + + while( Font_get_line( fs, line_width_in_pixel, &sst ) ) + { + Font_put_line_size( fs, x, y, sst.start, sst.end ); + + if( *sst.end != '\0' && *sst.end == ' ' ) + { + sst.start = sst.end; + ++sst.start; + sst.end = sst.start; + } + else if( *sst.end != '\0' && *sst.end == '\n' ) + { + while( *sst.end == '\n' ) + { + ++sst.end; + y += Font_GetSize( fs ) + space_between_lines; + } + + sst.start = sst.end; + } + else + { + sst.start = sst.end; + } + + y += Font_GetSize( fs ) + space_between_lines; + } + +} + diff --git a/wolf3d/code/env/font_manager.h b/wolf3d/code/env/font_manager.h new file mode 100644 index 0000000..ac54886 --- /dev/null +++ b/wolf3d/code/env/font_manager.h @@ -0,0 +1,78 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * font_manager.h: Font management. + * + * Author: Michael Liebscher + * Date: 2004 + * + */ + +/* + Notes: + This module is implemented by font_manager.c. + +*/ + +#ifndef __FONT_MANAGER_H__ +#define __FONT_MANAGER_H__ + + +typedef enum { FONT0 = 0, FONT1, FONT2, FONT3 } FONTSELECT; + + + +typedef struct +{ + W8 nCharWidth[ 128 ]; /* width of each character */ + W8 nMaxWidth; /* box width */ + W8 nMaxHeight; /* box height */ + SW32 spacing; /* space between characters */ + W32 nSize; + float wFrac; + float hFrac; + colour4_t colour; /* Font colour */ + texture_t *texfont; + +} font_t; + + +extern void Font_Init( void ); +extern void Font_Shutdown( void ); + + +extern void Font_SetSize( FONTSELECT fs, W16 size ); +extern W16 Font_GetSize( FONTSELECT fs ); + +extern void Font_SetColour( FONTSELECT fs, colour3_t c ); + +extern void Font_put_line( FONTSELECT fs, int x, int y, const char *string ); +extern void Font_put_lineR2L( FONTSELECT fs, int x, int y, const char *string ); +extern W16 Font_put_character( FONTSELECT fs, int x, int y, W16 num ); + +extern void Font_put_paragraph( FONTSELECT fs, short x, short y, + const char *string, + int space_between_lines, + int line_width_in_pixel ); + +extern void Font_GetMsgDimensions( FONTSELECT fs, const char *string, int *w, int *h ); + +#endif /* __FONT_MANAGER_H__ */ diff --git a/wolf3d/code/env/glob.c b/wolf3d/code/env/glob.c new file mode 100644 index 0000000..02a68e1 --- /dev/null +++ b/wolf3d/code/env/glob.c @@ -0,0 +1,207 @@ +/* + + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + +/* Like glob_match, but match PATTERN against any final segment of TEXT. */ +static int glob_match_after_star( char *pattern, char *text ) +{ + register char *p = pattern, *t = text; + register char c, c1; + + while( (c = *p++) == '?' || c == '*' ) + { + if( c == '?' && *t++ == '\0' ) + { + return 0; + } + } + + if( c == '\0' ) + { + return 1; + } + + if( c == '\\' ) + { + c1 = *p; + } + else + { + c1 = c; + } + + while( 1 ) + { + if( (c == '[' || *t == c1) && glob_match( p - 1, t ) ) + { + return 1; + } + + if( *t++ == '\0' ) + { + return 0; + } + } +} + +/* Return nonzero if PATTERN has any special globbing chars in it. */ +static int glob_pattern_p( char *pattern ) +{ + register char *p = pattern; + register char c; + int open = 0; + + while( (c = *p++) != '\0' ) + { + switch( c ) + { + case '?': + case '*': + return 1; + + case '[': /* Only accept an open brace if there is a close */ + open++; /* brace to match it. Bracket expressions must be */ + continue; /* complete, according to Posix.2 */ + case ']': + if( open ) + { + return 1; + } + continue; + + case '\\': + if( *p++ == '\0' ) + { + return 0; + } + } + + } + + return 0; +} + +/* Match the pattern PATTERN against the string TEXT; + return 1 if it matches, 0 otherwise. + + A match means the entire string TEXT is used up in matching. + + In the pattern string, `*' matches any sequence of characters, + `?' matches any character, [SET] matches any character in the specified set, + [!SET] matches any character not in the specified set. + + A set is composed of characters or ranges; a range looks like + character hyphen character (as in 0-9 or A-Z). + [0-9a-zA-Z_] is the set of characters allowed in C identifiers. + Any other character in the pattern must be matched exactly. + + To suppress the special syntactic significance of any of `[]*?!-\', + and match the character exactly, precede it with a `\'. +*/ + +int glob_match(char *pattern, char *text) +{ + register char *p = pattern, *t = text; + register char c; + + while ((c = *p++) != '\0') + switch (c) { + case '?': + if (*t == '\0') + return 0; + else + ++t; + break; + + case '\\': + if (*p++ != *t++) + return 0; + break; + + case '*': + return glob_match_after_star(p, t); + + case '[': + { + register char c1 = *t++; + int invert; + + if (!c1) + return (0); + + invert = ((*p == '!') || (*p == '^')); + if (invert) + p++; + + c = *p++; + while (1) { + register char cstart = c, cend = c; + + if (c == '\\') { + cstart = *p++; + cend = cstart; + } + if (c == '\0') + return 0; + + c = *p++; + if (c == '-' && *p != ']') { + cend = *p++; + if (cend == '\\') + cend = *p++; + if (cend == '\0') + return 0; + c = *p++; + } + if (c1 >= cstart && c1 <= cend) + goto match; + if (c == ']') + break; + } + if (!invert) + return 0; + break; + + match: + /* Skip the rest of the [...] construct that already matched. */ + while (c != ']') { + if (c == '\0') + return 0; + c = *p++; + if (c == '\0') + return 0; + else if (c == '\\') + ++p; + } + if (invert) + return 0; + break; + } + + default: + if (c != *t++) + return 0; + } + + return *t == '\0'; +} + diff --git a/wolf3d/code/env/glob.h b/wolf3d/code/env/glob.h new file mode 100644 index 0000000..81f2c44 --- /dev/null +++ b/wolf3d/code/env/glob.h @@ -0,0 +1,22 @@ +/* + + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +extern int glob_match( char *pattern, char *text ); diff --git a/wolf3d/code/env/math.c b/wolf3d/code/env/math.c new file mode 100644 index 0000000..af0a7fb --- /dev/null +++ b/wolf3d/code/env/math.c @@ -0,0 +1,224 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * math.c: Math routines. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + + + + + + +//////////////////////////// +// +// Square Root +// +//////////////////////////// + +/* +----------------------------------------------------------------------------- + Function: _sqrtf -Calculates the square root. + + Parameters: x -[in] Nonnegative floating-point value + + Returns: The square-root of x. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC float _sqrtf( float x ) +{ + return (float)sqrt( x ); +} + + +/* +----------------------------------------------------------------------------- + Function: _3DNow_Sqrt -Calculates the square root. + + Parameters: x -[in] Nonnegative floating-point value + + Returns: The square-root of x. + + Notes: 15-Bit Precision +----------------------------------------------------------------------------- +*/ +#if __i386__ + +PUBLIC float _3DNow_Sqrt( float x ) +{ + float root = 0.f; + +#if( _MSC_VER || __WATCOMC__ ) + + __asm + { + femms + movd mm0, x + pfrsqrt mm1, mm0 + punpckldq mm0, mm0 + pfmul mm0, mm1 + movd root, mm0 + femms + } + +#endif + + return root; +} + +/* +----------------------------------------------------------------------------- + Function: _SSE_Sqrt -Calculates the square root. + + Parameters: x -[in] Nonnegative floating-point value + + Returns: The square-root of x. + + Notes: +----------------------------------------------------------------------------- +*/ +float _SSE_Sqrt( float x ) +{ + float root = 0.f; + +#if( _MSC_VER || __WATCOMC__ ) + + __asm + { + sqrtss xmm0, x + movss root, xmm0 + } + + +#endif + + return root; +} + +#endif /* __i386__ */ + +//////////////////////////// +// +// End Square Root +// +//////////////////////////// + + +float (*pfSqrt)( float x ) = _sqrtf; + + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC int my_log2( int val ) +{ + int answer = 0; + while( ( val >>= 1 ) != 0 ) + { + answer++; + } + return answer; +} + +/* +----------------------------------------------------------------------------- + Function: CalcFov -Calculate the field of view. + + Parameters:fov_x -[in] Must be within 1 and 179 degrees. + width -[in] Width of viewing area. + height -[in] Height of viewing area. + + Returns: The field of view in degrees. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC float CalcFov( float fov_x, float width, float height ) +{ + if( fov_x < 1 || fov_x > 179 ) + { + Com_Error( ERR_DROP, "Bad fov: %f", fov_x ); + } + + return (float)RAD2DEG( atan( height / ( width / tan( fov_x / 360 * M_PI ) ) ) ) * 2; +} + +/* +----------------------------------------------------------------------------- + Function: MathLib_Init -Initialize optimized math routines. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void MathLib_Init( void ) +{ + Com_Printf( "Initializing Math Module\n" ); + +#if 0//__i386__ + + if( main_cpu_s.b3DNow ) + { +// pfSqrt = _3DNow_Sqrt; + + Com_Printf( "...using 3DNow!\n" ); + } + + if( main_cpu_s.bSSE ) + { +// pfSqrt = _SSE_Sqrt; + + Com_Printf( "...using SSE\n" ); + } + +#endif +} + + + + diff --git a/wolf3d/code/env/matrix.c b/wolf3d/code/env/matrix.c new file mode 100644 index 0000000..8f8e47c --- /dev/null +++ b/wolf3d/code/env/matrix.c @@ -0,0 +1,158 @@ +/* + + Copyright (C) 2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * matrix.c: Matrix math routines. + * + * Author: Michael Liebscher + * + */ + + +#include "../wolfiphone.h" + +/* +----------------------------------------------------------------------------- + Function: Matrix3x3Multiply -Computes the product of two 3x3 matrices. + + Parameters: in1, in2 -[in] 3x3 matrices. + out -[out] result. + + Returns: Nothing + + Notes: + Product of two 3x3 matrices + ( a b c ) ( r u x ) ( ar + bs + ct au + bv + cw ax + by + cz ) + ( d e f ) ( s v y ) = ( dr + es + ft du + ev + fw dx + ey + fz ) + ( h i j ) ( t w z ) ( hr + hs + ht iu + iv + iw jx + jy + jz ) +----------------------------------------------------------------------------- +*/ +PUBLIC void Matrix3x3Multiply( mat3_t in1, mat3_t in2, mat3_t out ) +{ + out[0] = in1[0] * in2[0] + in1[1] * in2[3] + in1[2] * in2[6]; + out[1] = in1[0] * in2[1] + in1[1] * in2[4] + in1[2] * in2[7]; + out[2] = in1[0] * in2[2] + in1[1] * in2[5] + in1[2] * in2[8]; + + out[3] = in1[3] * in2[0] + in1[4] * in2[3] + in1[5] * in2[6]; + out[4] = in1[3] * in2[1] + in1[4] * in2[4] + in1[5] * in2[7]; + out[5] = in1[3] * in2[2] + in1[4] * in2[5] + in1[5] * in2[8]; + + out[6] = in1[6] * in2[0] + in1[7] * in2[3] + in1[8] * in2[6]; + out[7] = in1[6] * in2[1] + in1[7] * in2[4] + in1[8] * in2[7]; + out[8] = in1[6] * in2[2] + in1[7] * in2[5] + in1[8] * in2[8]; +} + +/* +----------------------------------------------------------------------------- + Function: MatrixIdentity -Set matrix to the identity matrix (unit matrix). + + Parameters: matrix -[in/out] 4x4 matrix. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void MatrixIdentity( mat4_t matrix ) +{ + matrix[ 0] = 1.0; matrix[ 1] = 0.0; matrix[ 2] = 0.0; matrix[ 3] = 0.0; + matrix[ 4] = 0.0; matrix[ 5] = 1.0; matrix[ 6] = 0.0; matrix[ 7] = 0.0; + matrix[ 8] = 0.0; matrix[ 9] = 0.0; matrix[10] = 1.0; matrix[11] = 0.0; + matrix[12] = 0.0; matrix[13] = 0.0; matrix[14] = 0.0; matrix[15] = 1.0; +} + +/* +----------------------------------------------------------------------------- + Function: MatrixInvert -Invert a matrix. + + Parameters: + in -[in] Input matrix + out -[out] Output matrix. + + + Returns: Nothing. + + Notes: Matrix MUST be orthonormal + +----------------------------------------------------------------------------- +*/ +PUBLIC void MatrixInvert( mat4_t in, mat4_t out ) +{ + // Transpose rotation + out[ 0] = in[ 0]; out[ 1] = in[ 4]; out[ 2] = in[ 8]; + out[ 4] = in[ 1]; out[ 5] = in[ 5]; out[ 6] = in[ 9]; + out[ 8] = in[ 2]; out[ 9] = in[ 6]; out[10] = in[10]; + + // Clear shearing terms + out[3] = 0.0f; out[7] = 0.0f; out[11] = 0.0f; out[15] = 1.0f; + + // Translation is minus the dot of translation and rotations + out[12] = -(in[12] * in[ 0]) - (in[13] * in[ 1]) - (in[14] * in[ 2]); + out[13] = -(in[12] * in[ 4]) - (in[13] * in[ 5]) - (in[14] * in[ 6]); + out[14] = -(in[12] * in[ 8]) - (in[13] * in[ 9]) - (in[14] * in[10]); +} + +/* +----------------------------------------------------------------------------- + Function: VectorMatrixMultiply -Multiply a vector by a matrix. + + Parameters: + vecIn -[in] Input vector. + m -[in] Input matrix. + vecOut -[out] Output vector. + + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void VectorMatrixMultiply( vec3_t vecIn, mat4_t m, vec3_t vecOut ) +{ + vecOut[0] = (vecIn[0] * m[ 0]) + (vecIn[1] * m[ 4]) + (vecIn[2] * m[ 8]) + m[12]; + vecOut[1] = (vecIn[0] * m[ 1]) + (vecIn[1] * m[ 5]) + (vecIn[2] * m[ 9]) + m[13]; + vecOut[2] = (vecIn[0] * m[ 2]) + (vecIn[1] * m[ 6]) + (vecIn[2] * m[10]) + m[14]; +} + +/* +----------------------------------------------------------------------------- + Function: VectorMatrix3x3Multiply -Multiply a vector by just the 3x3 portion + of a matrix. + + Parameters: + in -[in] Input vector. + m -[in] Input matrix. + out -[out] Output vector. + + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void VectorMatrix3x3Multiply( vec3_t in, mat4_t m, vec3_t out ) +{ + out[0] = (in[0] * m[ 0]) + (in[1] * m[ 4]) + (in[2] * m[ 8]); + out[1] = (in[0] * m[ 1]) + (in[1] * m[ 5]) + (in[2] * m[ 9]); + out[2] = (in[0] * m[ 2]) + (in[1] * m[ 6]) + (in[2] * m[10]); +} + diff --git a/wolf3d/code/env/matrix.h b/wolf3d/code/env/matrix.h new file mode 100644 index 0000000..8245b25 --- /dev/null +++ b/wolf3d/code/env/matrix.h @@ -0,0 +1,43 @@ +/* + + Copyright (C) 2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * matrix.h: Matrix math routines. + * + * Author: Michael Liebscher + * + */ + +#ifndef __MATRIX_H__ +#define __MATRIX_H__ + +#include "vector.h" + +typedef float mat3_t[ 9 ]; // 3x3 matrix +typedef float mat4_t[ 16 ]; // 4x4 matrix + +extern void Matrix3x3Multiply( mat3_t in1, mat3_t in2, mat3_t out ) ; +extern void MatrixIdentity( mat4_t matrix ); +extern void MatrixInvert( mat4_t in, mat4_t out ); +extern void VectorMatrixMultiply( vec3_t vecIn, mat4_t m, vec3_t vecOut ); +extern void VectorMatrix3x3Multiply( vec3_t vecIn, mat4_t m, vec3_t vecOut ); + + +#endif /* __MATRIX_H__ */ diff --git a/wolf3d/code/env/memory.c b/wolf3d/code/env/memory.c new file mode 100644 index 0000000..b8af11a --- /dev/null +++ b/wolf3d/code/env/memory.c @@ -0,0 +1,193 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * memory.c: Memory allocation module. + * + * Author: Michael Liebscher + * + */ + +#include "../wolfiphone.h" + + + +#ifndef DEBUG_MEMORY + + #define DEBUG_MEMORY 0 + +#endif + + +/* +----------------------------------------------------------------------------- + Function: Memory_malloc -Allocates memory blocks. + + Parameters: size -[in] Bytes to allocate. + + Returns: + Void pointer to the allocated space on success, or NULL if + there is insufficient memory available. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void *Memory_malloc( size_t size ) +{ + void *ptr; + ptr = malloc( size ); + + if( ptr != NULL ) + { + +#if DEBUG_MEMORY + + Com_DPrintf( "[Memory_malloc]: %p size:%ld\n", ptr, size ); + +#endif + + return ptr; + } + + + Com_DPrintf( "[Memory_malloc]: Could not allocate %d bytes\n", size ); + + return NULL; +} + + +/* +----------------------------------------------------------------------------- + Function: Memory_calloc -Allocates an array in memory with elements + initialized to 0. + + Parameters: + num -[in] Number of elements. + size -[in] Bytes to allocate. + + Returns: + Void pointer to the allocated space on success, or NULL if + there is insufficient memory available. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void *Memory_calloc( size_t num, size_t size ) +{ + void *ptr; + ptr = calloc( num, size ); + + if( ptr != NULL ) + { + +#if DEBUG_MEMORY + + Com_DPrintf( "[Memory_calloc]: %p size:%ld num:%ld\n", ptr, size, num ); + +#endif + + return ptr; + } + + Com_DPrintf( "[Memory_calloc]: Could not allocate %d objects of size %d\n", num, size ); + + return NULL; +} + +/* +----------------------------------------------------------------------------- + Function: Memory_realloc -Reallocate memory blocks. + + Parameters: + memblock -[in] Pointer to previously allocated memory block. + size -[in] Bytes to allocate. + + Returns: + A void pointer to the reallocated (and possibly moved) memory + block. The return value is NULL if the size is zero and the + buffer argument is not NULL, or if there is not enough + available memory to expand the block to the given size. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void *Memory_realloc( void *memblock, size_t size ) +{ + void *ptr; + + ptr = realloc( memblock, size ); + + if( ptr != NULL ) + { + +#if DEBUG_MEMORY + + Com_DPrintf( "[Memory_realloc]: %p size:%ld\n", ptr, size ); + +#endif + + return ptr; + } + + Com_DPrintf( "[Memory_realloc]: Could not reallocate %d bytes\n", size ); + + return NULL; +} + + +/* +----------------------------------------------------------------------------- + Function: Memory_free -Deallocates or frees a memory block. + + Parameters: + memblock -[in] Previously allocated memory block to be freed. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Memory_free( void *memblock ) +{ + if( memblock ) + { + +#if DEBUG_MEMORY + + Com_DPrintf( "[Memory_free]: %p\n", memblock ); + +#endif + + free( memblock ); + } +} + + +PUBLIC void Memory_outofmem( const char *name, const char *file, W32 line ) +{ + + Com_Error( ERR_FATAL, "%s:%ld failed allocation for \"%s\"\n", + file, line, name ); + +} diff --git a/wolf3d/code/env/memory.h b/wolf3d/code/env/memory.h new file mode 100644 index 0000000..861c8e1 --- /dev/null +++ b/wolf3d/code/env/memory.h @@ -0,0 +1,57 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * memory.h: Memory allocation manager. + * + * Author: Michael Liebscher + * + */ + +/* + Notes: + This module is implemented by memory.c. + +*/ + +#ifndef __MEMORY_H__ +#define __MEMORY_H__ + + +// Use the macros +extern void *Memory_malloc( size_t size ); +extern void *Memory_calloc( size_t num, size_t size ); +extern void *Memory_realloc( void *memblock, size_t size ); +extern void Memory_free( void *memblock ); + +extern void Memory_outofmem( const char *name, const char *file, W32 line ); + +#define MM_MALLOC( size ) Memory_malloc( (size) ) +#define MM_CALLOC( num, size ) Memory_calloc( (num), (size) ) +#define MM_REALLOC( memblock, size ) Memory_realloc( (memblock), (size) ) + +#define MM_FREE( memblock ) { Memory_free( (memblock) ); ((memblock)) = NULL; } + +#define MM_OUTOFMEM( name ) Memory_outofmem( (name), __FILE__, __LINE__ ) + + + + +#endif /* __MEMORY_H__ */ diff --git a/wolf3d/code/env/mymath.h b/wolf3d/code/env/mymath.h new file mode 100644 index 0000000..42507b4 --- /dev/null +++ b/wolf3d/code/env/mymath.h @@ -0,0 +1,95 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * mymath.h: Math routines. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#ifndef __MYMATH_H__ +#define __MYMATH_H__ + + + +typedef int fixed4_t; +typedef int fixed8_t; +typedef int fixed16_t; + + +#define PITCH 0 /* up / down */ +#define YAW 1 /* left / right */ +#define ROLL 2 /* fall over */ + + +#ifndef M_PI + + #define M_PI 3.14159265358979323846f // matches value in gcc v2 math.h + +#endif + + + +#ifndef ABS + + #define ABS( x ) ( (x) < 0 ? -(x) : (x) ) + +#endif + + + +#define nanmask ( 255 << 23 ) + +#define IS_NAN( x ) ( ( (*(int *) &x ) & nanmask ) == nanmask ) + + + +/* Use RINT() instead of rint() */ +#ifdef __GNUC__ + + #define RINT( x ) rint( x ) + +#else + + #define RINT( x ) floor( (x) + 0.5 ) + +#endif + + + + +extern void MathLib_Init( void ); + +extern int my_log2( int val ); + +extern float (*pfSqrt)( float x ); + +extern float CalcFov( float fov_x, float width, float height ); + + + +#endif /* __MYMATH_H__ */ + diff --git a/wolf3d/code/env/myopengl.h b/wolf3d/code/env/myopengl.h new file mode 100644 index 0000000..83a9304 --- /dev/null +++ b/wolf3d/code/env/myopengl.h @@ -0,0 +1,872 @@ +/* + + Copyright (C) 2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * MyOpenGL.h: OpenGL Interface + * + * Author: Michael Liebscher + * + */ + +/* + Notes: + + This module is implemented by opengl_win.c. + +*/ + +#ifndef __MYOPENGL_H__ +#define __MYOPENGL_H__ + +#ifdef _WIN32 + + #define WIN32_LEAN_AND_MEAN 1 + #include + +#endif + +#ifdef IPHONE +#include +#include +#else +#include +#endif + + +#ifdef __unix__ + + #include + +#endif + + +extern int OpenGL_Init( const char *dllname ); +extern void OpenGL_Shutdown( void ); + + + +#ifndef APIENTRY + + #define APIENTRY + +#endif + +#ifndef APIENTRYP + + #define APIENTRYP APIENTRY * + +#endif + + +typedef GLvoid ( APIENTRYP GLACCUM )(GLenum op, GLfloat value); +typedef GLvoid ( APIENTRYP GLALPHAFUNC )(GLenum func, GLclampf ref); +typedef GLboolean ( APIENTRYP GLARETEXTURESRESIDENT )(GLsizei n, const GLuint *textures, GLboolean *residences); +typedef GLvoid ( APIENTRYP GLARRAYELEMENT )(GLint i); +typedef GLvoid ( APIENTRYP GLBEGIN )(GLenum mode); +typedef GLvoid ( APIENTRYP GLBINDTEXTURE )(GLenum target, GLuint texture); +typedef GLvoid ( APIENTRYP GLBITMAP )(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +typedef GLvoid ( APIENTRYP GLBLENDFUNC )(GLenum sfactor, GLenum dfactor); +typedef GLvoid ( APIENTRYP GLCALLLIST )(GLuint list); +typedef GLvoid ( APIENTRYP GLCALLLISTS )(GLsizei n, GLenum type, const GLvoid *lists); +typedef GLvoid ( APIENTRYP GLCLEAR )(GLbitfield mask); +typedef GLvoid ( APIENTRYP GLCLEARACCUM )(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef GLvoid ( APIENTRYP GLCLEARCOLOR )(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef GLvoid ( APIENTRYP GLCLEARDEPTH )(GLclampd depth); +typedef GLvoid ( APIENTRYP GLCLEARINDEX )(GLfloat c); +typedef GLvoid ( APIENTRYP GLCLEARSTENCIL )(GLint s); +typedef GLvoid ( APIENTRYP GLCLIPPLANE )(GLenum plane, const GLdouble *equation); +typedef GLvoid ( APIENTRYP GLCOLOR3B )(GLbyte red, GLbyte green, GLbyte blue); +typedef GLvoid ( APIENTRYP GLCOLOR3BV )(const GLbyte *v); +typedef GLvoid ( APIENTRYP GLCOLOR3D )(GLdouble red, GLdouble green, GLdouble blue); +typedef GLvoid ( APIENTRYP GLCOLOR3DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLCOLOR3F )(GLfloat red, GLfloat green, GLfloat blue); +typedef GLvoid ( APIENTRYP GLCOLOR3FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLCOLOR3I )(GLint red, GLint green, GLint blue); +typedef GLvoid ( APIENTRYP GLCOLOR3IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLCOLOR3S )(GLshort red, GLshort green, GLshort blue); +typedef GLvoid ( APIENTRYP GLCOLOR3SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLCOLOR3UB )(GLubyte red, GLubyte green, GLubyte blue); +typedef GLvoid ( APIENTRYP GLCOLOR3UBV )(const GLubyte *v); +typedef GLvoid ( APIENTRYP GLCOLOR3UI )(GLuint red, GLuint green, GLuint blue); +typedef GLvoid ( APIENTRYP GLCOLOR3UIV )(const GLuint *v); +typedef GLvoid ( APIENTRYP GLCOLOR3US )(GLushort red, GLushort green, GLushort blue); +typedef GLvoid ( APIENTRYP GLCOLOR3USV )(const GLushort *v); +typedef GLvoid ( APIENTRYP GLCOLOR4B )(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +typedef GLvoid ( APIENTRYP GLCOLOR4BV )(const GLbyte *v); +typedef GLvoid ( APIENTRYP GLCOLOR4D )(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +typedef GLvoid ( APIENTRYP GLCOLOR4DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLCOLOR4F )(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef GLvoid ( APIENTRYP GLCOLOR4FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLCOLOR4I )(GLint red, GLint green, GLint blue, GLint alpha); +typedef GLvoid ( APIENTRYP GLCOLOR4IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLCOLOR4S )(GLshort red, GLshort green, GLshort blue, GLshort alpha); +typedef GLvoid ( APIENTRYP GLCOLOR4SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLCOLOR4UB )(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +typedef GLvoid ( APIENTRYP GLCOLOR4UBV )(const GLubyte *v); +typedef GLvoid ( APIENTRYP GLCOLOR4UI )(GLuint red, GLuint green, GLuint blue, GLuint alpha); +typedef GLvoid ( APIENTRYP GLCOLOR4UIV )(const GLuint *v); +typedef GLvoid ( APIENTRYP GLCOLOR4US )(GLushort red, GLushort green, GLushort blue, GLushort alpha); +typedef GLvoid ( APIENTRYP GLCOLOR4USV )(const GLushort *v); +typedef GLvoid ( APIENTRYP GLCOLORMASK )(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef GLvoid ( APIENTRYP GLCOLORMATERIAL )(GLenum face, GLenum mode); +typedef GLvoid ( APIENTRYP GLCOLORPOINTER )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef GLvoid ( APIENTRYP GLCOPYPIXELS )(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +typedef GLvoid ( APIENTRYP GLCOPYTEXIMAGE1D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +typedef GLvoid ( APIENTRYP GLCOPYTEXIMAGE2D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef GLvoid ( APIENTRYP GLCOPYTEXSUBIMAGE1D )(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef GLvoid ( APIENTRYP GLCOPYTEXSUBIMAGE2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef GLvoid ( APIENTRYP GLCULLFACE )(GLenum mode); +typedef GLvoid ( APIENTRYP GLDELETELISTS )(GLuint list, GLsizei range); +typedef GLvoid ( APIENTRYP GLDELETETEXTURES )(GLsizei n, const GLuint *textures); +typedef GLvoid ( APIENTRYP GLDEPTHFUNC )(GLenum func); +typedef GLvoid ( APIENTRYP GLDEPTHMASK )(GLboolean flag); +typedef GLvoid ( APIENTRYP GLDEPTHRANGE )(GLclampd zNear, GLclampd zFar); +typedef GLvoid ( APIENTRYP GLDISABLE )(GLenum cap); +typedef GLvoid ( APIENTRYP GLDISABLECLIENTSTATE )(GLenum array); +typedef GLvoid ( APIENTRYP GLDRAWARRAYS )(GLenum mode, GLint first, GLsizei count); +typedef GLvoid ( APIENTRYP GLDRAWBUFFER )(GLenum mode); +typedef GLvoid ( APIENTRYP GLDRAWELEMENTS )(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +typedef GLvoid ( APIENTRYP GLDRAWPIXELS )(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef GLvoid ( APIENTRYP GLEDGEFLAG )(GLboolean flag); +typedef GLvoid ( APIENTRYP GLEDGEFLAGPOINTER )(GLsizei stride, const GLvoid *pointer); +typedef GLvoid ( APIENTRYP GLEDGEFLAGV )(const GLboolean *flag); +typedef GLvoid ( APIENTRYP GLENABLE )(GLenum cap); +typedef GLvoid ( APIENTRYP GLENABLECLIENTSTATE )(GLenum array); +typedef GLvoid ( APIENTRYP GLEND )(void); +typedef GLvoid ( APIENTRYP GLENDLIST )(void); +typedef GLvoid ( APIENTRYP GLEVALCOORD1D )(GLdouble u); +typedef GLvoid ( APIENTRYP GLEVALCOORD1DV )(const GLdouble *u); +typedef GLvoid ( APIENTRYP GLEVALCOORD1F )(GLfloat u); +typedef GLvoid ( APIENTRYP GLEVALCOORD1FV )(const GLfloat *u); +typedef GLvoid ( APIENTRYP GLEVALCOORD2D )(GLdouble u, GLdouble v); +typedef GLvoid ( APIENTRYP GLEVALCOORD2DV )(const GLdouble *u); +typedef GLvoid ( APIENTRYP GLEVALCOORD2F )(GLfloat u, GLfloat v); +typedef GLvoid ( APIENTRYP GLEVALCOORD2FV )(const GLfloat *u); +typedef GLvoid ( APIENTRYP GLEVALMESH1 )(GLenum mode, GLint i1, GLint i2); +typedef GLvoid ( APIENTRYP GLEVALMESH2 )(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +typedef GLvoid ( APIENTRYP GLEVALPOINT1 )(GLint i); +typedef GLvoid ( APIENTRYP GLEVALPOINT2 )(GLint i, GLint j); +typedef GLvoid ( APIENTRYP GLFEEDBACKBUFFER )(GLsizei size, GLenum type, GLfloat *buffer); +typedef GLvoid ( APIENTRYP GLFINISH )(void); +typedef GLvoid ( APIENTRYP GLFLUSH )(void); +typedef GLvoid ( APIENTRYP GLFOGF )(GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLFOGFV )(GLenum pname, const GLfloat *params); +typedef GLvoid ( APIENTRYP GLFOGI )(GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLFOGIV )(GLenum pname, const GLint *params); +typedef GLvoid ( APIENTRYP GLFRONTFACE )(GLenum mode); +typedef GLvoid ( APIENTRYP GLFRUSTUM )(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef GLuint ( APIENTRYP GLGENLISTS )(GLsizei range); +typedef GLvoid ( APIENTRYP GLGENTEXTURES )(GLsizei n, GLuint *textures); +typedef GLvoid ( APIENTRYP GLGETBOOLEANV )(GLenum pname, GLboolean *params); +typedef GLvoid ( APIENTRYP GLGETCLIPPLANE )(GLenum plane, GLdouble *equation); +typedef GLvoid ( APIENTRYP GLGETDOUBLEV )(GLenum pname, GLdouble *params); +typedef GLenum ( APIENTRYP GLGETERROR )(void); +typedef GLvoid ( APIENTRYP GLGETFLOATV )(GLenum pname, GLfloat *params); +typedef GLvoid ( APIENTRYP GLGETINTEGERV )(GLenum pname, GLint *params); +typedef GLvoid ( APIENTRYP GLGETLIGHTFV )(GLenum light, GLenum pname, GLfloat *params); +typedef GLvoid ( APIENTRYP GLGETLIGHTIV )(GLenum light, GLenum pname, GLint *params); +typedef GLvoid ( APIENTRYP GLGETMAPDV )(GLenum target, GLenum query, GLdouble *v); +typedef GLvoid ( APIENTRYP GLGETMAPFV )(GLenum target, GLenum query, GLfloat *v); +typedef GLvoid ( APIENTRYP GLGETMAPIV )(GLenum target, GLenum query, GLint *v); +typedef GLvoid ( APIENTRYP GLGETMATERIALFV )(GLenum face, GLenum pname, GLfloat *params); +typedef GLvoid ( APIENTRYP GLGETMATERIALIV )(GLenum face, GLenum pname, GLint *params); +typedef GLvoid ( APIENTRYP GLGETPIXELMAPFV )(GLenum map, GLfloat *values); +typedef GLvoid ( APIENTRYP GLGETPIXELMAPUIV )(GLenum map, GLuint *values); +typedef GLvoid ( APIENTRYP GLGETPIXELMAPUSV )(GLenum map, GLushort *values); +typedef GLvoid ( APIENTRYP GLGETPOINTERV )(GLenum pname, GLvoid* *params); +typedef GLvoid ( APIENTRYP GLGETPOLYGONSTIPPLE )(GLubyte *mask); +typedef const GLubyte * ( APIENTRYP GLGETSTRING )(GLenum name); +typedef GLvoid ( APIENTRYP GLGETTEXENVFV )(GLenum target, GLenum pname, GLfloat *params); +typedef GLvoid ( APIENTRYP GLGETTEXENVIV )(GLenum target, GLenum pname, GLint *params); +typedef GLvoid ( APIENTRYP GLGETTEXGENDV )(GLenum coord, GLenum pname, GLdouble *params); +typedef GLvoid ( APIENTRYP GLGETTEXGENFV )(GLenum coord, GLenum pname, GLfloat *params); +typedef GLvoid ( APIENTRYP GLGETTEXGENIV )(GLenum coord, GLenum pname, GLint *params); +typedef GLvoid ( APIENTRYP GLGETTEXIMAGE )(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef GLvoid ( APIENTRYP GLGETTEXPARAMETERFV )(GLenum target, GLenum pname, GLfloat *params); +typedef GLvoid ( APIENTRYP GLGETTEXPARAMETERIV )(GLenum target, GLenum pname, GLint *params); +typedef GLvoid ( APIENTRYP GLHINT )(GLenum target, GLenum mode); +typedef GLvoid ( APIENTRYP GLINDEXMASK )(GLuint mask); +typedef GLvoid ( APIENTRYP GLINDEXPOINTER )(GLenum type, GLsizei stride, const GLvoid *pointer); +typedef GLvoid ( APIENTRYP GLINDEXD )(GLdouble c); +typedef GLvoid ( APIENTRYP GLINDEXDV )(const GLdouble *c); +typedef GLvoid ( APIENTRYP GLINDEXF )(GLfloat c); +typedef GLvoid ( APIENTRYP GLINDEXFV )(const GLfloat *c); +typedef GLvoid ( APIENTRYP GLINDEXI )(GLint c); +typedef GLvoid ( APIENTRYP GLINDEXIV )(const GLint *c); +typedef GLvoid ( APIENTRYP GLINDEXS )(GLshort c); +typedef GLvoid ( APIENTRYP GLINDEXSV )(const GLshort *c); +typedef GLvoid ( APIENTRYP GLINDEXUB )(GLubyte c); +typedef GLvoid ( APIENTRYP GLINDEXUBV )(const GLubyte *c); +typedef GLvoid ( APIENTRYP GLINITNAMES )(void); +typedef GLvoid ( APIENTRYP GLINTERLEAVEDARRAYS )(GLenum format, GLsizei stride, const GLvoid *pointer); +typedef GLboolean ( APIENTRYP GLISENABLED )(GLenum cap); +typedef GLboolean ( APIENTRYP GLISLIST )(GLuint list); +typedef GLboolean ( APIENTRYP GLISTEXTURE )(GLuint texture); +typedef GLvoid ( APIENTRYP GLLIGHTMODELF )(GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLLIGHTMODELFV )(GLenum pname, const GLfloat *params); +typedef GLvoid ( APIENTRYP GLLIGHTMODELI )(GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLLIGHTMODELIV )(GLenum pname, const GLint *params); +typedef GLvoid ( APIENTRYP GLLIGHTF )(GLenum light, GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLLIGHTFV )(GLenum light, GLenum pname, const GLfloat *params); +typedef GLvoid ( APIENTRYP GLLIGHTI )(GLenum light, GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLLIGHTIV )(GLenum light, GLenum pname, const GLint *params); +typedef GLvoid ( APIENTRYP GLLINESTIPPLE )(GLint factor, GLushort pattern); +typedef GLvoid ( APIENTRYP GLLINEWIDTH )(GLfloat width); +typedef GLvoid ( APIENTRYP GLLISTBASE )(GLuint base); +typedef GLvoid ( APIENTRYP GLLOADIDENTITY )(void); +typedef GLvoid ( APIENTRYP GLLOADMATRIXD )(const GLdouble *m); +typedef GLvoid ( APIENTRYP GLLOADMATRIXF )(const GLfloat *m); +typedef GLvoid ( APIENTRYP GLLOADNAME )(GLuint name); +typedef GLvoid ( APIENTRYP GLLOGICOP )(GLenum opcode); +typedef GLvoid ( APIENTRYP GLMAP1D )(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef GLvoid ( APIENTRYP GLMAP1F )(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef GLvoid ( APIENTRYP GLMAP2D )(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef GLvoid ( APIENTRYP GLMAP2F )(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +typedef GLvoid ( APIENTRYP GLMAPGRID1D )(GLint un, GLdouble u1, GLdouble u2); +typedef GLvoid ( APIENTRYP GLMAPGRID1F )(GLint un, GLfloat u1, GLfloat u2); +typedef GLvoid ( APIENTRYP GLMAPGRID2D )(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +typedef GLvoid ( APIENTRYP GLMAPGRID2F )(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +typedef GLvoid ( APIENTRYP GLMATERIALF )(GLenum face, GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLMATERIALFV )(GLenum face, GLenum pname, const GLfloat *params); +typedef GLvoid ( APIENTRYP GLMATERIALI )(GLenum face, GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLMATERIALIV )(GLenum face, GLenum pname, const GLint *params); +typedef GLvoid ( APIENTRYP GLMATRIXMODE )(GLenum mode); +typedef GLvoid ( APIENTRYP GLMULTMATRIXD )(const GLdouble *m); +typedef GLvoid ( APIENTRYP GLMULTMATRIXF )(const GLfloat *m); +typedef GLvoid ( APIENTRYP GLNEWLIST )(GLuint list, GLenum mode); +typedef GLvoid ( APIENTRYP GLNORMAL3B )(GLbyte nx, GLbyte ny, GLbyte nz); +typedef GLvoid ( APIENTRYP GLNORMAL3BV )(const GLbyte *v); +typedef GLvoid ( APIENTRYP GLNORMAL3D )(GLdouble nx, GLdouble ny, GLdouble nz); +typedef GLvoid ( APIENTRYP GLNORMAL3DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLNORMAL3F )(GLfloat nx, GLfloat ny, GLfloat nz); +typedef GLvoid ( APIENTRYP GLNORMAL3FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLNORMAL3I )(GLint nx, GLint ny, GLint nz); +typedef GLvoid ( APIENTRYP GLNORMAL3IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLNORMAL3S )(GLshort nx, GLshort ny, GLshort nz); +typedef GLvoid ( APIENTRYP GLNORMAL3SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLNORMALPOINTER )(GLenum type, GLsizei stride, const GLvoid *pointer); +typedef GLvoid ( APIENTRYP GLORTHO )(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef GLvoid ( APIENTRYP GLPASSTHROUGH )(GLfloat token); +typedef GLvoid ( APIENTRYP GLPIXELMAPFV )(GLenum map, GLsizei mapsize, const GLfloat *values); +typedef GLvoid ( APIENTRYP GLPIXELMAPUIV )(GLenum map, GLsizei mapsize, const GLuint *values); +typedef GLvoid ( APIENTRYP GLPIXELMAPUSV )(GLenum map, GLsizei mapsize, const GLushort *values); +typedef GLvoid ( APIENTRYP GLPIXELSTOREF )(GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLPIXELSTOREI )(GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLPIXELTRANSFERF )(GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLPIXELTRANSFERI )(GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLPIXELZOOM )(GLfloat xfactor, GLfloat yfactor); +typedef GLvoid ( APIENTRYP GLPOINTSIZE )(GLfloat size); +typedef GLvoid ( APIENTRYP GLPOLYGONMODE )(GLenum face, GLenum mode); +typedef GLvoid ( APIENTRYP GLPOLYGONOFFSET )(GLfloat factor, GLfloat units); +typedef GLvoid ( APIENTRYP GLPOLYGONSTIPPLE )(const GLubyte *mask); +typedef GLvoid ( APIENTRYP GLPOPATTRIB )(void); +typedef GLvoid ( APIENTRYP GLPOPCLIENTATTRIB )(void); +typedef GLvoid ( APIENTRYP GLPOPMATRIX )(void); +typedef GLvoid ( APIENTRYP GLPOPNAME )(void); +typedef GLvoid ( APIENTRYP GLPRIORITIZETEXTURES )(GLsizei n, const GLuint *textures, const GLclampf *priorities); +typedef GLvoid ( APIENTRYP GLPUSHATTRIB )(GLbitfield mask); +typedef GLvoid ( APIENTRYP GLPUSHCLIENTATTRIB )(GLbitfield mask); +typedef GLvoid ( APIENTRYP GLPUSHMATRIX )(void); +typedef GLvoid ( APIENTRYP GLPUSHNAME )(GLuint name); +typedef GLvoid ( APIENTRYP GLRASTERPOS2D )(GLdouble x, GLdouble y); +typedef GLvoid ( APIENTRYP GLRASTERPOS2DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS2F )(GLfloat x, GLfloat y); +typedef GLvoid ( APIENTRYP GLRASTERPOS2FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS2I )(GLint x, GLint y); +typedef GLvoid ( APIENTRYP GLRASTERPOS2IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS2S )(GLshort x, GLshort y); +typedef GLvoid ( APIENTRYP GLRASTERPOS2SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS3D )(GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid ( APIENTRYP GLRASTERPOS3DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS3F )(GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid ( APIENTRYP GLRASTERPOS3FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS3I )(GLint x, GLint y, GLint z); +typedef GLvoid ( APIENTRYP GLRASTERPOS3IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS3S )(GLshort x, GLshort y, GLshort z); +typedef GLvoid ( APIENTRYP GLRASTERPOS3SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS4D )(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef GLvoid ( APIENTRYP GLRASTERPOS4DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS4F )(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef GLvoid ( APIENTRYP GLRASTERPOS4FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS4I )(GLint x, GLint y, GLint z, GLint w); +typedef GLvoid ( APIENTRYP GLRASTERPOS4IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLRASTERPOS4S )(GLshort x, GLshort y, GLshort z, GLshort w); +typedef GLvoid ( APIENTRYP GLRASTERPOS4SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLREADBUFFER )(GLenum mode); +typedef GLvoid ( APIENTRYP GLREADPIXELS )(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +typedef GLvoid ( APIENTRYP GLRECTD )(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +typedef GLvoid ( APIENTRYP GLRECTDV )(const GLdouble *v1, const GLdouble *v2); +typedef GLvoid ( APIENTRYP GLRECTF )(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +typedef GLvoid ( APIENTRYP GLRECTFV )(const GLfloat *v1, const GLfloat *v2); +typedef GLvoid ( APIENTRYP GLRECTI )(GLint x1, GLint y1, GLint x2, GLint y2); +typedef GLvoid ( APIENTRYP GLRECTIV )(const GLint *v1, const GLint *v2); +typedef GLvoid ( APIENTRYP GLRECTS )(GLshort x1, GLshort y1, GLshort x2, GLshort y2); +typedef GLvoid ( APIENTRYP GLRECTSV )(const GLshort *v1, const GLshort *v2); +typedef GLint ( APIENTRYP GLRENDERMODE )(GLenum mode); +typedef GLvoid ( APIENTRYP GLROTATED )(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid ( APIENTRYP GLROTATEF )(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid ( APIENTRYP GLSCALED )(GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid ( APIENTRYP GLSCALEF )(GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid ( APIENTRYP GLSCISSOR )(GLint x, GLint y, GLsizei width, GLsizei height); +typedef GLvoid ( APIENTRYP GLSELECTBUFFER )(GLsizei size, GLuint *buffer); +typedef GLvoid ( APIENTRYP GLSHADEMODEL )(GLenum mode); +typedef GLvoid ( APIENTRYP GLSTENCILFUNC )(GLenum func, GLint ref, GLuint mask); +typedef GLvoid ( APIENTRYP GLSTENCILMASK )(GLuint mask); +typedef GLvoid ( APIENTRYP GLSTENCILOP )(GLenum fail, GLenum zfail, GLenum zpass); +typedef GLvoid ( APIENTRYP GLTEXCOORD1D )(GLdouble s); +typedef GLvoid ( APIENTRYP GLTEXCOORD1DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD1F )(GLfloat s); +typedef GLvoid ( APIENTRYP GLTEXCOORD1FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD1I )(GLint s); +typedef GLvoid ( APIENTRYP GLTEXCOORD1IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD1S )(GLshort s); +typedef GLvoid ( APIENTRYP GLTEXCOORD1SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD2D )(GLdouble s, GLdouble t); +typedef GLvoid ( APIENTRYP GLTEXCOORD2DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD2F )(GLfloat s, GLfloat t); +typedef GLvoid ( APIENTRYP GLTEXCOORD2FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD2I )(GLint s, GLint t); +typedef GLvoid ( APIENTRYP GLTEXCOORD2IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD2S )(GLshort s, GLshort t); +typedef GLvoid ( APIENTRYP GLTEXCOORD2SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD3D )(GLdouble s, GLdouble t, GLdouble r); +typedef GLvoid ( APIENTRYP GLTEXCOORD3DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD3F )(GLfloat s, GLfloat t, GLfloat r); +typedef GLvoid ( APIENTRYP GLTEXCOORD3FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD3I )(GLint s, GLint t, GLint r); +typedef GLvoid ( APIENTRYP GLTEXCOORD3IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD3S )(GLshort s, GLshort t, GLshort r); +typedef GLvoid ( APIENTRYP GLTEXCOORD3SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD4D )(GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef GLvoid ( APIENTRYP GLTEXCOORD4DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD4F )(GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef GLvoid ( APIENTRYP GLTEXCOORD4FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD4I )(GLint s, GLint t, GLint r, GLint q); +typedef GLvoid ( APIENTRYP GLTEXCOORD4IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLTEXCOORD4S )(GLshort s, GLshort t, GLshort r, GLshort q); +typedef GLvoid ( APIENTRYP GLTEXCOORD4SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLTEXCOORDPOINTER )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef GLvoid ( APIENTRYP GLTEXENVF )(GLenum target, GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLTEXENVFV )(GLenum target, GLenum pname, const GLfloat *params); +typedef GLvoid ( APIENTRYP GLTEXENVI )(GLenum target, GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLTEXENVIV )(GLenum target, GLenum pname, const GLint *params); +typedef GLvoid ( APIENTRYP GLTEXGEND )(GLenum coord, GLenum pname, GLdouble param); +typedef GLvoid ( APIENTRYP GLTEXGENDV )(GLenum coord, GLenum pname, const GLdouble *params); +typedef GLvoid ( APIENTRYP GLTEXGENF )(GLenum coord, GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLTEXGENFV )(GLenum coord, GLenum pname, const GLfloat *params); +typedef GLvoid ( APIENTRYP GLTEXGENI )(GLenum coord, GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLTEXGENIV )(GLenum coord, GLenum pname, const GLint *params); +typedef GLvoid ( APIENTRYP GLTEXIMAGE1D )(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef GLvoid ( APIENTRYP GLTEXIMAGE2D )(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef GLvoid ( APIENTRYP GLTEXPARAMETERF )(GLenum target, GLenum pname, GLfloat param); +typedef GLvoid ( APIENTRYP GLTEXPARAMETERFV )(GLenum target, GLenum pname, const GLfloat *params); +typedef GLvoid ( APIENTRYP GLTEXPARAMETERI )(GLenum target, GLenum pname, GLint param); +typedef GLvoid ( APIENTRYP GLTEXPARAMETERIV )(GLenum target, GLenum pname, const GLint *params); +typedef GLvoid ( APIENTRYP GLTEXSUBIMAGE1D )(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef GLvoid ( APIENTRYP GLTEXSUBIMAGE2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef GLvoid ( APIENTRYP GLTRANSLATED )(GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid ( APIENTRYP GLTRANSLATEF )(GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid ( APIENTRYP GLVERTEX2D )(GLdouble x, GLdouble y); +typedef GLvoid ( APIENTRYP GLVERTEX2DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLVERTEX2F )(GLfloat x, GLfloat y); +typedef GLvoid ( APIENTRYP GLVERTEX2FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLVERTEX2I )(GLint x, GLint y); +typedef GLvoid ( APIENTRYP GLVERTEX2IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLVERTEX2S )(GLshort x, GLshort y); +typedef GLvoid ( APIENTRYP GLVERTEX2SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLVERTEX3D )(GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid ( APIENTRYP GLVERTEX3DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLVERTEX3F )(GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid ( APIENTRYP GLVERTEX3FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLVERTEX3I )(GLint x, GLint y, GLint z); +typedef GLvoid ( APIENTRYP GLVERTEX3IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLVERTEX3S )(GLshort x, GLshort y, GLshort z); +typedef GLvoid ( APIENTRYP GLVERTEX3SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLVERTEX4D )(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef GLvoid ( APIENTRYP GLVERTEX4DV )(const GLdouble *v); +typedef GLvoid ( APIENTRYP GLVERTEX4F )(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef GLvoid ( APIENTRYP GLVERTEX4FV )(const GLfloat *v); +typedef GLvoid ( APIENTRYP GLVERTEX4I )(GLint x, GLint y, GLint z, GLint w); +typedef GLvoid ( APIENTRYP GLVERTEX4IV )(const GLint *v); +typedef GLvoid ( APIENTRYP GLVERTEX4S )(GLshort x, GLshort y, GLshort z, GLshort w); +typedef GLvoid ( APIENTRYP GLVERTEX4SV )(const GLshort *v); +typedef GLvoid ( APIENTRYP GLVERTEXPOINTER )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef GLvoid ( APIENTRYP GLVIEWPORT )(GLint x, GLint y, GLsizei width, GLsizei height); + + +//GLACCUM pfglAccum; +GLALPHAFUNC pfglAlphaFunc; +GLARETEXTURESRESIDENT pfglAreTexturesResident; +//GLARRAYELEMENT pfglArrayElement; +GLBEGIN pfglBegin; +GLBINDTEXTURE pfglBindTexture; +//GLBITMAP pfglBitmap; +GLBLENDFUNC pfglBlendFunc; +GLCALLLIST pfglCallList; +GLCALLLISTS pfglCallLists; +GLCLEAR pfglClear; +//GLCLEARACCUM pfglClearAccum; +GLCLEARCOLOR pfglClearColor; +GLCLEARDEPTH pfglClearDepth; +//GLCLEARINDEX pfglClearIndex; +//GLCLEARSTENCIL pfglClearStencil; +//GLCLIPPLANE pfglClipPlane; +GLCOLOR3B pfglColor3b; +GLCOLOR3BV pfglColor3bv; +GLCOLOR3D pfglColor3d; +GLCOLOR3DV pfglColor3dv; +GLCOLOR3F pfglColor3f; +GLCOLOR3FV pfglColor3fv; +GLCOLOR3I pfglColor3i; +GLCOLOR3IV pfglColor3iv; +GLCOLOR3S pfglColor3s; +GLCOLOR3SV pfglColor3sv; +GLCOLOR3UB pfglColor3ub; +GLCOLOR3UBV pfglColor3ubv; +GLCOLOR3UI pfglColor3ui; +GLCOLOR3UIV pfglColor3uiv; +GLCOLOR3US pfglColor3us; +GLCOLOR3USV pfglColor3usv; +GLCOLOR4B pfglColor4b; +GLCOLOR4BV pfglColor4bv; +GLCOLOR4D pfglColor4d; +GLCOLOR4DV pfglColor4dv; +GLCOLOR4F pfglColor4f; +GLCOLOR4FV pfglColor4fv; +GLCOLOR4I pfglColor4i; +GLCOLOR4IV pfglColor4iv; +GLCOLOR4S pfglColor4s; +GLCOLOR4SV pfglColor4sv; +GLCOLOR4UB pfglColor4ub; +GLCOLOR4UBV pfglColor4ubv; +GLCOLOR4UI pfglColor4ui; +GLCOLOR4UIV pfglColor4uiv; +GLCOLOR4US pfglColor4us; +GLCOLOR4USV pfglColor4usv; +GLCOLORMASK pfglColorMask; +GLCOLORMATERIAL pfglColorMaterial; +GLCOLORPOINTER pfglColorPointer; +GLCOPYPIXELS pfglCopyPixels; +GLCOPYTEXIMAGE1D pfglCopyTexImage1D; +GLCOPYTEXIMAGE2D pfglCopyTexImage2D; +GLCOPYTEXSUBIMAGE1D pfglCopyTexSubImage1D; +GLCOPYTEXSUBIMAGE2D pfglCopyTexSubImage2D; +GLCULLFACE pfglCullFace; +GLDELETELISTS pfglDeleteLists; +GLDELETETEXTURES pfglDeleteTextures; +GLDEPTHFUNC pfglDepthFunc; +GLDEPTHMASK pfglDepthMask; +GLDEPTHRANGE pfglDepthRange; +GLDISABLE pfglDisable; +GLDISABLECLIENTSTATE pfglDisableClientState; +GLDRAWARRAYS pfglDrawArrays; +GLDRAWBUFFER pfglDrawBuffer; +GLDRAWELEMENTS pfglDrawElements; +GLDRAWPIXELS pfglDrawPixels; +GLEDGEFLAG pfglEdgeFlag; +GLEDGEFLAGPOINTER pfglEdgeFlagPointer; +GLEDGEFLAGV pfglEdgeFlagv; +GLENABLE pfglEnable; +GLENABLECLIENTSTATE pfglEnableClientState; +GLEND pfglEnd; +GLENDLIST pfglEndList; +GLEVALCOORD1D pfglEvalCoord1d; +GLEVALCOORD1DV pfglEvalCoord1dv; +GLEVALCOORD1F pfglEvalCoord1f; +GLEVALCOORD1FV pfglEvalCoord1fv; +GLEVALCOORD2D pfglEvalCoord2d; +GLEVALCOORD2DV pfglEvalCoord2dv; +GLEVALCOORD2F pfglEvalCoord2f; +GLEVALCOORD2FV pfglEvalCoord2fv; +GLEVALMESH1 pfglEvalMesh1; +GLEVALMESH2 pfglEvalMesh2; +GLEVALPOINT1 pfglEvalPoint1; +GLEVALPOINT2 pfglEvalPoint2; +GLFEEDBACKBUFFER pfglFeedbackBuffer; +GLFINISH pfglFinish; +GLFLUSH pfglFlush; +GLFOGF pfglFogf; +GLFOGFV pfglFogfv; +GLFOGI pfglFogi; +GLFOGIV pfglFogiv; +GLFRONTFACE pfglFrontFace; +GLFRUSTUM pfglFrustum; +GLGENLISTS pfglGenLists; +GLGENTEXTURES pfglGenTextures; +GLGETBOOLEANV pfglGetBooleanv; +GLGETCLIPPLANE pfglGetClipPlane; +GLGETDOUBLEV pfglGetDoublev; +GLGETERROR pfglGetError; +GLGETFLOATV pfglGetFloatv; +GLGETINTEGERV pfglGetIntegerv; +GLGETLIGHTFV pfglGetLightfv; +GLGETLIGHTIV pfglGetLightiv; +GLGETMAPDV pfglGetMapdv; +GLGETMAPFV pfglGetMapfv; +GLGETMAPIV pfglGetMapiv; +GLGETMATERIALFV pfglGetMaterialfv; +GLGETMATERIALIV pfglGetMaterialiv; +GLGETPIXELMAPFV pfglGetPixelMapfv; +GLGETPIXELMAPUIV pfglGetPixelMapuiv; +GLGETPIXELMAPUSV pfglGetPixelMapusv; +GLGETPOINTERV pfglGetPointerv; +GLGETPOLYGONSTIPPLE pfglGetPolygonStipple; +GLGETSTRING pfglGetString; +GLGETTEXENVFV pfglGetTexEnvfv; +GLGETTEXENVIV pfglGetTexEnviv; +GLGETTEXGENDV pfglGetTexGendv; +GLGETTEXGENFV pfglGetTexGenfv; +GLGETTEXGENIV pfglGetTexGeniv; +GLGETTEXIMAGE pfglGetTexImage; +GLGETTEXPARAMETERFV pfglGetTexParameterfv; +GLGETTEXPARAMETERIV pfglGetTexParameteriv; +GLHINT pfglHint; +GLINDEXMASK pfglIndexMask; +GLINDEXPOINTER pfglIndexPointer; +GLINDEXD pfglIndexd; +GLINDEXDV pfglIndexdv; +GLINDEXF pfglIndexf; +GLINDEXFV pfglIndexfv; +GLINDEXI pfglIndexi; +GLINDEXIV pfglIndexiv; +GLINDEXS pfglIndexs; +GLINDEXSV pfglIndexsv; +GLINDEXUB pfglIndexub; +GLINDEXUBV pfglIndexubv; +GLINITNAMES pfglInitNames; +GLINTERLEAVEDARRAYS pfglInterleavedArrays; +GLISENABLED pfglIsEnabled; +GLISLIST pfglIsList; +GLISTEXTURE pfglIsTexture; +GLLIGHTMODELF pfglLightModelf; +GLLIGHTMODELFV pfglLightModelfv; +GLLIGHTMODELI pfglLightModeli; +GLLIGHTMODELIV pfglLightModeliv; +GLLIGHTF pfglLightf; +GLLIGHTFV pfglLightfv; +GLLIGHTI pfglLighti; +GLLIGHTIV pfglLightiv; +GLLINESTIPPLE pfglLineStipple; +GLLINEWIDTH pfglLineWidth; +GLLISTBASE pfglListBase; +GLLOADIDENTITY pfglLoadIdentity; +GLLOADMATRIXD pfglLoadMatrixd; +GLLOADMATRIXF pfglLoadMatrixf; +GLLOADNAME pfglLoadName; +GLLOGICOP pfglLogicOp; +GLMAP1D pfglMap1d; +GLMAP1F pfglMap1f; +GLMAP2D pfglMap2d; +GLMAP2F pfglMap2f; +GLMAPGRID1D pfglMapGrid1d; +GLMAPGRID1F pfglMapGrid1f; +GLMAPGRID2D pfglMapGrid2d; +GLMAPGRID2F pfglMapGrid2f; +GLMATERIALF pfglMaterialf; +GLMATERIALFV pfglMaterialfv; +GLMATERIALI pfglMateriali; +GLMATERIALIV pfglMaterialiv; +GLMATRIXMODE pfglMatrixMode; +GLMULTMATRIXD pfglMultMatrixd; +GLMULTMATRIXF pfglMultMatrixf; +GLNEWLIST pfglNewList; +GLNORMAL3B pfglNormal3b; +GLNORMAL3BV pfglNormal3bv; +GLNORMAL3D pfglNormal3d; +GLNORMAL3DV pfglNormal3dv; +GLNORMAL3F pfglNormal3f; +GLNORMAL3FV pfglNormal3fv; +GLNORMAL3I pfglNormal3i; +GLNORMAL3IV pfglNormal3iv; +GLNORMAL3S pfglNormal3s; +GLNORMAL3SV pfglNormal3sv; +GLNORMALPOINTER pfglNormalPointer; +GLORTHO pfglOrtho; +GLPASSTHROUGH pfglPassThrough; +GLPIXELMAPFV pfglPixelMapfv; +GLPIXELMAPUIV pfglPixelMapuiv; +GLPIXELMAPUSV pfglPixelMapusv; +GLPIXELSTOREF pfglPixelStoref; +GLPIXELSTOREI pfglPixelStorei; +GLPIXELTRANSFERF pfglPixelTransferf; +GLPIXELTRANSFERI pfglPixelTransferi; +GLPIXELZOOM pfglPixelZoom; +GLPOINTSIZE pfglPointSize; +GLPOLYGONMODE pfglPolygonMode; +GLPOLYGONOFFSET pfglPolygonOffset; +GLPOLYGONSTIPPLE pfglPolygonStipple; +GLPOPATTRIB pfglPopAttrib; +GLPOPCLIENTATTRIB pfglPopClientAttrib; +GLPOPMATRIX pfglPopMatrix; +GLPOPNAME pfglPopName; +GLPRIORITIZETEXTURES pfglPrioritizeTextures; +GLPUSHATTRIB pfglPushAttrib; +GLPUSHCLIENTATTRIB pfglPushClientAttrib; +GLPUSHMATRIX pfglPushMatrix; +GLPUSHNAME pfglPushName; +GLRASTERPOS2D pfglRasterPos2d; +GLRASTERPOS2DV pfglRasterPos2dv; +GLRASTERPOS2F pfglRasterPos2f; +GLRASTERPOS2FV pfglRasterPos2fv; +GLRASTERPOS2I pfglRasterPos2i; +GLRASTERPOS2IV pfglRasterPos2iv; +GLRASTERPOS2S pfglRasterPos2s; +GLRASTERPOS2SV pfglRasterPos2sv; +GLRASTERPOS3D pfglRasterPos3d; +GLRASTERPOS3DV pfglRasterPos3dv; +GLRASTERPOS3F pfglRasterPos3f; +GLRASTERPOS3FV pfglRasterPos3fv; +GLRASTERPOS3I pfglRasterPos3i; +GLRASTERPOS3IV pfglRasterPos3iv; +GLRASTERPOS3S pfglRasterPos3s; +GLRASTERPOS3SV pfglRasterPos3sv; +GLRASTERPOS4D pfglRasterPos4d; +GLRASTERPOS4DV pfglRasterPos4dv; +GLRASTERPOS4F pfglRasterPos4f; +GLRASTERPOS4FV pfglRasterPos4fv; +GLRASTERPOS4I pfglRasterPos4i; +GLRASTERPOS4IV pfglRasterPos4iv; +GLRASTERPOS4S pfglRasterPos4s; +GLRASTERPOS4SV pfglRasterPos4sv; +GLREADBUFFER pfglReadBuffer; +GLREADPIXELS pfglReadPixels; +GLRECTD pfglRectd; +GLRECTDV pfglRectdv; +GLRECTF pfglRectf; +GLRECTFV pfglRectfv; +GLRECTI pfglRecti; +GLRECTIV pfglRectiv; +GLRECTS pfglRects; +GLRECTSV pfglRectsv; +GLRENDERMODE pfglRenderMode; +GLROTATED pfglRotated; +GLROTATEF pfglRotatef; +GLSCALED pfglScaled; +GLSCALEF pfglScalef; +GLSCISSOR pfglScissor; +GLSELECTBUFFER pfglSelectBuffer; +GLSHADEMODEL pfglShadeModel; +GLSTENCILFUNC pfglStencilFunc; +GLSTENCILMASK pfglStencilMask; +GLSTENCILOP pfglStencilOp; +GLTEXCOORD1D pfglTexCoord1d; +GLTEXCOORD1DV pfglTexCoord1dv; +GLTEXCOORD1F pfglTexCoord1f; +GLTEXCOORD1FV pfglTexCoord1fv; +GLTEXCOORD1I pfglTexCoord1i; +GLTEXCOORD1IV pfglTexCoord1iv; +GLTEXCOORD1S pfglTexCoord1s; +GLTEXCOORD1SV pfglTexCoord1sv; +GLTEXCOORD2D pfglTexCoord2d; +GLTEXCOORD2DV pfglTexCoord2dv; +GLTEXCOORD2F pfglTexCoord2f; +GLTEXCOORD2FV pfglTexCoord2fv; +GLTEXCOORD2I pfglTexCoord2i; +GLTEXCOORD2IV pfglTexCoord2iv; +GLTEXCOORD2S pfglTexCoord2s; +GLTEXCOORD2SV pfglTexCoord2sv; +GLTEXCOORD3D pfglTexCoord3d; +GLTEXCOORD3DV pfglTexCoord3dv; +GLTEXCOORD3F pfglTexCoord3f; +GLTEXCOORD3FV pfglTexCoord3fv; +GLTEXCOORD3I pfglTexCoord3i; +GLTEXCOORD3IV pfglTexCoord3iv; +GLTEXCOORD3S pfglTexCoord3s; +GLTEXCOORD3SV pfglTexCoord3sv; +GLTEXCOORD4D pfglTexCoord4d; +GLTEXCOORD4DV pfglTexCoord4dv; +GLTEXCOORD4F pfglTexCoord4f; +GLTEXCOORD4FV pfglTexCoord4fv; +GLTEXCOORD4I pfglTexCoord4i; +GLTEXCOORD4IV pfglTexCoord4iv; +GLTEXCOORD4S pfglTexCoord4s; +GLTEXCOORD4SV pfglTexCoord4sv; +GLTEXCOORDPOINTER pfglTexCoordPointer; +GLTEXENVF pfglTexEnvf; +GLTEXENVFV pfglTexEnvfv; +GLTEXENVI pfglTexEnvi; +GLTEXENVIV pfglTexEnviv; +GLTEXGEND pfglTexGend; +GLTEXGENDV pfglTexGendv; +GLTEXGENF pfglTexGenf; +GLTEXGENFV pfglTexGenfv; +GLTEXGENI pfglTexGeni; +GLTEXGENIV pfglTexGeniv; +GLTEXIMAGE1D pfglTexImage1D; +GLTEXIMAGE2D pfglTexImage2D; +GLTEXPARAMETERF pfglTexParameterf; +GLTEXPARAMETERFV pfglTexParameterfv; +GLTEXPARAMETERI pfglTexParameteri; +GLTEXPARAMETERIV pfglTexParameteriv; +GLTEXSUBIMAGE1D pfglTexSubImage1D; +GLTEXSUBIMAGE2D pfglTexSubImage2D; +GLTRANSLATED pfglTranslated; +GLTRANSLATEF pfglTranslatef; +GLVERTEX2D pfglVertex2d; +GLVERTEX2DV pfglVertex2dv; +GLVERTEX2F pfglVertex2f; +GLVERTEX2FV pfglVertex2fv; +GLVERTEX2I pfglVertex2i; +GLVERTEX2IV pfglVertex2iv; +GLVERTEX2S pfglVertex2s; +GLVERTEX2SV pfglVertex2sv; +GLVERTEX3D pfglVertex3d; +GLVERTEX3DV pfglVertex3dv; +GLVERTEX3F pfglVertex3f; +GLVERTEX3FV pfglVertex3fv; +GLVERTEX3I pfglVertex3i; +GLVERTEX3IV pfglVertex3iv; +GLVERTEX3S pfglVertex3s; +GLVERTEX3SV pfglVertex3sv; +GLVERTEX4D pfglVertex4d; +GLVERTEX4DV pfglVertex4dv; +GLVERTEX4F pfglVertex4f; +GLVERTEX4FV pfglVertex4fv; +GLVERTEX4I pfglVertex4i; +GLVERTEX4IV pfglVertex4iv; +GLVERTEX4S pfglVertex4s; +GLVERTEX4SV pfglVertex4sv; +GLVERTEXPOINTER pfglVertexPointer; +GLVIEWPORT pfglViewport; + + + +#ifdef _WIN32 + + +typedef BOOL (WINAPI *WGLCOPYCONTEXT)(HGLRC, HGLRC, UINT); +typedef HGLRC (WINAPI *WGLCREATECONTEXT)(HDC); +typedef HGLRC (WINAPI *WGLCREATELAYERCONTEXT)(HDC, int); +typedef BOOL (WINAPI *WGLDELETECONTEXT)(HGLRC); +typedef BOOL (WINAPI *WGLDESCRIBELAYERPLANE)(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR); +typedef HGLRC (WINAPI *WGLGETCURRENTCONTEXT)(VOID); +typedef HDC (WINAPI *WGLGETCURRENTDC)(VOID); +typedef int (WINAPI *WGLGETLAYERPALETTEENTRIES)(HDC, int, int, int, COLORREF *); +typedef PROC (WINAPI *WGLGETPROCADDRESS)(LPCSTR); +typedef BOOL (WINAPI *WGLMAKECURRENT)(HDC, HGLRC); +typedef BOOL (WINAPI *WGLREALIZELAYERPALETTE)(HDC, int, BOOL); +typedef int (WINAPI *WGLSETLAYERPALETTEENTRIES)(HDC, int, int, int, CONST COLORREF *); +typedef BOOL (WINAPI *WGLSHARELISTS)(HGLRC, HGLRC); +typedef BOOL (WINAPI *WGLSWAPLAYERBUFFERS)(HDC, UINT); +typedef BOOL (WINAPI *WGLUSEFONTBITMAPS)(HDC, DWORD, DWORD, DWORD); +typedef BOOL (WINAPI *WGLUSEFONTOUTLINES)(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); + + +WGLCOPYCONTEXT pfwglCopyContext; +WGLCREATECONTEXT pfwglCreateContext; +WGLCREATELAYERCONTEXT pfwglCreateLayerContext; +WGLDELETECONTEXT pfwglDeleteContext; +WGLDESCRIBELAYERPLANE pfwglDescribeLayerPlane; +WGLGETCURRENTCONTEXT pfwglGetCurrentContext; +WGLGETCURRENTDC pfwglGetCurrentDC; +WGLGETLAYERPALETTEENTRIES pfwglGetLayerPaletteEntries; +WGLGETPROCADDRESS pfwglGetProcAddress; +WGLMAKECURRENT pfwglMakeCurrent; +WGLREALIZELAYERPALETTE pfwglRealizeLayerPalette; +WGLSETLAYERPALETTEENTRIES pfwglSetLayerPaletteEntries; +WGLSHARELISTS pfwglShareLists; +WGLSWAPLAYERBUFFERS pfwglSwapLayerBuffers; +WGLUSEFONTBITMAPS pfwglUseFontBitmaps; +WGLUSEFONTOUTLINES pfwglUseFontOutlines; + + +typedef int ( WINAPI *WGLCHOOSEPIXELFORMAT )(HDC, CONST PIXELFORMATDESCRIPTOR *); +typedef int ( WINAPI *WGLDESCRIBEPIXELFORMAT) (HDC, int, UINT, LPPIXELFORMATDESCRIPTOR); +typedef int ( WINAPI *WGLGETPIXELFORMAT)(HDC); +typedef BOOL ( WINAPI *WGLSETPIXELFORMAT)(HDC, int, CONST PIXELFORMATDESCRIPTOR *); +typedef BOOL ( WINAPI *WGLSWAPBUFFERS)(HDC); + + +WGLCHOOSEPIXELFORMAT pfwglChoosePixelFormat; +WGLDESCRIBEPIXELFORMAT pfwglDescribePixelFormat; +WGLGETPIXELFORMAT pfwglGetPixelFormat; +WGLSETPIXELFORMAT pfwglSetPixelFormat; +WGLSWAPBUFFERS pfwglSwapBuffers; + + + +typedef BOOL (WINAPI *WGLSWAPINTERVALEXT)( int ); +typedef int (WINAPI *WGLGETSWAPINTERVALEXT)( void ); + +WGLSWAPINTERVALEXT pfwglSwapIntervalEXT; +WGLGETSWAPINTERVALEXT pfwglGetSwapIntervalEXT; + + +void *(WINAPI *pfwglAllocateMemoryNV)( GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority ); +void *(WINAPI *pfwglFreeMemoryNV)( void *pointer ); + + + +#ifndef HPBUFFERARB + + DECLARE_HANDLE( HPBUFFERARB ); + +#endif + +HPBUFFERARB (WINAPI *pfwglCreatePbufferARB)( HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList ); +HDC (WINAPI *pfwglGetPbufferDCARB)( HPBUFFERARB hPbuffer ); +int (WINAPI *pfwglReleasePbufferDCARB)( HPBUFFERARB hPbuffer, HDC hDC ); +BOOL (WINAPI *pfwglDestroyPbufferARB)(HPBUFFERARB hPbuffer); +BOOL (WINAPI *pfwglQueryPbufferARB)( HPBUFFERARB hPbuffer, int iAttribute, int *piValue ); + + +BOOL (WINAPI *pfwglGetPixelFormatAttribivARB)( HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); +BOOL (WINAPI *pfwglGetPixelFormatAttribfvARB)( HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); +BOOL (WINAPI *pfwglChoosePixelFormatARB)( HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); + + +#endif /* _WIN32 */ + +#ifdef __unix__ + +// Local function in dll +extern void *pfwglGetProcAddress( const char *symbol ); + + +void *(*pfwglAllocateMemoryNV)( GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority ); +void *(*pfwglFreeMemoryNV)( void *pointer ); + + +// GLX Functions +XVisualInfo * (*pfglXChooseVisual)( Display *dpy, int screen, int *attribList ); +void (*pfglXCopyContext)( Display *dpy, GLXContext src, GLXContext dst, GLuint mask ); +GLXContext (*pfglXCreateContext)( Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct ); +GLXPixmap (*pfglXCreateGLXPixmap)( Display *dpy, XVisualInfo *vis, Pixmap pixmap ); +void (*pfglXDestroyContext)( Display *dpy, GLXContext ctx ); +void (*pfglXDestroyGLXPixmap)( Display *dpy, GLXPixmap pix ); +int (*pfglXGetConfig)( Display *dpy, XVisualInfo *vis, int attrib, int *value ); +GLXContext (*pfglXGetCurrentContext)( void ); +GLXDrawable (*pfglXGetCurrentDrawable)( void ); +Bool (*pfglXIsDirect)( Display *dpy, GLXContext ctx ); +Bool (*pfglXMakeCurrent)( Display *dpy, GLXDrawable drawable, GLXContext ctx); +Bool (*pfglXQueryExtension)( Display *dpy, int *errorBase, int *eventBase ); +Bool (*pfglXQueryVersion)( Display *dpy, int *major, int *minor ); +void (*pfglXSwapBuffers)( Display *dpy, GLXDrawable drawable ); +void (*pfglXUseXFont)( Font font, int first, int count, int listBase ); +void (*pfglXWaitGL)( void ); +void (*pfglXWaitX)( void ); + +#endif /* __unix__ */ + + + + + +#endif /* __MYOPENGL_H__ */ diff --git a/wolf3d/code/env/myopengl_extension.h b/wolf3d/code/env/myopengl_extension.h new file mode 100644 index 0000000..79c26f3 --- /dev/null +++ b/wolf3d/code/env/myopengl_extension.h @@ -0,0 +1,716 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * myopengl_extension.h: Interface to OpenGL extensions. + * + * Author: Michael Liebscher + * Date: 2004 + * + */ + +/* + + Notes: + + This module is implemented by opengl_extenstion.c + +*/ + + +#ifndef __MYOPENGL_EXTENSION_H__ +#define __MYOPENGL_EXTENSION_H__ + + +#ifdef IPHONE +#include +#include +#else +#include +#include "GL/glext.h" +#endif + + +#ifndef APIENTRY + + #define APIENTRY + +#endif + +#ifndef APIENTRYP + + #define APIENTRYP APIENTRY * + +#endif + + + +/////////////////////////////////////////////////////////////////////////////// +// +// OpenGL Extensions +// +/////////////////////////////////////////////////////////////////////////////// + + +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 + +#ifdef __sgi +#define GL_SHARED_TEXTURE_PALETTE_EXT GL_TEXTURE_COLOR_TABLE_SGI +#else +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif + + +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 + +#ifndef WGL_ARB_pixel_format + #define WGL_ARB_pixel_format 1 + #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 + #define WGL_DRAW_TO_WINDOW_ARB 0x2001 + #define WGL_DRAW_TO_BITMAP_ARB 0x2002 + #define WGL_ACCELERATION_ARB 0x2003 + #define WGL_NEED_PALETTE_ARB 0x2004 + #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 + #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 + #define WGL_SWAP_METHOD_ARB 0x2007 + #define WGL_NUMBER_OVERLAYS_ARB 0x2008 + #define WGL_NUMBER_UNDERLAYS_ARB 0x2009 + #define WGL_TRANSPARENT_ARB 0x200A + #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 + #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 + #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 + #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A + #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B + #define WGL_SHARE_DEPTH_ARB 0x200C + #define WGL_SHARE_STENCIL_ARB 0x200D + #define WGL_SHARE_ACCUM_ARB 0x200E + #define WGL_SUPPORT_GDI_ARB 0x200F + #define WGL_SUPPORT_OPENGL_ARB 0x2010 + #define WGL_DOUBLE_BUFFER_ARB 0x2011 + #define WGL_STEREO_ARB 0x2012 + #define WGL_PIXEL_TYPE_ARB 0x2013 + #define WGL_COLOR_BITS_ARB 0x2014 + #define WGL_RED_BITS_ARB 0x2015 + #define WGL_RED_SHIFT_ARB 0x2016 + #define WGL_GREEN_BITS_ARB 0x2017 + #define WGL_GREEN_SHIFT_ARB 0x2018 + #define WGL_BLUE_BITS_ARB 0x2019 + #define WGL_BLUE_SHIFT_ARB 0x201A + #define WGL_ALPHA_BITS_ARB 0x201B + #define WGL_ALPHA_SHIFT_ARB 0x201C + #define WGL_ACCUM_BITS_ARB 0x201D + #define WGL_ACCUM_RED_BITS_ARB 0x201E + #define WGL_ACCUM_GREEN_BITS_ARB 0x201F + #define WGL_ACCUM_BLUE_BITS_ARB 0x2020 + #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 + #define WGL_DEPTH_BITS_ARB 0x2022 + #define WGL_STENCIL_BITS_ARB 0x2023 + #define WGL_AUX_BUFFERS_ARB 0x2024 + + #define WGL_NO_ACCELERATION_ARB 0x2025 + #define WGL_GENERIC_ACCELERATION_ARB 0x2026 + #define WGL_FULL_ACCELERATION_ARB 0x2027 + + #define WGL_SWAP_EXCHANGE_ARB 0x2028 + #define WGL_SWAP_COPY_ARB 0x2029 + #define WGL_SWAP_UNDEFINED_ARB 0x202A + + #define WGL_TYPE_RGBA_ARB 0x202B + #define WGL_TYPE_COLORINDEX_ARB 0x202C +#endif /* WGL_ARB_pixel_format */ + +#ifndef WGL_ARB_pbuffer + #define WGL_ARB_pbuffer 1 + #define WGL_DRAW_TO_PBUFFER_ARB 0x202D + #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E + #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F + #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 + #define WGL_PBUFFER_LARGEST_ARB 0x2033 + #define WGL_PBUFFER_WIDTH_ARB 0x2034 + #define WGL_PBUFFER_HEIGHT_ARB 0x2035 + #define WGL_PBUFFER_LOST_ARB 0x2036 +#endif + + + + + + + + + + +/* + ----------------------- + ARB_MultiTexture + ----------------------- +*/ +void (APIENTRYP pfglActiveTextureARB) (GLenum); +void (APIENTRYP pfglClientActiveTextureARB) (GLenum); +void (APIENTRYP pfglMultiTexCoord1dARB) (GLenum, GLdouble); +void (APIENTRYP pfglMultiTexCoord1dvARB) (GLenum, const GLdouble *); +void (APIENTRYP pfglMultiTexCoord1fARB) (GLenum, GLfloat); +void (APIENTRYP pfglMultiTexCoord1fvARB) (GLenum, const GLfloat *); +void (APIENTRYP pfglMultiTexCoord1iARB) (GLenum, GLint); +void (APIENTRYP pfglMultiTexCoord1ivARB) (GLenum, const GLint *); +void (APIENTRYP pfglMultiTexCoord1sARB) (GLenum, GLshort); +void (APIENTRYP pfglMultiTexCoord1svARB) (GLenum, const GLshort *); +void (APIENTRYP pfglMultiTexCoord2dARB) (GLenum, GLdouble, GLdouble); +void (APIENTRYP pfglMultiTexCoord2dvARB) (GLenum, const GLdouble *); +void (APIENTRYP pfglMultiTexCoord2fARB) (GLenum, GLfloat, GLfloat); +void (APIENTRYP pfglMultiTexCoord2fvARB) (GLenum, const GLfloat *); +void (APIENTRYP pfglMultiTexCoord2iARB) (GLenum, GLint, GLint); +void (APIENTRYP pfglMultiTexCoord2ivARB) (GLenum, const GLint *); +void (APIENTRYP pfglMultiTexCoord2sARB) (GLenum, GLshort, GLshort); +void (APIENTRYP pfglMultiTexCoord2svARB) (GLenum, const GLshort *); +void (APIENTRYP pfglMultiTexCoord3dARB) (GLenum, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglMultiTexCoord3dvARB) (GLenum, const GLdouble *); +void (APIENTRYP pfglMultiTexCoord3fARB) (GLenum, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglMultiTexCoord3fvARB) (GLenum, const GLfloat *); +void (APIENTRYP pfglMultiTexCoord3iARB) (GLenum, GLint, GLint, GLint); +void (APIENTRYP pfglMultiTexCoord3ivARB) (GLenum, const GLint *); +void (APIENTRYP pfglMultiTexCoord3sARB) (GLenum, GLshort, GLshort, GLshort); +void (APIENTRYP pfglMultiTexCoord3svARB) (GLenum, const GLshort *); +void (APIENTRYP pfglMultiTexCoord4dARB) (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglMultiTexCoord4dvARB) (GLenum, const GLdouble *); +void (APIENTRYP pfglMultiTexCoord4fARB) (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglMultiTexCoord4fvARB) (GLenum, const GLfloat *); +void (APIENTRYP pfglMultiTexCoord4iARB) (GLenum, GLint, GLint, GLint, GLint); +void (APIENTRYP pfglMultiTexCoord4ivARB) (GLenum, const GLint *); +void (APIENTRYP pfglMultiTexCoord4sARB) (GLenum, GLshort, GLshort, GLshort, GLshort); +void (APIENTRYP pfglMultiTexCoord4svARB) (GLenum, const GLshort *); + + +/* + ----------------------- + ARB_TransposeMatrix + ----------------------- +*/ +void (APIENTRYP pfglLoadTransposeMatrixfARB) (const GLfloat *); +void (APIENTRYP pfglLoadTransposeMatrixdARB) (const GLdouble *); +void (APIENTRYP pfglMultTransposeMatrixfARB) (const GLfloat *); +void (APIENTRYP pfglMultTransposeMatrixdARB) (const GLdouble *); + + +/* + ----------------------- + ARB_MultiSample + ----------------------- +*/ +void (APIENTRYP pfglSampleCoverageARB) (GLclampf, GLboolean); + + +/* + ----------------------- + ARB_TextureCompression + ----------------------- +*/ +void (APIENTRYP pfglCompressedTexImage3DARB) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +void (APIENTRYP pfglCompressedTexImage2DARB) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +void (APIENTRYP pfglCompressedTexImage1DARB) (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +void (APIENTRYP pfglCompressedTexSubImage3DARB) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +void (APIENTRYP pfglCompressedTexSubImage2DARB) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +void (APIENTRYP pfglCompressedTexSubImage1DARB) (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +void (APIENTRYP pfglGetCompressedTexImageARB) (GLenum, GLint, GLvoid *); + + +/* + ----------------------- + ARB_PointParameters + ----------------------- +*/ +void (APIENTRYP pfglPointParameterfARB) (GLenum, GLfloat); +void (APIENTRYP pfglPointParameterfvARB) (GLenum, const GLfloat *); + + +/* + ----------------------- + ARB_VertexBlend + ----------------------- +*/ +void (APIENTRYP pfglWeightbvARB) (GLint, const GLbyte *); +void (APIENTRYP pfglWeightsvARB) (GLint, const GLshort *); +void (APIENTRYP pfglWeightivARB) (GLint, const GLint *); +void (APIENTRYP pfglWeightfvARB) (GLint, const GLfloat *); +void (APIENTRYP pfglWeightdvARB) (GLint, const GLdouble *); +void (APIENTRYP pfglWeightubvARB) (GLint, const GLubyte *); +void (APIENTRYP pfglWeightusvARB) (GLint, const GLushort *); +void (APIENTRYP pfglWeightuivARB) (GLint, const GLuint *); +void (APIENTRYP pfglWeightPointerARB) (GLint, GLenum, GLsizei, const GLvoid *); +void (APIENTRYP pfglVertexBlendARB) (GLint); + + +/* + ----------------------- + ARB_MatrixPalette + ----------------------- +*/ +void (APIENTRYP pfglCurrentPaletteMatrixARB) (GLint); +void (APIENTRYP pfglMatrixIndexubvARB) (GLint, const GLubyte *); +void (APIENTRYP pfglMatrixIndexusvARB) (GLint, const GLushort *); +void (APIENTRYP pfglMatrixIndexuivARB) (GLint, const GLuint *); +void (APIENTRYP pfglMatrixIndexPointerARB) (GLint, GLenum, GLsizei, const GLvoid *); + + +/* + ------------------------------ + ARB_VertexProgram + ------------------------------ +*/ +void (APIENTRYP pfglVertexAttrib1dARB) (GLuint, GLdouble); +void (APIENTRYP pfglVertexAttrib1dvARB) (GLuint, const GLdouble *); +void (APIENTRYP pfglVertexAttrib1fARB) (GLuint, GLfloat); +void (APIENTRYP pfglVertexAttrib1fvARB) (GLuint, const GLfloat *); +void (APIENTRYP pfglVertexAttrib1sARB) (GLuint, GLshort); +void (APIENTRYP pfglVertexAttrib1svARB) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib2dARB) (GLuint, GLdouble, GLdouble); +void (APIENTRYP pfglVertexAttrib2dvARB) (GLuint, const GLdouble *); +void (APIENTRYP pfglVertexAttrib2fARB) (GLuint, GLfloat, GLfloat); +void (APIENTRYP pfglVertexAttrib2fvARB) (GLuint, const GLfloat *); +void (APIENTRYP pfglVertexAttrib2sARB) (GLuint, GLshort, GLshort); +void (APIENTRYP pfglVertexAttrib2svARB) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib3dARB) (GLuint, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglVertexAttrib3dvARB) (GLuint, const GLdouble *); +void (APIENTRYP pfglVertexAttrib3fARB) (GLuint, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglVertexAttrib3fvARB) (GLuint, const GLfloat *); +void (APIENTRYP pfglVertexAttrib3sARB) (GLuint, GLshort, GLshort, GLshort); +void (APIENTRYP pfglVertexAttrib3svARB) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib4NbvARB) (GLuint, const GLbyte *); +void (APIENTRYP pfglVertexAttrib4NivARB) (GLuint, const GLint *); +void (APIENTRYP pfglVertexAttrib4NsvARB) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib4NubARB) (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +void (APIENTRYP pfglVertexAttrib4NubvARB) (GLuint, const GLubyte *); +void (APIENTRYP pfglVertexAttrib4NuivARB) (GLuint, const GLuint *); +void (APIENTRYP pfglVertexAttrib4NusvARB) (GLuint, const GLushort *); +void (APIENTRYP pfglVertexAttrib4bvARB) (GLuint, const GLbyte *); +void (APIENTRYP pfglVertexAttrib4dARB) (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglVertexAttrib4dvARB) (GLuint, const GLdouble *); +void (APIENTRYP pfglVertexAttrib4fARB) (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglVertexAttrib4fvARB) (GLuint, const GLfloat *); +void (APIENTRYP pfglVertexAttrib4ivARB) (GLuint, const GLint *); +void (APIENTRYP pfglVertexAttrib4sARB) (GLuint, GLshort, GLshort, GLshort, GLshort); +void (APIENTRYP pfglVertexAttrib4svARB) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib4ubvARB) (GLuint, const GLubyte *); +void (APIENTRYP pfglVertexAttrib4uivARB) (GLuint, const GLuint *); +void (APIENTRYP pfglVertexAttrib4usvARB) (GLuint, const GLushort *); +void (APIENTRYP pfglVertexAttribPointerARB) (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); +void (APIENTRYP pfglEnableVertexAttribArrayARB) (GLuint); +void (APIENTRYP pfglDisableVertexAttribArrayARB) (GLuint); +void (APIENTRYP pfglProgramStringARB) (GLenum, GLenum, GLsizei, const GLvoid *); +void (APIENTRYP pfglBindProgramARB) (GLenum, GLuint); +void (APIENTRYP pfglDeleteProgramsARB) (GLsizei, const GLuint *); +void (APIENTRYP pfglGenProgramsARB) (GLsizei, GLuint *); +void (APIENTRYP pfglProgramEnvParameter4dARB) (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglProgramEnvParameter4dvARB) (GLenum, GLuint, const GLdouble *); +void (APIENTRYP pfglProgramEnvParameter4fARB) (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglProgramEnvParameter4fvARB) (GLenum, GLuint, const GLfloat *); +void (APIENTRYP pfglProgramLocalParameter4dARB) (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglProgramLocalParameter4dvARB) (GLenum, GLuint, const GLdouble *); +void (APIENTRYP pfglProgramLocalParameter4fARB) (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglProgramLocalParameter4fvARB) (GLenum, GLuint, const GLfloat *); +void (APIENTRYP pfglGetProgramEnvParameterdvARB) (GLenum, GLuint, GLdouble *); +void (APIENTRYP pfglGetProgramEnvParameterfvARB) (GLenum, GLuint, GLfloat *); +void (APIENTRYP pfglGetProgramLocalParameterdvARB) (GLenum, GLuint, GLdouble *); +void (APIENTRYP pfglGetProgramLocalParameterfvARB) (GLenum, GLuint, GLfloat *); +void (APIENTRYP pfglGetProgramivARB) (GLenum, GLenum, GLint *); +void (APIENTRYP pfglGetProgramStringARB) (GLenum, GLenum, GLvoid *); +void (APIENTRYP pfglGetVertexAttribdvARB) (GLuint, GLenum, GLdouble *); +void (APIENTRYP pfglGetVertexAttribfvARB) (GLuint, GLenum, GLfloat *); +void (APIENTRYP pfglGetVertexAttribivARB) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglGetVertexAttribPointervARB) (GLuint, GLenum, GLvoid* *); +GLboolean (APIENTRYP pfglIsProgramARB) (GLuint); + + +/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ + + +/* + ------------------------------ + ARB_VertexBufferObject + ------------------------------ +*/ +void (APIENTRYP pfglBindBufferARB) (GLenum, GLuint); +void (APIENTRYP pfglDeleteBuffersARB) (GLsizei, const GLuint *); +void (APIENTRYP pfglGenBuffersARB) (GLsizei, GLuint *); +GLboolean (APIENTRYP pfglIsBufferARB) (GLuint); +void (APIENTRYP pfglBufferDataARB) (GLenum, GLsizeiptrARB, const GLvoid *, GLenum); +void (APIENTRYP pfglBufferSubDataARB) (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *); +void (APIENTRYP pfglGetBufferSubDataARB) (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *); +GLvoid* (APIENTRYP pfglMapBufferARB) (GLenum, GLenum); +GLboolean (APIENTRYP pfglUnmapBufferARB) (GLenum); +void (APIENTRYP pfglGetBufferParameterivARB) (GLenum, GLenum, GLint *); +void (APIENTRYP pfglGetBufferPointervARB) (GLenum, GLenum, GLvoid* *); + + +/* + ------------------------------ + ARB_OcclusionQuery + ------------------------------ +*/ +void (APIENTRYP pfglGenQueriesARB) (GLsizei, GLuint *); +void (APIENTRYP pfglDeleteQueriesARB) (GLsizei, const GLuint *); +GLboolean (APIENTRYP pfglIsQueryARB) (GLuint); +void (APIENTRYP pfglBeginQueryARB) (GLenum, GLuint); +void (APIENTRYP pfglEndQueryARB) (GLenum); +void (APIENTRYP pfglGetQueryivARB) (GLenum, GLenum, GLint *); +void (APIENTRYP pfglGetQueryObjectivARB) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglGetQueryObjectuivARB) (GLuint, GLenum, GLuint *); + + +/* + ------------------------------ + ARB_ShaderObjects + ------------------------------ +*/ +void (APIENTRYP pfglDeleteObjectARB) (GLhandleARB); +GLhandleARB (APIENTRYP pfglGetHandleARB) (GLenum); +void (APIENTRYP pfglDetachObjectARB) (GLhandleARB, GLhandleARB); +GLhandleARB (APIENTRYP pfglCreateShaderObjectARB) (GLenum); +void (APIENTRYP pfglShaderSourceARB) (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); +void (APIENTRYP pfglCompileShaderARB) (GLhandleARB); +GLhandleARB (APIENTRYP pfglCreateProgramObjectARB) (void); +void (APIENTRYP pfglAttachObjectARB) (GLhandleARB, GLhandleARB); +void (APIENTRYP pfglLinkProgramARB) (GLhandleARB); +void (APIENTRYP pfglUseProgramObjectARB) (GLhandleARB); +void (APIENTRYP pfglValidateProgramARB) (GLhandleARB); +void (APIENTRYP pfglUniform1fARB) (GLint, GLfloat); +void (APIENTRYP pfglUniform2fARB) (GLint, GLfloat, GLfloat); +void (APIENTRYP pfglUniform3fARB) (GLint, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglUniform4fARB) (GLint, GLfloat, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglUniform1iARB) (GLint, GLint); +void (APIENTRYP pfglUniform2iARB) (GLint, GLint, GLint); +void (APIENTRYP pfglUniform3iARB) (GLint, GLint, GLint, GLint); +void (APIENTRYP pfglUniform4iARB) (GLint, GLint, GLint, GLint, GLint); +void (APIENTRYP pfglUniform1fvARB) (GLint, GLsizei, const GLfloat *); +void (APIENTRYP pfglUniform2fvARB) (GLint, GLsizei, const GLfloat *); +void (APIENTRYP pfglUniform3fvARB) (GLint, GLsizei, const GLfloat *); +void (APIENTRYP pfglUniform4fvARB) (GLint, GLsizei, const GLfloat *); +void (APIENTRYP pfglUniform1ivARB) (GLint, GLsizei, const GLint *); +void (APIENTRYP pfglUniform2ivARB) (GLint, GLsizei, const GLint *); +void (APIENTRYP pfglUniform3ivARB) (GLint, GLsizei, const GLint *); +void (APIENTRYP pfglUniform4ivARB) (GLint, GLsizei, const GLint *); +void (APIENTRYP pfglUniformMatrix2fvARB) (GLint, GLsizei, GLboolean, const GLfloat *); +void (APIENTRYP pfglUniformMatrix3fvARB) (GLint, GLsizei, GLboolean, const GLfloat *); +void (APIENTRYP pfglUniformMatrix4fvARB) (GLint, GLsizei, GLboolean, const GLfloat *); +void (APIENTRYP pfglGetObjectParameterfvARB) (GLhandleARB, GLenum, GLfloat *); +void (APIENTRYP pfglGetObjectParameterivARB) (GLhandleARB, GLenum, GLint *); +void (APIENTRYP pfglGetInfoLogARB) (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); +void (APIENTRYP pfglGetAttachedObjectsARB) (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *); +GLint (APIENTRYP pfglGetUniformLocationARB) (GLhandleARB, const GLcharARB *); +void (APIENTRYP pfglGetActiveUniformARB) (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); +void (APIENTRYP pfglGetUniformfvARB) (GLhandleARB, GLint, GLfloat *); +void (APIENTRYP pfglGetUniformivARB) (GLhandleARB, GLint, GLint *); +void (APIENTRYP pfglGetShaderSourceARB) (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); + + +/* + ------------------------------ + ARB_VertexShader + ------------------------------ +*/ +void (APIENTRYP pfglBindAttribLocationARB) (GLhandleARB, GLuint, const GLcharARB *); +void (APIENTRYP pfglGetActiveAttribARB) (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); +GLint (APIENTRYP pfglGetAttribLocationARB) (GLhandleARB, const GLcharARB *); + + +/* + ----------------------- + EXT_BlendColor + ----------------------- +*/ +void (APIENTRYP pfglBlendColorEXT) (GLclampf, GLclampf, GLclampf, GLclampf); + + +/* + ------------------------- + EXT_CompiledVertexArray + ------------------------- +*/ +void ( APIENTRYP pfglLockArraysEXT) ( GLint, GLsizei ); +void ( APIENTRYP pfglUnlockArraysEXT) ( void ); + + +/* + ----------------------- + EXT_SecondaryColor + ----------------------- +*/ +void (APIENTRYP pfglSecondaryColor3bEXT) (GLbyte, GLbyte, GLbyte); +void (APIENTRYP pfglSecondaryColor3bvEXT) (const GLbyte *); +void (APIENTRYP pfglSecondaryColor3dEXT) (GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglSecondaryColor3dvEXT) (const GLdouble *); +void (APIENTRYP pfglSecondaryColor3fEXT) (GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglSecondaryColor3fvEXT) (const GLfloat *); +void (APIENTRYP pfglSecondaryColor3iEXT) (GLint, GLint, GLint); +void (APIENTRYP pfglSecondaryColor3ivEXT) (const GLint *); +void (APIENTRYP pfglSecondaryColor3sEXT) (GLshort, GLshort, GLshort); +void (APIENTRYP pfglSecondaryColor3svEXT) (const GLshort *); +void (APIENTRYP pfglSecondaryColor3ubEXT) (GLubyte, GLubyte, GLubyte); +void (APIENTRYP pfglSecondaryColor3ubvEXT) (const GLubyte *); +void (APIENTRYP pfglSecondaryColor3uiEXT) (GLuint, GLuint, GLuint); +void (APIENTRYP pfglSecondaryColor3uivEXT) (const GLuint *); +void (APIENTRYP pfglSecondaryColor3usEXT) (GLushort, GLushort, GLushort); +void (APIENTRYP pfglSecondaryColor3usvEXT) (const GLushort *); +void (APIENTRYP pfglSecondaryColorPointerEXT) (GLint, GLenum, GLsizei, const GLvoid *); + + +/* + ----------------------- + EXT_VertexShader + ----------------------- +*/ +void (APIENTRYP pfglBeginVertexShaderEXT) (void); +void (APIENTRYP pfglEndVertexShaderEXT) (void); +void (APIENTRYP pfglBindVertexShaderEXT) (GLuint); +GLuint (APIENTRYP pfglGenVertexShadersEXT) (GLuint); +void (APIENTRYP pfglDeleteVertexShaderEXT) (GLuint); +void (APIENTRYP pfglShaderOp1EXT) (GLenum, GLuint, GLuint); +void (APIENTRYP pfglShaderOp2EXT) (GLenum, GLuint, GLuint, GLuint); +void (APIENTRYP pfglShaderOp3EXT) (GLenum, GLuint, GLuint, GLuint, GLuint); +void (APIENTRYP pfglSwizzleEXT) (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +void (APIENTRYP pfglWriteMaskEXT) (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +void (APIENTRYP pfglInsertComponentEXT) (GLuint, GLuint, GLuint); +void (APIENTRYP pfglExtractComponentEXT) (GLuint, GLuint, GLuint); +GLuint (APIENTRYP pfglGenSymbolsEXT) (GLenum, GLenum, GLenum, GLuint); +void (APIENTRYP pfglSetInvariantEXT) (GLuint, GLenum, const GLvoid *); +void (APIENTRYP pfglSetLocalConstantEXT) (GLuint, GLenum, const GLvoid *); +void (APIENTRYP pfglVariantbvEXT) (GLuint, const GLbyte *); +void (APIENTRYP pfglVariantsvEXT) (GLuint, const GLshort *); +void (APIENTRYP pfglVariantivEXT) (GLuint, const GLint *); +void (APIENTRYP pfglVariantfvEXT) (GLuint, const GLfloat *); +void (APIENTRYP pfglVariantdvEXT) (GLuint, const GLdouble *); +void (APIENTRYP pfglVariantubvEXT) (GLuint, const GLubyte *); +void (APIENTRYP pfglVariantusvEXT) (GLuint, const GLushort *); +void (APIENTRYP pfglVariantuivEXT) (GLuint, const GLuint *); +void (APIENTRYP pfglVariantPointerEXT) (GLuint, GLenum, GLuint, const GLvoid *); +void (APIENTRYP pfglEnableVariantClientStateEXT) (GLuint); +void (APIENTRYP pfglDisableVariantClientStateEXT) (GLuint); +GLuint (APIENTRYP pfglBindLightParameterEXT) (GLenum, GLenum); +GLuint (APIENTRYP pfglBindMaterialParameterEXT) (GLenum, GLenum); +GLuint (APIENTRYP pfglBindTexGenParameterEXT) (GLenum, GLenum, GLenum); +GLuint (APIENTRYP pfglBindTextureUnitParameterEXT) (GLenum, GLenum); +GLuint (APIENTRYP pfglBindParameterEXT) (GLenum); +GLboolean (APIENTRYP pfglIsVariantEnabledEXT) (GLuint, GLenum); +void (APIENTRYP pfglGetVariantBooleanvEXT) (GLuint, GLenum, GLboolean *); +void (APIENTRYP pfglGetVariantIntegervEXT) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglGetVariantFloatvEXT) (GLuint, GLenum, GLfloat *); +void (APIENTRYP pfglGetVariantPointervEXT) (GLuint, GLenum, GLvoid* *); +void (APIENTRYP pfglGetInvariantBooleanvEXT) (GLuint, GLenum, GLboolean *); +void (APIENTRYP pfglGetInvariantIntegervEXT) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglGetInvariantFloatvEXT) (GLuint, GLenum, GLfloat *); +void (APIENTRYP pfglGetLocalConstantBooleanvEXT) (GLuint, GLenum, GLboolean *); +void (APIENTRYP pfglGetLocalConstantIntegervEXT) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglGetLocalConstantFloatvEXT) (GLuint, GLenum, GLfloat *); + + +/* + ----------------------- + EXT_VertexWeighting + ----------------------- +*/ +void (APIENTRYP pfglVertexWeightfEXT) (GLfloat); +void (APIENTRYP pfglVertexWeightfvEXT) (const GLfloat *); +void (APIENTRYP pfglVertexWeightPointerEXT) (GLsizei, GLenum, GLsizei, const GLvoid *); + + + +////////////////////////////////// +// +// nVidia Extensions +// +////////////////////////////////// + + + +/* + ----------------------- + NV_Fence + ----------------------- +*/ +void (APIENTRYP pfglDeleteFencesNV) (GLsizei, const GLuint *); +void (APIENTRYP pfglGenFencesNV) (GLsizei, GLuint *); +GLboolean (APIENTRYP pfglIsFenceNV) (GLuint); +GLboolean (APIENTRYP pfglTestFenceNV) (GLuint); +void (APIENTRYP pfglGetFenceivNV) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglFinishFenceNV) (GLuint); +void (APIENTRYP pfglSetFenceNV) (GLuint, GLenum); + + +/* + ----------------------- + NV_VertexArrayRange + ----------------------- +*/ +void (APIENTRYP pfglFlushVertexArrayRangeNV) (void); +void (APIENTRYP pfglVertexArrayRangeNV) (GLsizei, const GLvoid *); + + +/* + ----------------------- + NV_VertexProgram + ----------------------- +*/ +GLboolean (APIENTRYP pfglAreProgramsResidentNV) (GLsizei, const GLuint *, GLboolean *); +void (APIENTRYP pfglBindProgramNV) (GLenum, GLuint); +void (APIENTRYP pfglDeleteProgramsNV) (GLsizei, const GLuint *); +void (APIENTRYP pfglExecuteProgramNV) (GLenum, GLuint, const GLfloat *); +void (APIENTRYP pfglGenProgramsNV) (GLsizei, GLuint *); +void (APIENTRYP pfglGetProgramParameterdvNV) (GLenum, GLuint, GLenum, GLdouble *); +void (APIENTRYP pfglGetProgramParameterfvNV) (GLenum, GLuint, GLenum, GLfloat *); +void (APIENTRYP pfglGetProgramivNV) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglGetProgramStringNV) (GLuint, GLenum, GLubyte *); +void (APIENTRYP pfglGetTrackMatrixivNV) (GLenum, GLuint, GLenum, GLint *); +void (APIENTRYP pfglGetVertexAttribdvNV) (GLuint, GLenum, GLdouble *); +void (APIENTRYP pfglGetVertexAttribfvNV) (GLuint, GLenum, GLfloat *); +void (APIENTRYP pfglGetVertexAttribivNV) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglGetVertexAttribPointervNV) (GLuint, GLenum, GLvoid* *); +GLboolean (APIENTRYP pfglIsProgramNV) (GLuint); +void (APIENTRYP pfglLoadProgramNV) (GLenum, GLuint, GLsizei, const GLubyte *); +void (APIENTRYP pfglProgramParameter4dNV) (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglProgramParameter4dvNV) (GLenum, GLuint, const GLdouble *); +void (APIENTRYP pfglProgramParameter4fNV) (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglProgramParameter4fvNV) (GLenum, GLuint, const GLfloat *); +void (APIENTRYP pfglProgramParameters4dvNV) (GLenum, GLuint, GLuint, const GLdouble *); +void (APIENTRYP pfglProgramParameters4fvNV) (GLenum, GLuint, GLuint, const GLfloat *); +void (APIENTRYP pfglRequestResidentProgramsNV) (GLsizei, const GLuint *); +void (APIENTRYP pfglTrackMatrixNV) (GLenum, GLuint, GLenum, GLenum); +void (APIENTRYP pfglVertexAttribPointerNV) (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +void (APIENTRYP pfglVertexAttrib1dNV) (GLuint, GLdouble); +void (APIENTRYP pfglVertexAttrib1dvNV) (GLuint, const GLdouble *); +void (APIENTRYP pfglVertexAttrib1fNV) (GLuint, GLfloat); +void (APIENTRYP pfglVertexAttrib1fvNV) (GLuint, const GLfloat *); +void (APIENTRYP pfglVertexAttrib1sNV) (GLuint, GLshort); +void (APIENTRYP pfglVertexAttrib1svNV) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib2dNV) (GLuint, GLdouble, GLdouble); +void (APIENTRYP pfglVertexAttrib2dvNV) (GLuint, const GLdouble *); +void (APIENTRYP pfglVertexAttrib2fNV) (GLuint, GLfloat, GLfloat); +void (APIENTRYP pfglVertexAttrib2fvNV) (GLuint, const GLfloat *); +void (APIENTRYP pfglVertexAttrib2sNV) (GLuint, GLshort, GLshort); +void (APIENTRYP pfglVertexAttrib2svNV) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib3dNV) (GLuint, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglVertexAttrib3dvNV) (GLuint, const GLdouble *); +void (APIENTRYP pfglVertexAttrib3fNV) (GLuint, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglVertexAttrib3fvNV) (GLuint, const GLfloat *); +void (APIENTRYP pfglVertexAttrib3sNV) (GLuint, GLshort, GLshort, GLshort); +void (APIENTRYP pfglVertexAttrib3svNV) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib4dNV) (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +void (APIENTRYP pfglVertexAttrib4dvNV) (GLuint, const GLdouble *); +void (APIENTRYP pfglVertexAttrib4fNV) (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +void (APIENTRYP pfglVertexAttrib4fvNV) (GLuint, const GLfloat *); +void (APIENTRYP pfglVertexAttrib4sNV) (GLuint, GLshort, GLshort, GLshort, GLshort); +void (APIENTRYP pfglVertexAttrib4svNV) (GLuint, const GLshort *); +void (APIENTRYP pfglVertexAttrib4ubNV) (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +void (APIENTRYP pfglVertexAttrib4ubvNV) (GLuint, const GLubyte *); +void (APIENTRYP pfglVertexAttribs1dvNV) (GLuint, GLsizei, const GLdouble *); +void (APIENTRYP pfglVertexAttribs1fvNV) (GLuint, GLsizei, const GLfloat *); +void (APIENTRYP pfglVertexAttribs1svNV) (GLuint, GLsizei, const GLshort *); +void (APIENTRYP pfglVertexAttribs2dvNV) (GLuint, GLsizei, const GLdouble *); +void (APIENTRYP pfglVertexAttribs2fvNV) (GLuint, GLsizei, const GLfloat *); +void (APIENTRYP pfglVertexAttribs2svNV) (GLuint, GLsizei, const GLshort *); +void (APIENTRYP pfglVertexAttribs3dvNV) (GLuint, GLsizei, const GLdouble *); +void (APIENTRYP pfglVertexAttribs3fvNV) (GLuint, GLsizei, const GLfloat *); +void (APIENTRYP pfglVertexAttribs3svNV) (GLuint, GLsizei, const GLshort *); +void (APIENTRYP pfglVertexAttribs4dvNV) (GLuint, GLsizei, const GLdouble *); +void (APIENTRYP pfglVertexAttribs4fvNV) (GLuint, GLsizei, const GLfloat *); +void (APIENTRYP pfglVertexAttribs4svNV) (GLuint, GLsizei, const GLshort *); +void (APIENTRYP pfglVertexAttribs4ubvNV) (GLuint, GLsizei, const GLubyte *); + + +////////////////////////////////// +// +// ATI Extensions +// +////////////////////////////////// + +/* + ------------------------------ + ATI_EnvmapBumpmap + ------------------------------ +*/ +void (APIENTRYP pfglTexBumpParameterivATI) (GLenum, const GLint *); +void (APIENTRYP pfglTexBumpParameterfvATI) (GLenum, const GLfloat *); +void (APIENTRYP pfglGetTexBumpParameterivATI) (GLenum, GLint *); +void (APIENTRYP pfglGetTexBumpParameterfvATI) (GLenum, GLfloat *); + + +/* + ------------------------------ + ATI_FragmentShader + ------------------------------ +*/ +GLuint (APIENTRYP pfglGenFragmentShadersATI) (GLuint); +void (APIENTRYP pfglBindFragmentShaderATI) (GLuint); +void (APIENTRYP pfglDeleteFragmentShaderATI) (GLuint); +void (APIENTRYP pfglBeginFragmentShaderATI) (void); +void (APIENTRYP pfglEndFragmentShaderATI) (void); +void (APIENTRYP pfglPassTexCoordATI) (GLuint, GLuint, GLenum); +void (APIENTRYP pfglSampleMapATI) (GLuint, GLuint, GLenum); +void (APIENTRYP pfglColorFragmentOp1ATI) (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +void (APIENTRYP pfglColorFragmentOp2ATI) (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +void (APIENTRYP pfglColorFragmentOp3ATI) (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +void (APIENTRYP pfglAlphaFragmentOp1ATI) (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +void (APIENTRYP pfglAlphaFragmentOp2ATI) (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +void (APIENTRYP pfglAlphaFragmentOp3ATI) (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +void (APIENTRYP pfglSetFragmentShaderConstantATI) (GLuint, const GLfloat *); + +/* + ------------------------------ + ATI_VertexArrayObject + ------------------------------ +*/ +GLuint (APIENTRYP pfglNewObjectBufferATI) (GLsizei, const GLvoid *, GLenum); +GLboolean (APIENTRYP pfglIsObjectBufferATI) (GLuint); +void (APIENTRYP pfglUpdateObjectBufferATI) (GLuint, GLuint, GLsizei, const GLvoid *, GLenum); +void (APIENTRYP pfglGetObjectBufferfvATI) (GLuint, GLenum, GLfloat *); +void (APIENTRYP pfglGetObjectBufferivATI) (GLuint, GLenum, GLint *); +void (APIENTRYP pfglFreeObjectBufferATI) (GLuint); +void (APIENTRYP pfglArrayObjectATI) (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint); +void (APIENTRYP pfglGetArrayObjectfvATI) (GLenum, GLenum, GLfloat *); +void (APIENTRYP pfglGetArrayObjectivATI) (GLenum, GLenum, GLint *); +void (APIENTRYP pfglVariantArrayObjectATI) (GLuint, GLenum, GLsizei, GLuint, GLuint); +void (APIENTRYP pfglGetVariantArrayObjectfvATI) (GLuint, GLenum, GLfloat *); +void (APIENTRYP pfglGetVariantArrayObjectivATI) (GLuint, GLenum, GLint *); + + + + +/* + ------------------------------ + ATI_MapObjectBuffer + ------------------------------ +*/ +GLvoid* (APIENTRYP pfglMapObjectBufferATI) (GLuint); +void (APIENTRYP pfglUnmapObjectBufferATI) (GLuint); + + + + + + + + + +#endif /* __MYOPENGL_EXTENSION_H__ */ diff --git a/wolf3d/code/env/num_type.h b/wolf3d/code/env/num_type.h new file mode 100644 index 0000000..169716c --- /dev/null +++ b/wolf3d/code/env/num_type.h @@ -0,0 +1,48 @@ +/* + + Copyright (C) 2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + + num_type.h: System dependant float/double to integer conversions. + + + */ + + +#ifndef __NUM_TYPE_H__ +#define __NUM_TYPE_H__ + +#include "arch.h" + + + +#define BIT( x ) ( 1 << (x) ) + + + + +#define FloatToInt( a ) (SW32)(a) +#define DoubleToInt( a ) (SW32)(a) + + + + + +#endif /* __NUM_TYPE_H__ */ diff --git a/wolf3d/code/env/oggfile.c b/wolf3d/code/env/oggfile.c new file mode 100644 index 0000000..6e66488 --- /dev/null +++ b/wolf3d/code/env/oggfile.c @@ -0,0 +1,154 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + +filehandle_t *fh; + +PRIVATE size_t ovc_read( void *ptr, size_t size, size_t nmemb, void *dataSource ) +{ + if( ! size || ! nmemb ) + { + return 0; + } + + return FS_ReadFile( ptr, size, nmemb, fh ); +} + +PRIVATE int ovc_seek( void *dataSource, ogg_int64_t offset, int whence ) +{ + return FS_FileSeek( fh, offset, whence ); +} + +PRIVATE int ovc_close( void *dataSource ) +{ + return 0; +} + +PRIVATE long ovc_tell( void *dataSource ) +{ + return FS_FileTell( fh ); +} + + + +/* +----------------------------------------------------------------------------- + Function: LoadOggInfo -Load ogg file. + + Parameters: filename -[in] Name of wav file to load. + wav -[out] wav data. + info -[out] wav sound info. + + Returns: True if file loaded, otherwise false. + + Notes: Caller is responsible for freeing wav data by calling Z_Free. + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean LoadOggInfo( const char *filename, W8 **wav, soundInfo_t *info ) +{ + W8 *data; + int size; + int dummy; + char *newFilename; + int len; + OggVorbis_File vorbisFile; + vorbis_info vorbisInfo; + ov_callbacks vorbisCallbacks = {ovc_read, ovc_seek, ovc_close, ovc_tell}; + int ret; + + newFilename = strdup( filename ); + + len = strlen( newFilename ); + if ( len < 5 || strcmp( newFilename + len - 4, ".wav" ) ) { + free( newFilename ); + return false; + } + + newFilename[ len - 3 ] = 'o'; + newFilename[ len - 2 ] = 'g'; + newFilename[ len - 1 ] = 'g'; + + fh = FS_OpenFile( newFilename, 0 ); + if( ! fh ) + { + free( newFilename ); + return false; + } + + if( (ret = ov_open_callbacks( fh, &vorbisFile, NULL, 0, vorbisCallbacks )) < 0 ) { + free( newFilename ); + return false; + } + + vorbisInfo = *ov_info( &vorbisFile, -1 ); + if( vorbisInfo.channels != 1 && vorbisInfo.channels != 2 ) + { + Com_Printf( "Only mono and stereo OGG files supported (%s)\n", newFilename ); + free( newFilename ); + return false; + } + + info->channels = vorbisInfo.channels; + info->sample_rate = vorbisInfo.rate; + info->sample_size = 2; + +#define BUFFER_SIZE ( 128 * 1024 ) + + data = (W8 *)malloc( BUFFER_SIZE ); + size = 0; + + while( size < BUFFER_SIZE ) + { + int read = 0; + read = ov_read( &vorbisFile, (char *)data + size, BUFFER_SIZE - size, &dummy ); + if( read == 0 ) + { + break; + } + + if( read <= 0 ) + { + Com_Printf( "Only mono and stereo OGG files supported (%s)\n", newFilename ); + free( newFilename ); + return false; + } + + size += read; + } + + info->samples = size / ( info->channels * info->sample_size ); + +// Com_Printf("Loaded %s: channels=%d, sample_rate=%d, sample_size=%d, samples=%d. \n", newFilename, info->channels, info->sample_rate, info->sample_size, info->samples ); + free( newFilename ); + + *wav = (W8 *)Z_Malloc( size ); + memcpy(*wav, data, size ); + free( data ); + + + FS_CloseFile( fh ); + + return true; +} + diff --git a/wolf3d/code/env/oggfile.h b/wolf3d/code/env/oggfile.h new file mode 100644 index 0000000..ff0e648 --- /dev/null +++ b/wolf3d/code/env/oggfile.h @@ -0,0 +1,29 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + + +#ifndef __LOADERS_OGGFILE_H__ +#define __LOADERS_OGGFILE_H__ + +extern _boolean LoadOggInfo( const char *filename, W8 **wav, soundInfo_t *info ); + +#endif /* __LOADERS_OGGFILE_H__ */ diff --git a/wolf3d/code/env/openal_binding.c b/wolf3d/code/env/openal_binding.c new file mode 100644 index 0000000..968db79 --- /dev/null +++ b/wolf3d/code/env/openal_binding.c @@ -0,0 +1,335 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * openal_binding.c: Interface to OpenAL library. + * + * Author: Michael Liebscher + * Date: 2004 + * + */ + + +#include "../wolfiphone.h" + + +#ifdef _WIN32 + + HINSTANCE hinstOpenAL; + +#elif __unix__ + + void *OpenALLib; + +#elif IPHONE + + void *OpenALLib; + // from here on in this file, behave like unix + #define __unix__ 1 + +#else + + #error "Please define interface to OpenAL library!" + +#endif + + +/* +----------------------------------------------------------------------------- + Function: OpenAL_Shutdown -Shutdown interface to OpenAL. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + Unloads the specified Dynamic Link Library then NULLs out all the + proc pointers. + +----------------------------------------------------------------------------- +*/ +PUBLIC void OpenAL_Shutdown( void ) +{ + +#ifdef _WIN32 + + if( hinstOpenAL ) + { + FreeLibrary( hinstOpenAL ); + hinstOpenAL = NULL; + } + + hinstOpenAL = NULL; + +#elif __unix__ + + if( OpenALLib ) + { + dlclose( OpenALLib ); + OpenALLib = NULL; + } + + OpenALLib = NULL; + +#else + + #error "Please define interface to OpenAL library!" + +#endif + + + pfalcCloseDevice = NULL; + pfalcCreateContext = NULL; + pfalcDestroyContext = NULL; + pfalcGetContextsDevice = NULL; + pfalcGetCurrentContext = NULL; + pfalcGetEnumValue = NULL; + pfalcGetError = NULL; + pfalcGetIntegerv = NULL; + pfalcGetProcAddress = NULL; + pfalcGetString = NULL; + pfalcIsExtensionPresent = NULL; + pfalcMakeContextCurrent = NULL; + pfalcOpenDevice = NULL; + pfalcProcessContext = NULL; + pfalcSuspendContext = NULL; + + + pfalGenBuffers = NULL; + pfalDeleteBuffers = NULL; + pfalIsBuffer = NULL; + pfalBufferData = NULL; + pfalGetBufferf = NULL; + pfalGetBufferi = NULL; + pfalEnable = NULL; + pfalDisable = NULL; + pfalDopplerFactor = NULL; + pfalDopplerVelocity = NULL; + pfalDistanceModel = NULL; + pfalGetBoolean = NULL; + pfalGetBooleanv = NULL; + pfalGetDouble = NULL; + pfalGetDoublev = NULL; + pfalGetFloat = NULL; + pfalGetFloatv = NULL; + pfalGetInteger = NULL; + pfalGetIntegerv = NULL; + pfalGetEnumValue = NULL; + pfalGetError = NULL; + pfalGetProcAddress = NULL; + pfalGetString = NULL; + pfalIsExtensionPresent = NULL; + pfalIsEnabled = NULL; + pfalListenerf = NULL; + pfalListener3f = NULL; + pfalListenerfv = NULL; + pfalListeneri = NULL; + pfalGetListenerf = NULL; + pfalGetListener3f = NULL; + pfalGetListenerfv = NULL; + pfalGetListeneri = NULL; + pfalGenSources = NULL; + pfalDeleteSources = NULL; + pfalIsSource = NULL; + pfalSourcef = NULL; + pfalSourcefv = NULL; + pfalSource3f = NULL; + pfalSourcei = NULL; + pfalGetSourcef = NULL; + pfalGetSource3f = NULL; + pfalGetSourcefv = NULL; + pfalGetSourcei = NULL; + pfalSourcePlay = NULL; + pfalSourcePlayv = NULL; + pfalSourcePause = NULL; + pfalSourcePausev = NULL; + pfalSourceStop = NULL; + pfalSourceStopv = NULL; + pfalSourceRewind = NULL; + pfalSourceRewindv = NULL; + pfalSourceQueueBuffers = NULL; + pfalSourceUnqueueBuffers = NULL; + +} + + + +#ifdef _WIN32 + + #define GPA( a ) GetProcAddress( hinstOpenAL, a ) + +#elif __unix__ + + #define GPA( a ) dlsym( OpenALLib, a ) + +#else + + #error "Please define interface to OpenAL library!" + +#endif + + + + + +/* +----------------------------------------------------------------------------- + Function: OpenAL_Init -Setup interface to OpenAL. + + Parameters: dllname -[in] Name of the OpenAL dynamic link library. + + Returns: true on success, otherwise false. + + Notes: + This is responsible for binding our al function pointers to + the appropriate OpenAL stuff. In Windows this means doing a + LoadLibrary and a bunch of calls to GetProcAddress. On other + operating systems we need to do the right thing, whatever that + might be. + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean OpenAL_Init( const char *dllname ) +{ + +#ifdef _WIN32 + + char buffer[ 1024 ], *ptr; + + SearchPath( NULL, dllname, NULL, sizeof( buffer ) - 1, buffer, &ptr ); + + Com_Printf( "...calling LoadLibrary( %s ): ", buffer ); + + if( ( hinstOpenAL = LoadLibrary( dllname ) ) == 0 ) + { + char *buf = NULL; + + Com_Printf( "failed\n" ); + + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, GetLastError(), + MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), + (LPTSTR) &buf, 0, NULL ); + + Com_Printf( "%s\n", buf ); + + return false; + } + +#elif __unix__ + + Com_Printf( "...calling dlopen( %s ): ", dllname ); + + if( ( OpenALLib = dlopen( dllname, RTLD_LAZY | RTLD_GLOBAL ) ) == 0 ) + { + Com_Printf( "failed\n" ); + + Com_Printf( "%s\n", dlerror() ); + + return false; + } + +#else + + #error "Please define interface to OpenAL library!" + +#endif + + + Com_Printf( "succeeded\n" ); + + + if( ! (pfalcCloseDevice = (ALCCLOSEDEVICE)GPA( "alcCloseDevice" )) ) return false; + if( ! (pfalcCreateContext = (ALCCREATECONTEXT)GPA( "alcCreateContext" )) ) return false; + if( ! (pfalcDestroyContext = (ALCDESTROYCONTEXT)GPA( "alcDestroyContext" )) ) return false; + if( ! (pfalcGetContextsDevice = (ALCGETCONTEXTSDEVICE)GPA( "alcGetContextsDevice" )) ) return false; + if( ! (pfalcGetCurrentContext = (ALCGETCURRENTCONTEXT)GPA( "alcGetCurrentContext" )) ) return false; + if( ! (pfalcGetEnumValue = (ALCGETENUMVALUE)GPA( "alcGetEnumValue" )) ) return false; + if( ! (pfalcGetError = (ALCGETERROR)GPA( "alcGetError" )) ) return false; + if( ! (pfalcGetIntegerv = (ALCGETINTEGERV)GPA( "alcGetIntegerv" )) ) return false; + if( ! (pfalcGetProcAddress = (ALCGETPROCADDRESS)GPA( "alcGetProcAddress" )) ) return false; + if( ! (pfalcGetString = (ALCGETSTRING)GPA( "alcGetString" )) ) return false; + if( ! (pfalcIsExtensionPresent = (ALCISEXTENSIONPRESENT)GPA( "alcIsExtensionPresent" )) ) return false; + if( ! (pfalcMakeContextCurrent = (ALCMAKECONTEXTCURRENT)GPA( "alcMakeContextCurrent" )) ) return false; + if( ! (pfalcOpenDevice = (ALCOPENDEVICE)GPA( "alcOpenDevice" )) ) return false; + if( ! (pfalcProcessContext = (ALCPROCESSCONTEXT)GPA( "alcProcessContext" )) ) return false; + if( ! (pfalcSuspendContext = (ALCSUSPENDCONTEXT)GPA( "alcSuspendContext" )) ) return false; + + + if( ! (pfalGenBuffers = (ALGENBUFFERS)GPA("alGenBuffers")) ) return false; + if( ! (pfalDeleteBuffers = (ALDELETEBUFFERS)GPA("alDeleteBuffers")) ) return false; + if( ! (pfalIsBuffer = (ALISBUFFER)GPA("alIsBuffer")) ) return false; + if( ! (pfalBufferData = (ALBUFFERDATA)GPA("alBufferData")) ) return false; + if( ! (pfalGetBufferf = (ALGETBUFFERF)GPA("alGetBufferf")) ) return false; + if( ! (pfalGetBufferi = (ALGETBUFFERI)GPA("alGetBufferi")) ) return false; + if( ! (pfalEnable = (ALENABLE)GPA("alEnable")) ) return false; + if( ! (pfalDisable = (ALDISABLE)GPA("alDisable")) ) return false; + if( ! (pfalDopplerFactor = (ALDOPPLERFACTOR)GPA("alDopplerFactor")) ) return false; + if( ! (pfalDopplerVelocity = (ALDOPPLERVELOCITY)GPA("alDopplerVelocity")) ) return false; + if( ! (pfalDistanceModel = (ALDISTANCEMODEL)GPA("alDistanceModel")) ) return false; + if( ! (pfalGetBoolean = (ALGETBOOLEAN)GPA("alGetBoolean")) ) return false; + if( ! (pfalGetBooleanv = (ALGETBOOLEANV)GPA("alGetBooleanv")) ) return false; + if( ! (pfalGetDouble = (ALGETDOUBLE)GPA("alGetDouble")) ) return false; + if( ! (pfalGetDoublev = (ALGETDOUBLEV)GPA("alGetDoublev")) ) return false; + if( ! (pfalGetFloat = (ALGETFLOAT)GPA("alGetFloat")) ) return false; + if( ! (pfalGetFloatv = (ALGETFLOATV)GPA("alGetFloatv")) ) return false; + if( ! (pfalGetInteger = (ALGETINTEGER)GPA("alGetInteger")) ) return false; + if( ! (pfalGetIntegerv = (ALGETINTEGERV)GPA("alGetIntegerv")) ) return false; + if( ! (pfalGetEnumValue = (ALGETENUMVALUE)GPA("alGetEnumValue")) ) return false; + if( ! (pfalGetError = (ALGETERROR)GPA("alGetError")) ) return false; + if( ! (pfalGetProcAddress = (ALGETPROCADDRESS)GPA("alGetProcAddress")) ) return false; + if( ! (pfalGetString = (ALGETSTRING)GPA("alGetString")) ) return false; + if( ! (pfalIsExtensionPresent = (ALISEXTENSIONPRESENT)GPA("alIsExtensionPresent")) ) return false; + if( ! (pfalIsEnabled = (ALISENABLED)GPA("alIsEnabled")) ) return false; + if( ! (pfalListenerf = (ALLISTENERF)GPA("alListenerf")) ) return false; + if( ! (pfalListener3f = (ALLISTENER3F)GPA("alListener3f")) ) return false; + if( ! (pfalListenerfv = (ALLISTENERFV)GPA("alListenerfv")) ) return false; + if( ! (pfalListeneri = (ALLISTENERI)GPA("alListeneri")) ) return false; + if( ! (pfalGetListenerf = (ALGETLISTENERF)GPA("alGetListenerf")) ) return false; + if( ! (pfalGetListener3f = (ALGETLISTENER3F)GPA("alGetListener3f")) ) return false; + if( ! (pfalGetListenerfv = (ALGETLISTENERFV)GPA("alGetListenerfv")) ) return false; + if( ! (pfalGetListeneri = (ALGETLISTENERI)GPA("alGetListeneri")) ) return false; + if( ! (pfalGenSources = (ALGENSOURCES)GPA("alGenSources")) ) return false; + if( ! (pfalDeleteSources = (ALDELETESOURCES)GPA("alDeleteSources")) ) return false; + if( ! (pfalIsSource = (ALISSOURCE)GPA("alIsSource")) ) return false; + if( ! (pfalSourcef = (ALSOURCEF)GPA("alSourcef")) ) return false; + if( ! (pfalSourcefv = (ALSOURCEFV)GPA("alSourcefv")) ) return false; + if( ! (pfalSource3f = (ALSOURCE3F)GPA("alSource3f")) ) return false; + if( ! (pfalSourcei = (ALSOURCEI)GPA("alSourcei")) ) return false; + if( ! (pfalGetSourcef = (ALGETSOURCEF)GPA("alGetSourcef")) ) return false; + if( ! (pfalGetSource3f = (ALGETSOURCE3F)GPA("alGetSource3f")) ) return false; + if( ! (pfalGetSourcefv = (ALGETSOURCEFV)GPA("alGetSourcefv")) ) return false; + if( ! (pfalGetSourcei = (ALGETSOURCEI)GPA("alGetSourcei")) ) return false; + if( ! (pfalSourcePlay = (ALSOURCEPLAY)GPA("alSourcePlay")) ) return false; + if( ! (pfalSourcePlayv = (ALSOURCEPLAYV)GPA("alSourcePlayv")) ) return false; + if( ! (pfalSourcePause = (ALSOURCEPAUSE)GPA("alSourcePause")) ) return false; + if( ! (pfalSourcePausev = (ALSOURCEPAUSEV)GPA("alSourcePausev")) ) return false; + if( ! (pfalSourceStop = (ALSOURCESTOP)GPA("alSourceStop")) ) return false; + if( ! (pfalSourceStopv = (ALSOURCESTOPV)GPA("alSourceStopv")) ) return false; + if( ! (pfalSourceRewind = (ALSOURCEREWIND)GPA("alSourceRewind")) ) return false; + if( ! (pfalSourceRewindv = (ALSOURCEREWINDV)GPA("alSourceRewindv")) ) return false; + if( ! (pfalSourceQueueBuffers = (ALSOURCEQUEUEBUFFERS)GPA("alSourceQueueBuffers")) ) return false; + if( ! (pfalSourceUnqueueBuffers = (ALSOURCEUNQUEUEBUFFERS)GPA("alSourceUnqueueBuffers")) ) return false; + + + return true; + +} + diff --git a/wolf3d/code/env/openal_binding.h b/wolf3d/code/env/openal_binding.h new file mode 100644 index 0000000..ba88024 --- /dev/null +++ b/wolf3d/code/env/openal_binding.h @@ -0,0 +1,186 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * openal_binding.h: Interface to OpenAL library. + * + * Author: Michael Liebscher + * Date: 2004 + * + */ + + +#ifndef __OPENAL_BINDING_H__ +#define __OPENAL_BINDING_H__ + +extern _boolean OpenAL_Init( const char *dllname ); +extern void OpenAL_Shutdown( void ); + + + +typedef ALCAPI ALCvoid ( * ALCCLOSEDEVICE)(ALCdevice *pDevice); +typedef ALCAPI ALCcontext*( * ALCCREATECONTEXT)(ALCdevice *device, const ALCint *attrList); +typedef ALCAPI ALCvoid ( * ALCDESTROYCONTEXT)(ALCcontext *context); +typedef ALCAPI ALCdevice* ( * ALCGETCONTEXTSDEVICE)(ALCcontext *pContext); +typedef ALCAPI ALCcontext * ( * ALCGETCURRENTCONTEXT)(ALCvoid); +typedef ALCAPI ALCenum ( * ALCGETENUMVALUE)(ALCdevice *device, const ALCubyte *enumName); +typedef ALCAPI ALCenum ( * ALCGETERROR)(ALCdevice *device); +typedef ALCAPI ALCvoid ( * ALCGETINTEGERV)(ALCdevice *device,ALCenum param,ALsizei size,ALCint *data); +typedef ALCAPI ALCvoid * ( * ALCGETPROCADDRESS)(ALCdevice *device, const ALCubyte *funcName); +typedef ALCAPI const ALCubyte* ( * ALCGETSTRING)(ALCdevice *device,ALCenum param); +typedef ALCAPI ALCboolean ( * ALCISEXTENSIONPRESENT)(ALCdevice *device, const ALCubyte *extName); +typedef ALCAPI ALCboolean ( * ALCMAKECONTEXTCURRENT)(ALCcontext *context); +typedef ALCAPI ALCdevice* ( * ALCOPENDEVICE)(const ALCubyte *deviceName); +typedef ALCAPI ALCvoid ( * ALCPROCESSCONTEXT)(ALCcontext *pContext); +typedef ALCAPI ALCvoid ( * ALCSUSPENDCONTEXT)(ALCcontext *pContext); + + + +typedef ALCAPI ALvoid ( * ALGENBUFFERS)(ALsizei n, ALuint* bufferNames); +typedef ALCAPI ALvoid ( * ALDELETEBUFFERS)(ALsizei n, const ALuint* bufferNames); +typedef ALCAPI ALboolean ( * ALISBUFFER)(ALuint bufferName); +typedef ALCAPI ALvoid ( * ALBUFFERDATA)(ALuint bufferName, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq); +typedef ALCAPI ALvoid ( * ALGETBUFFERF)(ALuint bufferName, ALenum param, ALfloat* value); +typedef ALCAPI ALvoid ( * ALGETBUFFERI)(ALuint bufferName, ALenum param, ALint* value); +typedef ALCAPI ALvoid ( * ALENABLE)(ALenum capability); +typedef ALCAPI ALvoid ( * ALDISABLE)(ALenum capability); +typedef ALCAPI ALvoid ( * ALDOPPLERFACTOR)(ALfloat value); +typedef ALCAPI ALvoid ( * ALDOPPLERVELOCITY)(ALfloat value); +typedef ALCAPI ALvoid ( * ALDISTANCEMODEL)(ALenum value); +typedef ALCAPI ALboolean ( * ALGETBOOLEAN)(ALenum param); +typedef ALCAPI ALvoid ( * ALGETBOOLEANV)(ALenum param, ALboolean* data); +typedef ALCAPI ALdouble ( * ALGETDOUBLE)(ALenum param); +typedef ALCAPI ALvoid ( * ALGETDOUBLEV)(ALenum param, ALdouble* data); +typedef ALCAPI ALfloat ( * ALGETFLOAT)(ALenum param); +typedef ALCAPI ALvoid ( * ALGETFLOATV)(ALenum param, ALfloat* data); +typedef ALCAPI ALint ( * ALGETINTEGER)(ALenum param); +typedef ALCAPI ALvoid ( * ALGETINTEGERV)(ALenum param, ALint* data); +typedef ALCAPI ALenum ( * ALGETENUMVALUE)(const ALubyte* ename); +typedef ALCAPI ALenum ( * ALGETERROR)(ALvoid); +typedef ALCAPI ALvoid* ( * ALGETPROCADDRESS)(const ALubyte* fname); +typedef ALCAPI const ALubyte* ( * ALGETSTRING)(ALenum param); +typedef ALCAPI ALboolean ( * ALISEXTENSIONPRESENT)(const ALubyte* ename); +typedef ALCAPI ALboolean ( * ALISENABLED)(ALenum capability); +typedef ALCAPI ALvoid ( * ALLISTENERF)(ALenum param, ALfloat value); +typedef ALCAPI ALvoid ( * ALLISTENER3F)(ALenum param, ALfloat v1, ALfloat v2, ALfloat v3); +typedef ALCAPI ALvoid ( * ALLISTENERFV)(ALenum param, const ALfloat* values); +typedef ALCAPI ALvoid ( * ALLISTENERI)(ALenum param, ALint value); +typedef ALCAPI ALvoid ( * ALGETLISTENERF)(ALenum param, ALfloat* value); +typedef ALCAPI ALvoid ( * ALGETLISTENER3F)(ALenum param, ALfloat* v1, ALfloat* v2, ALfloat* v3); +typedef ALCAPI ALvoid ( * ALGETLISTENERFV)(ALenum param, ALfloat* values); +typedef ALCAPI ALvoid ( * ALGETLISTENERI)(ALenum param, ALint* value); +typedef ALCAPI ALvoid ( * ALGENSOURCES)(ALsizei n, ALuint* sourceNames); +typedef ALCAPI ALvoid ( * ALDELETESOURCES)(ALsizei n, const ALuint* sourceNames); +typedef ALCAPI ALboolean ( * ALISSOURCE)(ALuint sourceName); +typedef ALCAPI ALvoid ( * ALSOURCEF)(ALuint sourceName, ALenum param, ALfloat value); +typedef ALCAPI ALvoid ( * ALSOURCEFV)(ALuint sourceName, ALenum param, const ALfloat* values); +typedef ALCAPI ALvoid ( * ALSOURCE3F)(ALuint sourceName, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3); +typedef ALCAPI ALvoid ( * ALSOURCEI)(ALuint sourceName, ALenum param, ALint value); +typedef ALCAPI ALvoid ( * ALGETSOURCEF)(ALuint sourceName, ALenum param, ALfloat* value); +typedef ALCAPI ALvoid ( * ALGETSOURCE3F)(ALuint sourceName, ALenum param, ALfloat* v1, ALfloat* v2, ALfloat* v3); +typedef ALCAPI ALvoid ( * ALGETSOURCEFV)(ALuint sourceName, ALenum param, ALfloat* values); +typedef ALCAPI ALvoid ( * ALGETSOURCEI)(ALuint sourceName, ALenum param, ALint* value); +typedef ALCAPI ALvoid ( * ALSOURCEPLAY)(ALuint sourceName); +typedef ALCAPI ALvoid ( * ALSOURCEPLAYV)(ALsizei n, const ALuint* sourceNames); +typedef ALCAPI ALvoid ( * ALSOURCEPAUSE)(ALuint sourceName); +typedef ALCAPI ALvoid ( * ALSOURCEPAUSEV)(ALsizei n, const ALuint* sourceNames); +typedef ALCAPI ALvoid ( * ALSOURCESTOP)(ALuint sourceName); +typedef ALCAPI ALvoid ( * ALSOURCESTOPV)(ALsizei n, const ALuint* sourceNames); +typedef ALCAPI ALvoid ( * ALSOURCEREWIND)(ALuint sourceName); +typedef ALCAPI ALvoid ( * ALSOURCEREWINDV)(ALsizei n, const ALuint* sourceNames); +typedef ALCAPI ALvoid ( * ALSOURCEQUEUEBUFFERS)(ALuint sourceName, ALsizei n, const ALuint* buffers); +typedef ALCAPI ALvoid ( * ALSOURCEUNQUEUEBUFFERS)(ALuint sourceName, ALsizei n, ALuint* buffers); + + + +ALCCLOSEDEVICE pfalcCloseDevice; +ALCCREATECONTEXT pfalcCreateContext; +ALCDESTROYCONTEXT pfalcDestroyContext; +ALCGETCONTEXTSDEVICE pfalcGetContextsDevice; +ALCGETCURRENTCONTEXT pfalcGetCurrentContext; +ALCGETENUMVALUE pfalcGetEnumValue; +ALCGETERROR pfalcGetError; +ALCGETINTEGERV pfalcGetIntegerv; +ALCGETPROCADDRESS pfalcGetProcAddress; +ALCGETSTRING pfalcGetString; +ALCISEXTENSIONPRESENT pfalcIsExtensionPresent; +ALCMAKECONTEXTCURRENT pfalcMakeContextCurrent; +ALCOPENDEVICE pfalcOpenDevice; +ALCPROCESSCONTEXT pfalcProcessContext; +ALCSUSPENDCONTEXT pfalcSuspendContext; + +ALGENBUFFERS pfalGenBuffers; +ALDELETEBUFFERS pfalDeleteBuffers; +ALISBUFFER pfalIsBuffer; +ALBUFFERDATA pfalBufferData; +ALGETBUFFERF pfalGetBufferf; +ALGETBUFFERI pfalGetBufferi; +ALENABLE pfalEnable; +ALDISABLE pfalDisable; +ALDOPPLERFACTOR pfalDopplerFactor; +ALDOPPLERVELOCITY pfalDopplerVelocity; +ALDISTANCEMODEL pfalDistanceModel; +ALGETBOOLEAN pfalGetBoolean; +ALGETBOOLEANV pfalGetBooleanv; +ALGETDOUBLE pfalGetDouble; +ALGETDOUBLEV pfalGetDoublev; +ALGETFLOAT pfalGetFloat; +ALGETFLOATV pfalGetFloatv; +ALGETINTEGER pfalGetInteger; +ALGETINTEGERV pfalGetIntegerv; +ALGETENUMVALUE pfalGetEnumValue; +ALGETERROR pfalGetError; +ALGETPROCADDRESS pfalGetProcAddress; +ALGETSTRING pfalGetString; +ALISEXTENSIONPRESENT pfalIsExtensionPresent; +ALISENABLED pfalIsEnabled; +ALLISTENERF pfalListenerf; +ALLISTENER3F pfalListener3f; +ALLISTENERFV pfalListenerfv; +ALLISTENERI pfalListeneri; +ALGETLISTENERF pfalGetListenerf; +ALGETLISTENER3F pfalGetListener3f; +ALGETLISTENERFV pfalGetListenerfv; +ALGETLISTENERI pfalGetListeneri; +ALGENSOURCES pfalGenSources; +ALDELETESOURCES pfalDeleteSources; +ALISSOURCE pfalIsSource; +ALSOURCEF pfalSourcef; +ALSOURCEFV pfalSourcefv; +ALSOURCE3F pfalSource3f; +ALSOURCEI pfalSourcei; +ALGETSOURCEF pfalGetSourcef; +ALGETSOURCE3F pfalGetSource3f; +ALGETSOURCEFV pfalGetSourcefv; +ALGETSOURCEI pfalGetSourcei; +ALSOURCEPLAY pfalSourcePlay; +ALSOURCEPLAYV pfalSourcePlayv; +ALSOURCEPAUSE pfalSourcePause; +ALSOURCEPAUSEV pfalSourcePausev; +ALSOURCESTOP pfalSourceStop; +ALSOURCESTOPV pfalSourceStopv; +ALSOURCEREWIND pfalSourceRewind; +ALSOURCEREWINDV pfalSourceRewindv; +ALSOURCEQUEUEBUFFERS pfalSourceQueueBuffers; +ALSOURCEUNQUEUEBUFFERS pfalSourceUnqueueBuffers; + + + +#endif /* __OPENAL_BINDING_H__ */ diff --git a/wolf3d/code/env/openal_main.c b/wolf3d/code/env/openal_main.c new file mode 100644 index 0000000..ff3d2d0 --- /dev/null +++ b/wolf3d/code/env/openal_main.c @@ -0,0 +1,247 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * openal_main.c: Interface to Sound Device. + * + * Author: Michael Liebscher + * Date: 2004 + * + */ + +#include "../wolfiphone.h" + + +#ifdef _WIN32 + + #define OPENAL_DLL_NAME "openal32.dll" + +#elif __unix__ + + #define OPENAL_DLL_NAME "libopenal.so" + +#elif IPHONE + +#define OPENAL_DLL_NAME "/System/Library/Frameworks/OpenAL.framework/OpenAL" + +#else + + #error "Please define OPENAL_DLL_NAME" + +#endif + +PRIVATE ALCcontext *Context; +PRIVATE ALCdevice *Device; + + +cvar_t *s_driver; +cvar_t *s_device; + + +char *deviceList; +char *sound_devices[ 12 ]; + +W16 numSoundDevices, numDefaultSoundDevice; + + + +/* +----------------------------------------------------------------------------- + Function: Sound_Device_getDeviceList -Get OpenAL device list. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void Sound_Device_getDeviceList( void ) +{ + char deviceName[ 256 ]; + + my_strlcpy( deviceName, s_device->string, sizeof( deviceName ) ); + if( pfalcIsExtensionPresent( NULL, (ALubyte*)"ALC_ENUMERATION_EXT") == AL_TRUE ) + { + // try out enumeration extension + deviceList = (char *)pfalcGetString( NULL, ALC_DEVICE_SPECIFIER ); + for( numSoundDevices = 0 ; numSoundDevices < 12 ; ++numSoundDevices ) + { + sound_devices[ numSoundDevices ] = NULL; + } + + for( numSoundDevices = 0 ; numSoundDevices < 12 ; ++numSoundDevices ) + { + sound_devices[ numSoundDevices ] = deviceList; + if( strcmp( sound_devices[ numSoundDevices ], deviceName ) == 0 ) + { + numDefaultSoundDevice = numSoundDevices; + } + deviceList += strlen( deviceList ); + if( deviceList[ 0 ] == 0 ) + { + if( deviceList[ 1 ] == 0 ) + { + break; + } + else + { + deviceList += 1; + } + } + + } // End for numSoundDevices = 0 ; numSoundDevices < 12 ; ++numSoundDevices + } + +} + + +/* +----------------------------------------------------------------------------- + Function: Sound_Device_Register -Register OpenAL cvars. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void Sound_Device_Register( void ) +{ + s_driver = Cvar_Get( "s_driver", OPENAL_DLL_NAME, CVAR_ARCHIVE ); + s_device = Cvar_Get( "s_device", "", CVAR_LATCH | CVAR_ARCHIVE ); +} + +/* +----------------------------------------------------------------------------- + Function: Sound_Device_Setup -Setup OpenAL sound device. + + Parameters: Nothing. + + Returns: true on success, otherwise false. + + Notes: Call Sound_Device_Shutdown() when you are done. +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean Sound_Device_Setup( void ) +{ + Com_Printf( "...Initializing AudioSession\n" ); + SysIPhoneInitAudioSession(); + + Com_Printf( "...Initializing OpenAL subsystem\n" ); + + Sound_Device_Register(); + + // Initialize our OpenAL dynamic bindings + if( ! OpenAL_Init( s_driver->string ) ) + { + Com_Printf( "[%s]: Dynamic binding of (%s) failed\n", "openal_main.c", s_driver->string ); + + goto failed; + } + + + Sound_Device_getDeviceList(); + + + Device = pfalcOpenDevice( (ALCubyte *)( (s_device->string[ 0 ]) ? s_device->string : NULL ) ); + if( Device == NULL ) + { + Com_Printf( "Failed to Initialize OpenAL\n" ); + + goto failed; + } + + // Create context(s) + Context = pfalcCreateContext( Device, NULL ); + if( Context == NULL ) + { + Com_Printf( "Failed to initialize OpenAL\n" ); + + goto failed; + } + + + + // Set active context + pfalcGetError( Device ); + pfalcMakeContextCurrent( Context ); + if( pfalcGetError( Device ) != ALC_NO_ERROR ) + { + Com_Printf( "Failed to Make Context Current\n" ); + + goto failed; + } + + return true; + + + +failed: + + if( Context ) + { + pfalcDestroyContext( Context ); + Context = NULL; + } + + if( Device ) + { + pfalcCloseDevice( Device ); + Device = NULL; + } + + OpenAL_Shutdown(); + + return false; +} + +/* +----------------------------------------------------------------------------- + Function: Sound_Device_Shutdown -Shutdown OpenAL sound device. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Sound_Device_Shutdown( void ) +{ + if( Context ) + { + pfalcMakeContextCurrent( NULL ); + pfalcDestroyContext( Context ); + + Context = NULL; + } + + if( Device ) + { + pfalcCloseDevice( Device ); + + Device = NULL; + } + + OpenAL_Shutdown(); +} + diff --git a/wolf3d/code/env/opengl_draw.c b/wolf3d/code/env/opengl_draw.c new file mode 100644 index 0000000..8ee9aa8 --- /dev/null +++ b/wolf3d/code/env/opengl_draw.c @@ -0,0 +1,256 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * opengl_draw.c: OpenGL drawing routines. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + + +#include "../wolfiphone.h" + +texture_t *draw_chars; + +//extern _boolean scrap_dirty; +//void Scrap_Upload (void); + + + +/* +----------------------------------------------------------------------------- + Function: R_Draw_Char -Draw ASCII character to the screen. + + Parameters: x -[in] x-coordinate. + y -[in] y-coordinate. + num -[in] ASCII character value. + myfont -[in] Valid pointer to font_t structure. + + Returns: Nothing. + + Notes: + It can be clipped to the top of the screen to allow the console to be + smoothly scrolled off. + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Draw_Character( int x, int y, int num, font_t *myfont ) +{ + int row, col; + int scale, sh; // scaled width, height + float frow, fcol; + + num &= 255; + + if( (num & 127) == 32 ) + { + return; // space + } + + if( y <= -myfont->nMaxHeight ) + { + return; // totally off screen + } + + scale = myfont->nSize; + sh = myfont->nMaxHeight; + + row = (num >> 4) - 2; + col = num & 15; + + frow = row * myfont->hFrac; + fcol = col * myfont->wFrac; + + + pfglColor4ubv( myfont->colour ); + + pfglEnable( GL_BLEND ); + + + R_Bind( myfont->texfont->texnum ); + + + pfglBegin( GL_QUADS ); + + + pfglTexCoord2f( fcol, frow ); + pfglVertex2i( x, y ); + + pfglTexCoord2f( fcol+myfont->wFrac, frow ); + pfglVertex2i( x+myfont->nMaxWidth*scale, y ); + + pfglTexCoord2f( fcol+myfont->wFrac, frow+myfont->hFrac ); + pfglVertex2i( x+myfont->nMaxWidth*scale, (y+sh*scale) ); + + pfglTexCoord2f( fcol, frow+myfont->hFrac ); + pfglVertex2i( x, (y+sh*scale) ); + + + + pfglEnd(); + + pfglDisable( GL_BLEND ); + pfglColor3f( 1, 1, 1 ); +} + + +/* +----------------------------------------------------------------------------- + Function: R_Draw_StretchPic -Draw stretched image to the screen. + + Parameters: x -[in] x-coordinate. + y -[in] y-coordinate. + w -[in] width of region. + h -[in] height of region. + pic -[in] Image filename to stretch. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Draw_StretchPic( int x, int y, int w, int h, const char *pic ) +{ + texture_t *gl; + + gl = TM_FindTexture( pic, TT_Pic ); + if( ! gl ) + { + Com_Printf( "Can't find pic: %s\n", pic ); + return; + } + + R_Bind( gl->texnum ); + + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( 0.0f, 0.0f ); pfglVertex2i( x, y ); + pfglTexCoord2f( 1.0f, 0.0f ); pfglVertex2i( x+w, y ); + pfglTexCoord2f( 1.0f, 1.0f ); pfglVertex2i( x+w, y+h ); + pfglTexCoord2f( 0.0f, 1.0f ); pfglVertex2i( x, y+h ); + + pfglEnd(); +} + + + +/* +----------------------------------------------------------------------------- + Function: R_Draw_Fill -Fills a box of pixels with a single color. + + Parameters: x -[in] x-coordinate. + y -[in] y-coordinate. + w -[in] width of region. + h -[in] height of region. + c -[in] Colour to fill region. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Draw_Fill( int x, int y, int w, int h, colour3_t c ) +{ +#if 1 + // as of 2.2 OS, doing a clear with a small scissor rect is MUCH slower + // than drawing geometry, so they must not be optimizing that case... + colour4_t c4; + c4[0] = c[0]; + c4[1] = c[1]; + c4[2] = c[2]; + c4[3] = 255; + R_Draw_Blend( x, y, w, h, c4 ); +#else + if ( revLand->value ) { + qglScissor( x, y, w, h ); + } else { + qglScissor( x, 320-(y+h), w, h ); + } + qglEnable( GL_SCISSOR_TEST ); + qglClearColor( c[0] / 255.0f, c[1] / 255.0f, c[2] / 255.0f, 1.0f ); + qglClear( GL_COLOR_BUFFER_BIT ); + qglDisable( GL_SCISSOR_TEST ); +#endif +} + +PUBLIC void R_Draw_Blend( int x, int y, int w, int h, colour4_t c ) +{ + pfglDisable( GL_TEXTURE_2D ); + pfglColor4ubv( c ); + + pfglBegin( GL_QUADS ); + + pfglVertex2i( x, y ); + pfglVertex2i( x+w, y ); + pfglVertex2i( x+w, y+h ); + pfglVertex2i( x, y+h ); + + pfglEnd(); + + pfglColor3f( 1, 1, 1 ); + pfglEnable( GL_TEXTURE_2D ); +} + +/* +----------------------------------------------------------------------------- + Function: R_Draw_Line -Draw a line on the screen. + + Parameters: nXStart -[in] x-coordinate of starting point. + nYStart -[in] y-coordinate of starting point. + nXEnd -[in] x-coordinate of ending point. + nYEnd -[in] y-coordinate of ending point. + c -[in] Colour value. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Draw_Line( int nXStart, int nYStart, int nXEnd, int nYEnd, int width, colour3_t c ) +{ + pfglDisable( GL_TEXTURE_2D ); + + + pfglColor3ubv( c ); + + + pfglLineWidth( (float)width ); + + pfglBegin( GL_LINES ); + + pfglVertex2i( nXStart, nYStart ); + pfglVertex2i( nXEnd, nYEnd ); + + pfglEnd(); + + pfglColor3f( 1, 1, 1 ); + pfglEnable( GL_TEXTURE_2D ); +} + + diff --git a/wolf3d/code/env/opengl_extension.c b/wolf3d/code/env/opengl_extension.c new file mode 100644 index 0000000..7c3b654 --- /dev/null +++ b/wolf3d/code/env/opengl_extension.c @@ -0,0 +1,1024 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * myopengl_extension.c: Interface to OpenGL extensions. + * + * Author: Michael Liebscher + * Date: 2004 + * + */ + +/* + + This module implements the binding of OpenGL extensions + to our function pointers. + + To use this module call the function GL_ConfigExtensions(). + +*/ + +#include + +#include "myopengl.h" +#include "opengl_local.h" +#include "myopengl_extension.h" +#include "../../common/common_utils.h" +#include "../../common/common.h" + + + + /* Implemented here */ + + +// Define what you require here. +// If hardware does not meet these defines, then extension load will fail. +#define MY_MAX_ARB_TEXTURESTAGES 4 + +#define MY_GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTR 128 +#define MY_GL_MAX_VERTEX_SHADER_LOCALS_EXT 68 +#define MY_GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 2 +#define MY_GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 97 +#define MY_GL_MAX_VERTEX_SHADER_VARIANTS_EXT 4 + + + + +GL_Extensions gl_ext; + + + +////////////////////////////// +// +// ARB Functions +// +////////////////////////////// + +PRIVATE W8 ConfigARBMultiTexture( const char *glext ) +{ + if( strstr( glext, "GL_ARB_multitexture" ) == NULL ) + { + Com_Printf( "...GL_ARB_multitexture not found\n" ); + return 0; + } + + if( ! (pfglActiveTextureARB = ( void * )pfwglGetProcAddress( "glActiveTextureARB" )) ) return 0; + if( ! (pfglClientActiveTextureARB = ( void * )pfwglGetProcAddress("glClientActiveTextureARB")))return 0; + + if( ! (pfglMultiTexCoord1sARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord1sARB" ))) return 0; + if( ! (pfglMultiTexCoord1iARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord1iARB" ))) return 0; + if( ! (pfglMultiTexCoord1fARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord1fARB" ))) return 0; + if( ! (pfglMultiTexCoord1dARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord1dARB" ))) return 0; + if( ! (pfglMultiTexCoord2sARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord2sARB" ))) return 0; + if( ! (pfglMultiTexCoord2iARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord2iARB" ))) return 0; + if( ! (pfglMultiTexCoord2fARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord2fARB" ))) return 0; + if( ! (pfglMultiTexCoord2dARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord2dARB" ))) return 0; + if( ! (pfglMultiTexCoord3sARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord3sARB" ))) return 0; + if( ! (pfglMultiTexCoord3iARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord3iARB" ))) return 0; + if( ! (pfglMultiTexCoord3fARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord3fARB" ))) return 0; + if( ! (pfglMultiTexCoord3dARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord3dARB" ))) return 0; + if( ! (pfglMultiTexCoord4sARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord4sARB" ))) return 0; + if( ! (pfglMultiTexCoord4iARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord4iARB" ))) return 0; + if( ! (pfglMultiTexCoord4fARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord4fARB" ))) return 0; + if( ! (pfglMultiTexCoord4dARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord4dARB" ))) return 0; + + if( ! (pfglMultiTexCoord1svARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord1svARB" ))) return 0; + if( ! (pfglMultiTexCoord1ivARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord1ivARB" ))) return 0; + if( ! (pfglMultiTexCoord1fvARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord1fvARB" ))) return 0; + if( ! (pfglMultiTexCoord1dvARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord1dvARB" ))) return 0; + if( ! (pfglMultiTexCoord2svARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord2svARB" ))) return 0; + if( ! (pfglMultiTexCoord2ivARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord2ivARB" ))) return 0; + if( ! (pfglMultiTexCoord2fvARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord2fvARB" ))) return 0; + if( ! (pfglMultiTexCoord2dvARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord2dvARB" ))) return 0; + if( ! (pfglMultiTexCoord3svARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord3svARB" ))) return 0; + if( ! (pfglMultiTexCoord3ivARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord3ivARB" ))) return 0; + if( ! (pfglMultiTexCoord3fvARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord3fvARB" ))) return 0; + if( ! (pfglMultiTexCoord3dvARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord3dvARB" ))) return 0; + if( ! (pfglMultiTexCoord4svARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord4svARB" ))) return 0; + if( ! (pfglMultiTexCoord4ivARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord4ivARB" ))) return 0; + if( ! (pfglMultiTexCoord4fvARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord4fvARB" ))) return 0; + if( ! (pfglMultiTexCoord4dvARB = ( void * )pfwglGetProcAddress( "glMultiTexCoord4dvARB" ))) return 0; + + + Com_Printf( "...enabling GL_ARB_multitexture\n" ); + + return 1; +} + + +PRIVATE W8 ConfigARBTextureCompression( const char *glext ) +{ + if( strstr( glext, "GL_ARB_texture_compression" ) == NULL ) + { + Com_Printf( "...GL_ARB_texture_compression not found\n" ); + return 0; + } + + if( ! (pfglCompressedTexImage3DARB = ( void * )pfwglGetProcAddress( "glCompressedTexImage3DARB" ))) return 0; + if( ! (pfglCompressedTexImage2DARB = ( void * )pfwglGetProcAddress( "glCompressedTexImage2DARB" ))) return 0; + if( ! (pfglCompressedTexImage1DARB = ( void * )pfwglGetProcAddress( "glCompressedTexImage1DARB" ))) return 0; + if( ! (pfglCompressedTexSubImage3DARB = ( void * )pfwglGetProcAddress( "glCompressedTexSubImage3DARB" ))) return 0; + if( ! (pfglCompressedTexSubImage2DARB = ( void * )pfwglGetProcAddress( "glCompressedTexSubImage2DARB" ))) return 0; + if( ! (pfglCompressedTexSubImage1DARB = ( void * )pfwglGetProcAddress( "glCompressedTexSubImage1DARB" ))) return 0; + if( ! (pfglGetCompressedTexImageARB = ( void * )pfwglGetProcAddress( "glGetCompressedTexImageARB" ))) return 0; + + Com_Printf( "...enabling GL_ARB_texture_compression\n" ); + + return 1; +} + + +PRIVATE W8 CheckARBTextureCubeMap( const char *glext ) +{ + if( strstr( glext, "GL_ARB_texture_cube_map" ) == NULL ) + { + Com_Printf( "...GL_ARB_texture_cube_map not found\n" ); + return 0; + } + + Com_Printf( "...enabling GL_ARB_texture_cube_map\n" ); + + return 1; +} + +PRIVATE W8 ConfigARBVertexProgram( const char *glext ) +{ + if( strstr( glext, "GL_ARB_vertex_program" ) == NULL ) + { + return 0; + } + + if( ! (pfglVertexAttrib1sARB = ( void * )pfwglGetProcAddress("glVertexAttrib1sARB"))) return 0; + if( ! (pfglVertexAttrib1fARB = ( void * )pfwglGetProcAddress("glVertexAttrib1fARB"))) return 0; + if( ! (pfglVertexAttrib1dARB = ( void * )pfwglGetProcAddress("glVertexAttrib1dARB"))) return 0; + if( ! (pfglVertexAttrib2sARB = ( void * )pfwglGetProcAddress("glVertexAttrib2sARB"))) return 0; + if( ! (pfglVertexAttrib2fARB = ( void * )pfwglGetProcAddress("glVertexAttrib2fARB"))) return 0; + if( ! (pfglVertexAttrib2dARB = ( void * )pfwglGetProcAddress("glVertexAttrib2dARB"))) return 0; + if( ! (pfglVertexAttrib3sARB = ( void * )pfwglGetProcAddress("glVertexAttrib3sARB"))) return 0; + if( ! (pfglVertexAttrib3fARB = ( void * )pfwglGetProcAddress("glVertexAttrib3fARB"))) return 0; + if( ! (pfglVertexAttrib3dARB = ( void * )pfwglGetProcAddress("glVertexAttrib3dARB"))) return 0; + if( ! (pfglVertexAttrib4sARB = ( void * )pfwglGetProcAddress("glVertexAttrib4sARB"))) return 0; + if( ! (pfglVertexAttrib4fARB = ( void * )pfwglGetProcAddress("glVertexAttrib4fARB"))) return 0; + if( ! (pfglVertexAttrib4dARB = ( void * )pfwglGetProcAddress("glVertexAttrib4dARB"))) return 0; + if( ! (pfglVertexAttrib4NubARB = ( void * )pfwglGetProcAddress("glVertexAttrib4NubARB"))) return 0; + if( ! (pfglVertexAttrib1svARB = ( void * )pfwglGetProcAddress("glVertexAttrib1svARB"))) return 0; + if( ! (pfglVertexAttrib1fvARB = ( void * )pfwglGetProcAddress("glVertexAttrib1fvARB"))) return 0; + if( ! (pfglVertexAttrib1dvARB = ( void * )pfwglGetProcAddress("glVertexAttrib1dvARB"))) return 0; + if( ! (pfglVertexAttrib2svARB = ( void * )pfwglGetProcAddress("glVertexAttrib2svARB"))) return 0; + if( ! (pfglVertexAttrib2fvARB = ( void * )pfwglGetProcAddress("glVertexAttrib2fvARB"))) return 0; + if( ! (pfglVertexAttrib2dvARB = ( void * )pfwglGetProcAddress("glVertexAttrib2dvARB"))) return 0; + if( ! (pfglVertexAttrib3svARB = ( void * )pfwglGetProcAddress("glVertexAttrib3svARB"))) return 0; + if( ! (pfglVertexAttrib3fvARB = ( void * )pfwglGetProcAddress("glVertexAttrib3fvARB"))) return 0; + if( ! (pfglVertexAttrib3dvARB = ( void * )pfwglGetProcAddress("glVertexAttrib3dvARB"))) return 0; + if( ! (pfglVertexAttrib4bvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4bvARB"))) return 0; + if( ! (pfglVertexAttrib4svARB = ( void * )pfwglGetProcAddress("glVertexAttrib4svARB"))) return 0; + if( ! (pfglVertexAttrib4ivARB = ( void * )pfwglGetProcAddress("glVertexAttrib4ivARB"))) return 0; + if( ! (pfglVertexAttrib4ubvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4ubvARB"))) return 0; + if( ! (pfglVertexAttrib4usvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4usvARB"))) return 0; + if( ! (pfglVertexAttrib4uivARB = ( void * )pfwglGetProcAddress("glVertexAttrib4uivARB"))) return 0; + if( ! (pfglVertexAttrib4fvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4fvARB"))) return 0; + if( ! (pfglVertexAttrib4dvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4dvARB"))) return 0; + if( ! (pfglVertexAttrib4NbvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4NbvARB"))) return 0; + if( ! (pfglVertexAttrib4NsvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4NsvARB"))) return 0; + if( ! (pfglVertexAttrib4NivARB = ( void * )pfwglGetProcAddress("glVertexAttrib4NivARB"))) return 0; + if( ! (pfglVertexAttrib4NubvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4NubvARB"))) return 0; + if( ! (pfglVertexAttrib4NusvARB = ( void * )pfwglGetProcAddress("glVertexAttrib4NusvARB"))) return 0; + if( ! (pfglVertexAttrib4NuivARB = ( void * )pfwglGetProcAddress("glVertexAttrib4NuivARB"))) return 0; + if( ! (pfglVertexAttribPointerARB = ( void * )pfwglGetProcAddress("glVertexAttribPointerARB"))) return 0; + if( ! (pfglEnableVertexAttribArrayARB = ( void * )pfwglGetProcAddress("glEnableVertexAttribArrayARB"))) return 0; + if( ! (pfglDisableVertexAttribArrayARB = ( void * )pfwglGetProcAddress("glDisableVertexAttribArrayARB"))) return 0; + if( ! (pfglProgramStringARB = ( void * )pfwglGetProcAddress("glProgramStringARB"))) return 0; + if( ! (pfglBindProgramARB = ( void * )pfwglGetProcAddress("glBindProgramARB"))) return 0; + if( ! (pfglDeleteProgramsARB = ( void * )pfwglGetProcAddress("glDeleteProgramsARB"))) return 0; + if( ! (pfglGenProgramsARB = ( void * )pfwglGetProcAddress("glGenProgramsARB"))) return 0; + if( ! (pfglProgramEnvParameter4fARB = ( void * )pfwglGetProcAddress("glProgramEnvParameter4fARB"))) return 0; + if( ! (pfglProgramEnvParameter4dARB = ( void * )pfwglGetProcAddress("glProgramEnvParameter4dARB"))) return 0; + if( ! (pfglProgramEnvParameter4fvARB = ( void * )pfwglGetProcAddress("glProgramEnvParameter4fvARB"))) return 0; + if( ! (pfglProgramEnvParameter4dvARB = ( void * )pfwglGetProcAddress("glProgramEnvParameter4dvARB"))) return 0; + if( ! (pfglProgramLocalParameter4fARB = ( void * )pfwglGetProcAddress("glProgramLocalParameter4fARB"))) return 0; + if( ! (pfglProgramLocalParameter4dARB = ( void * )pfwglGetProcAddress("glProgramLocalParameter4dARB"))) return 0; + if( ! (pfglProgramLocalParameter4fvARB = ( void * )pfwglGetProcAddress("glProgramLocalParameter4fvARB"))) return 0; + if( ! (pfglProgramLocalParameter4dvARB = ( void * )pfwglGetProcAddress("glProgramLocalParameter4dvARB"))) return 0; + if( ! (pfglGetProgramEnvParameterfvARB = ( void * )pfwglGetProcAddress("glGetProgramEnvParameterfvARB"))) return 0; + if( ! (pfglGetProgramEnvParameterdvARB = ( void * )pfwglGetProcAddress("glGetProgramEnvParameterdvARB"))) return 0; + if( ! (pfglGetProgramLocalParameterfvARB = ( void * )pfwglGetProcAddress("glGetProgramLocalParameterfvARB"))) return 0; + if( ! (pfglGetProgramLocalParameterdvARB = ( void * )pfwglGetProcAddress("glGetProgramLocalParameterdvARB"))) return 0; + if( ! (pfglGetProgramivARB = ( void * )pfwglGetProcAddress("glGetProgramivARB"))) return 0; + if( ! (pfglGetProgramStringARB = ( void * )pfwglGetProcAddress("glGetProgramStringARB"))) return 0; + if( ! (pfglGetVertexAttribdvARB = ( void * )pfwglGetProcAddress("glGetVertexAttribdvARB"))) return 0; + if( ! (pfglGetVertexAttribfvARB = ( void * )pfwglGetProcAddress("glGetVertexAttribfvARB"))) return 0; + if( ! (pfglGetVertexAttribivARB = ( void * )pfwglGetProcAddress("glGetVertexAttribivARB"))) return 0; + if( ! (pfglGetVertexAttribPointervARB = ( void * )pfwglGetProcAddress("glGetVertexAttribPointervARB"))) return 0; + if( ! (pfglIsProgramARB = ( void * )pfwglGetProcAddress("glIsProgramARB"))) return 0; + + Com_Printf( "...enabling GL_ARB_vertex_program\n" ); + + return 1; +} + + +//////////////////////////////////////////////////////////// + + + + +////////////////////////////// +// +// EXT Functions +// +////////////////////////////// + + +PRIVATE W8 CheckEXTTextureCompressionS3TC( const char *glext ) +{ + if( strstr( glext, "GL_EXT_texture_compression_s3tc" ) == NULL ) + { + Com_Printf( "...GL_EXT_texture_compression_s3tc not found\n" ); + return 0; + } + + Com_Printf( "...enabling GL_EXT_texture_compression_s3tc\n" ); + + return 1; +} + +PRIVATE W8 CheckEXTTextureEnvCombine( const char *glext ) +{ + if( strstr( glext, "GL_EXT_texture_env_combine" ) == NULL ) + { + Com_Printf( "...GL_EXT_texture_env_combine not found\n" ); + return 0; + } + + Com_Printf( "...enabling GL_EXT_texture_env_combine\n" ); + + return 1; +} + + + +PRIVATE W8 ConfigEXTSecondaryColor( const char *glext ) +{ + if( strstr( glext, "GL_EXT_secondary_color" ) == NULL ) + { + Com_Printf( "...GL_EXT_secondary_color not found\n" ); + return 0; + } + + + if( ! (pfglSecondaryColor3bEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3bEXT"))) return 0; + if( ! (pfglSecondaryColor3bvEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3bvEXT"))) return 0; + if( ! (pfglSecondaryColor3dEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3dEXT"))) return 0; + if( ! (pfglSecondaryColor3dvEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3dvEXT"))) return 0; + if( ! (pfglSecondaryColor3fEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3fEXT"))) return 0; + if( ! (pfglSecondaryColor3fvEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3fvEXT"))) return 0; + if( ! (pfglSecondaryColor3iEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3iEXT"))) return 0; + if( ! (pfglSecondaryColor3ivEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3ivEXT"))) return 0; + if( ! (pfglSecondaryColor3sEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3sEXT"))) return 0; + if( ! (pfglSecondaryColor3svEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3svEXT"))) return 0; + if( ! (pfglSecondaryColor3ubEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3ubEXT"))) return 0; + if( ! (pfglSecondaryColor3ubvEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3ubvEXT"))) return 0; + if( ! (pfglSecondaryColor3uiEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3uiEXT"))) return 0; + if( ! (pfglSecondaryColor3uivEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3uivEXT"))) return 0; + if( ! (pfglSecondaryColor3usEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3usEXT"))) return 0; + if( ! (pfglSecondaryColor3usvEXT = ( void * )pfwglGetProcAddress("glSecondaryColor3usvEXT"))) return 0; + if( ! (pfglSecondaryColorPointerEXT = ( void * )pfwglGetProcAddress("glSecondaryColorPointerEXT"))) return 0; + + Com_Printf( "...enabling GL_EXT_secondary_color\n" ); + + return 1; +} + +PRIVATE W8 ConfigEXTBlendColor( const char *glext ) +{ + if( strstr( glext, "GL_EXT_blend_color" ) == NULL ) + { + Com_Printf( "...GL_EXT_blend_color not found\n" ); + return 0; + } + + if( ! (pfglBlendColorEXT = (void *)pfwglGetProcAddress( "glBlendColorEXT" ))) return 0; + + Com_Printf( "...enabling GL_EXT_blend_color\n" ); + + return 1; +} + +PRIVATE W8 ConfigEXTVertexShader( const char *glext ) +{ + GLint glnum; + + if( strstr( glext, "GL_EXT_vertex_shader" ) == NULL ) + { + return 0; + } + + if( ! (pfglBeginVertexShaderEXT = ( void * )pfwglGetProcAddress("glBeginVertexShaderEXT"))) return 0; + if( ! (pfglEndVertexShaderEXT = ( void * )pfwglGetProcAddress("glEndVertexShaderEXT"))) return 0; + if( ! (pfglBindVertexShaderEXT = ( void * )pfwglGetProcAddress("glBindVertexShaderEXT"))) return 0; + if( ! (pfglGenVertexShadersEXT = ( void * )pfwglGetProcAddress("glGenVertexShadersEXT"))) return 0; + if( ! (pfglDeleteVertexShaderEXT = ( void * )pfwglGetProcAddress("glDeleteVertexShaderEXT"))) return 0; + if( ! (pfglShaderOp1EXT = ( void * )pfwglGetProcAddress("glShaderOp1EXT"))) return 0; + if( ! (pfglShaderOp2EXT = ( void * )pfwglGetProcAddress("glShaderOp2EXT"))) return 0; + if( ! (pfglShaderOp3EXT = ( void * )pfwglGetProcAddress("glShaderOp3EXT"))) return 0; + if( ! (pfglSwizzleEXT = ( void * )pfwglGetProcAddress("glSwizzleEXT"))) return 0; + if( ! (pfglWriteMaskEXT = ( void * )pfwglGetProcAddress("glWriteMaskEXT"))) return 0; + if( ! (pfglInsertComponentEXT = ( void * )pfwglGetProcAddress("glInsertComponentEXT"))) return 0; + if( ! (pfglExtractComponentEXT = ( void * )pfwglGetProcAddress("glExtractComponentEXT"))) return 0; + if( ! (pfglGenSymbolsEXT = ( void * )pfwglGetProcAddress("glGenSymbolsEXT"))) return 0; + if( ! (pfglSetInvariantEXT = ( void * )pfwglGetProcAddress("glSetInvariantEXT"))) return 0; + if( ! (pfglSetLocalConstantEXT = ( void * )pfwglGetProcAddress("glSetLocalConstantEXT"))) return 0; + if( ! (pfglVariantPointerEXT = ( void * )pfwglGetProcAddress("glVariantPointerEXT"))) return 0; + if( ! (pfglEnableVariantClientStateEXT = ( void * )pfwglGetProcAddress("glEnableVariantClientStateEXT"))) return 0; + if( ! (pfglDisableVariantClientStateEXT = ( void * )pfwglGetProcAddress("glDisableVariantClientStateEXT"))) return 0; + if( ! (pfglBindLightParameterEXT = ( void * )pfwglGetProcAddress("glBindLightParameterEXT"))) return 0; + if( ! (pfglBindMaterialParameterEXT = ( void * )pfwglGetProcAddress("glBindMaterialParameterEXT"))) return 0; + if( ! (pfglBindTexGenParameterEXT = ( void * )pfwglGetProcAddress("glBindTexGenParameterEXT"))) return 0; + if( ! (pfglBindTextureUnitParameterEXT = ( void * )pfwglGetProcAddress("glBindTextureUnitParameterEXT"))) return 0; + if( ! (pfglBindParameterEXT = ( void * )pfwglGetProcAddress("glBindParameterEXT"))) return 0; + if( ! (pfglIsVariantEnabledEXT = ( void * )pfwglGetProcAddress("glIsVariantEnabledEXT"))) return 0; + if( ! (pfglGetVariantBooleanvEXT = ( void * )pfwglGetProcAddress("glGetVariantBooleanvEXT"))) return 0; + if( ! (pfglGetVariantIntegervEXT = ( void * )pfwglGetProcAddress("glGetVariantIntegervEXT"))) return 0; + if( ! (pfglGetVariantFloatvEXT = ( void * )pfwglGetProcAddress("glGetVariantFloatvEXT"))) return 0; + if( ! (pfglGetVariantPointervEXT = ( void * )pfwglGetProcAddress("glGetVariantPointervEXT"))) return 0; + if( ! (pfglGetInvariantBooleanvEXT = ( void * )pfwglGetProcAddress("glGetInvariantBooleanvEXT"))) return 0; + if( ! (pfglGetInvariantIntegervEXT = ( void * )pfwglGetProcAddress("glGetInvariantIntegervEXT"))) return 0; + if( ! (pfglGetInvariantFloatvEXT = ( void * )pfwglGetProcAddress("glGetInvariantFloatvEXT"))) return 0; + if( ! (pfglGetLocalConstantBooleanvEXT = ( void * )pfwglGetProcAddress("glGetLocalConstantBooleanvEXT"))) return 0; + if( ! (pfglGetLocalConstantIntegervEXT = ( void * )pfwglGetProcAddress("glGetLocalConstantIntegervEXT"))) return 0; + if( ! (pfglGetLocalConstantFloatvEXT = ( void * )pfwglGetProcAddress("glGetLocalConstantFloatvEXT"))) return 0; + +// +// Checks to see if hardware is able to run our stuff +// + pfglGetIntegerv( GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT, &glnum ); + if( glnum < MY_GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTR ) + { + return 0; + } + + + pfglGetIntegerv( GL_MAX_VERTEX_SHADER_LOCALS_EXT, &glnum ); + if( glnum < MY_GL_MAX_VERTEX_SHADER_LOCALS_EXT ) + { + Com_Printf( "...Some vertex programs may fail to load" ); + return 0; + } + + + pfglGetIntegerv( GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT, &glnum ); + if( glnum < MY_GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT ) + { + return 0; + } + + + pfglGetIntegerv( GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT, &glnum ); + if( glnum < MY_GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT ) + { + return 0; + } + + + pfglGetIntegerv( GL_MAX_VERTEX_SHADER_VARIANTS_EXT, &glnum ); + if( glnum < MY_GL_MAX_VERTEX_SHADER_VARIANTS_EXT ) + { + return 0; + } + + + Com_Printf( "...enabling GL_EXT_vertex_shader\n" ); + + return 1; +} + + +PRIVATE W8 ConfigEXTVertexWeighting( const char *glext ) +{ + if( strstr( glext, "GL_EXT_vertex_weighting" ) == NULL ) + { + Com_Printf( "...GL_EXT_vertex_weighting not found\n" ); + return 0; + } + + + if( ! (pfglVertexWeightfEXT = ( void * )pfwglGetProcAddress( "glVertexWeightfEXT" ))) return 0; + if( ! (pfglVertexWeightfvEXT = ( void * )pfwglGetProcAddress( "glVertexWeightfvEXT" ))) return 0; + if( ! (pfglVertexWeightPointerEXT = ( void * )pfwglGetProcAddress( "glVertexWeightPointerEXT" ))) return 0; + + Com_Printf( "...enabling GL_EXT_vertex_weighting\n" ); + + return 1; +} + +PRIVATE W8 CheckEXTTextureFilterAnisotropic( const char *glext ) +{ + if( strstr( glext, "GL_EXT_texture_filter_anisotropic" ) == NULL ) + { + Com_Printf( "...GL_EXT_texture_filter_anisotropic not found\n" ); + return 0; + } + + Com_Printf( "...enabling GL_EXT_texture_filter_anisotropic\n" ); + + return 1; +} + +//////////////////////////////////////////////////////////// + + + + + +////////////////////////////// +// +// Nvidia Functions +// +////////////////////////////// + +PRIVATE W8 ConfigNVVertexArrayRange( const char *glext ) +{ + // Test if VAR is present. + if( strstr( glext, "GL_NV_vertex_array_range" ) == NULL ) + { + return 0; + } + + // Test if Fence + if( strstr( glext, "GL_NV_fence" ) == NULL ) + { + return 0; + } + + + // Setup Vertex Array Range + if( ! (pfglFlushVertexArrayRangeNV = ( void * )pfwglGetProcAddress("glFlushVertexArrayRangeNV")))return 0; + if( ! (pfglVertexArrayRangeNV = ( void * )pfwglGetProcAddress("glVertexArrayRangeNV")))return 0; + +#ifdef _WIN32 + + if( ! (pfwglAllocateMemoryNV = ( void * )pfwglGetProcAddress("wglAllocateMemoryNV"))) return 0; + if( ! (pfwglFreeMemoryNV = ( void * )pfwglGetProcAddress("wglFreeMemoryNV"))) return 0; + +#elif __unix__ + + if( ! (pfwglAllocateMemoryNV = ( void * )pfwglGetProcAddress( "glXAllocateMemoryNV" ))) return 0; + if( ! (pfwglFreeMemoryNV = ( void * )pfwglGetProcAddress( "glXFreeMemoryNV" ))) return 0; + +#else + + #error "Please define OS interface to GL_NV_vertex_array_range" + +#endif + + + // Setup fence + if( ! (pfglDeleteFencesNV = ( void * )pfwglGetProcAddress( "glDeleteFencesNV" ))) return 0; + if( ! (pfglGenFencesNV = ( void * )pfwglGetProcAddress( "glGenFencesNV" ))) return 0; + if( ! (pfglIsFenceNV = ( void * )pfwglGetProcAddress( "glIsFenceNV" ))) return 0; + if( ! (pfglTestFenceNV = ( void * )pfwglGetProcAddress( "glTestFenceNV" ))) return 0; + if( ! (pfglGetFenceivNV = ( void * )pfwglGetProcAddress( "glGetFenceivNV" ))) return 0; + if( ! (pfglFinishFenceNV = ( void * )pfwglGetProcAddress( "glFinishFenceNV" ))) return 0; + if( ! (pfglSetFenceNV = ( void * )pfwglGetProcAddress( "glSetFenceNV" ))) return 0; + + Com_Printf( "...enabling GL_NV_vertex_array_range & GL_NV_fence\n" ); + + return 1; +} + +PRIVATE W8 CheckNVVertexArrayRange2( const char *glext ) +{ + if( strstr( glext, "GL_NV_vertex_array_range2" ) == NULL ) + { + Com_Printf( "...GL_NV_vertex_array_range2 not found\n" ); + return 0; + } + + Com_Printf( "...enabling GL_NV_vertex_array_range2\n" ); + + return 1; +} + +PRIVATE W8 CheckNVTextureEnvCombine4( const char *glext ) +{ + if( strstr( glext, "GL_NV_texture_env_combine4") == NULL ) + { + Com_Printf( "...GL_NV_texture_env_combine4 not found\n" ); + return 0; + } + + Com_Printf( "...enabling GL_NV_texture_env_combine4\n" ); + + return 1; +} + +PRIVATE W8 ConfigNVVertexProgram( const char *glext ) +{ + if( strstr( glext, "GL_NV_vertex_program" ) == NULL ) + return 0; + + + if( ! (pfglAreProgramsResidentNV = ( void * )pfwglGetProcAddress("glAreProgramsResidentNV"))) return 0; + if( ! (pfglBindProgramNV = ( void * )pfwglGetProcAddress("glBindProgramNV"))) return 0; + if( ! (pfglDeleteProgramsNV = ( void * )pfwglGetProcAddress("glDeleteProgramsNV"))) return 0; + if( ! (pfglExecuteProgramNV = ( void * )pfwglGetProcAddress("glExecuteProgramNV"))) return 0; + if( ! (pfglGenProgramsNV = ( void * )pfwglGetProcAddress("glGenProgramsNV"))) return 0; + if( ! (pfglGetProgramParameterdvNV = ( void * )pfwglGetProcAddress("glGetProgramParameterdvNV"))) return 0; + if( ! (pfglGetProgramParameterfvNV = ( void * )pfwglGetProcAddress("glGetProgramParameterfvNV"))) return 0; + if( ! (pfglGetProgramivNV = ( void * )pfwglGetProcAddress("glGetProgramivNV"))) return 0; + if( ! (pfglGetProgramStringNV = ( void * )pfwglGetProcAddress("glGetProgramStringNV"))) return 0; + if( ! (pfglGetTrackMatrixivNV = ( void * )pfwglGetProcAddress("glGetTrackMatrixivNV"))) return 0; + if( ! (pfglGetVertexAttribdvNV = ( void * )pfwglGetProcAddress("glGetVertexAttribdvNV"))) return 0; + if( ! (pfglGetVertexAttribfvNV = ( void * )pfwglGetProcAddress("glGetVertexAttribfvNV"))) return 0; + if( ! (pfglGetVertexAttribivNV = ( void * )pfwglGetProcAddress("glGetVertexAttribivNV"))) return 0; + if( ! (pfglGetVertexAttribPointervNV = ( void * )pfwglGetProcAddress("glGetVertexAttribPointervNV"))) return 0; + if( ! (pfglIsProgramNV = ( void * )pfwglGetProcAddress("glIsProgramNV"))) return 0; + if( ! (pfglLoadProgramNV = ( void * )pfwglGetProcAddress("glLoadProgramNV"))) return 0; + if( ! (pfglProgramParameter4dNV = ( void * )pfwglGetProcAddress("glProgramParameter4dNV"))) return 0; + if( ! (pfglProgramParameter4dvNV = ( void * )pfwglGetProcAddress("glProgramParameter4dvNV"))) return 0; + if( ! (pfglProgramParameter4fNV = ( void * )pfwglGetProcAddress("glProgramParameter4fNV"))) return 0; + if( ! (pfglProgramParameter4fvNV = ( void * )pfwglGetProcAddress("glProgramParameter4fvNV"))) return 0; + if( ! (pfglProgramParameters4dvNV = ( void * )pfwglGetProcAddress("glProgramParameters4dvNV"))) return 0; + if( ! (pfglProgramParameters4fvNV = ( void * )pfwglGetProcAddress("glProgramParameters4fvNV"))) return 0; + if( ! (pfglRequestResidentProgramsNV = ( void * )pfwglGetProcAddress("glRequestResidentProgramsNV"))) return 0; + if( ! (pfglTrackMatrixNV = ( void * )pfwglGetProcAddress("glTrackMatrixNV"))) return 0; + if( ! (pfglVertexAttribPointerNV = ( void * )pfwglGetProcAddress("glVertexAttribPointerNV"))) return 0; + if( ! (pfglVertexAttrib1dNV = ( void * )pfwglGetProcAddress("glVertexAttrib1dNV"))) return 0; + if( ! (pfglVertexAttrib1dvNV = ( void * )pfwglGetProcAddress("glVertexAttrib1dvNV"))) return 0; + if( ! (pfglVertexAttrib1fNV = ( void * )pfwglGetProcAddress("glVertexAttrib1fNV"))) return 0; + if( ! (pfglVertexAttrib1fvNV = ( void * )pfwglGetProcAddress("glVertexAttrib1fvNV"))) return 0; + if( ! (pfglVertexAttrib1sNV = ( void * )pfwglGetProcAddress("glVertexAttrib1sNV"))) return 0; + if( ! (pfglVertexAttrib1svNV = ( void * )pfwglGetProcAddress("glVertexAttrib1svNV"))) return 0; + if( ! (pfglVertexAttrib2dNV = ( void * )pfwglGetProcAddress("glVertexAttrib2dNV"))) return 0; + if( ! (pfglVertexAttrib2dvNV = ( void * )pfwglGetProcAddress("glVertexAttrib2dvNV"))) return 0; + if( ! (pfglVertexAttrib2fNV = ( void * )pfwglGetProcAddress("glVertexAttrib2fNV"))) return 0; + if( ! (pfglVertexAttrib2fvNV = ( void * )pfwglGetProcAddress("glVertexAttrib2fvNV"))) return 0; + if( ! (pfglVertexAttrib2sNV = ( void * )pfwglGetProcAddress("glVertexAttrib2sNV"))) return 0; + if( ! (pfglVertexAttrib2svNV = ( void * )pfwglGetProcAddress("glVertexAttrib2svNV"))) return 0; + if( ! (pfglVertexAttrib3dNV = ( void * )pfwglGetProcAddress("glVertexAttrib3dNV"))) return 0; + if( ! (pfglVertexAttrib3dvNV = ( void * )pfwglGetProcAddress("glVertexAttrib3dvNV"))) return 0; + if( ! (pfglVertexAttrib3fNV = ( void * )pfwglGetProcAddress("glVertexAttrib3fNV"))) return 0; + if( ! (pfglVertexAttrib3fvNV = ( void * )pfwglGetProcAddress("glVertexAttrib3fvNV"))) return 0; + if( ! (pfglVertexAttrib3sNV = ( void * )pfwglGetProcAddress("glVertexAttrib3sNV"))) return 0; + if( ! (pfglVertexAttrib3svNV = ( void * )pfwglGetProcAddress("glVertexAttrib3svNV"))) return 0; + if( ! (pfglVertexAttrib4dNV = ( void * )pfwglGetProcAddress("glVertexAttrib4dNV"))) return 0; + if( ! (pfglVertexAttrib4dvNV = ( void * )pfwglGetProcAddress("glVertexAttrib4dvNV"))) return 0; + if( ! (pfglVertexAttrib4fNV = ( void * )pfwglGetProcAddress("glVertexAttrib4fNV"))) return 0; + if( ! (pfglVertexAttrib4fvNV = ( void * )pfwglGetProcAddress("glVertexAttrib4fvNV"))) return 0; + if( ! (pfglVertexAttrib4sNV = ( void * )pfwglGetProcAddress("glVertexAttrib4sNV"))) return 0; + if( ! (pfglVertexAttrib4svNV = ( void * )pfwglGetProcAddress("glVertexAttrib4svNV"))) return 0; + if( ! (pfglVertexAttrib4ubvNV = ( void * )pfwglGetProcAddress("glVertexAttrib4ubvNV"))) return 0; + if( ! (pfglVertexAttribs1dvNV = ( void * )pfwglGetProcAddress("glVertexAttribs1dvNV"))) return 0; + if( ! (pfglVertexAttribs1fvNV = ( void * )pfwglGetProcAddress("glVertexAttribs1fvNV"))) return 0; + if( ! (pfglVertexAttribs1svNV = ( void * )pfwglGetProcAddress("glVertexAttribs1svNV"))) return 0; + if( ! (pfglVertexAttribs2dvNV = ( void * )pfwglGetProcAddress("glVertexAttribs2dvNV"))) return 0; + if( ! (pfglVertexAttribs2fvNV = ( void * )pfwglGetProcAddress("glVertexAttribs2fvNV"))) return 0; + if( ! (pfglVertexAttribs2svNV = ( void * )pfwglGetProcAddress("glVertexAttribs2svNV"))) return 0; + if( ! (pfglVertexAttribs3dvNV = ( void * )pfwglGetProcAddress("glVertexAttribs3dvNV"))) return 0; + if( ! (pfglVertexAttribs3fvNV = ( void * )pfwglGetProcAddress("glVertexAttribs3fvNV"))) return 0; + if( ! (pfglVertexAttribs3svNV = ( void * )pfwglGetProcAddress("glVertexAttribs3svNV"))) return 0; + if( ! (pfglVertexAttribs4dvNV = ( void * )pfwglGetProcAddress("glVertexAttribs4dvNV"))) return 0; + if( ! (pfglVertexAttribs4fvNV = ( void * )pfwglGetProcAddress("glVertexAttribs4fvNV"))) return 0; + if( ! (pfglVertexAttribs4svNV = ( void * )pfwglGetProcAddress("glVertexAttribs4svNV"))) return 0; + if( ! (pfglVertexAttribs4ubvNV = ( void * )pfwglGetProcAddress("glVertexAttribs4ubvNV"))) return 0; + + + Com_Printf( "...enabling GL_NV_vertex_program\n" ); + + return 1; +} + + + + + +PRIVATE W8 CheckNVTextureShader( const char *glext ) +{ + if( strstr( glext, "GL_NV_texture_shader" ) == NULL ) + { + return 0; + } + + Com_Printf( "...enabling GL_NV_texture_shader\n" ); + + return 1; +} + +//////////////////////////////////////////////////////////// + + +////////////////////////////// +// +// ATI Functions +// +////////////////////////////// + + +PRIVATE W8 ConfigATIVertexArrayObject( const char *glext ) +{ + if( strstr( glext, "GL_ATI_vertex_array_object" ) == NULL ) + { + return 0; + } + + if( ! (pfglBlendColorEXT = ( void * )pfwglGetProcAddress("glBlendColorEXT"))) return 0; + if( ! (pfglNewObjectBufferATI = ( void * )pfwglGetProcAddress("glNewObjectBufferATI"))) return 0; + if( ! (pfglIsObjectBufferATI = ( void * )pfwglGetProcAddress("glIsObjectBufferATI"))) return 0; + if( ! (pfglUpdateObjectBufferATI = ( void * )pfwglGetProcAddress("glUpdateObjectBufferATI"))) return 0; + if( ! (pfglGetObjectBufferfvATI = ( void * )pfwglGetProcAddress("glGetObjectBufferfvATI"))) return 0; + if( ! (pfglGetObjectBufferivATI = ( void * )pfwglGetProcAddress("glGetObjectBufferivATI"))) return 0; + + if( ! (pfglFreeObjectBufferATI = ( void * )pfwglGetProcAddress("glFreeObjectBufferATI"))) return 0; + + if( ! (pfglArrayObjectATI = ( void * )pfwglGetProcAddress("glArrayObjectATI"))) return 0; + if( ! (pfglGetArrayObjectfvATI = ( void * )pfwglGetProcAddress("glGetArrayObjectfvATI"))) return 0; + if( ! (pfglGetArrayObjectivATI = ( void * )pfwglGetProcAddress("glGetArrayObjectivATI"))) return 0; + if( ! (pfglVariantArrayObjectATI = ( void * )pfwglGetProcAddress("glVariantArrayObjectATI"))) return 0; + if( ! (pfglGetVariantArrayObjectfvATI = ( void * )pfwglGetProcAddress("glGetVariantArrayObjectfvATI"))) return 0; + if( ! (pfglGetVariantArrayObjectivATI = ( void * )pfwglGetProcAddress("glGetVariantArrayObjectivATI"))) return 0; + + Com_Printf( "...enabling GL_ATI_vertex_array_object\n" ); + + return 1; +} + + +PRIVATE W8 ConfigATIMapObjectBuffer( const char *glext ) +{ + if( strstr( glext, "GL_ATI_map_object_buffer" ) == NULL ) + { + return 0; + } + + if( ! (pfglMapObjectBufferATI = ( void * )pfwglGetProcAddress("glMapObjectBufferATI"))) return 0; + if( ! (pfglUnmapObjectBufferATI = ( void * )pfwglGetProcAddress("glUnmapObjectBufferATI"))) return 0; + + Com_Printf( "...enabling GL_ATI_map_object_buffer\n" ); + + return 1; +} + + + + +PRIVATE W8 ConfigATIFragmentShader( const char *glext ) +{ + if( strstr( glext, "GL_ATI_fragment_shader" ) == NULL ) + { + return 0; + } + + if( ! (pfglGenFragmentShadersATI = ( void * )pfwglGetProcAddress("glGenFragmentShadersATI"))) return 0; + if( ! (pfglBindFragmentShaderATI = ( void * )pfwglGetProcAddress("glBindFragmentShaderATI"))) return 0; + if( ! (pfglDeleteFragmentShaderATI = ( void * )pfwglGetProcAddress("glDeleteFragmentShaderATI"))) return 0; + if( ! (pfglBeginFragmentShaderATI = ( void * )pfwglGetProcAddress("glBeginFragmentShaderATI"))) return 0; + if( ! (pfglEndFragmentShaderATI = ( void * )pfwglGetProcAddress("glEndFragmentShaderATI"))) return 0; + if( ! (pfglPassTexCoordATI = ( void * )pfwglGetProcAddress("glPassTexCoordATI"))) return 0; + if( ! (pfglSampleMapATI = ( void * )pfwglGetProcAddress("glSampleMapATI"))) return 0; + if( ! (pfglColorFragmentOp1ATI = ( void * )pfwglGetProcAddress("glColorFragmentOp1ATI"))) return 0; + if( ! (pfglColorFragmentOp2ATI = ( void * )pfwglGetProcAddress("glColorFragmentOp2ATI"))) return 0; + if( ! (pfglColorFragmentOp3ATI = ( void * )pfwglGetProcAddress("glColorFragmentOp3ATI"))) return 0; + if( ! (pfglAlphaFragmentOp1ATI = ( void * )pfwglGetProcAddress("glAlphaFragmentOp1ATI"))) return 0; + if( ! (pfglAlphaFragmentOp2ATI = ( void * )pfwglGetProcAddress("glAlphaFragmentOp2ATI"))) return 0; + if( ! (pfglAlphaFragmentOp3ATI = ( void * )pfwglGetProcAddress("glAlphaFragmentOp3ATI"))) return 0; + if( ! (pfglSetFragmentShaderConstantATI = ( void * )pfwglGetProcAddress("glSetFragmentShaderConstantATI"))) return 0; + + Com_Printf( "...enabling GL_ATI_fragment_shader\n" ); + + return 1; +} + +PRIVATE W8 CheckATITextureEnvCombine3( const char *glext ) +{ + if( strstr( glext, "GL_ATI_texture_env_combine3" ) == NULL ) + { + return 0; + } + + Com_Printf( "...enabling GL_ATI_texture_env_combine3\n" ); + + return 1; +} + + +PRIVATE W8 CheckATIXTextureEnvRoute(const char *glext) +{ + if( strstr( glext, "GL_ATIX_texture_env_route" ) == NULL ) + { + return 0; + } + + Com_Printf( "...enabling GL_ATIX_texture_env_route\n" ); + + return 1; +} + + +PRIVATE W8 ConfigATIEnvMapBumpMap( const char *glext ) +{ + if( strstr( glext, "GL_ATI_envmap_bumpmap" ) == NULL ) + { + return 0; + } + + if( ! (pfglTexBumpParameterivATI = ( void * ) pfwglGetProcAddress("glTexBumpParameterivATI"))) return 0; + if( ! (pfglTexBumpParameterfvATI = ( void * ) pfwglGetProcAddress("glTexBumpParameterfvATI"))) return 0; + if( ! (pfglGetTexBumpParameterivATI = ( void * ) pfwglGetProcAddress("glGetTexBumpParameterivATI"))) return 0; + if( ! (pfglGetTexBumpParameterfvATI = ( void * ) pfwglGetProcAddress("glGetTexBumpParameterfvATI"))) return 0; + + Com_Printf( "...enabling GL_ATI_envmap_bumpmap\n" ); + + return 1; +} +/* +PRIVATE W8 ConfigARBFragmentProgram( const char *glext ) +{ + if( strstr( glext, "GL_ARB_fragment_program" ) == NULL ) + { + return 0; + } + + if( ! (pfglProgramStringARB = ( void * )pfwglGetProcAddress("glProgramStringARB"))) return 0; + if( ! (pfglBindProgramARB = ( void * )pfwglGetProcAddress("glBindProgramARB"))) return 0; + if( ! (pfglDeleteProgramsARB = ( void * )pfwglGetProcAddress("glDeleteProgramsARB"))) return 0; + if( ! (pfglGenProgramsARB = ( void * )pfwglGetProcAddress("glGenProgramsARB"))) return 0; + if( ! (pfglProgramEnvParameter4dARB = ( void * )pfwglGetProcAddress("glProgramEnvParameter4dARB"))) return 0; + if( ! (pfglProgramEnvParameter4dvARB = ( void * )pfwglGetProcAddress("glProgramEnvParameter4dvARB"))) return 0; + if( ! (pfglProgramEnvParameter4fARB = ( void * )pfwglGetProcAddress("glProgramEnvParameter4fARB"))) return 0; + if( ! (pfglProgramEnvParameter4fvARB = ( void * )pfwglGetProcAddress("glProgramEnvParameter4fvARB"))) return 0; + if( ! (pfglGetProgramLocalParameter4dARB = ( void * )pfwglGetProcAddress("glProgramLocalParameter4dARB"))) return 0; + if( ! (pfglGetProgramLocalParameter4dvARB = ( void * )pfwglGetProcAddress("glProgramLocalParameter4dvARB"))) return 0; + if( ! (pfglGetProgramLocalParameter4fARB = ( void * )pfwglGetProcAddress("glProgramLocalParameter4fARB"))) return 0; + if( ! (pfglGetProgramLocalParameter4fvARB = ( void * )pfwglGetProcAddress("glProgramLocalParameter4fvARB"))) return 0; + if( ! (pfglGetProgramEnvParameterdvARB = ( void * )pfwglGetProcAddress("glGetProgramEnvParameterdvARB"))) return 0; + if( ! (pfglGetProgramEnvParameterfvARB = ( void * )pfwglGetProcAddress("glGetProgramEnvParameterfvARB"))) return 0; + if( ! (pfglGetProgramLocalParameterdvARB = ( void * )pfwglGetProcAddress("glGetProgramLocalParameterdvARB"))) return 0; + if( ! (pfglGetProgramLocalParameterfvARB = ( void * )pfwglGetProcAddress("glGetProgramLocalParameterfvARB"))) return 0; + if( ! (pfglGetProgramivARB = ( void * )pfwglGetProcAddress("glGetProgramivARB"))) return 0; + if( ! (pfglGetProgramStringARB = ( void * )pfwglGetProcAddress("glGetProgramStringARB"))) return 0; + if( ! (pfglIsProgramARB = ( void * )pfwglGetProcAddress("glIsProgramARB"))) return 0; + + return 1; +} + + +PRIVATE W8 ConfigARBVertexBufferObject( const char *glext ) +{ + if( strstr( glext, "GL_ARB_vertex_buffer_object" ) == NULL ) + return 0; + + if( ! (pfglBindBufferARB = ( void * )pfwglGetProcAddress("glBindBufferARB"))) return 0; + if( ! (pfglDeleteBuffersARB = ( void * )pfwglGetProcAddress("glDeleteBuffersARB"))) return 0; + if( ! (pfglGenBuffersARB = ( void * )pfwglGetProcAddress("glGenBuffersARB"))) return 0; + if( ! (pfglIsBufferARB = ( void * )pfwglGetProcAddress("glIsBufferARB"))) return 0; + if( ! (pfglBufferDataARB = ( void * )pfwglGetProcAddress("glBufferDataARB"))) return 0; + if( ! (pfglBufferSubDataARB = ( void * )pfwglGetProcAddress("glBufferSubDataARB"))) return 0; + if( ! (pfglGetBufferSubDataARB = ( void * )pfwglGetProcAddress("glGetBufferSubDataARB"))) return 0; + if( ! (pfglMapBufferARB = ( void * )pfwglGetProcAddress("glMapBufferARB"))) return 0; + if( ! (pfglUnmapBufferARB = ( void * )pfwglGetProcAddress("glUnmapBufferARB"))) return 0; + if( ! (pfglGetBufferParameterivARB = ( void * )pfwglGetProcAddress("glGetBufferParameterivARB"))) return 0; + if( ! (pfglGetBufferPointervARB = ( void * )pfwglGetProcAddress("glGetBufferPointervARB"))) return 0; + + return 1; +}*/ + + + + +#ifdef _WIN32 + +PRIVATE W8 ConfigWGLARBPBuffer( const char *glext ) +{ + if( strstr( glext, "WGL_ARB_pbuffer" ) == NULL ) + { + Com_Printf( "...WGL_ARB_pbuffer not found\n" ); + return 0; + } + + if( ! (pfwglCreatePbufferARB = ( void * )pfwglGetProcAddress( "wglCreatePbufferARB" ))) return 0; + if( ! (pfwglGetPbufferDCARB = ( void * )pfwglGetProcAddress( "wglGetPbufferDCARB" ))) return 0; + if( ! (pfwglReleasePbufferDCARB = ( void * )pfwglGetProcAddress( "wglReleasePbufferDCARB" ))) return 0; + if( ! (pfwglDestroyPbufferARB = ( void * )pfwglGetProcAddress( "wglDestroyPbufferARB" ))) return 0; + if( ! (pfwglQueryPbufferARB = ( void * )pfwglGetProcAddress( "wglQueryPbufferARB" ))) return 0; + + Com_Printf( "...enabling WGL_ARB_pbuffer\n" ); + + return 1; +} + + +PRIVATE W8 ConfigWGLARBPixelFormat ( const char *glext ) +{ + if( strstr( glext, "WGL_ARB_pixel_format" ) == NULL ) + { + Com_Printf( "...WGL_ARB_pixel_format not found\n" ); + return 0; + } + + if( ! (pfwglGetPixelFormatAttribivARB = ( void * )pfwglGetProcAddress( "wglGetPixelFormatAttribivARB" ))) return 0; + if( ! (pfwglGetPixelFormatAttribfvARB = ( void * )pfwglGetProcAddress( "wglGetPixelFormatAttribfvARB" ))) return 0; + if( ! (pfwglChoosePixelFormatARB = ( void * )pfwglGetProcAddress( "wglChoosePixelFormatARB" ))) return 0; + + Com_Printf( "...enabling WGL_ARB_pixel_format\n" ); + + return 1; +} + +PRIVATE W8 ConfigWGLEXTSwapControl( const char *glext ) +{ + if( strstr( glext, "WGL_EXT_swap_control" ) == NULL ) + { + Com_Printf( "...WGL_EXT_swap_control not found\n" ); + return 0; + } + + if( ! (pfwglSwapIntervalEXT = (WGLSWAPINTERVALEXT)pfwglGetProcAddress( "wglSwapIntervalEXT" ) ) ) return 0; + if( ! (pfwglGetSwapIntervalEXT = (WGLGETSWAPINTERVALEXT)pfwglGetProcAddress( "wglGetSwapIntervalEXT" ) ) ) return 0; + + Com_Printf( "...enabling WGL_EXT_swap_control\n" ); + + return 1; +} + +#endif /* _WIN32 */ + + + + + + + + + + +/* +----------------------------------------------------------------------------- + Function: GL_ConfigExtensions - + + Parameters: glext -[in] Pointer to string containing the gl extension names. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void GL_ConfigExtensions( const char *glext ) +{ + GLint ntext; + + + memset( &gl_ext, 0, sizeof( GL_Extensions ) ); + + gl_ext.ARBMultiTexture = ConfigARBMultiTexture( glext ); + if( gl_ext.ARBMultiTexture ) + { + pfglGetIntegerv( GL_MAX_TEXTURE_UNITS_ARB, &ntext ); + + // There could be more than MY_MAX_ARB_TEXTURESTAGES, but we only + // require MY_MAX_ARB_TEXTURESTAGES texture stages so take min. + gl_ext.nTextureStages = ( ntext < ( (GLint)MY_MAX_ARB_TEXTURESTAGES) ? ntext : MY_MAX_ARB_TEXTURESTAGES ); + } + + + gl_ext.EXTTextureFilterAnisotropic = CheckEXTTextureFilterAnisotropic( glext ); + if( gl_ext.EXTTextureFilterAnisotropic ) + { + pfglGetFloatv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &gl_ext.nMaxAnisotropy ); + + if( gl_ext.nMaxAnisotropy < 2.0f ) + { + gl_ext.nMaxAnisotropy = 0; + } + + } + + + gl_ext.EXTTextureEnvCombine = CheckEXTTextureEnvCombine( glext ); + + + gl_ext.ARBTextureCompression = ConfigARBTextureCompression( glext ); + + + gl_ext.EXTTextureCompressionS3TC = (gl_ext.ARBTextureCompression && CheckEXTTextureCompressionS3TC( glext ) ); + + + gl_ext.ARBTextureCubeMap = CheckARBTextureCubeMap( glext ); + + + gl_ext.EXTSecondaryColor = ConfigEXTSecondaryColor( glext ); + + + gl_ext.EXTBlendColor = ConfigEXTBlendColor( glext ); + + + // nVidia extensions + // ----------------- + + + gl_ext.NVVertexArrayRange = ConfigNVVertexArrayRange( glext ); + if( gl_ext.NVVertexArrayRange ) + { + GLint nverts; + pfglGetIntegerv( (GLenum)GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV, &nverts ); + gl_ext.NVVertexArrayRangeMaxVertex = nverts; + } + + + gl_ext.EXTVertexWeighting = ConfigEXTVertexWeighting( glext ); + + + gl_ext.NVVertexArrayRange2 = CheckNVVertexArrayRange2( glext ); + if( gl_ext.NVVertexArrayRange2 ) + { + // VBHard swap without flush of the VAR. + gl_ext.NVStateVARWithoutFlush = GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV; + } + else + { + // VBHard with unusefull flush of the VAR. + gl_ext.NVStateVARWithoutFlush = GL_VERTEX_ARRAY_RANGE_NV; + } + + + gl_ext.NVTextureEnvCombine4 = CheckNVTextureEnvCombine4( glext ); + + + if( ! gl_ext.DisableHardwareVertexProgram ) + { + gl_ext.NVVertexProgram = ConfigNVVertexProgram( glext ); + gl_ext.EXTVertexShader = ConfigEXTVertexShader( glext ); + gl_ext.ARBVertexProgram= ConfigARBVertexProgram( glext ); + } + else + { + gl_ext.NVVertexProgram = false; + gl_ext.EXTVertexShader = false; + gl_ext.ARBVertexProgram = false; + } + + + gl_ext.NVTextureShader = CheckNVTextureShader( glext ); + if( gl_ext.NVVertexProgram && ! gl_ext.NVTextureShader ) + { + // if GL_NV_texture_shader is not here, + // then we are not on a GeForce3. + gl_ext.NVVertexProgramEmulated = true; + } + + + // ATI extensions + // -------------- + + gl_ext.ATIVertexArrayObject = ConfigATIVertexArrayObject( glext ); + gl_ext.ATIMapObjectBuffer = ConfigATIMapObjectBuffer( glext ); + + + gl_ext.ATITextureEnvCombine3 = CheckATITextureEnvCombine3( glext ); + + gl_ext.ATIXTextureEnvRoute = CheckATIXTextureEnvRoute( glext ); + + gl_ext.ATIEnvMapBumpMap = ConfigATIEnvMapBumpMap( glext ); + +// gl_ext.ATIFragmentShader = setupATIFragmentShader( glext ); + + + + + + +#ifdef _WIN32 + + + ConfigWGLARBPBuffer( glext ); + + + ConfigWGLARBPixelFormat( glext ); + + + ConfigWGLEXTSwapControl( glext ); + + +#endif + + + + +} diff --git a/wolf3d/code/env/opengl_local.h b/wolf3d/code/env/opengl_local.h new file mode 100644 index 0000000..5d2e650 --- /dev/null +++ b/wolf3d/code/env/opengl_local.h @@ -0,0 +1,254 @@ +/* + + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __OPENGL_LOCAL_H__ +#define __OPENGL_LOCAL_H__ + +extern int glMaxTexSize; // maximum texture size + + +//=================================================================== + + +extern void GL_SetDefaultState( void ); + +extern float gldepthmin, gldepthmax; + + + +//==================================================== + + + +extern int gl_filter_min, gl_filter_max; + +// +// view origin +// +extern vec3_t vup; +extern vec3_t vpn; +extern vec3_t vright; +extern vec3_t r_origin; + +// +// screen size info +// +//extern refdef_t r_newrefdef; +extern int r_viewcluster, r_viewcluster2, r_oldviewcluster, r_oldviewcluster2; + +extern cvar_t *r_norefresh; +extern cvar_t *r_lefthand; +extern cvar_t *r_speeds; +extern cvar_t *r_novis; +extern cvar_t *r_nocull; + + +extern cvar_t *gl_vertex_arrays; + +extern cvar_t *gl_ext_swapinterval; +extern cvar_t *gl_ext_palettedtexture; +extern cvar_t *gl_ext_multitexture; +extern cvar_t *gl_ext_pointparameters; +extern cvar_t *gl_ext_compiled_vertex_array; + + +extern cvar_t *gl_nosubimage; +extern cvar_t *gl_bitdepth; +extern cvar_t *gl_mode; +extern cvar_t *gl_lightmap; +extern cvar_t *gl_shadows; +extern cvar_t *gl_dynamic; +extern cvar_t *gl_nobind; +extern cvar_t *gl_round_down; +extern cvar_t *gl_picmip; +extern cvar_t *gl_skymip; +extern cvar_t *gl_showtris; +extern cvar_t *gl_finish; +extern cvar_t *gl_ztrick; +extern cvar_t *gl_clear; +extern cvar_t *gl_cull; +extern cvar_t *gl_poly; +extern cvar_t *gl_texsort; +extern cvar_t *gl_polyblend; +extern cvar_t *gl_flashblend; +extern cvar_t *gl_lightmaptype; +extern cvar_t *gl_modulate; +extern cvar_t *gl_playermip; +extern cvar_t *gl_drawbuffer; +extern cvar_t *gl_driver; +extern cvar_t *gl_swapinterval; +extern cvar_t *gl_texturemode; +extern cvar_t *gl_saturatelighting; + +extern cvar_t *r_fullscreen; +extern cvar_t *vid_gamma; + +extern cvar_t *intensity; + +extern int gl_lightmap_format; +extern int gl_solid_format; +extern int gl_alpha_format; +extern int gl_tex_alpha_format; + + + + +extern void R_Bind( int texnum ); +extern void R_MBind( GLenum target, int texnum ); +extern void R_TexEnv( GLenum value ); +extern void R_EnableMultitexture( _boolean enable ); +extern void R_SelectTexture( GLenum ); + + +//==================================================================== + + +extern int registration_sequence; + + + +typedef struct +{ + const char *renderer_string; + const char *vendor_string; + const char *version_string; + const char *extensions_string; + _boolean Version_1_2; + +} glconfig_t; + +typedef struct +{ + float inverse_intensity; + _boolean fullscreen; + + int prev_mode; + + int lightmap_textures; + + int currenttextures[2]; + int currenttmu; + + +} glstate_t; + +extern glconfig_t gl_config; +extern glstate_t gl_state; + + +////////////////////////////////////////////////////// + + +typedef struct +{ + _boolean ARBMultiTexture; + int nTextureStages; // Number of texture stages supported + _boolean EXTTextureEnvCombine; + + _boolean EXTTextureFilterAnisotropic; + float nMaxAnisotropy; + // NB: Fence extension is not here, because NVVertexArrayRange is false if GL_NV_fence is not here. + _boolean NVVertexArrayRange; + int NVVertexArrayRangeMaxVertex; + _boolean EXTTextureCompressionS3TC; + _boolean EXTVertexWeighting; + _boolean EXTSeparateSpecularColor; + _boolean NVTextureEnvCombine4; + _boolean ARBTextureCubeMap; + _boolean NVVertexProgram; + _boolean EXTVertexShader; + _boolean NVTextureShader; + // true if NVVertexProgram and if we know that VP is emulated + _boolean NVVertexProgramEmulated; + _boolean EXTSecondaryColor; + _boolean EXTBlendColor; + // NVVertexArrayRange2. + _boolean NVVertexArrayRange2; + // equal to GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV if possible, or GL_VERTEX_ARRAY_RANGE_NV + int NVStateVARWithoutFlush; + + /* WGL ARB Extensions */ + _boolean WGLARBPBuffer; + _boolean WGLARBPixelFormat; + _boolean WGLEXTSwapControl; + + /* ATI Extensions */ + _boolean ATIVertexArrayObject; + _boolean ATIMapObjectBuffer; + _boolean ATITextureEnvCombine3; + _boolean ATIEnvMapBumpMap; + _boolean ATIFragmentShader; + _boolean ATIXTextureEnvRoute; + + /* ARB Extensions */ + _boolean ARBTextureCompression; + _boolean ARBFragmentProgram; + _boolean ARBVertexBufferObject; + _boolean ARBVertexProgram; + + /* Disable Hardware feature */ + _boolean DisableHardwareVertexProgram; + _boolean DisableHardwareTextureShader; + +} GL_Extensions; + +extern GL_Extensions gl_ext; + + +extern void GL_ConfigExtensions( const char *glext ); + +extern void MYgluPerspective( GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar ); + + +extern void PrintGLError( W32 err, const char *from ); + + + + +/* +==================================================================== + +IMPLEMENTATION SPECIFIC FUNCTIONS + +==================================================================== +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +void GLimp_BeginFrame(); +_boolean GLimp_Init( void *hinstance, void *hWnd ); +void GLimp_Shutdown( void ); +int GLimp_SetMode( int *pwidth, int *pheight, int mode, _boolean fullscreen ); +void GLimp_AppActivate( _boolean active ); + +#ifdef __cplusplus +} +#endif + + + + + + + + +#endif /* __OPENGL_LOCAL_H__ */ diff --git a/wolf3d/code/env/opengl_main.c b/wolf3d/code/env/opengl_main.c new file mode 100644 index 0000000..729d0ab --- /dev/null +++ b/wolf3d/code/env/opengl_main.c @@ -0,0 +1,400 @@ +/* + + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + + +viddef_t viddef; + +float gldepthmin, gldepthmax; + +glconfig_t gl_config; +glstate_t gl_state; + + + + + +// +// view origin +// +vec3_t vup; +vec3_t vpn; +vec3_t vright; +vec3_t r_origin; + +cvar_t *r_norefresh; +cvar_t *r_speeds; +cvar_t *r_novis; +cvar_t *r_nocull; +cvar_t *r_lefthand; + + +cvar_t *gl_nosubimage; + + +cvar_t *gl_vertex_arrays; + + + +cvar_t *gl_ext_swapinterval; +cvar_t *gl_ext_palettedtexture; +cvar_t *gl_ext_multitexture; +cvar_t *gl_ext_pointparameters; +cvar_t *gl_ext_compiled_vertex_array; + +//cvar_t *gl_ext_TextureCompressionS3TC; + +cvar_t *gl_bitdepth; +cvar_t *gl_drawbuffer; +cvar_t *gl_driver; +cvar_t *gl_lightmap; +cvar_t *gl_shadows; +cvar_t *gl_mode; +cvar_t *gl_dynamic; +cvar_t *gl_modulate; +cvar_t *gl_nobind; +cvar_t *gl_round_down; +cvar_t *gl_picmip; +cvar_t *gl_skymip; +cvar_t *gl_showtris; +cvar_t *gl_ztrick; +cvar_t *gl_finish; +cvar_t *gl_clear; +cvar_t *gl_cull; +cvar_t *gl_polyblend; +cvar_t *gl_flashblend; +cvar_t *gl_playermip; +cvar_t *gl_saturatelighting; +cvar_t *gl_swapinterval; +cvar_t *gl_texturemode; + +cvar_t *r_fullscreen; +cvar_t *vid_gamma; +cvar_t *r_ref; + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void MYgluPerspective( GLdouble fovy, GLdouble aspect, + GLdouble zNear, GLdouble zFar ) +{ + GLdouble xmin, xmax, ymin, ymax; + + ymax = zNear * tan( fovy * M_PI / 360.0 ); + ymin = -ymax; + + xmin = ymin * aspect; + xmax = ymax * aspect; + + xmin += -( 2 * 0 ) / zNear; + xmax += -( 2 * 0 ) / zNear; + + pfglFrustum( xmin, xmax, ymin, ymax, zNear, zFar ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void R_ScreenShot_f( void ) +{ + W8 *buffer; + char picname[ 80 ]; + char checkname[ MAX_OSPATH ]; + int i; + FILE *f; + + // create the scrnshots directory if it doesn't exist + my_snprintf( checkname, sizeof( checkname ), "%s/scrnshot", FS_Gamedir() ); + FS_CreateDirectory( checkname ); + +// +// find a file name to save it to +// + my_strlcpy( picname, "scrn00.tga", sizeof( picname ) ); + + for( i = 0 ; i <= 99 ; ++i ) + { + picname[ 4 ] = i / 10 + '0'; + picname[ 5 ] = i % 10 + '0'; + my_snprintf( checkname, sizeof( checkname ), "%s/scrnshot/%s", FS_Gamedir(), picname ); + f = fopen( checkname, "rb" ); + if( ! f ) + { + break; // file doesn't exist + } + + fclose( f ); + } + + if( i == 100 ) + { + Com_Printf( "R_ScreenShot_f: Couldn't create a file\n" ); + return; + } + + + buffer = MM_MALLOC( viddef.width * viddef.height * 3 ); + + + pfglReadPixels( 0, 0, viddef.width, viddef.height, GL_RGB, GL_UNSIGNED_BYTE, buffer ); + + + WriteTGA( checkname, 24, viddef.width, viddef.height, buffer, 1, 1 ); + + + MM_FREE( buffer ); + Com_Printf( "Wrote %s\n", picname ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void R_Strings_f( void ) +{ + Com_Printf( "GL_VENDOR: %s\n", gl_config.vendor_string ); + Com_Printf( "GL_RENDERER: %s\n", gl_config.renderer_string ); + Com_Printf( "GL_VERSION: %s\n", gl_config.version_string ); + Com_Printf( "GL_EXTENSIONS: %s\n", gl_config.extensions_string ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void R_Register( void ) +{ + gl_round_down = Cvar_Get ("gl_round_down", "1", CVAR_INIT); + + r_lefthand = Cvar_Get( "hand", "0", CVAR_USERINFO | CVAR_ARCHIVE ); + r_norefresh = Cvar_Get ("r_norefresh", "0", CVAR_INIT); + r_novis = Cvar_Get ("r_novis", "0", CVAR_INIT); + r_nocull = Cvar_Get ("r_nocull", "0", CVAR_INIT); + r_speeds = Cvar_Get ("r_speeds", "0", CVAR_INIT); + + + gl_nosubimage = Cvar_Get( "gl_nosubimage", "0", CVAR_INIT ); + + + gl_modulate = Cvar_Get ("gl_modulate", "1", CVAR_ARCHIVE ); + gl_bitdepth = Cvar_Get( "gl_bitdepth", "0", CVAR_INIT ); + gl_mode = Cvar_Get( "gl_mode", "0", CVAR_ARCHIVE ); + gl_lightmap = Cvar_Get ("gl_lightmap", "0", CVAR_INIT); + gl_dynamic = Cvar_Get ("gl_dynamic", "1", CVAR_INIT); + gl_nobind = Cvar_Get ("gl_nobind", "0", CVAR_INIT); + gl_picmip = Cvar_Get ("gl_picmip", "0", CVAR_INIT); + gl_skymip = Cvar_Get ("gl_skymip", "0", CVAR_INIT); + gl_showtris = Cvar_Get( "gl_showtris", "0", CVAR_INIT ); + gl_ztrick = Cvar_Get( "gl_ztrick", "0", CVAR_INIT ); + gl_finish = Cvar_Get( "gl_finish", "0", CVAR_ARCHIVE ); + gl_clear = Cvar_Get( "gl_clear", "0", CVAR_INIT ); + gl_cull = Cvar_Get( "gl_cull", "1", CVAR_INIT ); + gl_polyblend = Cvar_Get( "gl_polyblend", "1", CVAR_INIT ); + gl_flashblend = Cvar_Get( "gl_flashblend", "0", CVAR_INIT ); + gl_playermip = Cvar_Get( "gl_playermip", "0", CVAR_INIT ); + gl_driver = Cvar_Get( "gl_driver", OPENGL_DLL_NAME, CVAR_ARCHIVE ); + + gl_vertex_arrays = Cvar_Get( "gl_vertex_arrays", "0", CVAR_ARCHIVE ); + + gl_ext_swapinterval = Cvar_Get( "gl_ext_swapinterval", "1", CVAR_ARCHIVE ); + gl_ext_palettedtexture = Cvar_Get( "gl_ext_palettedtexture", "1", CVAR_ARCHIVE ); + gl_ext_multitexture = Cvar_Get( "gl_ext_multitexture", "1", CVAR_ARCHIVE ); + gl_ext_pointparameters = Cvar_Get( "gl_ext_pointparameters", "1", CVAR_ARCHIVE ); + gl_ext_compiled_vertex_array = Cvar_Get( "gl_ext_compiled_vertex_array", "1", CVAR_ARCHIVE ); + + gl_drawbuffer = Cvar_Get( "gl_drawbuffer", "GL_BACK", CVAR_INIT ); + gl_swapinterval = Cvar_Get( "gl_swapinterval", "1", CVAR_ARCHIVE ); + +// gl_saturatelighting = Cvar_Get( "gl_saturatelighting", "0", CVAR_INIT ); + + r_fullscreen = Cvar_Get( "r_fullscreen", "0", CVAR_ARCHIVE ); + vid_gamma = Cvar_Get( "vid_gamma", "1.0", CVAR_ARCHIVE ); + r_ref = Cvar_Get( "r_ref", "gl", CVAR_ARCHIVE ); + + Cmd_AddCommand( "screenshot", R_ScreenShot_f ); + Cmd_AddCommand( "r_strings", R_Strings_f ); +} + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Init() +{ + char renderer_buffer[ 1000 ]; + char vendor_buffer[ 1000 ]; + int err; + int a, b; + + + Com_Printf( "\n------ Display Initialization ------\n" ); + + Com_Printf( "Initializing OpenGL Subsystem\n" ); + + R_Register(); + + // set our "safe" modes + gl_state.prev_mode = 0; + + viddef.width = 480; + viddef.height = 320; + + // get various GL strings + gl_config.vendor_string = (char *)pfglGetString( GL_VENDOR ); + Com_Printf( "GL_VENDOR: %s\n", gl_config.vendor_string ); + + gl_config.renderer_string = (char *)pfglGetString( GL_RENDERER ); + Com_Printf( "GL_RENDERER: %s\n", gl_config.renderer_string ); + + gl_config.version_string = (char *)pfglGetString( GL_VERSION ); + Com_Printf( "GL_VERSION: %s\n", gl_config.version_string ); + + gl_config.extensions_string = (char *)pfglGetString( GL_EXTENSIONS ); + Com_Printf( "GL_EXTENSIONS: %s\n", gl_config.extensions_string ); + + my_strlcpy( renderer_buffer, gl_config.renderer_string, sizeof( renderer_buffer ) ); + (void)my_strlwr( renderer_buffer ); + + my_strlcpy( vendor_buffer, gl_config.vendor_string, sizeof( vendor_buffer ) ); + (void)my_strlwr( vendor_buffer ); + + + sscanf( gl_config.version_string, "%d.%d", &a, &b ); + if( a >= 1 && b >= 2 ) + { + gl_config.Version_1_2 = true; + } + + pfglGetIntegerv( GL_MAX_TEXTURE_SIZE, &glMaxTexSize ); + Com_Printf( "GL_MAX_TEXTURE_SIZE: %d\n", glMaxTexSize); + + GL_SetDefaultState(); + + TM_Init(); + Font_Init(); + + err = pfglGetError(); + if( err != GL_NO_ERROR ) + { + Com_Printf( "glGetError() = 0x%x\n", err ); + } +} + + + +/* +----------------------------------------------------------------------------- + Function: PrintGLError -Print OpenGL error message. + + Parameters: err -[in] Error code. + from -[in] function name that produced the error. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void PrintGLError( W32 err, const char *from ) +{ + if( err == GL_NO_ERROR ) + { + return; + } + + if( from != "" ) + { + Com_Printf( "\n\n\nGL Error: %s\n", from ); + } + + switch( err ) + { + case GL_NO_ERROR: + Com_Printf( "GL_NO_ERROR:\nNo error has been recorded. The value of this symbolic constant is guaranteed to be zero.\n" ); + break; + + case GL_INVALID_ENUM: + Com_Printf( "GL_INVALID_ENUM:\nAn unacceptable value is specified for an enumerated argument. The offending function is ignored, having no side effect other than to set the error flag.\n" ); + break; + + case GL_INVALID_VALUE: + Com_Printf( "GL_INVALID_VALUE:\nA numeric argument is out of range. The offending function is ignored, having no side effect other than to set the error flag.\n" ); + break; + + case GL_INVALID_OPERATION: + Com_Printf( "GL_INVALID_OPERATION:\nThe specified operation is not allowed in the current state. The offending function is ignored, having no side effect other than to set the error flag.\n" ); + break; + + case GL_STACK_OVERFLOW: + Com_Printf( "GL_STACK_OVERFLOW:\nThis function would cause a stack overflow. The offending function is ignored, having no side effect other than to set the error flag.\n" ); + break; + + case GL_STACK_UNDERFLOW: + Com_Printf( "GL_STACK_UNDERFLOW:\nThis function would cause a stack underflow. The offending function is ignored, having no side effect other than to set the error flag.\n" ); + break; + + case GL_OUT_OF_MEMORY: + Com_Printf( "GL_OUT_OF_MEMORY:\nThere is not enough memory left to execute the function. The state of OpenGL is undefined, except for the state of the error flags, after this error is recorded.\n" ); + break; + + default: + Com_Printf( "Unknown GL error flag 0x%x\n", err ); + } +} diff --git a/wolf3d/code/env/opengl_texture.c b/wolf3d/code/env/opengl_texture.c new file mode 100644 index 0000000..eabeb77 --- /dev/null +++ b/wolf3d/code/env/opengl_texture.c @@ -0,0 +1,253 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * opengl_texture.c: OpenGL Texture Manager. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +int currentTextures[ 4 ]; +int currenttmu; + +int glMaxTexSize; + +// *************************************************************************** + +// *************************************************************************** + + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_DeleteTexture( unsigned int texnum ) +{ + pfglDeleteTextures( 1, &texnum ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_TexEnv( GLenum mode ) +{ + static int lastmodes[ 4 ] = { -1, -1, -1, -1 }; + + if ( mode != lastmodes[ currenttmu ] ) + { + pfglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode ); + lastmodes[ currenttmu ] = mode; + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_SelectTexture( GLenum texture ) +{ + int tmu; + +#ifndef IPHONE + if( ! pfglActiveTextureARB ) + { + return; + } +#endif + + if( texture == GL_TEXTURE0 ) + { + tmu = 0; + } + else if( texture == GL_TEXTURE1 ) + { + tmu = 1; + } + else if( texture == GL_TEXTURE2 ) + { + tmu = 2; + } + else + { + tmu = 3; + } + + if( tmu == currenttmu ) + { + return; + } + + + currenttmu = tmu; + + pfglActiveTextureARB( texture ); + pfglClientActiveTextureARB( texture ); + +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Bind( int texnum ) +{ + // Is this texture already bound + if( currentTextures[ currenttmu ] == texnum ) + { + return; + } + + currentTextures[ currenttmu ] = texnum; + + pfglBindTexture( GL_TEXTURE_2D, texnum ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_MBind( GLenum target, int texnum ) +{ + R_SelectTexture( target ); + + if( target == GL_TEXTURE0 ) + { + if ( currentTextures[ 0 ] == texnum ) + { + return; + } + } + else if( target == GL_TEXTURE1 ) + { + if( currentTextures[ 1 ] == texnum ) + { + return; + } + } + else if( target == GL_TEXTURE2 ) + { + if( currentTextures[ 2 ] == texnum ) + { + return; + } + } + else + { + if( currentTextures[ 3 ] == texnum ) + { + return; + } + } + + R_Bind( texnum ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_EnableMultitexture( _boolean enable ) +{ +#ifndef IPHONE + if( ! pfglActiveTextureARB ) + { + return; + } +#endif + + if( enable ) + { + R_SelectTexture( GL_TEXTURE1 ); + pfglEnable( GL_TEXTURE_2D ); + R_TexEnv( GL_REPLACE ); + } + else + { + R_SelectTexture( GL_TEXTURE1 ); + pfglDisable( GL_TEXTURE_2D ); + R_TexEnv( GL_REPLACE ); + } + + R_SelectTexture( GL_TEXTURE0 ); + R_TexEnv( GL_REPLACE ); + +} + diff --git a/wolf3d/code/env/random_number.c b/wolf3d/code/env/random_number.c new file mode 100644 index 0000000..7256694 --- /dev/null +++ b/wolf3d/code/env/random_number.c @@ -0,0 +1,107 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * random_number.c: Wolfenstein3-D random number generator. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + + +#include "../wolfiphone.h" + +/* This is just John Carmack's table driven pseudo-random number generator */ + +W32 rndtable[] = { + 0, 8, 109, 220, 222, 241, 149, 107, 75, 248, 254, 140, 16, 66, + 74, 21, 211, 47, 80, 242, 154, 27, 205, 128, 161, 89, 77, 36, + 95, 110, 85, 48, 212, 140, 211, 249, 22, 79, 200, 50, 28, 188, + 52, 140, 202, 120, 68, 145, 62, 70, 184, 190, 91, 197, 152, 224, + 149, 104, 25, 178, 252, 182, 202, 182, 141, 197, 4, 81, 181, 242, + 145, 42, 39, 227, 156, 198, 225, 193, 219, 93, 122, 175, 249, 0, + 175, 143, 70, 239, 46, 246, 163, 53, 163, 109, 168, 135, 2, 235, + 25, 92, 20, 145, 138, 77, 69, 166, 78, 176, 173, 212, 166, 113, + 94, 161, 41, 50, 239, 49, 111, 164, 70, 60, 2, 37, 171, 75, + 136, 156, 11, 56, 42, 146, 138, 229, 73, 146, 77, 61, 98, 196, + 135, 106, 63, 197, 195, 86, 96, 203, 113, 101, 170, 247, 181, 113, + 80, 250, 108, 7, 255, 237, 129, 226, 79, 107, 112, 166, 103, 241, + 24, 223, 239, 120, 198, 58, 60, 82, 128, 3, 184, 66, 143, 224, + 145, 224, 81, 206, 163, 45, 63, 90, 168, 114, 59, 33, 159, 95, + 28, 139, 123, 98, 125, 196, 15, 70, 194, 253, 54, 14, 109, 226, + 71, 17, 161, 93, 186, 87, 244, 138, 20, 52, 123, 251, 26, 36, + 17, 46, 52, 231, 232, 76, 31, 221, 84, 37, 216, 165, 212, 106, + 197, 242, 98, 43, 39, 175, 254, 145, 190, 84, 118, 222, 187, 136, + 120, 163, 236, 249 +}; + +W32 rndindex = 0; + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void US_InitRndT( int randomize ) +{ + if( randomize ) + { + rndindex = time( NULL ) & 0xFF; + } + else + { + rndindex = 0; + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC int US_RndT( void ) +{ + rndindex++; + rndindex &= 0xFF; + + return rndtable[ rndindex ]; +} + + diff --git a/wolf3d/code/env/random_number.h b/wolf3d/code/env/random_number.h new file mode 100644 index 0000000..6fae19d --- /dev/null +++ b/wolf3d/code/env/random_number.h @@ -0,0 +1,48 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * mymath.h: Math routines. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +#ifndef __RANDOM_NUMBER_H__ +#define __RANDOM_NUMBER_H__ + + +#define random() ( (rand() & 0x7fff) / ((float)0x7fff) ) +#define crandom() ( 2.0 * (random() - 0.5) ) + + +extern void US_InitRndT( int randomize ); +extern int US_RndT( void ); + + + + + +#endif /* __RANDOM_NUMBER_H__ */ diff --git a/wolf3d/code/env/renderer.h b/wolf3d/code/env/renderer.h new file mode 100644 index 0000000..281f686 --- /dev/null +++ b/wolf3d/code/env/renderer.h @@ -0,0 +1,100 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * renderer.h: Interface to graphics API. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + + Notes: + + This module communicates with the graphics API. The API can be any graphics + API, e.g OpenGL, DirectX, SDL, GDI, etc; as long as the functions listed in + this header are implemented. + +*/ + +#ifndef __RENDERER_H__ +#define __RENDERER_H__ + + +#ifdef _WIN32 + + #define OPENGL_DLL_NAME "opengl32.dll" + +#elif __unix__ + + #define OPENGL_DLL_NAME "libGL.so.1" + +#elif IPHONE + + #define OPENGL_DLL_NAME "not applicable" + +#else + + #error "Define OPENGL_DLL_NAME" + +#endif + + + + + +typedef enum +{ + rserr_ok, + + rserr_invalid_fullscreen, + rserr_invalid_mode, + + rserr_unknown + +} rserr_t; + + +extern int registration_sequence; + +extern void R_Init( void ); + +extern void R_BeginRegistration( const char *model ); +extern void R_BeginFrame( void ); + +extern void R_SwapBuffers( int ); +extern void R_SetPalette( const unsigned char *palette); + + +extern void R_DeleteTexture( unsigned int texnum ); +extern void R_Draw_StretchPic( int x, int y, int w, int h, const char *name ); +extern void R_Draw_Character( int x, int y, int num, font_t *myfont ); +extern void R_Draw_Fill( int x, int y, int w, int h, colour3_t c ); +extern void R_Draw_Line( int nXStart, int nYStart, int nXEnd, int nYEnd, int width, colour3_t c ); + + +#endif /* __RENDERER_H__ */ diff --git a/wolf3d/code/env/share.c b/wolf3d/code/env/share.c new file mode 100644 index 0000000..26b2da2 --- /dev/null +++ b/wolf3d/code/env/share.c @@ -0,0 +1,189 @@ +/* + + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + + +char com_token[128]; + + + + +/* +============================================================================ + + BYTE ORDER FUNCTIONS + +============================================================================ +*/ + + + +/* +----------------------------------------------------------------------------- + Function: va() -Does a varargs printf into a temp buffer, so I don't need to + have varargs versions of all text functions. + + Parameters: format -[in] Format-control string. + ... -[in] Optional arguments. + + Returns: Formatted string. + + Notes: + If format string is longer than 1024 it will be truncated. +----------------------------------------------------------------------------- +*/ +PUBLIC char *va( char *format, ... ) +{ + va_list argptr; + static char string[ 1024 ]; + + va_start( argptr, format ); + (void)vsnprintf( string, sizeof( string ), format, argptr ); + va_end( argptr ); + + string[ sizeof( string ) - 1 ] = '\0'; + + return string; +} + + +/* +----------------------------------------------------------------------------- + Function: COM_Parse() -Parse a token out of a string. + + Parameters: data_p -[in] String to parse. + + Returns: On success it will return the token string, otherwise it will + return "". + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC char *COM_Parse( char **data_p ) +{ + int c; + int len; + char *data; + + data = *data_p; + len = 0; + com_token[ 0 ] = 0; + + if( ! data ) + { + *data_p = NULL; + return ""; + } + +// skip whitespace +skipwhite: + while( (c = *data) <= ' ') + { + if( c == 0 ) + { + *data_p = NULL; + return ""; + } + data++; + } + +// skip // comments + if( c == '/' && data[ 1 ] == '/' ) + { + while( *data && *data != '\n' ) + { + data++; + } + goto skipwhite; + } + +// handle quoted strings specially + if( c == '\"' ) + { + data++; + while( 1 ) + { + c = *data++; + if( c == '\"' || ! c ) + { + com_token[ len ] = 0; + *data_p = data; + return com_token; + } + if( len < MAX_TOKEN_CHARS ) + { + com_token[ len ] = c; + len++; + } + } + } + +// parse a regular word + do + { + if( len < MAX_TOKEN_CHARS ) + { + com_token[ len ] = c; + len++; + } + data++; + c = *data; + + } while( c > 32 ); + + if( len == MAX_TOKEN_CHARS ) + { +// Com_Printf ("Token exceeded %i chars, discarded.\n", MAX_TOKEN_CHARS); + len = 0; + } + com_token[ len ] = 0; + + *data_p = data; + + return com_token; +} + + +/* +----------------------------------------------------------------------------- + Function: Com_PageInMemory() + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +int paged_total; + +PUBLIC void Com_PageInMemory( PW8 buffer, int size ) +{ + int i; + + for( i = size - 1 ; i > 0 ; i -= 4096 ) + { + paged_total += buffer[ i ]; + } +} + diff --git a/wolf3d/code/env/sound.c b/wolf3d/code/env/sound.c new file mode 100644 index 0000000..7ed3524 --- /dev/null +++ b/wolf3d/code/env/sound.c @@ -0,0 +1,730 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * sound.c: + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + * Acknowledgement: + * Portion of this code was derived from Quake II Evolved. + * + */ + +#include "../wolfiphone.h" + + +#define MAX_PLAYSOUNDS 128 + +#define MAX_CHANNELS 64 + +PRIVATE playSound_t s_playSounds[ MAX_PLAYSOUNDS ]; +PRIVATE playSound_t s_freePlaySounds; +PRIVATE playSound_t s_pendingPlaySounds; + +PRIVATE channel_t s_channels[ MAX_CHANNELS ]; +PRIVATE int s_numChannels; + +PRIVATE listener_t s_listener; + +PRIVATE int s_frameCount; + +PRIVATE _boolean s_activeApp; + +_boolean sound_initialized = false; + +cvar_t *s_initSound; +cvar_t *s_masterVolume; +cvar_t *s_sfxVolume; +cvar_t *s_musicVolume; +cvar_t *s_minDistance; +cvar_t *s_maxDistance; +cvar_t *s_rolloffFactor; +cvar_t *s_dopplerFactor; +cvar_t *s_dopplerVelocity; + + + +///////////////////////////////////////////////////////////////////// +// +// Sound Channels +// +///////////////////////////////////////////////////////////////////// + + +/* +----------------------------------------------------------------------------- + Function: Sound_AllocChannels -Allocate sound channels. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Sound_AllocChannels( void ) +{ + channel_t *ch; + int i; + + for( i = 0, ch = s_channels ; i < MAX_CHANNELS ; ++i, ++ch ) + { + pfalGenSources( 1, &ch->sourceName ); + + if( pfalGetError() != AL_NO_ERROR ) + { + break; + } + + s_numChannels++; + } +} + + +/* +----------------------------------------------------------------------------- + Function: Sound_ChannelState -Free sound channels. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE int Sound_ChannelState( channel_t *ch ) +{ + int state; + + pfalGetSourcei( ch->sourceName, AL_SOURCE_STATE, &state ); + + return state; +} + + +PRIVATE void Sound_PlayChannel( channel_t *ch, sfx_t *sfx ) +{ + ch->sfx = sfx; + + pfalSourcei( ch->sourceName, AL_BUFFER, sfx->bufferNum ); + pfalSourcei( ch->sourceName, AL_LOOPING, ch->loopSound ); + pfalSourcei( ch->sourceName, AL_SOURCE_RELATIVE, AL_FALSE ); + pfalSourcePlay( ch->sourceName ); +} + + +PRIVATE void Sound_StopChannel( channel_t *ch ) +{ + ch->sfx = NULL; + + // as of 2.2.1, OpenAL on the iphone doesn't seem to stop sounds properly. + // Only deleting the entire source seems to work. + + pfalSourceStop( ch->sourceName ); +// pfalSourceStopv( 1, &ch->sourceName ); +// pfalSourcei( ch->sourceName, AL_BUFFER, 0 ); +// pfalSourceRewind( ch->sourceName ); +#if 1 + pfalDeleteSources( 1, &ch->sourceName ); + pfalGenSources( 1, &ch->sourceName ); +#endif +} + + +PRIVATE void Sound_SpatializeChannel( channel_t *ch ) +{ +// vec3_t position, velocity; + + // Update position and velocity + if( ch->entNum == 0 || ! ch->distanceMult ) + { + pfalSourcefv( ch->sourceName, AL_POSITION, s_listener.position ); + pfalSourcefv( ch->sourceName, AL_VELOCITY, s_listener.velocity ); + } + else + { + if( ch->fixedPosition ) + { + pfalSource3f( ch->sourceName, AL_POSITION, ch->position[1], ch->position[2], -ch->position[0] ); + pfalSource3f( ch->sourceName, AL_VELOCITY, 0, 0, 0 ); + } +/* else + { + if( ch->loopSound ) + { + Client_GetEntitySoundSpatialization( ch->loopNum, position, velocity ); + } + else + { + Client_GetEntitySoundSpatialization( ch->entNum, position, velocity ); + } + + pfalSource3f( ch->sourceName, AL_POSITION, position[1], position[2], -position[0] ); + pfalSource3f( ch->sourceName, AL_VELOCITY, velocity[1], velocity[2], -velocity[0] ); + } +*/ + } + + // Update min/max distance + if( ch->distanceMult ) + { + pfalSourcef( ch->sourceName, AL_REFERENCE_DISTANCE, s_minDistance->value * ch->distanceMult ); + } + else + { + pfalSourcef( ch->sourceName, AL_REFERENCE_DISTANCE, s_maxDistance->value ); + } + + pfalSourcef( ch->sourceName, AL_MAX_DISTANCE, s_maxDistance->value ); + + // Update volume and rolloff factor + pfalSourcef( ch->sourceName, AL_GAIN, s_sfxVolume->value * ch->volume ); + pfalSourcef( ch->sourceName, AL_ROLLOFF_FACTOR, s_rolloffFactor->value ); +} + + +/* +----------------------------------------------------------------------------- + Function: Sound_PickChannel - + + Parameters: + + Returns: + + Notes: + Tries to find a free channel, or tries to replace an active channel. +----------------------------------------------------------------------------- +*/ +PUBLIC channel_t *Sound_PickChannel( W32 entNum, W32 entChannel ) +{ + channel_t *ch; + int i; + int firstToDie = -1; + int oldestTime = iphoneFrameNum; + + for( i = 0, ch = s_channels ; i < s_numChannels ; ++i, ++ch ) + { + // Don't let game sounds override streaming sounds + if( ch->streaming ) + { + continue; + } + + // Check if this channel is active + if( ! ch->sfx ) + { + // Free channel + firstToDie = i; + break; + } + + // Channel 0 never overrides + if( entChannel != 0 && (ch->entNum == entNum && ch->entChannel == entChannel ) ) + { + // Always override sound from same entity + firstToDie = i; + break; + } + + // Replace the oldest sound + if( ch->startTime < oldestTime ) + { + oldestTime = ch->startTime; + firstToDie = i; + } + } + + if( firstToDie == -1 ) + { + return NULL; + } + + ch = &s_channels[ firstToDie ]; + + ch->entNum = entNum; + ch->entChannel = entChannel; + ch->startTime = iphoneFrameNum; + + // Make sure this channel is stopped + Sound_StopChannel( ch ); + + return ch; +} + +///////////////////////////////////////////////////////////////////// +// End of Sound Channels +///////////////////////////////////////////////////////////////////// + + +/* +----------------------------------------------------------------------------- + Function: Sound_AddLoopingSounds - + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + Entities with a a->sound field will generate looping sounds that are + automatically started and stopped as the entities are sent to the + client. +----------------------------------------------------------------------------- +*/ +PRIVATE void Sound_AddLoopingSounds( void ) +{ + +} + + + +PRIVATE playSound_t *Sound_AllocPlaySound( void ) +{ + playSound_t *ps; + + ps = s_freePlaySounds.next; + if( ps == &s_freePlaySounds ) + { + return NULL; // No free playSounds + } + + ps->prev->next = ps->next; + ps->next->prev = ps->prev; + + return ps; +} + + +PRIVATE void Sound_FreePlaySound( playSound_t *ps ) +{ + ps->prev->next = ps->next; + ps->next->prev = ps->prev; + + // Add to free list + ps->next = s_freePlaySounds.next; + s_freePlaySounds.next->prev = ps; + ps->prev = &s_freePlaySounds; + s_freePlaySounds.next = ps; +} + +/* +----------------------------------------------------------------------------- + Function: Sound_IssuePlaySounds - + + Parameters: + + Returns: Nothing. + + Notes: + Take the next playsound and begin it on the channel. + This is never called directly by Sound_StartSound*, but only by the update loop. +----------------------------------------------------------------------------- +*/ +PRIVATE void Sound_IssuePlaySounds( void ) +{ + playSound_t *ps; + channel_t *ch; + + while( 1 ) + { + ps = s_pendingPlaySounds.next; + if( ps == &s_pendingPlaySounds ) + { + break; // No more pending playSounds + } + + if( ps->beginTime > iphoneFrameNum ) + { + break; // No more pending playSounds this frame + } + + // Pick a channel and start the sound effect + ch = Sound_PickChannel( ps->entNum, ps->entChannel ); + if( ! ch ) + { + if( ps->sfx->name[ 0 ] == '#' ) + Com_DPrintf( "Dropped sound %s\n", &ps->sfx->name[1]); + else + Com_DPrintf( "Dropped sound sound/%s\n", ps->sfx->name); + + Sound_FreePlaySound( ps ); + continue; + } + + ch->loopSound = false; + ch->fixedPosition = ps->fixedPosition; + vectorCopy( ps->position, ch->position ); + ch->volume = ps->volume; + + if( ps->attenuation != ATTN_NONE ) + { + ch->distanceMult = 1.0f / ps->attenuation; + } + else + { + ch->distanceMult = 0.0; + } + + Sound_SpatializeChannel( ch ); + + Sound_PlayChannel( ch, ps->sfx ); + + // Free the playSound + Sound_FreePlaySound( ps ); + } +} + + +/* +----------------------------------------------------------------------------- + Function: Sound_StartSound - + + Parameters: + + Returns: Nothing. + + Notes: + Validates the parms and queues the sound up. + If origin is NULL, the sound will be dynamically sourced from the + entity. + entChannel 0 will never override a playing sound. +----------------------------------------------------------------------------- +*/ +PUBLIC void Sound_StartSound( const vec3_t position, int entNum, int entChannel, sfx_t *sfx, float volume, float attenuation, int timeOfs ) +{ + playSound_t *ps, *sort; + + if( ! sound_initialized ) + { + return; + } + + if( ! sfx ) + { + return; + } + + + // Make sure the sound is loaded + if( ! Sound_LoadSound( sfx ) ) + { + return; + } + + // Allocate a playSound + ps = Sound_AllocPlaySound(); + if( ! ps ) + { + if( sfx->name[0] == '#' ) + Com_DPrintf( "Dropped sound %s\n", &sfx->name[1] ); + else + Com_DPrintf( "Dropped sound sound/%s\n", sfx->name); + + return; + } + + ps->sfx = sfx; + ps->entNum = entNum; + ps->entChannel = entChannel; + + if( position ) + { + ps->fixedPosition = true; + vectorCopy( position, ps->position ); + } + else + { + ps->fixedPosition = false; + } + + ps->volume = volume; + ps->attenuation = attenuation; + ps->beginTime = iphoneFrameNum; + + // Sort into the pending playSounds list + for( sort = s_pendingPlaySounds.next ; sort != &s_pendingPlaySounds && sort->beginTime < ps->beginTime ; sort = sort->next ) + { + ; + } + + ps->next = sort; + ps->prev = sort->prev; + + ps->next->prev = ps; + ps->prev->next = ps; +} + + +PUBLIC void Sound_StartLocalSound( const char *filename ) +{ + sfx_t *sfx; + + if( ! sound_initialized ) + { + return; + } + + sfx = Sound_RegisterSound( filename ); + if( ! sfx ) + { + Com_Printf( "Sound_StartLocalSound: could not cache (%s)\n", filename ); + return; + } + + Sound_StartSound( NULL, 0, 0, sfx, 1, ATTN_NONE, 0 ); +} + + +PUBLIC void Sound_StopAllSounds( void ) +{ + channel_t *ch; + int i; + + if( ! sound_initialized ) + { + return; + } + + // Clear all the playSounds + memset( s_playSounds, 0, sizeof( s_playSounds ) ); + + s_freePlaySounds.next = s_freePlaySounds.prev = &s_freePlaySounds; + s_pendingPlaySounds.next = s_pendingPlaySounds.prev = &s_pendingPlaySounds; + + for( i = 0 ; i < MAX_PLAYSOUNDS ; ++i ) + { + s_playSounds[ i ].prev = &s_freePlaySounds; + s_playSounds[ i ].next = s_freePlaySounds.next; + s_playSounds[ i ].prev->next = &s_playSounds[ i ]; + s_playSounds[ i ].next->prev = &s_playSounds[ i ]; + } + + // Stop all the channels + for( i = 0, ch = s_channels ; i < s_numChannels ; ++i, ++ch ) + { + if( ! ch->sfx ) + { + continue; + } + + Sound_StopChannel( ch ); + } + + // Reset frame count + s_frameCount = 0; +} + + +/* +----------------------------------------------------------------------------- + Function: Sound_Update - + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + Called once each time through the main loop. +----------------------------------------------------------------------------- +*/ +PUBLIC void Sound_Update( const vec3_t position, const vec3_t velocity, const vec3_t at, const vec3_t up) +{ + channel_t *ch; + int i, total = 0; + + if( ! sound_initialized ) + { + return; + } + + // Bump frame count + s_frameCount++; + + // Set up listener + vectorSet( s_listener.position, position[1], position[2], -position[0] ); + vectorSet( s_listener.velocity, velocity[1], velocity[2], -velocity[0] ); + vectorSet( &s_listener.orientation[0], at[1], -at[2], -at[0] ); + vectorSet( &s_listener.orientation[3], up[1], -up[2], -up[0] ); + + pfalListenerfv( AL_POSITION, s_listener.position ); + pfalListenerfv( AL_VELOCITY, s_listener.velocity ); + pfalListenerfv( AL_ORIENTATION, s_listener.orientation ); + pfalListenerf( AL_GAIN, (s_activeApp) ? s_masterVolume->value : 0.0); + + // Set state + pfalDistanceModel( AL_INVERSE_DISTANCE_CLAMPED ); + + pfalDopplerFactor( s_dopplerFactor->value ); + pfalDopplerVelocity( s_dopplerVelocity->value ); + + // Stream background track + Sound_StreamBGTrack(); + + // Add looping sounds + Sound_AddLoopingSounds(); + + // Issue playSounds + Sound_IssuePlaySounds(); + + // Update spatialization for all sounds + for( i = 0, ch = s_channels ; i < s_numChannels ; ++i, ++ch ) + { + if( ! ch->sfx ) + { + continue; // Not active + } + + // Check for stop + if( ch->loopSound ) + { + if( ch->loopFrame != s_frameCount ) + { + Sound_StopChannel( ch ); + + continue; + } + } + else + { + if( Sound_ChannelState(ch) == AL_STOPPED ) + { + Sound_StopChannel( ch ); + + continue; + } + } + + // Respatialize channel + Sound_SpatializeChannel( ch ); + + total++; + } + + +} + + +PUBLIC void Sound_Activate( _boolean active ) +{ + s_activeApp = active; + + if( ! sound_initialized ) + { + return; + } + + pfalListenerf( AL_GAIN, ( active ) ? s_masterVolume->value : 0.0 ); + +} + + +///////////////////////////////////////////////////////////////////// +// +// Console Commands +// +///////////////////////////////////////////////////////////////////// + +PRIVATE void Sound_Play_f( void ) +{ + + int i = 1; + char name[ MAX_GAMEPATH ]; + + if( Cmd_Argc() == 1 ) + { + Com_Printf( "Usage: play \n" ); + return; + } + + while( i < Cmd_Argc() ) + { + my_strlcpy( name, Cmd_Argv( i ), sizeof( name ) ); + + Sound_StartLocalSound( name ); + + i++; + } +} + +PRIVATE void Sound_StopSound_f( void ) +{ + Sound_StopAllSounds(); +} + + + +///////////////////////////////////////////////////////////////////// +// End of Console Commands +///////////////////////////////////////////////////////////////////// + + +extern void Sound_SoundList_f( void ); + + +PRIVATE void Sound_Register( void ) +{ + + s_initSound = Cvar_Get( "s_initSound", "1", CVAR_INIT ); + s_masterVolume = Cvar_Get( "s_masterVolume", "1.0", CVAR_ARCHIVE ); + s_sfxVolume = Cvar_Get( "s_sfxVolume", "1.0", CVAR_ARCHIVE ); + s_musicVolume = Cvar_Get( "s_musicVolume", "1.0", CVAR_ARCHIVE ); + s_minDistance = Cvar_Get( "s_minDistance", "0.0", CVAR_ARCHIVE ); + s_maxDistance = Cvar_Get( "s_maxDistance", "1.0", CVAR_ARCHIVE ); + s_rolloffFactor = Cvar_Get( "s_rolloffFactor", "1.0", CVAR_ARCHIVE ); + s_dopplerFactor = Cvar_Get( "s_dopplerFactor", "1.0", CVAR_ARCHIVE ); + s_dopplerVelocity = Cvar_Get( "s_dopplerVelocity", "0.0", CVAR_ARCHIVE ); + + Cmd_AddCommand( "play", Sound_Play_f ); + Cmd_AddCommand( "stopsound", Sound_StopSound_f ); + Cmd_AddCommand( "listSounds", Sound_SoundList_f ); +} + + +PUBLIC void Sound_Init( void ) +{ + Com_Printf( "\n------- Sound Initialization -------\n" ); + + + Sound_Register(); + + + if( ! Sound_Device_Setup() ) + { + Com_Printf( "------------------------------------\n" ); + return; + } + + sound_initialized = true; + + Sound_AllocChannels(); + Sound_StopAllSounds(); + + + Com_Printf( "------------------------------------\n" ); +} + diff --git a/wolf3d/code/env/sound.h b/wolf3d/code/env/sound.h new file mode 100644 index 0000000..64b4916 --- /dev/null +++ b/wolf3d/code/env/sound.h @@ -0,0 +1,93 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * sound.h: + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + * Acknowledgement: + * Portion of this code was derived from Quake II Evolved. + * + */ + +#ifndef __SOUND_H__ +#define __SOUND_H__ + +// Sound channels +// Channel 0 never willingly overrides +// Other channels (1-7) always override a playing sound on that channel +#define CHAN_AUTO 0 +#define CHAN_WEAPON 1 +#define CHAN_VOICE 2 +#define CHAN_ITEM 3 +#define CHAN_BODY 4 + +// Modifier flags +#define CHAN_NO_PHS_ADD 8 // Send to all clients, not just ones in PHS (ATTN 0 will also do this) +#define CHAN_RELIABLE 16 // Send by reliable message, not datagram + +// Sound attenuation values +#define ATTN_NONE 0 // Full volume the entire level +#define ATTN_NORM 1 +#define ATTN_IDLE 2 +#define ATTN_STATIC 3 // Diminish very rapidly with distance + + +extern cvar_t *s_device; +extern cvar_t *s_masterVolume; +extern cvar_t *s_sfxVolume; +extern cvar_t *s_musicVolume; + +extern char *sound_devices[ 12 ]; +extern W16 numSoundDevices; +extern W16 numDefaultSoundDevice; + +extern W8 sound_initialized; + +extern void Sound_Init( void ); + +extern void Sound_Update( const vec3_t position, const vec3_t velocity, const vec3_t at, const vec3_t up); + +extern void Sound_Activate( _boolean active ); + +extern channel_t *Sound_PickChannel( W32 entNum, W32 entChannel ); + +extern sfx_t *Sound_RegisterSound( const char *name ); +extern void Sound_StartLocalSound( const char *filename ); + +extern void Sound_StreamBGTrack( void ); +extern void Sound_StartStreaming( void ); +extern void Sound_StopStreaming( void ); +extern void Sound_StartBGTrack( const char *introTrack, const char *loopTrack ); +extern void Sound_StopBGTrack( void ); + +extern void Sound_StartSound( const vec3_t position, int entNum, int entChannel, sfx_t *sfx, float volume, float attenuation, int timeOfs ); + +extern void Sound_StopAllSounds( void ); + + +#endif /* __SOUND_H__ */ diff --git a/wolf3d/code/env/sound_local.h b/wolf3d/code/env/sound_local.h new file mode 100644 index 0000000..ad798b2 --- /dev/null +++ b/wolf3d/code/env/sound_local.h @@ -0,0 +1,111 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * sound_local.h: + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + * Acknowledgement: + * Portion of this code was derived from Quake II Evolved. + * + */ + + +#ifndef __SOUND_LOCAL_H__ +#define __SOUND_LOCAL_H__ + + +typedef struct sfx_s +{ + char name[ MAX_GAMEPATH ]; + _boolean defaulted; + _boolean loaded; + + int samples; + int rate; + unsigned format; /* Sound samples: format specifier */ + unsigned bufferNum; + + struct sfx_s *nextHash; + +} sfx_t; + +// A playSound will be generated by each call to S_StartSound. +// When the mixer reaches playSound->beginTime, the playSound will be +// assigned to a channel. +typedef struct playSound_s +{ + struct playSound_s *prev, *next; + sfx_t *sfx; + int entNum; + int entChannel; + _boolean fixedPosition; // Use position instead of fetching entity's origin + vec3_t position; // Only use if fixedPosition is set + float volume; + float attenuation; + int beginTime; // Begin at this time + +} playSound_t; + +typedef struct +{ + _boolean streaming; + sfx_t *sfx; // NULL if unused + int entNum; // To allow overriding a specific sound + int entChannel; + int startTime; // For overriding oldest sounds + _boolean loopSound; // Looping sound + int loopNum; // Looping entity number + int loopFrame; // For stopping looping sounds + _boolean fixedPosition; // Use position instead of fetching entity's origin + vec3_t position; // Only use if fixedPosition is set + float volume; + float distanceMult; + unsigned sourceName; // OpenAL sourceName + +} channel_t; + +typedef struct +{ + vec3_t position; + vec3_t velocity; + float orientation[ 6 ]; + +} listener_t; + + + +// extern void Sound_SoundList_f( void ); +extern _boolean Sound_LoadSound( sfx_t *sfx ); +extern sfx_t *Sound_FindSound( const char *name ); + +extern _boolean Sound_Device_Setup( void ); +extern void Sound_Device_Shutdown( void ); + + +#endif /* __SOUND_LOCAL_H__ */ + diff --git a/wolf3d/code/env/sound_sfx_id.c b/wolf3d/code/env/sound_sfx_id.c new file mode 100644 index 0000000..4c8d11b --- /dev/null +++ b/wolf3d/code/env/sound_sfx_id.c @@ -0,0 +1,287 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * sound_sfx_id.c: + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + * Acknowledgement: + * Portion of this code was derived from Quake II Evolved. + * + */ + +#include "../wolfiphone.h" + + + +#define SFX_HASHSIZE 256 + +#define MAX_SFX 1024 + +PRIVATE sfx_t *s_sfxHash[ SFX_HASHSIZE ]; +PRIVATE sfx_t *s_sfx[ MAX_SFX ]; +PRIVATE int s_numSfx; + + +PRIVATE _boolean s_registering = false; +PRIVATE W32 s_registration_sequence = 0; + + + + +void Sound_SoundList_f( void ) +{ + +} + + + +/* +----------------------------------------------------------------------------- + Function: Sound_UploadSound -Upload sound data to buffer. + + Parameters: data -[in] Sound data. + sample_size -[in] Sound sample size. + channels -[in] Number of sound channels. + sfx -[in] valid pointer to sfx_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Sound_UploadSound( W8 *data, int sample_size, int channels, sfx_t *sfx ) +{ + int size; + + // Calculate buffer size + size = sfx->samples * sample_size * channels; + + // Set buffer format + if( sample_size == 2 ) + { + if( channels == 2 ) + { + sfx->format = AL_FORMAT_STEREO16; + } + else + { + sfx->format = AL_FORMAT_MONO16; + } + + // Upload the sound + pfalGenBuffers( 1, &sfx->bufferNum ); + pfalBufferData( sfx->bufferNum, sfx->format, data, size, sfx->rate ); + } + else + { + /* + We upsample the sound to 16 bit here because the iphone + pops at the beginning and end of buffers with 8 bit. -Cass + (Brian Harris wants to be acknowledeged for helping find + this workaround.) + */ + short *d = (short *)malloc( size * 2 ); + for ( int i = 0; i < size; i++ ) { + d[i] = ((short)data[i] - 128) * 256; + } + if( channels == 2 ) + { + sfx->format = AL_FORMAT_STEREO16; + } + else + { + sfx->format = AL_FORMAT_MONO16; + } + + // Upload the sound + pfalGenBuffers( 1, &sfx->bufferNum ); + pfalBufferData( sfx->bufferNum, sfx->format, d, size * 2, sfx->rate ); + free( d ); + } +} + +/* +----------------------------------------------------------------------------- + Function: Sound_LoadSound -Load sound data. + + Parameters: sfx -[in] Pointer to valid sfx_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean Sound_LoadSound( sfx_t *sfx ) +{ + char name[ MAX_GAMEPATH ]; + W8 *data; + soundInfo_t info; + + if( sfx->name[ 0 ] == '*' ) + { + return false; + } + + // See if still in memory + if( sfx->loaded ) + { + return true; + } + + my_strlcpy( name, sfx->name, sizeof( name ) ); + + + if( ! LoadWavInfo( name, &data, &info ) ) + { + if ( ! LoadOggInfo( name, &data, &info ) ) { + sfx->defaulted = true; + + Com_Printf( "Could not find sound (%s)\n", name ); + + return false; + } + } + + sfx->loaded = true; + sfx->samples = info.samples; + sfx->rate = info.sample_rate; + + Sound_UploadSound( data, info.sample_size, info.channels, sfx ); + + Z_Free( data ); + + return true; +} + +/* +----------------------------------------------------------------------------- + Function: Sound_FindSound -Load sound data. + + Parameters: sfx -[in] Pointer to valid sfx_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC sfx_t *Sound_FindSound( const char *name ) +{ + sfx_t *sfx; + unsigned hashKey; + + if( ! name || ! name[ 0 ] ) + { + Com_Printf( "Sound_FindSound: NULL sound name\n" ); + + return NULL; + } + + if( strlen( name ) >= MAX_GAMEPATH ) + { + Com_Printf( "Sound_FindSound: sound name exceeds MAX_GAMEPATH\n"); + + return NULL; + } + + // See if already loaded + hashKey = (my_strhash( name ) % SFX_HASHSIZE); + + for( sfx = s_sfxHash[ hashKey ] ; sfx ; sfx = sfx->nextHash ) + { + if( ! my_stricmp( sfx->name, name ) ) + { + return sfx; + } + } + + // Create a new sfx_t + if( s_numSfx == MAX_SFX ) + { + Com_Printf( "Sound_FindSound: MAX_SFX hit\n" ); + + return NULL; + } + + s_sfx[ s_numSfx++ ] = sfx = Z_Malloc( sizeof( sfx_t ) ); + + my_strlcpy( sfx->name, name, sizeof( sfx->name ) ); + + // Add to hash table + sfx->nextHash = s_sfxHash[ hashKey ]; + s_sfxHash[ hashKey ] = sfx; + + return sfx; +} + + +PUBLIC void Sound_BeginRegistration( void ) +{ + s_registration_sequence++; + s_registering = true; +} + +PUBLIC sfx_t *Sound_RegisterSound( const char *name ) +{ + sfx_t *sfx; + + if( ! sound_initialized ) + { + return NULL; + } + + if( g_version->value == 1 ) + { + char tempname[ 256 ]; + + my_snprintf( tempname, sizeof( tempname ), "sod%s", name ); + + sfx = Sound_FindSound( tempname ); + } + else + { + sfx = Sound_FindSound( name ); + } + + if( ! s_registering ) + { + Sound_LoadSound( sfx ); + } + + return sfx; +} + +PUBLIC void Sound_EndRegistration( void ) +{ + + s_registering = false; +} + + diff --git a/wolf3d/code/env/sound_stream.c b/wolf3d/code/env/sound_stream.c new file mode 100644 index 0000000..0a8a845 --- /dev/null +++ b/wolf3d/code/env/sound_stream.c @@ -0,0 +1,516 @@ +/* + + Copyright (C) 2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * sound_stream.c: Sound Stream manager. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from Quake II Evolved. + * + */ + +#include "../wolfiphone.h" + + +typedef struct +{ + char introName[ MAX_GAMEPATH ]; + char loopName[ MAX_GAMEPATH ]; + _boolean looping; + + filehandle_t *hFile; + + + int start; + int rate; + unsigned format; + void *vorbisFile; + +} musicTrack_t; + + +// anything greater than 1<<13 caused crashes on iphone OS 2.1 (on a 3G iphone) +#define BUFFER_SIZE (1<<11) + +PRIVATE musicTrack_t bgTrack; + +PRIVATE channel_t *s_streamingChannel; + + +extern void Sound_StopBGTrack( void ); + + + +/* +----------------------------------------------------------------------------- + Function: ovc_read -OGG read Callback. Reads data from a stream. + + Parameters: + ptr -[in] Storage location for data. + size -[in] Item size in bytes. + nmemb -[in] Maximum number of items to be read. + datasource -[in] music track data structure. + + Returns: Nothing + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE size_t ovc_read( void *ptr, size_t size, size_t nmemb, void *datasource ) +{ + musicTrack_t *track = (musicTrack_t *)datasource; + + + if( ! size || ! nmemb ) + { + return 0; + } + + + return FS_ReadFile( ptr, size, nmemb, track->hFile ); +} + +/* +----------------------------------------------------------------------------- + Function: ovc_read -OGG seek Callback. Moves the file pointer to a specified + location. + + Parameters: + datasource -[in] music track data structure. + offset -[in] Number of bytes from whence. + whence -[in] Initial position. + + + Returns: + If successful, fseek returns 0. Otherwise, it returns a nonzero + value. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE int ovc_seek( void *datasource, ogg_int64_t offset, int whence ) +{ + musicTrack_t *track = (musicTrack_t *)datasource; + + return FS_FileSeek( track->hFile, offset, whence ); +} + +/* +----------------------------------------------------------------------------- + Function: ovc_close -OGG close Callback. Closes a stream. + + Parameters: datasource -[in] music track data structure. + + Returns: 0 if the stream is successfully closed, otherwise nonzero. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE int ovc_close( void *datasource ) +{ + return 0; +} + +/* +----------------------------------------------------------------------------- + Function: ovc_tell -OGG tell Callback. Gets the current position of a file + pointer. + + Parameters: datasource -[in] music track data structure. + + Returns: The current file position. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE long ovc_tell( void *datasource ) +{ + musicTrack_t *track = (musicTrack_t *)datasource; + + return FS_FileTell( track->hFile ); +} + +/* +----------------------------------------------------------------------------- + Function: Sound_OpenBGTrack -OGG read Callback. + + Parameters: + name -[in] File name to open. + track -[in/out] Music track data structure. + + Returns: False on error, otherwise true. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean Sound_OpenBGTrack( const char *name, musicTrack_t *track ) +{ + OggVorbis_File *vorbisFile; + vorbis_info *vorbisInfo; + ov_callbacks vorbisCallbacks = {ovc_read, ovc_seek, ovc_close, ovc_tell}; + int ret; + extern cvar_t *music; + + if ( music->value == 0 || SysIPhoneOtherAudioIsPlaying() ) { + return 0; + } + + track->hFile = FS_OpenFile( name, 0 ); + if( ! track->hFile ) + { + return false; + } + + + track->vorbisFile = vorbisFile = Z_Malloc( sizeof( OggVorbis_File ) ); + + if( (ret = ov_open_callbacks( track, vorbisFile, NULL, 0, vorbisCallbacks )) < 0 ) + { + switch( ret ) + { + case OV_EREAD: + Com_DPrintf( "A read from media returned an error.(%s)\n", name ); + break; + case OV_ENOTVORBIS: + Com_DPrintf( "Bitstream is not Vorbis data.(%s)\n", name ); + break; + case OV_EVERSION: + Com_DPrintf( "Vorbis version mismatch.(%s)\n", name ); + break; + case OV_EBADHEADER: + Com_DPrintf( "Invalid Vorbis bitstream header.(%s)\n", name ); + break; + case OV_EFAULT: + Com_DPrintf( "Internal logic fault; indicates a bug or heap/stack corruption.(%s)\n", name ); + break; + + } + Com_DPrintf( "Could not open OGG stream (%s)\n", name ); + + return false; + } + + vorbisInfo = ov_info( vorbisFile, -1 ); + if( vorbisInfo->channels != 1 && vorbisInfo->channels != 2 ) + { + Com_DPrintf( "Only mono and stereo OGG files supported (%s)\n", name ); + + return false; + } + + track->start = ov_raw_tell( vorbisFile ); + track->rate = vorbisInfo->rate; + track->format = (vorbisInfo->channels == 2) ? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16; + + return true; +} + +/* +----------------------------------------------------------------------------- + Function: Sound_CloseBGTrack -Close out background music track. + + Parameters: track -[in] Music track to close. + + Returns: Nothing + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void Sound_CloseBGTrack( musicTrack_t *track ) +{ + if( track->vorbisFile ) + { + ov_clear( track->vorbisFile ); + + Z_Free( track->vorbisFile ); + track->vorbisFile = NULL; + } + + if( track->hFile ) + { + FS_CloseFile( track->hFile ); + } +} + +/* +----------------------------------------------------------------------------- + Function: Sound_StreamBGTrack -Called each frame to update streaming music + track. + + Parameters: Nothing + + Returns: Nothing + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Sound_StreamBGTrack( void ) +{ + + W8 data[BUFFER_SIZE]; + int processed, queued, state; + int size, read, dummy; + unsigned buffer; + + if( ! s_musicVolume->value ) + { + return; + } + + if( ! s_streamingChannel ) + { + return; + } + + // Unqueue and delete any processed buffers + pfalGetSourcei( s_streamingChannel->sourceName, AL_BUFFERS_PROCESSED, &processed ); + if( processed > 0 ) + { + while (processed--) + { + pfalSourceUnqueueBuffers( s_streamingChannel->sourceName, 1, &buffer ); + pfalDeleteBuffers( 1, &buffer ); + } + } + + // Make sure we always have at least 4 buffers in the queue + pfalGetSourcei( s_streamingChannel->sourceName, AL_BUFFERS_QUEUED, &queued ); + while( queued < 4 ) + { + size = 0; + + // Stream from disk + while( size < BUFFER_SIZE ) + { + read = ov_read( bgTrack.vorbisFile, (char *)data + size, BUFFER_SIZE - size, &dummy ); + if( read == 0 ) + { + // End of file + if( ! bgTrack.looping) + { + // Close the intro track + Sound_CloseBGTrack( &bgTrack ); + + // Open the loop track + if( ! Sound_OpenBGTrack( bgTrack.loopName, &bgTrack ) ) + { + Sound_StopBGTrack(); + return; + } + + bgTrack.looping = true; + } + + // Restart the track, skipping over the header + ov_raw_seek( bgTrack.vorbisFile, (ogg_int64_t)bgTrack.start ); + + // Try streaming again + read = ov_read( bgTrack.vorbisFile, (char *)data + size, BUFFER_SIZE - size, &dummy ); + } + + if( read <= 0 ) + { + // An error occurred + Sound_StopBGTrack(); + return; + } + + size += read; + } + + // Upload and queue the new buffer + pfalGenBuffers( 1, &buffer ); + pfalBufferData( buffer, bgTrack.format, data, size, bgTrack.rate ); + pfalSourceQueueBuffers( s_streamingChannel->sourceName, 1, &buffer ); + + queued++; + } + + // Update volume + pfalSourcef( s_streamingChannel->sourceName, AL_GAIN, s_musicVolume->value ); + + // If not playing, then do so + pfalGetSourcei( s_streamingChannel->sourceName, AL_SOURCE_STATE, &state ); + if( state != AL_PLAYING ) + { + pfalSourcePlay(s_streamingChannel->sourceName); + } +} + +/* +----------------------------------------------------------------------------- + Function: Sound_StartStreaming -Start streaming background music track. + + Parameters: Nothing + + Returns: Nothing + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Sound_StartStreaming( void ) +{ + if( ! sound_initialized ) + { + return; + } + + if( s_streamingChannel ) + { + return; + } + + s_streamingChannel = Sound_PickChannel( 0, 0 ); + if( ! s_streamingChannel ) + { + return; + } + + s_streamingChannel->streaming = true; + + // hmmm... + pfalDeleteSources( 1, &s_streamingChannel->sourceName ); + pfalGenSources( 1, &s_streamingChannel->sourceName ); + + // Set up the source + pfalSourcei( s_streamingChannel->sourceName, AL_BUFFER, 0 ); + pfalSourcei( s_streamingChannel->sourceName, AL_LOOPING, AL_FALSE ); + pfalSourcei( s_streamingChannel->sourceName, AL_SOURCE_RELATIVE, AL_TRUE ); + pfalSourcefv( s_streamingChannel->sourceName, AL_POSITION, vec3_origin ); + pfalSourcefv( s_streamingChannel->sourceName, AL_VELOCITY, vec3_origin ); + pfalSourcef( s_streamingChannel->sourceName, AL_REFERENCE_DISTANCE, 1.0 ); + pfalSourcef( s_streamingChannel->sourceName, AL_MAX_DISTANCE, 1.0 ); + pfalSourcef( s_streamingChannel->sourceName, AL_ROLLOFF_FACTOR, 0.0 ); +} + +/* +----------------------------------------------------------------------------- + Function: Sound_StopStreaming -Stop playing streaming music track. + + Parameters: Nothing + + Returns: Nothing + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Sound_StopStreaming( void ) +{ + int processed; + unsigned buffer; + + if( ! sound_initialized ) + { + return; + } + + if( ! s_streamingChannel ) + { + return; + } + + s_streamingChannel->streaming = false; + + + pfalSourceStop( s_streamingChannel->sourceName ); + + pfalGetSourcei( s_streamingChannel->sourceName, AL_BUFFERS_PROCESSED, &processed ); + if( processed > 0 ) + { + while( processed-- ) + { + pfalSourceUnqueueBuffers( s_streamingChannel->sourceName, 1, &buffer ); + pfalDeleteBuffers( 1, &buffer ); + } + } + + pfalSourcei( s_streamingChannel->sourceName, AL_BUFFER, 0 ); + + // hmmm... + pfalDeleteSources( 1, &s_streamingChannel->sourceName ); + pfalGenSources( 1, &s_streamingChannel->sourceName ); + + s_streamingChannel = NULL; +} + +/* +----------------------------------------------------------------------------- + Function: Sound_StartBGTrack -Play background music track. + + Parameters: + introTrack -[in] File name of intro track. + loopTrack -[in] File name of loop track. + + Returns: Nothing + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Sound_StartBGTrack( const char *introTrack, const char *loopTrack ) +{ + if( ! sound_initialized ) + { + return; + } + + Sound_StopBGTrack(); + + + my_strlcpy( bgTrack.introName, introTrack, sizeof( bgTrack.introName ) ); + my_strlcpy( bgTrack.loopName, loopTrack, sizeof( bgTrack.loopName) ); + + Sound_StartStreaming(); + + if( ! Sound_OpenBGTrack( bgTrack.introName, &bgTrack ) ) + { + Sound_StopBGTrack(); + return; + } + + Sound_StreamBGTrack(); +} + +/* +----------------------------------------------------------------------------- + Function: Sound_StopBGTrack -Stop playing background track. + + Parameters: Nothing + + Returns: Nothing + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Sound_StopBGTrack( void ) +{ + if( ! sound_initialized ) + { + return; + } + + Sound_StopStreaming(); + + Sound_CloseBGTrack( &bgTrack ); + + memset( &bgTrack, 0, sizeof( musicTrack_t ) ); +} diff --git a/wolf3d/code/env/texture_manager.c b/wolf3d/code/env/texture_manager.c new file mode 100644 index 0000000..18c16a8 --- /dev/null +++ b/wolf3d/code/env/texture_manager.c @@ -0,0 +1,1430 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + Copyright (C) 1995 Spencer Kimball and Peter Mattis. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * texture_manager.c: Texture manager. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from + * The GIMP (an image manipulation program) and was originally + * written by Spencer Kimball and Peter Mattis. + * + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +PRIVATE texture_t ttextures[ MAX_TEXTURES ]; +PRIVATE int numttextures; + +PRIVATE texture_t *r_notexture; // use for bad textures + +cvar_t *gl_round_down; + +int registration_sequence; +W32 texture_registration_sequence; + +extern int currentTextures[ 4 ]; +extern int currenttmu; +extern int glMaxTexSize; + +PRIVATE INLINECALL GLenum WrapToGL( TWrapMode mode ) +{ + if( mode == Repeat ) + { + return GL_REPEAT; + } + else + { + return GL_CLAMP_TO_EDGE; + } +} + +PRIVATE INLINECALL GLenum MagFilterToGL( TMagFilter MagFilter ) +{ + switch( MagFilter ) + { + case Nearest: + return GL_NEAREST; + + case Linear: + return GL_LINEAR; + + default: + break; + } + + return GL_LINEAR; +} + + + +PRIVATE INLINECALL GLenum MinFilterToGL( _boolean MipMap, TMinFilter MinFilter ) +{ + if( MipMap ) + { + switch( MinFilter ) + { + case NearestMipMapOff: + return GL_NEAREST; + + case NearestMipMapNearest: + return GL_NEAREST_MIPMAP_NEAREST; + + case NearestMipMapLinear: + return GL_NEAREST_MIPMAP_LINEAR; + + case LinearMipMapOff: + return GL_LINEAR; + + case LinearMipMapNearest: + return GL_LINEAR_MIPMAP_NEAREST; + + case LinearMipMapLinear: + return GL_LINEAR_MIPMAP_LINEAR; + + default: + break; + } + } + else + { + switch( MinFilter ) + { + case NearestMipMapOff: + case NearestMipMapNearest: + case NearestMipMapLinear: + return GL_NEAREST; + + case LinearMipMapOff: + case LinearMipMapNearest: + case LinearMipMapLinear: + return GL_LINEAR; + + default: + break; + } + } + + return GL_LINEAR; +} + + +/* +----------------------------------------------------------------------------- + Function: TM_TextureList_f -Console function to list loaded textures. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void TM_TextureList_f( void ) +{ + int i; + texture_t *image; + int texels; + const char *palstrings[ 2 ] = + { + "RGB", + "PAL" + }; + + Com_Printf( "------------------\n" ); + texels = 0; + + for( i = 0, image = ttextures ; i < numttextures ; ++i, ++image ) + { + if( image->texnum <= 0 ) + continue; + + texels += image->upload_width * image->upload_height; + + switch( image->type ) + { + case TT_Sprite: + Com_Printf( "S" ); + break; + + case TT_Wall: + Com_Printf( "W" ); + break; + + case TT_Pic: + Com_Printf( "P" ); + break; + + default: + Com_Printf( " " ); + break; + } + + Com_Printf( " %3i %3i %s: %s\n", + image->upload_width, image->upload_height, palstrings[ 0 ], image->name ); + } + + Com_Printf( "Total texel count (not counting mipmaps): %i\n", texels ); + +} + +texture_t *TM_AllocateTexture( const char *name ) { + texture_t *tex; + int i; + + assert( strlen( name ) < sizeof( tex->name ) ); + + // find a free texture_t space + for( i = 0, tex = ttextures; i < numttextures; ++i, ++tex ) + { + if( ! tex->texnum ) + { + break; + } + } + + if( i == numttextures ) + { + if( numttextures == MAX_TEXTURES ) + { + Com_DPrintf( "MAX_TEXTURES reached\n" ); + return r_notexture; + } + + numttextures++; + } + tex = &ttextures[ i ]; + memset( tex, 0, sizeof( *tex ) ); + my_strlcpy( tex->name, name, MAX_GAMEPATH ); + tex->registration_sequence = texture_registration_sequence; + + // don't let R_Bind skip the next bind call + currentTextures[ currenttmu ] = -1; + + pfglGenTextures( 1, &tex->texnum ); + pfglBindTexture( GL_TEXTURE_2D, tex->texnum ); + + return tex; +} + +/* +----------------------------------------------------------------------------- + Function: TM_LoadTexture -Load raw image into video memory. + + Parameters: + name -[in] Name of texture image. + data -[in] Raw pixel data in the format described by PixelFormat. + width -[in] Width of image in pixels. + height -[in] Height of image in pixels. + type -[in] + PixelFormat [in] + + Returns: Pointer to filled out texture_t structure. + + Notes: Any texture that was not touched on this registration sequence will be freed. +----------------------------------------------------------------------------- +*/ +PUBLIC texture_t *TM_LoadTexture( const char *name, W8 *data, int width, int height, texturetype_t type, W16 bytes ) +{ + texture_t *tex; + W8 *scaled; + W16 scaled_width, scaled_height; + + tex = TM_AllocateTexture( name ); + + tex->width = width; + tex->height = height; + tex->type = type; + tex->bytes = bytes; + + switch( type ) + { + case TT_Pic: + tex->MipMap = false; + tex->WrapS = Clamp; + tex->WrapT = Clamp; + tex->MinFilter = Nearest; + tex->MagFilter = NearestMipMapOff; + break; + + case TT_Wall: + tex->MipMap = true; + tex->WrapS = Repeat; + tex->WrapT = Repeat; +// tex->MinFilter = LinearMipMapLinear; + tex->MinFilter = LinearMipMapNearest; + tex->MagFilter = Linear; + break; + + default: + tex->WrapS = Repeat; + tex->WrapT = Repeat; + tex->MinFilter = Nearest; + tex->MagFilter = NearestMipMapOff; + break; + } + + + for( scaled_width = 1 ; scaled_width < tex->width ; scaled_width <<= 1 ) + { + ; + } + + if( gl_round_down->value && scaled_width > tex->width && tex->MipMap ) + { + scaled_width >>= 1; + } + + for( scaled_height = 1 ; scaled_height < tex->height ; scaled_height <<= 1 ) + { + ; + } + + if( gl_round_down->value && scaled_height > tex->height && tex->MipMap ) + { + scaled_height >>= 1; + } + + // let people sample down the world textures for speed + if( tex->MipMap ) + { + scaled_width >>= (int)gl_picmip->value; + scaled_height >>= (int)gl_picmip->value; + } + + // don't ever bother with > glMaxTexSize textures + if( scaled_width > glMaxTexSize ) + { + scaled_width = glMaxTexSize; + } + if( scaled_height > glMaxTexSize ) + { + scaled_height = glMaxTexSize; + } + + if( scaled_width < 1 ) + { + scaled_width = 1; + } + if( scaled_height < 1 ) + { + scaled_height = 1; + } + + tex->upload_width = scaled_width; + tex->upload_height = scaled_height; + + if( scaled_width == tex->width && scaled_height == tex->height ) + { + scaled = data; + } + else + { + scaled = Z_Malloc( scaled_width * scaled_height * tex->bytes ); + TM_ResampleTexture( data, tex->width, tex->height, scaled, scaled_width, scaled_height, tex->bytes, INTERPOLATION_NONE ); + } + + { + // upload base image + GLenum internalFormat[] = { GL_LUMINANCE, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA }; +#if 0 + GLenum externalFormat[] = { GL_LUMINANCE, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_5_5_1 }; + pfglTexImage2D( GL_TEXTURE_2D, 0, internalFormat[ tex->bytes ], scaled_width, scaled_height, 0, tex->bytes == 4 ? GL_RGBA : GL_RGB, externalFormat[ tex->bytes ], scaled ); +#else + pfglTexImage2D( GL_TEXTURE_2D, 0, internalFormat[ tex->bytes ], scaled_width, scaled_height, 0, tex->bytes == 4 ? GL_RGBA : GL_RGB, GL_UNSIGNED_BYTE, scaled ); +#endif + + + // upload mipmaps if required +#ifdef IPHONE + glGenerateMipmapOES( GL_TEXTURE_2D ); +#else + if( tex->MipMap ) + { + int miplevel = 0; + + while( TM_MipMap( scaled, &scaled_width, &scaled_height, tex->bytes ) ) + { + pfglTexImage2D( GL_TEXTURE_2D, ++miplevel, internalFormat[ tex->bytes ], scaled_width, scaled_height, 0, tex->bytes == 4 ? GL_RGBA : GL_RGB, GL_UNSIGNED_BYTE, scaled ); + } + } +#endif + } + + if ( scaled != data ) { + Z_Free( scaled ); + } + + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, WrapToGL( tex->WrapS ) ); + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, WrapToGL( tex->WrapT ) ); + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, MinFilterToGL( tex->MipMap, tex->MinFilter ) ); + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, MagFilterToGL( tex->MagFilter ) ); + +#ifdef IPHONE + if ( type == TT_Wall ) { + pfglTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 2.0f ); + } else { + pfglTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 0 ); + } +#endif + + + return tex; +} + + +/* +----------------------------------------------------------------------------- + Function: TM_FreeUnusedTextures -Free unused textures. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: Any texture that was not touched on this registration sequence will be freed. +----------------------------------------------------------------------------- +*/ +PUBLIC void TM_FreeUnusedTextures( void ) +{ +#if 0 + int i; + texture_t *tex; + + // never free r_notexture texture + r_notexture->registration_sequence = texture_registration_sequence; + + for( i = 0, tex = ttextures ; i < numttextures ; ++i, ++tex ) + { + if( tex->registration_sequence == texture_registration_sequence ) + continue; // used this sequence + + if( ! tex->registration_sequence ) + continue; // free image_t slot + + if( tex->type == TT_Pic ) + continue; // don't free pics + + // free texture + R_DeleteTexture( tex->texnum ); + memset( tex, 0, sizeof( *tex ) ); + } +#endif +} + + +/* +----------------------------------------------------------------------------- + Function: TM_FindTexture -Find texture. + + Parameters: name -[in] Name of the texture to find. + type -[in] Type of texture (see texturetype_t). + + Returns: r_notexture if the texture is not found, otherwise it will + return a valid texture_t structure. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC texture_t *TM_FindTexture( const char *name, texturetype_t type ) +{ + texture_t *tex; + int i, len; + W8 *data; /* raw texture data */ + W16 width, height; /* width, height of texture */ + W16 bytes; + char digested[1024]; + filehandle_t *fh; + + if( ! name || ! *name ) + { + return r_notexture; + } + + // Check for file extension + len = strlen( name ); + if( len < 5 ) + { + return r_notexture; + } + + // look for it in the texture cache + for( i = 0, tex = ttextures; i < numttextures; ++i, ++tex ) + { + if( ! strcmp( name, tex->name ) ) + { + tex->registration_sequence = texture_registration_sequence; + return tex; + } + } + + // + // load the texture from disk + // + data = NULL; + if( strcmp( name + len - 4, ".tga" ) ) { + return r_notexture; + } + +// Com_Printf( "Loading texture: %s\n", name ); + + // look for the pre-digested 5551 version + strcpy( digested, name ); + strcpy( digested + len - 4, ".5551" ); + fh = FS_OpenFile( digested, 0 ); + if ( fh ) { + typedef struct { + int internalFormat; + int externalFormat; + int bpp; + } formatInfo_t; + + static formatInfo_t formatInfo[7] = { +// the wall exporter always saved as 5551 even when there was no alpha + { GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, 16 }, + { GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, 16 }, + { GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 16 }, + { GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG, GL_UNSIGNED_BYTE, 4 }, + { GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, GL_UNSIGNED_BYTE, 4 }, + { GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG, GL_UNSIGNED_BYTE, 2 }, + { GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG, GL_UNSIGNED_BYTE, 2 }, + }; + + + picHeader_t *ph = (picHeader_t *)fh->filedata; + + int noMips = 0; + formatInfo_t *fi; + if ( ph->picFormat & PF_NO_MIPS ) { + noMips = 1; + fi = &formatInfo[ph->picFormat&~PF_NO_MIPS]; + } else { + fi = &formatInfo[ph->picFormat]; + } + int w = ph->uploadWidth; + int h = ph->uploadHeight; + int l = 0; + texture_t *tx = TM_AllocateTexture( name ); + tx->width = ph->srcWidth; + tx->height = ph->srcHeight; + tx->upload_width = w; + tx->upload_height = h; + tx->header = *ph; + tx->maxS = (float)ph->srcWidth / ph->uploadWidth; + tx->maxT = (float)ph->srcHeight / ph->uploadHeight; + unsigned char *s = (unsigned char *)(ph+1); + while( 1 ) { + int size = (w*h*fi->bpp)/8; + if ( fi->bpp < 16 ) { + if ( size < 32 ) { + // minimum PVRTC size + size = 32; + } + qglCompressedTexImage2D( GL_TEXTURE_2D, l, fi->internalFormat, w, h, 0, + size, s ); + } else { + qglTexImage2D( GL_TEXTURE_2D, l, fi->internalFormat, w, h, 0, + fi->internalFormat, fi->externalFormat, s ); + } + if ( w == 1 && h == 1 ) { + break; + } + if ( noMips ) { + break; + } + l++; + s += size; + w >>= 1; + if ( w == 0 ) { + w = 1; + } + h >>= 1; + if ( h == 0 ) { + h = 1; + } + } + FS_CloseFile( fh ); + if ( noMips ) { + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); + } else { + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR ); + } + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); + + if ( type == TT_Wall ) { + pfglTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 2.0f ); + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); + } else { + pfglTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 0 ); + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); + } + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); + return tx; + } + + // load a normal TGA + LoadTGA( name, &data, &width, &height, &bytes ); + if ( data ) { + tex = TM_LoadTexture( name, data, width, height, type, bytes ); + MM_FREE( data ); + tex->maxS = tex->maxT = 1.0f; + return tex; + } + + // load a jpg + { + int jpgSize = 0; + W8 *jpgData; + // try jpeg if no tga exists + strcpy( digested, name ); + strcpy( digested + len - 4, ".jpg" ); + fh = FS_OpenFile( digested, 0 ); + if ( fh == NULL ) { + Com_Printf( "Failed to find texture %s\n", name ); + return r_notexture; + } + jpgSize = FS_GetFileSize( fh ); + jpgData = fh->ptrStart; + + SysIPhoneLoadJPG( jpgData, jpgSize, &data, &width, &height, &bytes ); + FS_CloseFile( fh ); + + if ( ! data ) { + free( jpgData ); + return r_notexture; + } + tex = TM_LoadTexture( name, data, width, height, type, bytes ); + MM_FREE( data ); + tex->maxS = tex->maxT = 1.0f; + return tex; + } + + return NULL; +} + +/* +----------------------------------------------------------------------------- + Function: TM_GetTextureSize -Find texture. + + Parameters:width -[out] Width of texture. + height -[out] Height of texture. + name -[in] Name of the texture to get dimensions of. + + + Returns: Nothing. + + Notes: If texture is not found, width and height are -1. +----------------------------------------------------------------------------- +*/ +PUBLIC void TM_GetTextureSize( SW32 *width, SW32 *height, const char *name ) +{ + texture_t *tex; + + tex = TM_FindTexture( name, TT_Pic ); + if( ! tex ) + { + *width = *height = -1; + return; + } + + *width = tex->width; + *height = tex->height; +} + + + + + + + +/* Note: cubic function no longer clips result */ +PRIVATE INLINECALL double +cubic (double dx, + int jm1, + int j, + int jp1, + int jp2) +{ + /* Catmull-Rom - not bad */ + return (double) ((( ( - jm1 + 3 * j - 3 * jp1 + jp2 ) * dx + + ( 2 * jm1 - 5 * j + 4 * jp1 - jp2 ) ) * dx + + ( - jm1 + jp1 ) ) * dx + (j + j) ) / 2.0; +} + +_boolean pixel_region_has_alpha( int bytes ) +{ + if( bytes == 2 || bytes == 4 ) + { + return true; + } + else + { + return false; + } +} + + +PRIVATE void +expand_line( double *dest, + double *src, + int bytes, + int old_width, + int width ) +{ + double ratio; + int x,b; + int src_col; + double frac; + double *s; + + ratio = old_width / (double) width; + + /* we can overflow src's boundaries, so we expect our caller to have + allocated extra space for us to do so safely (see scale_region ()) */ + + /* this could be optimized much more by precalculating the coefficients for + each x */ + + for( x = 0; x < width; ++x ) + { + src_col = ((int) (x * ratio + 2.0 - 0.5)) - 2; + /* +2, -2 is there because (int) rounds towards 0 and we need + to round down */ + frac = (x * ratio - 0.5) - src_col; + s = &src[ src_col * bytes ]; + for( b = 0 ; b < bytes ; b++ ) + dest[ b ] = cubic( frac, (int)s[ b - bytes ], (int)s[ b ], (int)s[ b + bytes ], (int)s[ b + bytes * 2 ] ); + + dest += bytes; + } + +} + + +PRIVATE void +shrink_line( double *dest, + double *src, + int bytes, + int old_width, + int width ) +{ + int x; + int b; + double *srcp; + double *destp; + double accum[4]; + double slice; + const double avg_ratio = (double) width / old_width; + const double inv_width = 1.0 / width; + int slicepos; /* slice position relative to width */ + +#if 0 + + Com_DPrintf( "shrink_line bytes=%d old_width=%d width=%d interp=%d " + "avg_ratio=%f\n", + bytes, old_width, width, interp, avg_ratio); + +#endif + +// g_return_if_fail( bytes <= 4 ); + + /* This algorithm calculates the weighted average of pixel data that + each output pixel must receive, taking into account that it always + scales down, i.e. there's always more than one input pixel per each + output pixel. */ + + srcp = src; + destp = dest; + + slicepos = 0; + + /* Initialize accum to the first pixel slice. As there is no partial + pixel at start, that value is 0. The source data is interleaved, so + we maintain BYTES accumulators at the same time to deal with that + many channels simultaneously. */ + for( b = 0 ; b < bytes ; ++b ) + { + accum[ b ] = 0.0; + } + + for( x = 0 ; x < width ; x++ ) + { + /* Accumulate whole pixels. */ + do + { + for( b = 0 ; b < bytes ; b++ ) + accum[ b ] += *srcp++; + + slicepos += width; + } + while( slicepos < old_width ); + slicepos -= old_width; + + if( ! (slicepos < width)) + Com_Printf( "Assertion (slicepos < width) failed. Please report.\n" ); + + if( slicepos == 0 ) + { + /* Simplest case: we have reached a whole pixel boundary. Store + the average value per channel and reset the accumulators for + the next round. + + The main reason to treat this case separately is to avoid an + access to out-of-bounds memory for the first pixel. */ + for (b = 0; b < bytes; b++) + { + *destp++ = accum[b] * avg_ratio; + accum[b] = 0.0; + } + } + else + { + for( b = 0; b < bytes; b++ ) + { + /* We have accumulated a whole pixel per channel where just a + slice of it was needed. Subtract now the previous pixel's + extra slice. */ + slice = srcp[- bytes + b] * slicepos * inv_width; + *destp++ = (accum[b] - slice) * avg_ratio; + + /* That slice is the initial value for the next round. */ + accum[b] = slice; + } + } + } + + /* Sanity check: srcp should point to the next-to-last position, and + slicepos should be zero. */ + if( ! (srcp - src == old_width * bytes && slicepos == 0) ) + { + Com_Printf ("Assertion (srcp - src == old_width * bytes && slicepos == 0)" + " failed. Please report."); + } +} + +PRIVATE void pixel_region_get_row( W8 *src, int y, int width, W8 *tmp_src, int BytesPerPixel ) +{ + int i; + unsigned long k = 0; + unsigned char *scanline = tmp_src; + unsigned char *ptr = src; + + for( i = 0 ; i < (width * BytesPerPixel) ; ++i ) + { + scanline[ k++ ] = ptr[ y * width * BytesPerPixel + i ]; + } +} + +PRIVATE void pixel_region_set_row( W8 *dest, + int BytesPerPixel, + int y, + int width, + W8 *data ) +{ + int i; + unsigned long k = 0; + unsigned char *scanline = dest; + unsigned char *ptr = data; + + for( i = 0 ; i < (width * BytesPerPixel) ; ++i ) + { + scanline[ y * width * BytesPerPixel + i ] = ptr[ k++ ]; + } +} + +PRIVATE void +get_premultiplied_double_row( W8 *in, + int PRbytes, + int x, + int y, + int w, + double *row, + W8 *tmp_src, + int n ) +{ + int b; + int bytes = PRbytes; + + pixel_region_get_row( in, y, w, tmp_src, bytes ); + + if( pixel_region_has_alpha( bytes ) ) + { + /* premultiply the alpha into the double array */ + double *irow = row; + int alpha = bytes - 1; + double mod_alpha; + + for( x = 0; x < w; ++x ) + { + mod_alpha = tmp_src[ alpha ] / 255.0; + for( b = 0; b < alpha; ++b ) + { + irow[ b ] = mod_alpha * tmp_src[ b ]; + } + + irow[ b ] = tmp_src[ alpha ]; + irow += bytes; + tmp_src += bytes; + } + } + else /* no alpha */ + { + for( x = 0; x < w * bytes; ++x ) + { + row[ x ] = tmp_src[ x ]; + } + } + + /* set the off edge pixels to their nearest neighbor */ + for( b = 0; b < 2 * bytes; b++ ) + { + row[ b - 2 * bytes ] = row[ b % bytes ]; + } + + for( b = 0; b < bytes * 2; b++ ) + { + row[ b + w * bytes ] = row[ (w - 1) * bytes + b % bytes ]; + } +} + + +PRIVATE INLINECALL void +rotate_pointers( W8 **p, W32 n ) +{ + W32 i; + W8 *tmp; + + tmp = p[ 0 ]; + for( i = 0 ; i < n-1 ; i++ ) + { + p[ i ] = p[ i + 1 ]; + } + + p[ i ] = tmp; +} + +PRIVATE void +get_scaled_row( double **src, + int y, + int new_width, + double *row, + W8 *src_tmp, + W8 *srcPR, + int old_width, + int old_height, + int bytes ) +{ + /* get the necesary lines from the source image, scale them, + and put them into src[] */ + rotate_pointers( (unsigned char **)src, 4 ); + + if( y < 0 ) + { + y = 0; + } + + if( y < old_height ) + { + get_premultiplied_double_row( srcPR, bytes, 0, y, old_width, + row, src_tmp, 1 ); + if( new_width > old_width ) + { + expand_line( src[3], row, bytes, old_width, new_width ); + } + else if( old_width > new_width ) + { + shrink_line( src[3], row, bytes, old_width, new_width ); + } + else /* no scailing needed */ + { + memcpy( src[3], row, sizeof( double ) * new_width * bytes ); + } + } + else + { + memcpy( src[3], src[2], sizeof( double ) * new_width * bytes ); + } +} + + +/* +non-interpolating scale_region. + */ +PRIVATE void +scale_region_no_resample( W8 *in, int inwidth, int inheight, + W8 *out, int outwidth, int outheight, char bytes ) +{ + int *x_src_offsets; + int *y_src_offsets; + W8 *src; + W8 *dest; + int width, height, orig_width, orig_height; + int last_src_y; + int row_bytes; + int x, y, b; + + + orig_width = inwidth; + orig_height = inheight; + + width = outwidth; + height = outheight; + + + /* the data pointers... */ + x_src_offsets = (int *) MM_MALLOC( sizeof( int ) * width * bytes ); + y_src_offsets = (int *) MM_MALLOC( sizeof( int ) * height ); + src = (unsigned char *) MM_MALLOC( orig_width * bytes); + dest = (unsigned char *) MM_MALLOC( width * bytes); + + /* pre-calc the scale tables */ + for( b = 0; b < bytes; b++ ) + { + for( x = 0; x < width; x++ ) + { + x_src_offsets[ b + x * bytes ] = + b + bytes * ((x * orig_width + orig_width / 2) / width); + } + } + + for( y = 0; y < height; y++ ) + { + y_src_offsets[ y ] = (y * orig_height + orig_height / 2) / height; + } + + /* do the scaling */ + row_bytes = width * bytes; + last_src_y = -1; + for( y = 0; y < height; y++ ) + { + /* if the source of this line was the same as the source + * of the last line, there's no point in re-rescaling. + */ + if( y_src_offsets[ y ] != last_src_y ) + { + pixel_region_get_row( in, y_src_offsets[ y ], orig_width, src, bytes ); + //pixel_region_get_row( srcPR, 0, y_src_offsets[y], orig_width, src, 1 ); + for( x = 0 ; x < row_bytes ; x++ ) + { + dest[ x ] = src[ x_src_offsets[ x ] ]; + } + last_src_y = y_src_offsets[ y ]; + } + + pixel_region_set_row( out, bytes, y, width, dest ); + } + + MM_FREE( x_src_offsets ); + MM_FREE( y_src_offsets ); + MM_FREE( src ); + MM_FREE( dest ); +} + + +/* +----------------------------------------------------------------------------- + Function: TM_ResampleTexture -Resize texture. + + Parameters: + in -[in] Original texture data. + inwidth -[in] Original width of texture in pixels. + inheight -[in] Original height of texture in pixels. + out -[in/out] Resized texture data. + outwidth -[in] New width of texture in pixels. + outheight -[in] New height of texture in pixels. + bytes -[in] Number of bytes per pixel. + interpolation -[in] see InterpolationType + + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void TM_ResampleTexture( W8 *in, int inwidth, int inheight, W8 *out, int outwidth, int outheight, W8 bytes, InterpolationType interpolation ) +{ + double *src[ 4 ]; + W8 *src_tmp; + W8 *dest; + double *row, *accum; + int b; + int width, height; + int orig_width, orig_height; + double y_rat; + int i; + int old_y = -4; + int new_y; + int x, y; + + + if( interpolation == INTERPOLATION_NONE ) + { + scale_region_no_resample( in, inwidth, inheight, out, outwidth, outheight, bytes ); + return; + } + + + orig_width = inwidth; + orig_height = inheight; + + width = outwidth; + height = outheight; + +#if 0 + + Com_DPrintf( "scale_region: (%d x %d) -> (%d x %d)\n", + orig_width, orig_height, width, height ); + +#endif + + /* find the ratios of old y to new y */ + y_rat = (double) orig_height / (double) height; + + + /* the data pointers... */ + for( i = 0 ; i < 4 ; ++i ) + { + src[ i ] = (double *) MM_MALLOC( sizeof( double ) * width * bytes ); + } + + dest = (PW8) MM_MALLOC( width * bytes); + + src_tmp = (PW8) MM_MALLOC( orig_width * bytes ); + + /* offset the row pointer by 2*bytes so the range of the array + is [-2*bytes] to [(orig_width + 2)*bytes] */ + row = (double *) MM_MALLOC( sizeof( double ) * (orig_width + 2 * 2) * bytes ); + row += bytes * 2; + + accum = (double *) MM_MALLOC( sizeof( double ) * width * bytes ); + + + /* Scale the selected region */ + + for( y = 0 ; y < height ; y++ ) + { + + if( height < orig_height ) + { + int max; + double frac; + const double inv_ratio = 1.0 / y_rat; + + if( y == 0 ) /* load the first row if this is the first time through */ + { + get_scaled_row( &src[0], 0, width, row, src_tmp, in, orig_width, orig_height, bytes ); + } + + new_y = (int)(y * y_rat); + frac = 1.0 - (y * y_rat - new_y); + for( x = 0 ; x < width * bytes; ++x ) + { + accum[x] = src[3][x] * frac; + } + + max = (int) ((y + 1) * y_rat) - new_y - 1; + + get_scaled_row( &src[ 0 ], ++new_y, width, row, src_tmp, in, orig_width, orig_height, bytes ); + + while( max > 0 ) + { + for( x = 0 ; x < width * bytes ; ++x ) + { + accum[x] += src[ 3 ][ x ]; + } + + get_scaled_row( &src[ 0 ], ++new_y, width, row, src_tmp, in, orig_width, orig_height, bytes ); + max--; + } + + frac = (y + 1) * y_rat - ((int) ((y + 1) * y_rat)); + for( x = 0 ; x < width * bytes ; ++x ) + { + accum[ x ] += frac * src[ 3 ][ x ]; + accum[ x ] *= inv_ratio; + } + } + else if( height > orig_height ) + { + double p0, p1, p2, p3; + double dy; + + new_y = (int)floor( y * y_rat - 0.5 ); + + while( old_y <= new_y ) + { + /* get the necesary lines from the source image, scale them, + and put them into src[] */ + get_scaled_row( &src[ 0 ], old_y + 2, width, row, src_tmp, in, orig_width, orig_height, bytes ); + old_y++; + } + + dy = (y * y_rat - 0.5) - new_y; + + p0 = cubic( dy, 1, 0, 0, 0 ); + p1 = cubic( dy, 0, 1, 0, 0 ); + p2 = cubic( dy, 0, 0, 1, 0 ); + p3 = cubic( dy, 0, 0, 0, 1 ); + + for( x = 0 ; x < width * bytes ; ++x ) + { + accum[ x ] = ( p0 * src[ 0 ][ x ] + p1 * src[ 1 ][ x ] + + p2 * src[ 2 ][ x ] + p3 * src[ 3 ][ x ] ); + } + + + } + else /* height == orig_height */ + { + get_scaled_row( &src[ 0 ], y, width, row, src_tmp, in, orig_width, orig_height, bytes ); + memcpy( accum, src[ 3 ], sizeof( double ) * width * bytes ); + } + + if( pixel_region_has_alpha( bytes ) ) + { + /* unmultiply the alpha */ + double inv_alpha; + double *p = accum; + int alpha = bytes - 1; + int result; + W8 *d = dest; + + for( x = 0 ; x < width ; ++x ) + { + if( p[ alpha ] > 0.001 ) + { + inv_alpha = 255.0 / p[ alpha ]; + for( b = 0 ; b < alpha ; b++ ) + { + result = RINT( inv_alpha * p[ b ] ); + if( result < 0 ) + { + d[ b ] = 0; + } + else if( result > 255 ) + { + d[ b ] = 255; + } + else + { + d[ b ] = result; + } + } + result = RINT( p[ alpha ] ); + if( result > 255 ) + { + d[ alpha ] = 255; + } + else + { + d[ alpha ] = result; + } + } + else /* alpha <= 0 */ + { + for( b = 0 ; b <= alpha ; ++b ) + { + d[ b ] = 0; + } + } + + d += bytes; + p += bytes; + } + } + else + { + int w = width * bytes; + + for( x = 0 ; x < w ; ++x ) + { + if( accum[ x ] < 0.0 ) + { + dest[ x ] = 0; + } + else if( accum[ x ] > 255.0 ) + { + dest[ x ] = 255; + } + else + { + dest[ x ] = RINT( accum[ x ] ); + } + } + } + pixel_region_set_row( out, bytes, y, width, dest ); + } + + /* free up temporary arrays */ + MM_FREE( accum ); + + for( i = 0 ; i < 4 ; ++i ) + { + MM_FREE( src[ i ] ); + } + + MM_FREE( src_tmp ); + MM_FREE( dest ); + + row -= 2 * bytes; + MM_FREE( row ); +} + + +/* +----------------------------------------------------------------------------- + Function: TM_MipMap -Generate MipMap. + + Parameters: + in -[in/out] Texture data. + width -[in] Width of texture in pixels. + height -[in] Height of texture in pixels. + + Returns: Nothing. + + Notes: Operates in place, quartering the size of the texture. +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean TM_MipMap( PW8 in, W16 *width, W16 *height, W16 bytes ) +{ + W16 new_width, new_height; + + if( *width == 1 && *height == 1 ) + { + return false; + } + + + if( *width < 2 ) + { + new_width = 1; + } + else + { + new_width = *width >> 1; + } + + if( *height < 2 ) + { + new_height = 1; + } + else + { + new_height = *height >> 1; + } + + TM_ResampleTexture( in, *width, *height, in, new_width, new_height, bytes, INTERPOLATION_CUBIC ); + + *width = new_width; + *height = new_height; + + return true; +} + + +/* +----------------------------------------------------------------------------- + Function: TM_Init -Initialize Texture Manager. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: Generates default texture. +----------------------------------------------------------------------------- +*/ +PUBLIC void TM_Init( void ) +{ + W8 *ptr; + W8 *data; + int x, y; + + gl_round_down = Cvar_Get ("gl_round_down", "1", CVAR_INIT); + + texture_registration_sequence = 1; + +// create a checkerboard texture + data = MM_MALLOC( 16 * 16 * 4 ); + for( y = 0; y < 16; ++y ) + { + for( x = 0; x < 16; ++x ) + { + ptr = &data[ (y * 16 + x) * 4 ]; + if( (y < 8) ^ (x < 8) ) + { + ptr[ 0 ] = ptr[ 1 ] = ptr[ 2 ] = 0x00; + ptr[ 3 ] = 0xFF; + } + else + { + ptr[ 0 ] = ptr[ 1 ] = ptr[ 2 ] = 0xFF; + ptr[ 3 ] = 0xFF; + } + } + } + + r_notexture = TM_LoadTexture( "***r_notexture***", data, 16, 16, TT_Pic, 4 ); + + MM_FREE( data ); + + + Cmd_AddCommand( "listTextures", TM_TextureList_f ); + + +} + +/* +----------------------------------------------------------------------------- + Function: TM_Shutdown -Shutdown Texture Manager. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void TM_Shutdown( void ) +{ + int i; + texture_t *tex; + + for( i = 0, tex = ttextures; i < numttextures; ++i, ++tex ) + { + if( ! tex->registration_sequence ) + { + continue; // free image_t slot + } + + // free texture + R_DeleteTexture( tex->texnum ); + memset( tex, 0, sizeof( *tex ) ); + } + + Cmd_RemoveCommand( "listTextures" ); +} + diff --git a/wolf3d/code/env/texture_manager.h b/wolf3d/code/env/texture_manager.h new file mode 100644 index 0000000..576f02b --- /dev/null +++ b/wolf3d/code/env/texture_manager.h @@ -0,0 +1,192 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + Copyright (C) 1995 Spencer Kimball and Peter Mattis. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * texture_manager.c: Texture manager. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from + * The GIMP (an image manipulation program) and was originally + * written by Spencer Kimball and Peter Mattis. + * + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#ifndef __TEXTURE_MANAGER_H__ +#define __TEXTURE_MANAGER_H__ + +#define MAX_TEXTURES 1024 + + +typedef enum +{ + TT_Sprite, + TT_Wall, + TT_Pic, + + TextureTypeCount + +} texturetype_t; + +typedef enum +{ + Repeat = 0, + Clamp, + + WrapModeCount // Number of Wrap modes + +} TWrapMode; + +typedef enum +{ + Auto = 0, + RGBA8888, + RGBA4444, + RGBA5551, + RGB888, + RGB565, + DXTC1, + DXTC1Alpha, + DXTC3, + DXTC5, + Luminance, + Alpha, + AlphaLuminance, + DsDt, + + UpImageFormatCount // Number of Upload formats + +} TTexFormat; + +typedef enum +{ + Nearest = 0, + Linear, + + MagFilterCount // Number of Magnification filters + +} TMagFilter; + +typedef enum +{ + NearestMipMapOff = 0, + NearestMipMapNearest, + NearestMipMapLinear, + LinearMipMapOff, + LinearMipMapNearest, + LinearMipMapLinear, + + MinFilterCount // Number of Min filters + +} TMinFilter; + +typedef enum { + PF_565, + PF_5551, + PF_4444, + PF_PVR4, + PF_PVR4A, + PF_PVR2, + PF_PVR2A +} picFormat_t; + +#define PF_NO_MIPS 256 + +// this is the header from the pre-digested binary files with sprite bounds +typedef struct { + int picFormat; + int srcWidth; + int srcHeight; + int uploadWidth; + int uploadHeight; + int numBounds; + int bounds[2][2][2]; +} picHeader_t; + + +typedef struct texture_s +{ + _boolean MipMap; + _boolean isTextureCube; + TTexFormat UploadFormat; + TWrapMode WrapS; + TWrapMode WrapT; + TWrapMode WrapR; + TMinFilter MinFilter; + TMagFilter MagFilter; + W32 registration_sequence; // 0 = free + W16 width, height; + W16 upload_width, upload_height; + + W16 bytes; + texturetype_t type; + char name[ MAX_GAMEPATH ]; // game path, including extension + + unsigned int texnum; + picHeader_t header; + float maxS, maxT; // header.srcWidth / header.uploadWidth for nonPOT textures +} texture_t; + + + +typedef enum +{ + + INTERPOLATION_NONE, /* None (Fastest) */ + INTERPOLATION_LINEAR, /* Linear */ + INTERPOLATION_CUBIC /* Cubic (Best) */ + +} InterpolationType; + + +extern W32 texture_registration_sequence; + + + +extern void TM_Init( void ); +extern void TM_Shutdown( void ); + + +extern _boolean TM_MipMap( PW8 in, W16 *width, W16 *height, W16 bytes ); + +extern texture_t *wallTextures[1000]; +extern texture_t *spriteTextures[1000]; + +extern texture_t *TM_FindTexture( const char *name, texturetype_t type ); +extern texture_t *TM_AllocateTexture( const char *name ); + +extern void TM_GetTextureSize( SW32 *width, SW32 *height, const char *name ); + +extern void TM_ResampleTexture( PW8 in, int inwidth, int inheight, PW8 out, int outwidth, int outheight, W8 bytes, InterpolationType interpolation ); + +extern void TM_FreeUnusedTextures( void ); + + + + + +#endif /* __TEXTURE_MANAGER_H__ */ diff --git a/wolf3d/code/env/tga.c b/wolf3d/code/env/tga.c new file mode 100644 index 0000000..82312db --- /dev/null +++ b/wolf3d/code/env/tga.c @@ -0,0 +1,783 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1995 Spencer Kimball and Peter Mattis + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * tga.h: Handle Targa file format. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from The GIMP -- an image manipulation + * program, and was originally written by Spencer Kimball and Peter Mattis. + * + */ + +/* + Notes: + +*/ + +#include "../wolfiphone.h" + + +#define TGA_HEADER_SIZE 18 + +#ifndef IPHONE +PRIVATE W8 *p_buf; // current pointer to tga data block +#endif + + + /* TRUEVISION-XFILE magic signature string */ +static W8 magic[ 18 ] = +{ + 0x54, 0x52, 0x55, 0x45, 0x56, 0x49, 0x53, 0x49, 0x4f, + 0x4e, 0x2d, 0x58, 0x46, 0x49, 0x4c, 0x45, 0x2e, 0x0 +}; + + +typedef struct _TargaHeader +{ + W8 idLength; + W8 colorMapType; + + W8 imageType; +/* Known image types. */ +#define TGA_TYPE_MAPPED 1 +#define TGA_TYPE_COLOR 2 +#define TGA_TYPE_GRAY 3 + + W8 imageCompression; +/* Only known compression is RLE */ +#define TGA_COMP_NONE 0 +#define TGA_COMP_RLE 1 + +/* Color Map Specification. */ + W16 colorMapIndex; + W16 colorMapLength; + W8 colorMapSize; + +/* Image Specification. */ + W16 xOrigin; + W16 yOrigin; + + W16 width; + W16 height; + + W8 bpp; + W8 bytes; + + W8 alphaBits; + W8 flipHoriz; + W8 flipVert; + +} TargaHeader; + + + +PRIVATE void flip_line( W8 *buffer, TargaHeader *info ) +{ + W8 temp; + W8 *alt; + SW32 x, s; + + alt = buffer + (info->bytes * (info->width - 1)); + + for( x = 0; x * 2 <= info->width; ++x ) + { + for( s = 0; s < info->bytes; ++s ) + { + temp = buffer[ s ]; + buffer[ s ] = alt[ s ]; + alt[ s ] = temp; + } + + buffer += info->bytes; + alt -= info->bytes; + } +} + +PRIVATE void upsample( W8 *dest, W8 *src, + W32 width, W32 bytes, W8 alphaBits ) +{ + W32 x; + + for( x = 0 ; x < width ; ++x ) + { + dest[0] = ((src[1] << 1) & 0xf8); + dest[0] += (dest[0] >> 5); + + dest[1] = ((src[0] & 0xe0) >> 2) + ((src[1] & 0x03) << 6); + dest[1] += (dest[1] >> 5); + + dest[2] = ((src[0] << 3) & 0xf8); + dest[2] += (dest[2] >> 5); + + switch( alphaBits ) + { + case 1: + dest[ 3 ] = (src[ 1 ] & 0x80) ? 0 : 255; + dest += 4; + break; + + default: + dest += 3; + } + + src += bytes; + } +} + +PRIVATE void bgr2rgb( W8 *dest, W8 *src, + W32 width, W32 bytes, W32 alpha ) +{ + W32 x; + + if( alpha ) + { + for( x = 0 ; x < width ; ++x ) + { + *(dest++) = src[2]; + *(dest++) = src[1]; + *(dest++) = src[0]; + + *(dest++) = src[3]; + + src += bytes; + } + } + else + { + for( x = 0 ; x < width ; ++x ) + { + *(dest++) = src[2]; + *(dest++) = src[1]; + *(dest++) = src[0]; + + src += bytes; + } + } + + +} + +PRIVATE SW32 rle_read( filehandle_t *fp, W8 *buffer, + TargaHeader *info ) +{ + static SW32 repeat = 0; + static SW32 direct = 0; + static W8 sample[ 4 ]; + SW32 head; + W8 temphead; + SW32 x, k; + + for( x = 0; x < info->width; ++x ) + { + if( repeat == 0 && direct == 0 ) + { + FS_ReadFile( &temphead, 1, 1, fp ); + head = temphead; + + if( head >= 128 ) + { + repeat = head - 127; + + if( FS_ReadFile( sample, info->bytes, 1, fp ) < 1 ) + { + return EOF; + } + } + else + { + direct = head + 1; + } + } + + if( repeat > 0 ) + { + for( k = 0 ; k < info->bytes ; ++k ) + { + buffer[ k ] = sample[ k ]; + } + + repeat--; + } + else /* direct > 0 */ + { + if( FS_ReadFile( buffer, info->bytes, 1, fp ) < 1 ) + { + return EOF; + } + + direct--; + } + + buffer += info->bytes; + } + + return 0; +} + + +PRIVATE void read_line( filehandle_t *fp, + W8 *row, + W8 *buffer, + TargaHeader *info ) +{ + if( info->imageCompression == TGA_COMP_RLE ) + { + if( rle_read( fp, buffer, info ) == EOF ) + { + return; + } + } + else + { + FS_ReadFile( buffer, info->bytes, info->width, fp ); + } + + if( info->flipHoriz ) + { + flip_line( buffer, info ); + } + + if( info->imageType == TGA_TYPE_COLOR ) + { + if( info->bpp == 16 || info->bpp == 15 ) + { + upsample( row, buffer, info->width, info->bytes, info->alphaBits ); + } + else + { + bgr2rgb( row, buffer, info->width, info->bytes, info->bytes == 4 ? 1 : 0 ); + } + } + else + { + memcpy( row, buffer, info->width * info->bpp ); + } +} + + + +PUBLIC void LoadTGA( const char *filename, W8 **pic, W16 *width, W16 *height, W16 *bytes ) +{ + TargaHeader targa_header; + W8 header[ 18 ]; + W8 footer[ 26 ]; + W8 extension[ 495 ]; + W32 cmap_bytes; + SW32 offset; + W8 tga_cmap[4 * 256], gimp_cmap[3 * 256]; + W8 *buffer, *data, *row; + int i; + SW32 datalength; + filehandle_t *hFile; + + + + *pic = NULL; + +// +// Load the file +// + hFile = FS_OpenFile( filename, 0 ); + if( ! hFile ) + { + Com_DPrintf( "Could not open (%s) for reading\n", filename ); + + goto TGALOADFAILED; + } + + datalength = FS_GetFileSize( hFile ); + + if( ! FS_FileSeek( hFile, -26L, SEEK_END ) ) + { + /* Is file big enough for a footer? */ + if( FS_ReadFile( footer, sizeof( footer ), 1, hFile ) != 1 ) + { + Com_DPrintf( "Cannot read footer from (%s)\n" , filename ); + + goto TGALOADFAILED; + } + else if( memcmp( footer + 8, magic, sizeof( magic ) ) == 0 ) + { + /* Check the signature. */ + offset = footer[ 0 ] + (footer[ 1 ] * 256) + (footer[ 2 ] * 65536) + + (footer[ 3 ] * 16777216); + + if( offset != 0 ) + { + if( FS_FileSeek( hFile, offset, SEEK_SET ) || + FS_ReadFile( extension, sizeof( extension ), 1, hFile ) != 1 ) + { + Com_DPrintf( "Cannot read extension from '%s'\n", filename ); + + goto TGALOADFAILED; + } + + /* Eventually actually handle version 2 TGA here */ + + } + } + + } + + +// +// Get header information. +// + if( datalength < TGA_HEADER_SIZE ) + { + Com_Printf( "Could not read header from (%s)\n", filename ); + + goto TGALOADFAILED; + } + + if( FS_FileSeek( hFile, 0, SEEK_SET ) || + FS_ReadFile( header, sizeof( header ), 1, hFile ) != 1 ) + { + Com_Printf( "Cannot read header from (%s)\n", filename ); + + goto TGALOADFAILED; + } + + + + targa_header.idLength = header[ 0 ]; + targa_header.colorMapType = header[ 1 ]; + + switch( header[ 2 ] ) + { + case 1: + targa_header.imageType = TGA_TYPE_MAPPED; + targa_header.imageCompression = TGA_COMP_NONE; + break; + + case 2: + targa_header.imageType = TGA_TYPE_COLOR; + targa_header.imageCompression = TGA_COMP_NONE; + break; + + case 3: + targa_header.imageType = TGA_TYPE_GRAY; + targa_header.imageCompression = TGA_COMP_NONE; + break; + + + + case 9: + targa_header.imageType = TGA_TYPE_MAPPED; + targa_header.imageCompression = TGA_COMP_RLE; + break; + + case 10: + targa_header.imageType = TGA_TYPE_COLOR; + targa_header.imageCompression = TGA_COMP_RLE; + break; + + case 11: + targa_header.imageType = TGA_TYPE_GRAY; + targa_header.imageCompression = TGA_COMP_RLE; + break; + + + default: + targa_header.imageType = 0; + } + + targa_header.colorMapIndex = header[ 3 ] + header[ 4 ] * 256; + targa_header.colorMapLength = header[ 5 ] + header[ 6 ] * 256; + targa_header.colorMapSize = header[ 7 ]; + + targa_header.xOrigin = header[ 8 ] + header[ 9 ] * 256; + targa_header.yOrigin = header[ 10 ] + header[ 11 ] * 256; + targa_header.width = header[ 12 ] + header[ 13 ] * 256; + targa_header.height = header[ 14 ] + header[ 15 ] * 256; + + targa_header.bpp = header[ 16 ]; + targa_header.bytes = (targa_header.bpp + 7) / 8; + targa_header.alphaBits = header[ 17 ] & 0x0f; /* Just the low 4 bits */ + targa_header.flipHoriz = (header[ 17 ] & 0x10) ? 1 : 0; + targa_header.flipVert = (header[ 17 ] & 0x20) ? 0 : 1; + +// +// Analyze header information. +// + switch( targa_header.imageType ) + { + case TGA_TYPE_MAPPED: + if( targa_header.bpp != 8 ) + { + Com_DPrintf( "Unhandled sub-format in (%s)\n", filename ); + + goto TGALOADFAILED; + } + + goto TGALOADFAILED; + + break; + + case TGA_TYPE_COLOR: + if( targa_header.bpp != 15 && targa_header.bpp != 16 && targa_header.bpp != 24 + && targa_header.bpp != 32 ) + { + Com_DPrintf( "Unhandled sub-format in (%s)\n", filename ); + goto TGALOADFAILED; + } + break; + + case TGA_TYPE_GRAY: + if( targa_header.bpp != 8 && (targa_header.alphaBits != 8 || (targa_header.bpp != 16 && targa_header.bpp != 15 ))) + { + Com_DPrintf( "Unhandled sub-format in (%s)\n", filename ); + goto TGALOADFAILED; + } + + + goto TGALOADFAILED; + + + break; + + default: + Com_DPrintf( "Unknown image type for (%s)\n", filename ); + goto TGALOADFAILED; + + } /* end of switch targa_header.imageType */ + + /* Plausible but unhandled formats */ + if( targa_header.bytes * 8 != targa_header.bpp && ! (targa_header.bytes == 2 && targa_header.bpp == 15) ) + { + Com_DPrintf( "No support yet for TGA with these parameters\n" ); + + goto TGALOADFAILED; + } + + /* Check that we have a color map only when we need it. */ + if( targa_header.imageType == TGA_TYPE_MAPPED && targa_header.colorMapType != 1 ) + { + Com_DPrintf( "Indexed image has invalid color map type %d\n", + targa_header.colorMapType ); + + goto TGALOADFAILED; + } + else if( targa_header.imageType != TGA_TYPE_MAPPED && targa_header.colorMapType != 0 ) + { + Com_DPrintf( "Non-indexed image has invalid color map type %d\n", + targa_header.colorMapType ); + + goto TGALOADFAILED; + } + + /* Skip the image ID field. */ + if( targa_header.idLength && FS_FileSeek( hFile, targa_header.idLength, SEEK_CUR ) ) + { + Com_DPrintf( "File (%s) is truncated or corrupted\n", filename ); + + goto TGALOADFAILED; + } + + + + /* Handle colormap */ + if( targa_header.colorMapType == 1 ) + { + cmap_bytes = (targa_header.colorMapSize + 7 ) / 8; + if( cmap_bytes <= 4 && + FS_ReadFile( tga_cmap, targa_header.colorMapLength * cmap_bytes, 1, hFile ) == 1 ) + { + if( targa_header.colorMapSize == 32 ) + { + bgr2rgb( gimp_cmap, tga_cmap, targa_header.colorMapLength, cmap_bytes, 1); + } + else if( targa_header.colorMapSize == 24 ) + { + bgr2rgb( gimp_cmap, tga_cmap, targa_header.colorMapLength, cmap_bytes, 0); + } + else if( targa_header.colorMapSize == 16 || targa_header.colorMapSize == 15 ) + { + upsample( gimp_cmap, tga_cmap, targa_header.colorMapLength, cmap_bytes, targa_header.alphaBits); + } + + } + else + { + Com_DPrintf( "File (%s) is truncated or corrupted\n", filename ); + + goto TGALOADFAILED; + } + } + + + /* Allocate the data. */ + data = MM_MALLOC( targa_header.width * targa_header.height * targa_header.bytes ); + if( data == NULL ) + { + MM_OUTOFMEM( "data" ); + } + + buffer = (PW8) MM_MALLOC( targa_header.width * targa_header.bytes ); + if( buffer == NULL ) + { + MM_FREE( data ); + MM_OUTOFMEM( "buffer" ); + } + + if( targa_header.flipVert ) + { + for( i = targa_header.height-1 ; i >= 0 ; --i ) + { + row = data + (targa_header.width * targa_header.bytes * i); + read_line( hFile, row, buffer, &targa_header ); + } + } + else + { + for( i = 0 ; i < targa_header.height ; ++i ) + { + row = data + (targa_header.width * targa_header.bytes * i); + read_line( hFile, row, buffer, &targa_header ); + } + } + + + MM_FREE( buffer ); + + FS_CloseFile( hFile ); + + *pic = data; + *width = targa_header.width; + *height = targa_header.height; + *bytes = targa_header.bytes; + + return; + + + +TGALOADFAILED: + *pic = NULL; + *width = 0; + *height = 0; + *bytes = 0; + + if( hFile ) + { + FS_CloseFile( hFile ); + } + +} + +/* +----------------------------------------------------------------------------- + Function: rle_write -Run length encode scanline. + + Parameters: fp -[in] Pointer to valid FILE structure. + buffer -[in] Scanline data. + width -[in] Image scanline width. + bytes -[in] Bytes per pixel. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void rle_write( FILE *fp, + W8 *buffer, + W32 width, + W32 bytes ) +{ + SW32 repeat = 0; + SW32 direct = 0; + W8 *from = buffer; + W32 x; + + for( x = 1 ; x < width ; ++x ) + { + if( memcmp( buffer, buffer + bytes, bytes ) ) + { + /* next pixel is different */ + if( repeat ) + { + putc( 128 + repeat, fp ); + fwrite( from, bytes, 1, fp ); + from = buffer + bytes; /* point to first different pixel */ + repeat = 0; + direct = 0; + } + else + { + direct += 1; + } + } + else + { + /* next pixel is the same */ + if( direct ) + { + putc( direct - 1, fp ); + fwrite( from, bytes, direct, fp ); + from = buffer; /* point to first identical pixel */ + direct = 0; + repeat = 1; + } + else + { + repeat += 1; + } + } + + if( repeat == 128 ) + { + putc( 255, fp ); + fwrite( from, bytes, 1, fp ); + from = buffer + bytes; + direct = 0; + repeat = 0; + } + else if( direct == 128 ) + { + putc( 127, fp ); + fwrite( from, bytes, direct, fp ); + from = buffer + bytes; + direct = 0; + repeat = 0; + } + + buffer += bytes; + } + + if( repeat > 0 ) + { + putc( 128 + repeat, fp ); + fwrite( from, bytes, 1, fp ); + } + else + { + putc( direct, fp ); + fwrite( from, bytes, direct + 1, fp ); + } +} + + +/* +----------------------------------------------------------------------------- + Function: WriteTGA -Write targa image file. + + Parameters: filename -[in] Name of TGA file to save as. + bpp -[in] Bits per pixel. (16, 24 or 32). + width -[in] Width of image. + height -[in] Height of image. + Data -[in] Raw image data. + upsideDown -[in] Is the data upside down? 1 yes, 0 no. + rle -[in] Run Length encode? 1 yes, 0 no. + + Returns: 0 on error, otherwise 1. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC W8 WriteTGA( const char *filename, W16 bpp, W16 width, W16 height, + void *Data, W8 upsideDown, W8 rle ) +{ + W16 i, x, y, BytesPerPixel; + W8 *scanline; + W8 header[ 18 ]; + FILE *filestream; + W8 *ptr = (PW8) Data; + W8 temp; + + BytesPerPixel = bpp >> 3; + + filestream = fopen( filename, "wb" ); + if( filestream == NULL ) + { + Com_DPrintf( "Could not open file (%s) for write!\n", filename ); + return 0; + } + + memset( header, 0, 18 ); + header[2] = rle ? 10 : 2; + + header[12] = width & 255; // width low + header[13] = width >> 8; // width high + + header[14] = height & 255; // height low + header[15] = height >> 8; // height high + + header[16] = bpp & 255; // pixel size + + if( upsideDown ) + { + header[17] |= 1 << 5; // Image Descriptor + } + + + fwrite( header, sizeof( W8 ), sizeof( header ), filestream ); + + + + scanline = (PW8) MM_MALLOC( width * BytesPerPixel ); + if( scanline == NULL ) + { + fclose( filestream ); + + return 0; + } + + for( y = 0; y < height; ++y ) + { + W32 k = 0; + + for( i = 0; i < (width * BytesPerPixel); ++i ) + { + scanline[ k++ ] = ptr[ (height - y - 1) * width * BytesPerPixel + i ]; + } + + + + if( bpp == 24 || bpp == 32 ) + { + // swap rgb to bgr + for( x = 0; x < (width * BytesPerPixel); x += BytesPerPixel ) + { + temp = scanline[ x ]; + scanline[ x ] = scanline[ x + 2 ]; + scanline[ x + 2 ] = temp; + } + } + + + if( rle ) + { + rle_write( filestream, scanline, width, BytesPerPixel ); + } + else + { + fwrite( scanline, sizeof( W8 ), width * BytesPerPixel, filestream ); + } + } + + MM_FREE( scanline ); + + fclose( filestream ); + + return 1; +} diff --git a/wolf3d/code/env/tga.h b/wolf3d/code/env/tga.h new file mode 100644 index 0000000..509c90b --- /dev/null +++ b/wolf3d/code/env/tga.h @@ -0,0 +1,49 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + Copyright (C) 1995 Spencer Kimball and Peter Mattis + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * tga.h: Handle Targa file format. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was + * originally written by id Software, Inc. + * + * Portion of this code was derived from The GIMP -- an image manipulation + * program, and was originally written by Spencer Kimball and Peter Mattis. + */ + +#ifndef __TGA_H__ +#define __TGA_H__ + +extern void LoadTGA( const char *filename, W8 **pic, W16 *width, W16 *height, W16 *bytes ); + + + +extern W8 WriteTGA( const char *filename, W16 bpp, W16 width, W16 height, + void *Data, W8 upsideDown, W8 rle ); + + +#endif /* __TGA_H__ */ + diff --git a/wolf3d/code/env/timer.h b/wolf3d/code/env/timer.h new file mode 100644 index 0000000..c9aca45 --- /dev/null +++ b/wolf3d/code/env/timer.h @@ -0,0 +1,44 @@ +/* + + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * timer.h: Timer. + * + * Author: Id Software, Inc. + * Date: 1997-2001 + * + */ + +/* + Notes: + This module is implemented by win_timer.c or unix_timer.c. + +*/ + +#ifndef __TIMER_H__ +#define __TIMER_H__ + +extern W32 curtime; // time returned by last Sys_Milliseconds() + +extern W32 Sys_Milliseconds( void ); + + +#endif /* __TIMER_H__ */ + diff --git a/wolf3d/code/env/unix_file.c b/wolf3d/code/env/unix_file.c new file mode 100644 index 0000000..adc34ba --- /dev/null +++ b/wolf3d/code/env/unix_file.c @@ -0,0 +1,286 @@ +/* + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * unix_file.c: Handles non-portable file services. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + + +PRIVATE char findbase[ MAX_OSPATH ]; +PRIVATE char findpath[ MAX_OSPATH ]; +PRIVATE char findpattern[ MAX_OSPATH ]; +PRIVATE DIR *fdir; + + +/* +----------------------------------------------------------------------------- + Function: FS_CreateDirectory() -Creates a new directory. + + Parameters: dirname -[in] Pointer to a NUL-terminated string that specifies + the path of the directory to be created. + + Returns: On success nonzero, otherwise zero. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC W8 FS_CreateDirectory( const char *dirname ) +{ + int ret_val = mkdir( dirname, S_IRUSR | S_IWUSR | S_IXUSR ); + + if( ret_val == -1 && errno == EEXIST ) + { + return 1; + } + + return (W8)(! ret_val); +} + +/* +----------------------------------------------------------------------------- + Function: FS_ChangeCurrentDirectory() -Changes the current directory + + Parameters: path -[in] Pointer to a NUL-terminated string that specifies + the path to the new directory. + + Returns: On success nonzero, otherwise zero. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC W8 FS_ChangeCurrentDirectory( const char *path ) +{ + return ! chdir( path ); +} + +/* +----------------------------------------------------------------------------- + Function: CompareAttributes() -Compare directory and file attributes. + + Parameters: path -[in] Specifies the path to compare file attributes. + musthave -[in] File or directory must have these attributes. + canthave- [in] File or directory can not have these attributes. + + Returns: On success true, otherwise false. + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean CompareAttributes( const char *path, W32 musthave, W32 canthave ) +{ + struct stat st; + + if( stat( path, &st ) == -1 ) + { + return false; + } + + if( ( st.st_mode & S_IFDIR ) && ( canthave & FA_DIR ) ) + { + return false; + } + + if( ( musthave & FA_DIR ) && !( st.st_mode & S_IFDIR ) ) + { + return false; + } + + return true; +} + +/* +----------------------------------------------------------------------------- + Function: FS_FindFirstFile() -Searches a directory for a file. + + Parameters: path -[in] Pointer to a NUL-terminated string that specifies + a valid directory or path and file name. + musthave -[in] File or directory must have these attributes. + canthave- [in] File or directory can not have these attributes. + + Returns: On success string of file name or directory, otherwise NULL. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC char *FS_FindFirst( const char *path, W32 musthave, W32 canthave ) +{ + struct dirent *d; + char *p; + p; + + if( fdir ) + { + Com_Printf( "FS_FindFirst without close\n" ); + + return NULL; + } + + FS_FilePath( (char *)path, findbase ); + my_strlcpy( (char *)findpattern, FS_SkipPath( (char *)path ), sizeof( findpattern ) ); + + if( ! *findbase ) + { + if( (fdir = opendir( "." )) == NULL ) + { + return NULL; + } + } + else + { + if( (fdir = opendir( findbase )) == NULL ) + { + return NULL; + } + } + + while( (d = readdir( fdir )) != NULL ) + { + if( ! *findpattern || glob_match( findpattern, d->d_name ) ) + { + if( ! *findbase ) + { + my_strlcpy( findpath, d->d_name, sizeof( findpath ) ); + } + else + { + my_snprintf( findpath, sizeof( findpath ), "%s/%s", findbase, d->d_name ); + } + + if( CompareAttributes( findpath, musthave, canthave ) ) + { + return findpath; + } + } + } + + return NULL; + +} + +/* +----------------------------------------------------------------------------- + Function: FS_FindNext -Continues a file search from a previous call to + the FS_FindFirst function. + + Parameters: musthave -[in] File or directory must have these attributes. + canthave- [in] File or directory can not have these attributes. + + Returns: On success string of file name or directory, otherwise NULL. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC char *FS_FindNext( W32 musthave, W32 canthave ) +{ + struct dirent *d; + + if( fdir == NULL ) + { + return NULL; + } + + while( (d = readdir( fdir ) ) != NULL) + { + if( ! *findpattern || glob_match( findpattern, d->d_name ) ) + { + if( ! *findbase ) + { + my_strlcpy( findpath, d->d_name, sizeof( findpath ) ); + } + else + { + my_snprintf( findpath, sizeof( findpath ), "%s/%s", findbase, d->d_name ); + } + + if( CompareAttributes( findpath, musthave, canthave ) ) + { + return findpath; + } + } + } + + return NULL; +} + +/* +----------------------------------------------------------------------------- + Function: FS_FindClose() -Closes the search handle. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void FS_FindClose( void ) +{ + if( fdir ) + { + closedir( fdir ); + } + + fdir = NULL; +} + +/* +----------------------------------------------------------------------------- + Function: FS_DeleteFile() -Deletes an existing file. + + Parameters: filename -[in] Pointer to a NUL-terminated string that + specifies the file to be deleted. + + Returns: If successful the return value is nonzero, otherwise zero. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean FS_DeleteFile( const char *filename ) +{ + return( ! unlink( filename ) ); +} + +/* +----------------------------------------------------------------------------- + Function: FS_RemoveDirectory() -Deletes an existing empty directory. + + Parameters: pathname -[in] Pointer to a NUL-terminated string that + specifies the directory to be deleted. + + Returns: If successful the return value is nonzero, otherwise zero. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean FS_RemoveDirectory( const char *pathname ) +{ + return( ! rmdir( pathname ) ); +} + diff --git a/wolf3d/code/env/unix_timer.c b/wolf3d/code/env/unix_timer.c new file mode 100644 index 0000000..38b6f42 --- /dev/null +++ b/wolf3d/code/env/unix_timer.c @@ -0,0 +1,67 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * unix_timer.c: unix timer. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +PUBLIC W32 curtime; + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC W32 Sys_Milliseconds( void ) +{ + struct timeval tp; + struct timezone tzp; + static int secbase; + + gettimeofday( &tp, &tzp ); + + if( ! secbase ) + { + secbase = tp.tv_sec; + return tp.tv_usec / 1000; + } + + curtime = (tp.tv_sec - secbase) * 1000 + tp.tv_usec / 1000; + + return curtime; +} diff --git a/wolf3d/code/env/vector.c b/wolf3d/code/env/vector.c new file mode 100644 index 0000000..9d200b1 --- /dev/null +++ b/wolf3d/code/env/vector.c @@ -0,0 +1,650 @@ +/* + + Copyright (C) 2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * vector.h: 2D and 3D vector math routines. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +vec3_t vec3_origin = { 0, 0, 0 }; + + +vec_t _VectorNormalize( vec3_t v ); + +vec_t (*pfVectorNormalize)( vec3_t v ) = _VectorNormalize; + + +/* +----------------------------------------------------------------------------- + Function: _VectorNormalize -Normalize a 3D vector. + + Parameters: v -[in] 3D vector to normalize. + + Returns: Unit vector value. + + Notes: + For a given vector, the process of finding a unit vector which is + parallel to it. This is done by dividing the given vector by its + magnitude. +----------------------------------------------------------------------------- +*/ +PUBLIC vec_t _VectorNormalize( vec3_t v ) +{ + float length, ilength; + + length = (float)pfSqrt( v[ 0 ] * v[ 0 ] + v[ 1 ] * v[ 1 ] + v[ 2 ] * v[ 2 ] ); + + if( length ) + { + ilength = 1 / length; + v[ 0 ] *= ilength; + v[ 1 ] *= ilength; + v[ 2 ] *= ilength; + } + + return length; +} + +/* +----------------------------------------------------------------------------- + Function: ProjectPointOnPlane -Project a point onto a plane. + + Parameters: dst -[out] Destination Point on Plane. + p -[in] Point to project onto the plane. + normal -[in] A vector to specify the orientation of the plane. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal ) +{ + float d; + vec3_t n; + float inv_denom; + + inv_denom = 1.0f / DotProduct( normal, normal ); + + d = DotProduct( normal, p ) * inv_denom; + + n[ 0 ] = normal[ 0 ] * inv_denom; + n[ 1 ] = normal[ 1 ] * inv_denom; + n[ 2 ] = normal[ 2 ] * inv_denom; + + dst[ 0 ] = p[ 0 ] - d * n[ 0 ]; + dst[ 1 ] = p[ 1 ] - d * n[ 1 ]; + dst[ 2 ] = p[ 2 ] - d * n[ 2 ]; +} + +/* +----------------------------------------------------------------------------- + Function: PerpendicularVector - + + Parameters:dst -[out] Perpendicular Vector. + src -[in] Normalized vector. + + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PerpendicularVector( vec3_t dst, const vec3_t src ) +{ + int pos; + int i; + float minelem = 1.0F; + vec3_t tempvec; + + /* find the smallest magnitude axially aligned vector */ + for( pos = 0, i = 0 ; i < 3 ; ++i ) + { + if( fabs( src[ i ] ) < minelem ) + { + pos = i; + minelem = (float)fabs( src[ i ] ); + } + } + tempvec[ 0 ] = tempvec[ 1 ] = tempvec[ 2 ] = 0.0F; + tempvec[ pos ] = 1.0F; + + /* project the point onto the plane defined by src */ + ProjectPointOnPlane( dst, tempvec, src ); + + /* normalize the result */ + pfVectorNormalize( dst ); +} + +/* +----------------------------------------------------------------------------- + Function: RotatePointAroundVector -Rotate a point around a vector. + + Parameters: dst -[out] Point after rotation. + dir -[in] vector. + point -[in] Point. + degrees -[in] Degrees of rotation. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees ) +{ + mat3_t m; + mat3_t im; + mat3_t zrot; + mat3_t tmpmat; + mat3_t rot; + vec3_t vr, vup, vf; + float rad; + + vf[0] = dir[0]; + vf[1] = dir[1]; + vf[2] = dir[2]; + + PerpendicularVector( vr, dir ); + vectorCrossProduct( vr, vf, vup ); + + m[0] = vr[0]; + m[3] = vr[1]; + m[6] = vr[2]; + + m[1] = vup[0]; + m[4] = vup[1]; + m[7] = vup[2]; + + m[2] = vf[0]; + m[5] = vf[1]; + m[8] = vf[2]; + + memcpy( im, m, sizeof( im ) ); + + im[1] = m[3]; + im[2] = m[6]; + im[3] = m[1]; + im[5] = m[7]; + im[6] = m[2]; + im[7] = m[5]; + + memset( zrot, 0, sizeof( zrot ) ); + zrot[0] = zrot[4] = zrot[8] = 1.0F; + + rad = DEG2RAD( degrees ); + zrot[0] = (float)cos( rad ); + zrot[1] = (float)sin( rad ); + zrot[3] = (float)-sin( rad ); + zrot[4] = (float)cos( rad ); + + Matrix3x3Multiply( m, zrot, tmpmat ); + Matrix3x3Multiply( tmpmat, im, rot ); + + dst[0] = rot[0] * point[0] + rot[1] * point[1] + rot[2] * point[2]; + dst[1] = rot[3] * point[0] + rot[4] * point[1] + rot[5] * point[2]; + dst[2] = rot[6] * point[0] + rot[7] * point[1] + rot[8] * point[2]; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC float RadiusFromBounds( const vec3_t mins, const vec3_t maxs ) +{ + int i; + vec3_t corner; + float a, b; + + for( i = 0; i < 3; ++i ) + { + a = (float)fabs( mins[i] ); + b = (float)fabs( maxs[i] ); + corner[i] = a > b ? a : b; + } + + return vectorLength( corner ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void AddPointToBounds( vec3_t v, vec3_t mins, vec3_t maxs ) +{ + if ( v[0] < mins[0] ) + { + mins[0] = v[0]; + } + if ( v[0] > maxs[0]) + { + maxs[0] = v[0]; + } + + if ( v[1] < mins[1] ) + { + mins[1] = v[1]; + } + if ( v[1] > maxs[1]) + { + maxs[1] = v[1]; + } + + if ( v[2] < mins[2] ) + { + mins[2] = v[2]; + } + if ( v[2] > maxs[2]) + { + maxs[2] = v[2]; + } +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up ) +{ + float angle; + static float sr, sp, sy, cr, cp, cy; + // static to help MS compiler fp bugs + + angle = angles[YAW] * ( M_PI*2 / 360 ); + sy = (float)sin( angle ); + cy = (float)cos( angle ); + angle = angles[PITCH] * ( M_PI*2 / 360 ); + sp = (float)sin( angle ); + cp = (float)cos( angle ); + angle = angles[ROLL] * ( M_PI*2 / 360 ); + sr = (float)sin( angle ); + cr = (float)cos( angle ); + + if( forward ) + { + forward[0] = cp*cy; + forward[1] = cp*sy; + forward[2] = -sp; + } + + if( right ) + { + right[0] = (-1*sr*sp*cy+-1*cr*-sy); + right[1] = (-1*sr*sp*sy+-1*cr*cy); + right[2] = -1*sr*cp; + } + + if( up ) + { + up[0] = (cr*sp*cy+-sr*-sy); + up[1] = (cr*sp*sy+-sr*cy); + up[2] = cr*cp; + } +} + +/* +----------------------------------------------------------------------------- + Function: vectorCompare -Compares two vectors for equality. + + Parameters: v1, v2 -[in] 3d vectors to compare. + + Returns: 1 if they are equal, otherwise 0. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL int vectorCompare( const vec3_t v1, const vec3_t v2 ) +{ + if( v1[ 0 ] != v2[ 0 ] || + v1[ 1 ] != v2[ 1 ] || + v1[ 2 ] != v2[ 2 ] ) + { + return 0; + } + + return 1; +} + +/* +----------------------------------------------------------------------------- + Function: vectorLength -Get the length of a vector. + + Parameters: v -[in] 3D vector to get the length of. + + Returns: The length of the vector. + + Notes: + Since the square of length is a sum of squares, and squares + (of real numbers) are always positive, length is always positive. + The only time the length of a 3D vector is zero is when the vector + is the zero vector. +----------------------------------------------------------------------------- +*/ +INLINECALL vec_t vectorLength( const vec3_t v ) +{ + return (vec_t)pfSqrt( v[ 0 ] * v[ 0 ] + v[ 1 ] * v[ 1 ] + v[ 2 ] * v[ 2 ] ); +} + +/* +----------------------------------------------------------------------------- + Function: CrossProduct -Calulates the cross product of two vectors. + + Parameters: v1, v2 -[in] 3D vectors. + cross -[out] The vector cross product. + + Returns: Nothing + + Notes: + The vector cross product takes two vector operands to produce a + vector result. The result, like all geometric vectors, has two + properties: length and orientation. + + To find a vector perpendicular to a particular plane, compute the + cross product of two vectors in that plane. But there are two + directions perpendicular to the plane. Which one does the cross + product give you? That is determined by the right hand rule. + + The cross product of two vectors is perpendicular to both; the right + hand rule picks the one out of two possible perpendicular directions. + + Computing Cross Product from Column Matrices: + u × v = ( uj vk - uk vj , uk vi - ui vk , ui vj - uj vi )T +----------------------------------------------------------------------------- +*/ +PUBLIC void vectorCrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross ) +{ + cross[ 0 ] = v1[ 1 ] * v2[ 2 ] - v1[ 2 ] * v2[ 1 ]; // X + cross[ 1 ] = v1[ 2 ] * v2[ 0 ] - v1[ 0 ] * v2[ 2 ]; // Y + cross[ 2 ] = v1[ 0 ] * v2[ 1 ] - v1[ 1 ] * v2[ 0 ]; // Z +} + + +#if defined(__i386__) && defined(_MSC_VER) + +// Taken from an article written by Michael Abrash that originally appeared in +// Dr. Dobb's Journal. +PUBLIC void vectorCrossProduct_asm( const vec3_t v1, const vec3_t v2, vec3_t cross ) +{ + __asm + { + mov eax, cross + mov ecx, v2 + mov edx, v1 + + ;optimized cross product; 22 cycles + fld dword ptr [ecx+4] ;starts & ends on cycle 0 + fmul dword ptr [edx+8] ;starts on cycle 1 + fld dword ptr [ecx+8] ;starts & ends on cycle 2 + fmul dword ptr [edx+0] ;starts on cycle 3 + fld dword ptr [ecx+0] ;starts & ends on cycle 4 + fmul dword ptr [edx+4] ;starts on cycle 5 + fld dword ptr [ecx+8] ;starts & ends on cycle 6 + fmul dword ptr [edx+4] ;starts on cycle 7 + fld dword ptr [ecx+0] ;starts & ends on cycle 8 + fmul dword ptr [edx+8] ;starts on cycle 9 + fld dword ptr [ecx+4] ;starts & ends on cycle 10 + fmul dword ptr [edx+0] ;starts on cycle 11 + fxch st(2) ;no cost + fsubrp st(5),st(0) ;starts on cycle 12 + fsubrp st(3),st(0) ;starts on cycle 13 + fsubrp st(1),st(0) ;starts on cycle 14 + fxch st(2) ;no cost, stalls for cycle 15 + fstp dword ptr [eax+0] ;starts on cycle 16, ends on cycle 17 + fstp dword ptr [eax+4] ;starts on cycle 18, ends on cycle 19 + fstp dword ptr [eax+8] ;starts on cycle 20, ends on cycle 21 + } +} + +#endif /* __i386__ */ + + + +/* +----------------------------------------------------------------------------- + Function: _DotProduct -Calculates the dot product. + + Parameters: v1, v2 -[in] 3D vectors to compute dot product. + + Returns: the dot product + + Notes: + Dot product, which takes two vectors as operands and produces a real + number as its output. Sometimes the dot product is called the inner + product or the scalar product. + The dot product is: + a · b = a1b1 + a2b2 + a3b3 +----------------------------------------------------------------------------- +*/ +PUBLIC vec_t _vectorDotProduct( const vec3_t v1, const vec3_t v2 ) +{ + return v1[ 0 ] * v2[ 0 ] + v1[ 1 ] * v2[ 1 ] + v1[ 2 ] * v2[ 2 ]; +} + + +#if defined(__i386__) && defined(_MSC_VER) + +// Taken from an article written by Michael Abrash that originally appeared in +// Dr. Dobb's Journal. +PUBLIC vec_t _vectorDotProduct_asm( const vec3_t v1, const vec3_t v2 ) +{ + float dotret; + + __asm + { + mov eax, v2 + mov ecx, v1 + + ;optimized dot product; 15 cycles + fld dword ptr [eax+0] ;starts & ends on cycle 0 + fmul dword ptr [ecx+0] ;starts on cycle 1 + fld dword ptr [eax+4] ;starts & ends on cycle 2 + fmul dword ptr [ecx+4] ;starts on cycle 3 + fld dword ptr [eax+8] ;starts & ends on cycle 4 + fmul dword ptr [ecx+8] ;starts on cycle 5 + fxch st(1) ;no cost + faddp st(2),st(0) ;starts on cycle 6, stalls for cycles 7-8 + faddp st(1),st(0) ;starts on cycle 9, stalls for cycles 10-12 + fstp dword ptr [dotret] ;starts on cycle 13, ends on cycle 14 + } + + return dotret; +} + +#endif /* __i386__ */ + + + +/* +----------------------------------------------------------------------------- + Function: _vectorSubtract -Vector Difference. + + Parameters: veca, vecb -[in] 3D vectors. + out -[out] The vector difference of vectors A and B. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL void _vectorSubtract( const vec3_t veca, const vec3_t vecb, vec3_t out ) +{ + out[ 0 ] = veca[ 0 ] - vecb[ 0 ]; + out[ 1 ] = veca[ 1 ] - vecb[ 1 ]; + out[ 2 ] = veca[ 2 ] - vecb[ 2 ]; +} + +/* +----------------------------------------------------------------------------- + Function: _vectorAdd -Vector addition. + + Parameters: veca, vecb -[in] 3D vectors. + out -[out] The vector sum of vectors A and B + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL void _vectorAdd( const vec3_t veca, const vec3_t vecb, vec3_t out ) +{ + out[ 0 ] = veca[ 0 ] + vecb[ 0 ]; + out[ 1 ] = veca[ 1 ] + vecb[ 1 ]; + out[ 2 ] = veca[ 2 ] + vecb[ 2 ]; +} + +/* +----------------------------------------------------------------------------- + Function: _vectorCopy -Copy a vector. + + Parameters: in -[in] Source vector. + out -[out] Destination vector. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL void _vectorCopy( const vec3_t in, vec3_t out ) +{ + out[ 0 ] = in[ 0 ]; + out[ 1 ] = in[ 1 ]; + out[ 2 ] = in[ 2 ]; +} + +/* +----------------------------------------------------------------------------- + Function: _vectorScale -Scale a vector. + + Parameters: in -[in] Source vector. + scale -[in] Scale vector. + out -[out] Destination vector. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL void _vectorScale( const vec3_t in, const vec_t scale, vec3_t out ) +{ + out[ 0 ] = in[ 0 ] * scale; + out[ 1 ] = in[ 1 ] * scale; + out[ 2 ] = in[ 2 ] * scale; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL void _vectorMA( const vec3_t veca, float scale, const vec3_t vecb, vec3_t vecc ) +{ + vecc[ 0 ] = veca[ 0 ] + scale * vecb[ 0 ]; + vecc[ 1 ] = veca[ 1 ] + scale * vecb[ 1 ]; + vecc[ 2 ] = veca[ 2 ] + scale * vecb[ 2 ]; +} + + + + + + +///////////////////////////////////////////////////////////////////// +// +// 2D Vector routines +// +///////////////////////////////////////////////////////////////////// + + +/* +----------------------------------------------------------------------------- + Function: vector2DCompare -Compares two vectors for equality. + + Parameters: v1, v2 -[in] 2d vectors to compare. + + Returns: 1 if they are equal, otherwise 0. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL W32 vector2DCompare( const vec2_t v1, const vec2_t v2 ) +{ + if( v1[ 0 ] != v2[ 0 ] || v1[ 1 ] != v2[ 1 ] ) + { + return 0; + } + + return 1; +} + +/* +----------------------------------------------------------------------------- + Function: vector2DLength -Get the length of a vector. + + Parameters: v -[in] 2D vector to get the length of. + + Returns: The length of the vector. + + Notes: +----------------------------------------------------------------------------- +*/ +INLINECALL vec_t vector2DLength( const vec2_t v ) +{ + return (vec_t)pfSqrt( v[ 0 ] * v[ 0 ] + v[ 1 ] * v[ 1 ] ); +} + + + diff --git a/wolf3d/code/env/vector.h b/wolf3d/code/env/vector.h new file mode 100644 index 0000000..c2ef60c --- /dev/null +++ b/wolf3d/code/env/vector.h @@ -0,0 +1,125 @@ +/* + + Copyright (C) 2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * vector.h: 2D and 3D vector math routines. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#ifndef __VECTOR_H__ +#define __VECTOR_H__ + +typedef float vec_t; +typedef vec_t vec2_t[ 2 ]; +typedef vec_t vec3_t[ 3 ]; +typedef vec_t vec4_t[ 4 ]; +typedef vec_t vec5_t[ 5 ]; + + + +extern vec3_t vec3_origin; + + +///////////////////////////////////////////////////////////////////// +// +// 3D Vector routines +// +///////////////////////////////////////////////////////////////////// + +#define vectorClear( a ) ( (a)[ 0 ] = (a)[ 1 ] = (a)[ 2 ] = 0 ) +#define vectorNegate( a, b ) ( (b)[ 0 ] = (-a)[ 0 ], (b)[ 1 ] = (-a)[ 1 ], (b)[ 2 ] = (-a)[ 2 ] ) +#define vectorSet( v, x, y, z ) ( (v)[ 0 ] = ( x ), (v)[ 1 ] = ( y ), (v)[ 2 ] = ( z ) ) +#define vectorInverse( a ) ( (a)[ 0 ] = (-a)[ 0 ], (a)[ 1 ] = (-a)[ 1 ], (a)[ 2 ] = (-a)[ 2 ] ) + +#if 1 + + #define DotProduct( x, y ) ( (x)[ 0 ] * (y)[ 0 ] + (x)[ 1 ] * (y)[ 1 ] + (x)[ 2 ] * (y)[ 2 ] ) + #define vectorSubtract( a, b, c ) ( (c)[ 0 ] = (a)[ 0 ] - (b)[ 0 ], (c)[ 1 ] = (a)[ 1 ] - (b)[ 1 ], (c)[ 2 ] = (a)[ 2 ] - (b)[ 2 ] ) + #define vectorAdd( a, b, c ) ( (c)[ 0 ] = (a)[ 0 ] + (b)[ 0 ], (c)[ 1 ] = (a)[ 1 ] + (b)[ 1 ], (c)[ 2 ] = (a)[ 2 ] + (b)[ 2 ] ) + #define vectorCopy( a, b ) ( (b)[ 0 ] = (a)[ 0 ], (b)[ 1 ] = (a)[ 1 ], (b)[ 2 ] = (a)[ 2 ] ) + #define vectorScale( v, s, o ) ( (o)[ 0 ] = (v)[ 0 ] * (s),(o)[ 1 ] = (v)[ 1 ] * (s), (o)[ 2 ] = (v)[ 2 ] * (s) ) + #define vectorMA( v, s, b, o ) ( (o)[ 0 ] = (v)[ 0 ] + (b)[ 0 ]*(s),(o)[ 1 ] = (v)[ 1 ] + (b)[ 1 ] * (s),(o)[ 2 ] = (v)[ 2 ] + (b)[ 2 ] * (s) ) + +#else + + /* just in case you don't want to use the macros */ + #define DotProduct( x, y ) _vectorDotProduct( x, y ) + #define vectorSubtract( a, b, c ) _vectorSubtract( a, b, c ) + #define vectorAdd( a, b, c ) _vectorAdd( a, b, c ) + #define vectorCopy( a, b ) _vectorCopy( a, b ) + #define vectorScale( v, s, o ) _vectorScale( v, s, o ) + #define vectorMA( v, s, b, o ) _vectorMA( v, s, b, o ) + +#endif + + +extern void vectorCrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross ); + + +extern int vectorCompare( const vec3_t v1, const vec3_t v2 ); +extern vec_t vectorLength( const vec3_t v ); +extern vec_t (*pfVectorNormalize)( vec3_t vec ); + +extern void angleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up ); + + +extern void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees ); +extern void PerpendicularVector( vec3_t dst, const vec3_t src ); +extern void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal ); + + +extern void AddPointToBounds( vec3_t v, vec3_t mins, vec3_t maxs ); +extern float RadiusFromBounds( const vec3_t mins, const vec3_t maxs ); + + + +///////////////////////////////////////////////////////////////////// +// +// 2D Vector routines +// +///////////////////////////////////////////////////////////////////// + +#define vector2DClear( a ) ( (a)[ 0 ] = (a)[ 1 ] = 0 ) +#define vector2DNegate( a, b ) ( (b)[ 0 ] = (-a)[ 0 ], (b)[ 1 ] = (-a)[ 1 ] ) +#define vector2DSet( v, x, y ) ( (v)[ 0 ] = ( x ), (v)[ 1 ] = ( y ) ) +#define vector2DInverse( a ) ( (a)[ 0 ] = (-a)[ 0 ], (a)[ 1 ] = (-a)[ 1 ] ) + +#define vector2DPerpDot( a, b ) ( (a)[ 0 ] * (b)[ 1 ] - (a)[ 1 ] * (b)[ 0 ] ) +#define vector2DDotProduct( x, y ) ( (x)[ 0 ] * (y)[ 0 ] + (x)[ 1 ] * (y)[ 1 ] ) +#define vector2DSubtract( a, b, c ) ( (c)[ 0 ] = (a)[ 0 ] - (b)[ 0 ], (c)[ 1 ] = (a)[ 1 ] - (b)[ 1 ] ) +#define vector2DAdd( a, b, c ) ( (c)[ 0 ] = (a)[ 0 ] + (b)[ 0 ], (c)[ 1 ] = (a)[ 1 ] + (b)[ 1 ] ) +#define vector2DCopy( a, b ) ( (b)[ 0 ] = (a)[ 0 ], (b)[ 1 ] = (a)[ 1 ] ) +#define vector2DScale( v, s, o ) ( (o)[ 0 ] = (v)[ 0 ] * (s), (o)[ 1 ] = (v)[ 1 ] * (s) ) +#define vector2DMA( v, s, b, o ) ( (o)[ 0 ] = (v)[ 0 ] + (b)[ 0 ]*(s), (o)[ 1 ] = (v)[ 1 ] + (b)[ 1 ] * (s) ) + + +extern W32 vector2DCompare( const vec2_t v1, const vec2_t v2 ); +extern vec_t vector2DLength( const vec2_t v ); + + +#endif /* __VECTOR_H__ */ + diff --git a/wolf3d/code/env/video.h b/wolf3d/code/env/video.h new file mode 100644 index 0000000..8d12592 --- /dev/null +++ b/wolf3d/code/env/video.h @@ -0,0 +1,68 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * video.h -- video driver defs. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by vid_sys.c. + +*/ + + + +#ifndef __VIDEO_H__ +#define __VIDEO_H__ + +typedef struct vrect_s +{ + int x, y, width, height; + +} vrect_t; + +typedef struct +{ + unsigned width, height; // coordinates from main game +} viddef_t; + +extern viddef_t viddef; // global video state + +// Video module initialisation etc +extern void Video_Init( void ); +extern void Video_Shutdown( void ); +extern void Video_CheckChanges( void ); + + +extern void VID_NewWindow ( int width, int height ); +extern _boolean VID_GetModeInfo( int *width, int *height, int mode ); + + +#endif /* __VIDEO_H__ */ diff --git a/wolf3d/code/env/wavfile.c b/wolf3d/code/env/wavfile.c new file mode 100644 index 0000000..47e89ea --- /dev/null +++ b/wolf3d/code/env/wavfile.c @@ -0,0 +1,241 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wav.c: Wav file loader. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + + +PRIVATE W8 *iff_pdata; +PRIVATE W8 *iff_end; +PRIVATE W8 *iff_last_chunk; +PRIVATE W8 *iff_data; +PRIVATE int iff_chunk_len; + + + +PRIVATE short Wav_GetLittleShort( void ) +{ + short val = 0; + + val = *iff_pdata; + val += (*(iff_pdata + 1) << 8); + + iff_pdata += 2; + + return val; +} + + +PRIVATE int Wav_GetLittleLong( void ) +{ + int val = 0; + + val = *iff_pdata; + val += (*(iff_pdata + 1) << 8); + val += (*(iff_pdata + 2) << 16); + val += (*(iff_pdata + 3) << 24); + + iff_pdata += 4; + + return val; +} + + +PRIVATE void Wav_FindNextChunk( const char *name ) +{ + while( 1 ) + { + iff_pdata = iff_last_chunk; + + if( iff_pdata >= iff_end ) + { + // Didn't find the chunk + iff_pdata = NULL; + return; + } + + iff_pdata += 4; + iff_chunk_len = Wav_GetLittleLong(); + if( iff_chunk_len < 0 ) + { + iff_pdata = NULL; + return; + } + + iff_pdata -= 8; + iff_last_chunk = iff_pdata + 8 + ((iff_chunk_len + 1) & ~1); + if( ! my_strnicmp((const char *)iff_pdata, name, 4) ) + { + return; + } + } +} + + +PRIVATE void Wav_FindChunk( const char *name ) +{ + iff_last_chunk = iff_data; + + Wav_FindNextChunk( name ); +} + +PRIVATE void DumpChunks( void ) +{ + char str[ 5 ]; + + str[ 4 ] = 0; + iff_pdata = iff_data; + do + { + memcpy( str, iff_pdata, 4 ); + iff_pdata += 4; + iff_chunk_len = Wav_GetLittleLong(); + Com_Printf( "0x%x : %s (%d)\n", (int)(iff_pdata - 4), str, iff_chunk_len ); + iff_pdata += (iff_chunk_len + 1) & ~1; + + } while( iff_pdata < iff_end ); + +} + + +/* +----------------------------------------------------------------------------- + Function: LoadWavInfo -Load wav file. + + Parameters: filename -[in] Name of wav file to load. + wav -[out] wav data. + info -[out] wav sound info. + + Returns: True if file loaded, otherwise false. + + Notes: Caller is responsible for freeing wav data by calling Z_Free. + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean LoadWavInfo( const char *filename, W8 **wav, soundInfo_t *info ) +{ + filehandle_t *hFile; + W8 *data; + W32 wavlength; + + hFile = FS_OpenFile( filename, 0 ); + if( ! hFile ) + { + return false; + } + + data = (PW8)FS_GetLoadedFilePointer( hFile, SEEK_SET ); + wavlength = FS_GetFileSize( hFile ); + + iff_data = data; + iff_end = data + wavlength; + + // look for RIFF signature + Wav_FindChunk( "RIFF" ); + if( ! (iff_pdata && ! my_strnicmp( (const char *)iff_pdata + 8, "WAVE", 4 ) ) ) + { + Com_DPrintf( "[LoadWavInfo]: Missing RIFF/WAVE chunks (%s)\n", filename ); + FS_CloseFile( hFile ); + + return false; + } + + // Get "fmt " chunk + iff_data = iff_pdata + 12; + + Wav_FindChunk( "fmt " ); + if( ! iff_pdata ) + { + Com_DPrintf( "[LoadWavInfo]: Missing fmt chunk (%s)\n", filename ); + FS_CloseFile( hFile ); + + return false; + } + + iff_pdata += 8; + + if( Wav_GetLittleShort() != 1 ) + { + Com_DPrintf( "[LoadWavInfo]: Microsoft PCM format only (%s)\n", filename ); + FS_CloseFile( hFile ); + + return false; + } + + info->channels = Wav_GetLittleShort(); + info->sample_rate = Wav_GetLittleLong(); + + iff_pdata += 4; + + info->sample_size = Wav_GetLittleShort(); // Bytes Per Sample + + if (info->sample_size != 1 && info->sample_size != 2) + { + Com_DPrintf( "[LoadWavInfo]: only 8 and 16 bit WAV files supported (%s)\n", filename ); + FS_CloseFile( hFile ); + + return false; + } + + iff_pdata += 2; + + + // Find data chunk + Wav_FindChunk( "data" ); + if( ! iff_pdata ) + { + Com_DPrintf( "[LoadWavInfo]: missing 'data' chunk (%s)\n", filename ); + FS_CloseFile( hFile ); + + return false; + } + + iff_pdata += 4; + info->samples = Wav_GetLittleLong() / info->sample_size; + + if( info->samples <= 0 ) + { + Com_DPrintf( "[LoadWavInfo]: file with 0 samples (%s)\n", filename ); + FS_CloseFile( hFile ); + + return false; + } + + // Load the data + *wav = Z_Malloc( info->samples * info->sample_size ); + memcpy( *wav, data + (iff_pdata - data), info->samples * info->sample_size ); + + FS_CloseFile( hFile ); + + return true; +} + diff --git a/wolf3d/code/env/wavfile.h b/wolf3d/code/env/wavfile.h new file mode 100644 index 0000000..c06ec21 --- /dev/null +++ b/wolf3d/code/env/wavfile.h @@ -0,0 +1,54 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wav.h: Wav file loader. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#ifndef __WAV_H__ +#define __WAV_H__ + + +// Structure used to describe a sound. +typedef struct +{ + W32 sample_rate; // Sample rate in Hz + W32 channels; // Number of Channels (0x01 = Mono, 0x02 = Stereo) + W32 sample_size; // Bytes per sample + // 1 = 8 bit Mono + // 2 = 8 bit Stereo or 16 bit Mono + // 4 = 16 bit Stereo + W32 samples; + +} soundInfo_t; + + +extern _boolean LoadWavInfo( const char *filename, W8 **wav, soundInfo_t *info ); + +#endif /* __WAV_H__ */ diff --git a/wolf3d/code/env/zmem.c b/wolf3d/code/env/zmem.c new file mode 100644 index 0000000..872d594 --- /dev/null +++ b/wolf3d/code/env/zmem.c @@ -0,0 +1,191 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * zmem.c: Zone memory management. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + + Add the following line in your initization function: + z_chain.next = z_chain.prev = &z_chain; + +*/ + +#include "../wolfiphone.h" + + +// just cleared malloc with counters now... + + +#define Z_MAGIC 0x1d1d + + +PRIVATE int z_count, z_bytes; + +zhead_t z_chain; + + + +/* +----------------------------------------------------------------------------- + Function: Z_Free -Deallocates or frees a zone memory block. + + Parameters: memblock -[in] Previously allocated zone memory block to be freed. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Z_Free( void *memblock ) +{ + zhead_t *z; + + z = ( (zhead_t *)memblock ) - 1; + + if( z->magic != Z_MAGIC ) + { + Com_Error( ERR_FATAL, "Z_Free: bad magic" ); + } + + z->prev->next = z->next; + z->next->prev = z->prev; + + z_count--; + z_bytes -= z->size; + + MM_FREE( z ); +} + +/* +----------------------------------------------------------------------------- + Function: Z_Stats_f -Console function to list zone memory usage. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: Lists number of bytes and blocks of zone memory allocated. +----------------------------------------------------------------------------- +*/ +PUBLIC void Z_Stats_f( void ) +{ + Com_Printf( "%i bytes in %i blocks\n", z_bytes, z_count ); +} + + +/* +----------------------------------------------------------------------------- + Function: Z_FreeTags -Free allocated zone memory blocks based on tag. + + Parameters: tag -[in] Tag of zone memory blocks to free (see header for tag). + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Z_FreeTags( int tag ) +{ + zhead_t *z, *next; + + for( z = z_chain.next; z != &z_chain; z = next ) + { + next = z->next; + if( z->tag == tag ) + { + Z_Free( (void *)(z+1) ); + } + } +} + +/* +----------------------------------------------------------------------------- + Function: Z_TagMalloc -Allocates zone memory blocks. + + Parameters: + size -[in] Bytes to allocate. + tag -[in] Tag to associate with memory (see header for tag). + + Returns: + A void pointer to the allocated space, or will shutdown application + if there is insufficient memory available. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void *Z_TagMalloc( size_t size, int tag ) +{ + zhead_t *z; + + // Allocate memory + size += sizeof( zhead_t ); + z = MM_MALLOC( size ); + + + if( ! z ) + { + Com_Error( ERR_FATAL, "Z_Malloc: failed on allocation of %i bytes", size ); + } + + // Set memory block to zero and fill in header. + memset( z, 0, size ); + z_count++; + z_bytes += size; + z->magic = Z_MAGIC; + z->tag = tag; + z->size = size; + + // Add new memory block to chain. + z->next = z_chain.next; + z->prev = &z_chain; + z_chain.next->prev = z; + z_chain.next = z; + + return (void *)(z+1); +} + +/* +----------------------------------------------------------------------------- + Function: Z_Malloc -Allocates zone memory blocks. + + Parameters: size -[in] Bytes to allocate. + + Returns: + A void pointer to the allocated space, or will shutdown application + if there is insufficient memory available. + + Notes: Calls Z_TagMalloc() with tag set to zero. +----------------------------------------------------------------------------- +*/ +PUBLIC void *Z_Malloc( size_t size ) +{ + return Z_TagMalloc( size, 0 ); +} diff --git a/wolf3d/code/env/zmem.h b/wolf3d/code/env/zmem.h new file mode 100644 index 0000000..855fc89 --- /dev/null +++ b/wolf3d/code/env/zmem.h @@ -0,0 +1,75 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * zmem.h: Zone memory management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by zmem.c + +*/ + +#ifndef __ZMEM_H__ +#define __ZMEM_H__ + +#include + +// memory tags to allow dynamic memory to be cleaned up +#define TAG_GAME 765 /* clear when unloading the dll */ +#define TAG_LEVEL 766 /* clear when loading a new level */ +#define TAG_LEVEL_SCP 767 /* clear when unloading level script */ + + + +typedef struct zhead_s +{ + struct zhead_s *prev, *next; + + short magic; + short tag; // for group free + int size; + +} zhead_t; + +extern zhead_t z_chain; + + +// Returns 0 filled memory block +extern void *Z_Malloc( size_t size ); + +extern void *Z_TagMalloc( size_t size, int tag ); +extern void Z_Free( void *memblock ); +extern void Z_FreeTags( int tag ); + +extern void Z_Stats_f( void ); + + +#endif /* __ZMEM_H__ */ diff --git a/wolf3d/code/iphone/EAGLView.h b/wolf3d/code/iphone/EAGLView.h new file mode 100644 index 0000000..80e8881 --- /dev/null +++ b/wolf3d/code/iphone/EAGLView.h @@ -0,0 +1,58 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + + +#import +#import +#import +#import + +/* +This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass. +The view content is basically an EAGL surface you render your OpenGL scene into. +Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel. +*/ +@interface EAGLView : UIView { +@public + UITextField *textField; + +@private + /* The pixel dimensions of the backbuffer */ + GLint backingWidth; + GLint backingHeight; + + EAGLContext *context; + + /* OpenGL names for the renderbuffer and framebuffers used to render to this view */ + GLuint viewRenderbuffer, viewFramebuffer; + + /* OpenGL name for the depth buffer that is attached to viewFramebuffer, if it exists (0 if it does not exist) */ + GLuint depthRenderbuffer; + + NSTimer *animationTimer; + NSTimeInterval animationInterval; + +} + +@property NSTimeInterval animationInterval; + +- (void)drawView; + +@end diff --git a/wolf3d/code/iphone/EAGLView.m b/wolf3d/code/iphone/EAGLView.m new file mode 100644 index 0000000..13cb97f --- /dev/null +++ b/wolf3d/code/iphone/EAGLView.m @@ -0,0 +1,360 @@ +// +// EAGLView.m +// wolf3d +// +// Created by Cass Everitt on 2/20/09. +// Copyright Id Software 2009. All rights reserved. +// + + + +#import +#import + +#import "EAGLView.h" +#import "wolf3dAppDelegate.h" + +#include "wolfiphone.h" + +struct AVSystemControllerPrivate; + +@interface AVSystemController : NSObject +{ + struct AVSystemControllerPrivate *_priv; +} + ++ (void)initialize; ++ (id)sharedAVSystemController; +- (id)init; +- (void)dealloc; +- (BOOL)changeActiveCategoryVolumeBy:(float)fp8 fallbackCategory:(id)fp12 resultVolume:(float *)fp16 affectedCategory:(id *)fp20; +- (BOOL)changeActiveCategoryVolumeBy:(float)fp8; +- (BOOL)setActiveCategoryVolumeTo:(float)fp8 fallbackCategory:(id)fp12 resultVolume:(float *)fp16 affectedCategory:(id *)fp20; +- (BOOL)setActiveCategoryVolumeTo:(float)fp8; +- (BOOL)getActiveCategoryVolume:(float *)fp8 andName:(id *)fp12 fallbackCategory:(id)fp16; +- (BOOL)getActiveCategoryVolume:(float *)fp8 andName:(id *)fp12; +- (BOOL)changeActiveCategoryVolumeBy:(float)fp8 forRoute:(id)fp12 andDeviceIdentifier:(id)fp16; +- (BOOL)setActiveCategoryVolumeTo:(float)fp8 forRoute:(id)fp12 andDeviceIdentifier:(id)fp16; +- (BOOL)activeCategoryVolumeDidChangeTo:(float)fp8 forRoute:(id)fp12 andDeviceIdentifier:(id)fp16; +- (BOOL)getActiveCategoryVolume:(float *)fp8 andName:(id *)fp12 forRoute:(id)fp16 andDeviceIdentifier:(id)fp20; +- (BOOL)toggleActiveCategoryMuted; +- (BOOL)toggleActiveCategoryMutedForRoute:(id)fp8 andDeviceIdentifier:(id)fp12; +- (BOOL)getActiveCategoryMuted:(char *)fp8; +- (BOOL)getActiveCategoryMuted:(char *)fp8 forRoute:(id)fp12 andDeviceIdentifier:(id)fp16; +- (BOOL)changeVolumeBy:(float)fp8 forCategory:(id)fp12; +- (BOOL)setVolumeTo:(float)fp8 forCategory:(id)fp12; +- (BOOL)getVolume:(float *)fp8 forCategory:(id)fp12; +- (id)routeForCategory:(id)fp8; +- (id)volumeCategoryForAudioCategory:(id)fp8; +- (id)attributeForKey:(id)fp8; +- (BOOL)setAttribute:(id)fp8 forKey:(id)fp12 error:(id *)fp16; +- (void)makeError:(id *)fp8 withDescription:(id)fp12 code:(long)fp16; +- (BOOL)okToNotifyFromThisThread; +- (void)handleServerDied; + +@end + +AVSystemController *SharedAVSystemController; +EAGLView *eaglview; + +// A class extension to declare private methods +@interface EAGLView () + +@property (nonatomic, retain) EAGLContext *context; +@property (nonatomic, assign) NSTimer *animationTimer; + +- (void) destroyFramebuffer; +- (void) swapBuffers; + +@end + + +@implementation EAGLView + +@synthesize context; +@synthesize animationTimer; +@synthesize animationInterval; + + +// You must implement this method ++ (Class)layerClass { + return [CAEAGLLayer class]; +} + + +//The GL view is stored in the nib file. When it's unarchived it's sent -initWithCoder: +- (id)initWithCoder:(NSCoder*)coder { + self = [super initWithCoder:coder]; + + eaglview = self; + + // Get the layer + CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer; + + eaglLayer.opaque = YES; + eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: + + [NSNumber numberWithBool:NO], + kEAGLDrawablePropertyRetainedBacking, + + kEAGLColorFormatRGB565, + /* kEAGLColorFormatRGBA8, */ + kEAGLDrawablePropertyColorFormat, + + nil]; + + context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1]; + assert( context ); + + if ( ![EAGLContext setCurrentContext:context]) { + [self release]; + return nil; + } + self.multipleTouchEnabled = true; + + [EAGLContext setCurrentContext:context]; + + glGenFramebuffersOES(1, &viewFramebuffer); + glGenRenderbuffersOES(1, &viewRenderbuffer); + + glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer); + glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); + [context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer]; + glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewRenderbuffer); + + glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); + glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); + + glGenRenderbuffersOES(1, &depthRenderbuffer); + glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer); + glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, backingWidth, backingHeight); + glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer); + + if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES) { + NSLog(@"failed to make complete framebuffer object %x", glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES)); + } + + glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); + +#if 0 + // set swapinterval if possible + void *eglSwapInterval; + eglSwapInterval = dlsym( RTLD_DEFAULT, "eglSwapInterval" ); + if ( eglSwapInterval ) { + ((void(*)(int))eglSwapInterval)( 2 ); + } +#endif + + // with swapinterval, we want to update as fast as possible + float interval = 1.0 / 30.0f; + self.animationTimer = [NSTimer scheduledTimerWithTimeInterval:interval + target:self + selector:@selector(drawView) + userInfo:nil repeats:YES]; + + return self; +} + +- (void)drawView { + [ (wolf3dAppDelegate *)[UIApplication sharedApplication].delegate restartAccelerometerIfNeeded]; + +#if 0 + //------------------ + // Volume button hack + { + if ( SharedAVSystemController ) { + float newVolume; + NSString *categoryName; + static float activeVolume = 0.9; + if ([SharedAVSystemController getActiveCategoryVolume:&newVolume andName:&categoryName]) { + if (activeVolume < newVolume) { + [SharedAVSystemController setActiveCategoryVolumeTo:activeVolume]; + Com_Printf( "Volume up: %i\n", Sys_Milliseconds() ); + } + } + } + } +#endif + //------------------ + + iphoneFrame(); // swapBuffers() will be called from here +} + +- (void)swapBuffers { +// glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); + loggedTimes[iphoneFrameNum&(MAX_LOGGED_TIMES-1)].beforeSwap = Sys_Milliseconds(); + [context presentRenderbuffer:GL_RENDERBUFFER_OES]; + loggedTimes[iphoneFrameNum&(MAX_LOGGED_TIMES-1)].afterSwap = Sys_Milliseconds(); +} + +- (void)layoutSubviews { + [self drawView]; +} + + + +- (void)destroyFramebuffer { + glDeleteFramebuffersOES(1, &viewFramebuffer); + viewFramebuffer = 0; + glDeleteRenderbuffersOES(1, &viewRenderbuffer); + viewRenderbuffer = 0; + glDeleteRenderbuffersOES(1, &depthRenderbuffer); + depthRenderbuffer = 0; +} + + +- (void)dealloc { + if ([EAGLContext currentContext] == context) { + [EAGLContext setCurrentContext:nil]; + } + + [context release]; + [super dealloc]; +} + +- (void) handleTouches:(NSSet*)touches withEvent:(UIEvent*)event { + int touchCount = 0; + int points[16]; + static int previousTouchCount; + + NSSet *t = [event allTouches]; + for (UITouch *myTouch in t) + { + CGPoint touchLocation = [myTouch locationInView:nil]; + + points[ 2 * touchCount + 0 ] = touchLocation.x; + points[ 2 * touchCount + 1 ] = touchLocation.y; // ( h - 1 ) - touchLocation.y; + + touchCount++; + + if (myTouch.phase == UITouchPhaseBegan) { + // new touch handler + } + if (myTouch.phase == UITouchPhaseMoved) { + // touch moved handler + } + if (myTouch.phase == UITouchPhaseEnded) { + touchCount--; + } + } + + // toggle the console with four touches + if ( touchCount == 4 && previousTouchCount != 4 ) { + if ( textField == nil ) { + // do this before starting the textField, which + // takes a long time + iphoneActivateConsole(); + + textField = [UITextField alloc]; + [textField initWithFrame:CGRectMake( 0, 0, 20, 20 ) ]; + [self addSubview:textField]; + [textField release]; + textField.hidden = true; + textField.delegate = self; + textField.autocapitalizationType = UITextAutocapitalizationTypeNone; + textField.autocorrectionType = UITextAutocorrectionTypeNo; + [textField becomeFirstResponder]; + } else { + void iphoneDeactivateConsole(); + [textField resignFirstResponder]; + [textField removeFromSuperview]; + textField = nil; + + iphoneDeactivateConsole(); + } + } + previousTouchCount = touchCount; + + iphoneTouchEvent( touchCount, points ); +} + + +- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { + [self handleTouches:touches withEvent:event]; +} + +- (void) touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event { + [self handleTouches:touches withEvent:event]; +} + +- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { + [self handleTouches:touches withEvent:event]; +} + + +- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { + [self handleTouches:touches withEvent:event]; +} + + + +@end + + +@implementation EAGLView (UITextFieldDelegate) + +- (BOOL)textFieldShouldReturn:(UITextField *)_textField +{ + iphoneExecuteCommandLine(); + return YES; +} + +@end + + +const char * SysIPhoneGetConsoleTextField() { + if ( eaglview->textField == nil ) { + return ""; + } + return [ eaglview->textField.text UTF8String ]; +} + +void SysIPhoneSetConsoleTextField( const char * str) { + assert( eaglview->textField != nil ); + eaglview->textField.text = [ NSString stringWithUTF8String: str ]; +} + +void SysIPhoneSwapBuffers() { + [eaglview swapBuffers]; +} + +void SysIPhoneOpenURL( const char *url ) { + Com_Printf( "OpenURL char *: %s\n", url ); + + NSString *nss = [NSString stringWithCString: url encoding: NSASCIIStringEncoding]; + [[UIApplication sharedApplication] openURL:[NSURL URLWithString: nss]]; +} + +void SysIPhoneSetUIKitOrientation( int isLandscapeRight ) { + if ( isLandscapeRight ) { + [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight; + } else { + [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft; + } +} + +void SysIPhoneLoadJPG( W8* jpegData, int jpegBytes, W8 **pic, W16 *width, W16 *height, W16 *bytes ) { + CFDataRef data; + int dataBytes = 0; + UIImage *img = [ UIImage imageWithData: [NSData dataWithBytes: (const char *)jpegData length: (NSUInteger)jpegBytes ] ]; + int imgBytes; + *width = img.size.width; + *height = img.size.height; + imgBytes = (int)(*width) * (int)(*height) * 4; + data = CGDataProviderCopyData( CGImageGetDataProvider( img.CGImage ) ); + dataBytes = CFDataGetLength( data ); + *bytes = 4; + if ( dataBytes > imgBytes ) { + *pic = NULL; + return; + } + *pic = (W8 *)malloc( imgBytes ); + CFDataGetBytes( data, CFRangeMake(0, dataBytes), *pic ); + // convert BGRA to RGBA + for ( imgBytes = 0; imgBytes < dataBytes; imgBytes+= 4 ) { + W8 tmp = pic[0][ imgBytes + 0 ]; + pic[0][ imgBytes + 0 ] = pic[0][ imgBytes + 2 ]; + pic[0][ imgBytes + 2 ] = tmp; + } +} + diff --git a/wolf3d/code/iphone/Info.plist b/wolf3d/code/iphone/Info.plist new file mode 100644 index 0000000..bc5d079 --- /dev/null +++ b/wolf3d/code/iphone/Info.plist @@ -0,0 +1,47 @@ + + + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + ${PRODUCT_NAME}_icon.png + CFBundleIdentifier + ${PROFILE_PREFIX}.${PRODUCT_NAME:identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.1 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + UIInterfaceOrientation + UIInterfaceOrientationLandscapeLeft + UIStatusBarHidden + + CFBundleURLTypes + + + CFBundleURLName + com.idsoftware.wolf3d + CFBundleURLSchemes + + wolf3d + + + + + diff --git a/wolf3d/code/iphone/MainWindow.xib b/wolf3d/code/iphone/MainWindow.xib new file mode 100644 index 0000000..fc76dc5 --- /dev/null +++ b/wolf3d/code/iphone/MainWindow.xib @@ -0,0 +1,223 @@ + + + + 528 + 9E17 + 672 + 949.33 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + IBFilesOwner + + + IBFirstResponder + + + + + 1316 + + YES + + + 1298 + {320, 480} + + + 3 + MQA + + 2 + + + NO + + + + {320, 480} + + + 1 + MSAxIDEAA + + NO + YES + + + + + YES + + + delegate + + + + 4 + + + + window + + + + 5 + + + + glView + + + + 9 + + + + + YES + + 0 + + YES + + + + + + 2 + + + YES + + + + + + -1 + + + RmlsZSdzIE93bmVyA + + + 3 + + + + + 8 + + + + + -2 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 2.IBAttributePlaceholdersKey + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + 8.CustomClassName + 8.IBPluginDependency + + + YES + UIApplication + UIResponder + + YES + + YES + + + YES + + + {{500, 343}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + wolf3dAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + EAGLView + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 9 + + + + YES + + EAGLView + UIView + + IBProjectSource + Classes/EAGLView.h + + + + wolf3dAppDelegate + NSObject + + YES + + YES + glView + window + + + YES + EAGLView + UIWindow + + + + IBProjectSource + Classes/wolf3dAppDelegate.h + + + + + 0 + wolf3d.xcodeproj + 3 + + diff --git a/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/categories.pbxbtree b/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/categories.pbxbtree new file mode 100644 index 0000000000000000000000000000000000000000..d3365af8f564d7357d110f8902e8b87471cf9d5e GIT binary patch literal 1320 zcmb_bTS!z<6kYp_=_o_gPubhjuyiJ@DU33U9@E1xGxfu)EHTYM{IC*#DjE6-q6bAp zg!Gd{5Bi9~0=2+W1Dg^m!oX@uh(3Z6A}w3nnLAFmK0C13=bpRw*=w)8PZEGpE*i{q z0EYG)F;x#DE1uR*WG)iCTr3C?uDyb7wStj8gY*T06U72Yrl2oHFd^dqC_`{HN05;# zXdoVM6x3`H93vXH3$hCZtwa+2HFp|q?>xaP?!WP#B7UpCl3KPykVWe$;a&XSUmN4{Q_@;;5h3oVgB7jZMNVxkr?qmxk7NZM(~CBv{Eo!Dey7QvsRG1PEgAH zvkJoge#Rs+@2)(-MCRB^u2lr6<56B+dp`8fxS3c>R1P6%=gx+(QNMq~_>hgwr zL%#K8f&|8>zt)w^|5k0C%KX^~5QnmHizgEPwm?G-{%~nOsT@ zb_(3&@?hV%p32k5{O+$N%C~^uS=F2)qKSIVrqx+f{^vPkgI+=LQtJNEMD>p4u6xyA zXD7(AF1ZDhXpfM`Y2H!Bo~+?_o=?zBt9q65Ty<(;%;p1vYR*jeQ-h1NJueKt(^`um zV@vy`v!cBI*Rpi9>y^y8*4duIe$A;8_^FALGo}8Tzlq%6?h!1cww7jE$2GnK({2#x zHYn;cV>&AD52+G;pPxBb)*H3gVezr&E$7VZ8%u37aPj^iNyI%g(K)c6yZ8?EEhdn| zjVA_Y*t>fpVSnXs=lPm^RsR9vde9)}nL#gM&4He;AN})R%5#IdcLukJ%kK>;hsOEX b^H%))chjtQGCkh$*Ij{M26qhyBxd~vW%S%; literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/cdecls.pbxbtree b/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/cdecls.pbxbtree new file mode 100644 index 0000000000000000000000000000000000000000..5bd8f11130c5608fc826ad5bf013d07f1afb4914 GIT binary patch literal 423156 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%0DV)Of&v>>xzG}{`h%A`H^N(OqAL2j^h^YBLzvx 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 literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/decls.pbxbtree b/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/decls.pbxbtree new file mode 100644 index 0000000000000000000000000000000000000000..8b608add39672cd2e8a0512ef55c24d138c42899 GIT binary patch literal 421664 zcmbr{3Aj#G|2X`0?sE>xJVl1gnPnzZ#>|G9{Htl2XXjV2Vnm zNRlG6$du~+Y##5wfA91Dp5b?{>vMhgeDA&X+H0-7_P+0vGlcM`KOvlWAuhy=AD#+f ze)4F_^}h^4>9`OMjExK5(WRE*+v38YlOY_;7{Z2RA#5UF!C1)3?PO=wBeAfH*`s6O zO-3$`3uAeViLBraMlp@)yufl^d6H1?x`M9C|Tv0tO=Cxj7V>!k7F+ZG{=8Xg~# z-w_Mv+a`oV#bY5uhlFs4@pf$z!a3tRIwgb$E5^dn#}mRW(kXMpgfO6T2+K0Yh4;nc zuZ8f6*kD`;Pl#K_hLEFC2vuJXVV-#SjS$u~cD@Qr$8sSw9~?qQvE~CItQ2>My~VYI zLKr9wdcJ4b`XLl~A%y+u>|f3hdgO|QY?Ttid#xQr`nYhvIB-~ec%e@$RLztaKKI!f zk|u-?_Qi#EX%fRq+Zq2=2>U9>!v0AKVMf*vF4ar8mKIghhj3-NGidnI{w_`NC+W6caYZf=$h@}GymDK z^fP@RgSc^ABMpxxI=)TPap7xmVI~a>pKxG5ah_8gXp|YLm^>zsBsqUPvN$uKk?0uf+Ze_#TSm?Pf7HU|o z80{X23xfy8g>hfR!gyYHAdMcBKf5W18pMT)PHO2?&I4ID#6lq?TPU9x7k>2F$B}iz zB?iW%XS%pBf!wag0u-Y(6{t!r>d}~%bf!OpY1J@ZBgytqJF zV4ogweNSXIOL>z`e1a?&2Ih$mFIjFSit?bN{0J z{{ru`j_>)7k)vEU=I>LF+|PTKFRF|0a~uuKpQPS>_MuonxEM*xl zWA$s-?Plk3v1{)GajE!`_>#C)TrO@GUl(_ZE5%*nTjHnUJK{;_;0wOz2tV_H{VL;F z-nGnZ%k)%u6f=CNpE@54E4IhN+iYeBUvPk*ImcBJcgUk;;Ii?p#0;lpgW;d}j5F+G6|a&!TBfG_ zLVAi-aP8!mhlt9tj^$%vi*r-K^<#I!IjT{cC$onznf&&@q4A!~G(L~T)N#&V5#OY- z;pXO#n`pY_TO04K(t1+HuB&dUL2X)dG1`{O_72N6xyyB9KUVdN4;vRsCmv)3yXd9d zeN6n4?h4qSnD9(240kPzelQjuWjupSf5x=0le)$%JC#z}cV+qclsb8rv}>TO;vV_# zoaNSzP)|^>onu6m6AqV668`j=t(~Or6)1a-g%EE)lTz6}-%Tplbz#R>&u~+co0r41 zG-5{Dn%2(x6MgpR331^*XTRrJ-I|#$OBI)H@TQ7ot%TaTG=)oOnXw^nJI6~p?sYX z%5_$TJ6=^&7}_f?+-02_#91#-t`KT{V}EJnn3`KYv*p`}8O27HYsO8MEhXkMt(AGV zMNyg$rH5mEZ>Tn;*o8#LopYExVcKoZUvi(FnjW^1RgBW3i21)ab*=C#S2)i_E^&?v zoZ>gGa-0*K<_u@~g+IB>AH+2?ue!2^k7_!P^p|eEevlW;OHE_r>l{mzKU)717haL4 z9=20Y%U7esCm22~E_9@8zF6oY_7?|tw3_OTpQO9IKG}FnQV6avoQXjpteGPUd;O zQ9!@r7~f?*8`wlFxx7gdl5sOB*kay?$d+MBMdf@O>G`8P@PP9%Nc~-3-WY5j>RHFM zhs3_7#hF&lvT2T}W8}vPhI4-B{K=2!>Nqd0VMfz>3?jif>@UFRH6!1sma~cp&kvmhsNCa zi|V~8#p1&nW$~M=`$j&=slIm3`%G8A(2Xwiq&=PZMOo18cw9)J7`u+SUl4EmOdrLL zxKQ*9_YvZh$ZloVuDH;H3x;coxj&5yck;C150TwN9To8cX(M}vsxkTG*SOI9V0`%9 z&E42<;=?)RZMOaK;pcPiU%!tJqc6mT6o=!(MDwqH9UsP;pJHEp7-s$w%MEm2H26?_ zNOW&C`;Yi=SRMV`?eU>)dgX|l_-t{`u{vziRrggV;=`k2f|$?emo5+=+=hg`(j-Bq zIbrz%+Mic#uUvw2E58hQKj!ljL&_t{hh|Aa4%bAA1&^A#jf=MM16=>zt%66IeTJQr3_hn zr@HBkdy56uzvNo%5EoJ}kA>OXrpF%0RU zyic1La&=H%)k_S$#m0XmghFE1+=<~t8~Na9LP+Ks`S^9``1QDOsdQpkp_Sa&RsGoJnoB--X+9%3lN7{Q~A;>&sN`?$BVdV78>lyGlTYnJO*tfB2)=2_SI zZ0!cqqJ7)ZJ{CS=9iQ^~ap@^NqIzYzdVDsoy4GtPQ$L#bDd*T^-ExcKLcdLMp|0y| zgZuK&TyJBX)OY#DM!ukrOn*N^D6H%$N)z`E4djhFw*8sy-opk)n|7b&Dl5o$*uF)t z?Z<1$om*D2iq*WsyR2nB8`#7aKICJzv4c-|+je`|-b~lPI@><-yw>V;Sed z@CdP$@sGv(#BJif!mdSn7~f%hj^P1@KQTN++%1k1KNHWJH{I|a!(ZFpqvCAiM+}cL zywvb3tl)%cV@!+AOB(k#U9?L}NWarS5x007TXiGP~ zZX(Y=Ca;ZFw}`X%x}TN!hZxPb6mqWCRdz4Swfeq$Lb%Uwr(!E-vJv zI`?oVZRk!ZRA*tu%W+}6cHb1HF_F`p<@ud);r0TqKl!VLb2@a8b_Kua3rsUuy{CV; zD0gg7w{O%Ralidws^L~T<}VD?pKN@zb<&N}jwD7>l9QVK}q=bnMFl{EWe;fHVa2N4d$!X1?1s^z*#x9#lFa5+YozVar+>9yBB zaZ(@EIo8=$jRyKQd`zm1n(QZ+i+^vOZ5jF%U}MY`^oV` zVqwT}eFL`NMQrS3RX04`a1Saij|*QV7%r-hmIg1n*Jqz;NnPv7`7ucdJK3gu{DAk^ zMHAa<#-)7vvt1vPI7a1y%735Hj(qkp+K-%dm60Ex6`Bk z{qv7#-`uUgcd2{fCh|iib%pfKNPad-m$wN^+&eDz>{gupLM)82{7vR(A`i*QK`yd0 zPaeohO2cW%%0ka{oAcel1bUl>+Rguz`C!Xjz&ZA1Ox%Ex=F#KLjDygwE`KA|1W zB<;uU+F7HYlK!u%Z|ghm2GT@1)J8fF&96URT6Zg=&!U*)FRnkRl=0M_xBTE53Z7va zZd1v%Y50i-p0RXtUGm~T&dZ*~(X)*Z`n{+Q>!NRq7AZVyT;|%Q5Ov5;E&9l3Uwds9pDCq&s`>7vwIBbitzFD9?ah(OxQ(^7tt5u*eyv|@ zlzYbZ8T5}yw=sqvHQb4ToF3t`oVO?4tMoMf76kuB+8KV(v2_xA(W$?- zuFok;)Yh%eJ$&3mJ;o!JecWgD$aVexI%+3Z$f+Gg{~Yo>%Q;UH(-MeLmMx}jAf4ff z>GeAszREK4){*DAjoiGyCN8YwjQvkr*uApP%VxbpmQ9sXUxv7pL1YT@i2H=2_Ui(B z_>yB>;vk2(!YR&BQoFn>*>lH267DwKo4ST?rzO7_FD>3B-ouy5$06@K2Jzy0b%;1^ zozD@UH9fj+tIE6uGaGnS8O}J@dqLC6ki>Wbg~)G_JVfjCxT-E;Ec5x1v&4RP-HAEG zZDKC*V=<5Tp_otHBIXxg6Gt%@hj*=gIyIT|CbMi~3#|ueW8CaIU>GC#Dqf$CIEpch z<#EO{fr)hRaB(rOv4&0T;42Psnk#H`AN&gyYHBMfmt?1~wpT*fqps;RHZIKK+wu0% z!7rj+ae0muRh4_y^^?~2d9K&=os=!T-NO=yJcr=~X0bmf^W8!An7pXyrd`H1{R5fh7(#kA`3S#$f`kqqtS z4el&TsKui+=X={Y#19#eaZWS7R^G@vNZohRe%DjSEVMo2qt3WiZLhdIIKXwY*77-$%0n|l_}sBBEA9HR zof(Ux>qmKTv-&ruw5Y4CS;Vn))+VrgbDy0jiTm!!?rn`9Okq35gZ*uGm;ITbZ4>A7 zOjGrTOIvJ98ota*7O{*KEZ{>vW*a+rm)(5AXRPNP*0P5$Sxm$YbDx`y_Wfg{TyJkcF{iG?&{fIH+{ct<6o&N>fui-vG7rAxS8Xwb^D1qL&f@yd+ZT^L3EC4-=og4A5ovqThghk#JSVO^IpGL$mzH$IflpYmB%}4yGon76TF|L z3@N7k=+V->D??l#Bljs+4KMjdz7bdNb&ZPsjL#Hnf9d?l(6CcfA4c)l`@hmB)lb!NkI}~q#_xAm>y-`Q3s218GP?GE#9f zDJW7$`Y>6Bf10Nl$74Lf_*$NgZ*aUEc3cNI$RXxEqFk&Y-%4XyGR)|pt)Q*?hRjmd zeiWmYy5=r%?{M$99EyeZbcrZ8X7D__7*@b`S>QT;PW$4f;`(Li&Uf~&qVu2Nn0MXe z9!1&EDp6TW%B1p_eQf2t-%FGpQ5(6ra-t=zX-5Y-QjAHgvrp;mbXu$)s!#$DavJ$_PBO=&Y+0>b>M7k; zimiR_A@QJCJ^A%K)KMI2zaDkJ*KA?^*`0IXW~Os+u3hB z6`%Lcrq7Mi{;Ga}56?>*)AC=E2JPJ=n;!M&ekM^4aDuB$d{>@#ywMFsqbYHr32lez zPhm!{Sooy3{T$`~f!QqNRo1e_%Li4&HatK*X|Se+`ySq49q;iLud@-S{aU|A9%;Di zarH1MPCFk3y@yymE*!0){ZLC8#^s;A%VGLEyv2Lm{iwdM3(8BTShk(zMv24dNoV@g zjz+X#vv$jF&XTjZKDH9q>)Gh}(`$}YBV7#)1&^|HOJK_>|`q+ak=mR=>wkWTs>>rJYw?R z($t#M3gStwhYQQy|7t&1CF&<`kW)P;j}KOMM19sL?E8DxTdzLLO?vfg)Q|nLlhK2y zKRcuSi2B)6X?NUZy)0rHZXs%uhI{g*+vJGNpWRBh;dF`kU- z;=3MH7d>R#LmbCY`)zt@7P*(~yebxY@b%lVa6;WYodHc7mK=HN~)*Ixi0KS)PFlW%7Z851)ihn zN!#RVH+`D!x0dSz%uvOBV0!(y9OO6yJ9`J8S6M^SF3M_hwU8DFx8-E3n$d)dSWI;m(oPL_`qJT<6HIVw_(ySS6OOt<`0 z2Gx_t=u}_5C{AJyOBq9NqWUFz{x{9}ox}vD@C>Q4%TwBcedx&x>dbH4+osiKdDr#a zoOZ0GB^_8#YdZ1{O=&|}&j~9~iSksZCRM0PbY3bQ@Z5Nt&uSAFDxZmku~oJA+Pg3R zUi9`~aO$onc>W$GTnHTxwPDP{e9#D z$&!RmqW!EE3$@v6coX}1O8z|{cG92Smo`thz9>T>rl0eicDV1f@cannF0b=8bxmtZ z1#WiD4HSQ^qrK}|sY?U84%04@zKW}B=Vjdj?Ni=oBb!;n=X}6Ne8s114~^`n)u12OaI35DI7;H?gl-JG-|nqr9lB zUL{m<4?-$3k&^=4O??{Ef=*1~8J=T5-}4jaZKs?#ft_r<&GGQy?XD4Rjalk|s2r;^ zLjIDE6V-=bHI0Sunt2b7v;0ZY=K41%J;yr&^kX6Gsdu~Y7|?Bl`bxg9{h0UfsLS2d z;VsYgzV^9WYfE4D@*PLn?YIvU?ML)HY=M0m&8?Z04eIiwsg!s0O`#sP{rkm-NNL(I zaWvz&l0_Ow)E|7#|K=~cUZVG5t}Jwoe&{{?4}2d*{3??f@=uRJp2M)+_Vn?wX zo$1O})4GTq*k!nrxKsR;c81%q+3@G|Q>Kq0$fI$@h({7!+mE%%(+oM)zxw}QGkl2@ zh9`;RS;Pg;3wpioeu(edtFInvlY0oU*Mm)gKgnt4->S{Q z0+z6hMZAntf9?IGJ@#)d1?<~?v6whb9LNZg886OQ!+FI@Y%;url7>rjGZTy-WCp+R zE*~?WZWEkK=4e|EHU8JX8~ah-HhwbiFblZADn>6?F0F8n$eTRRv&`cKUS%O`EH{}3@nvWxHX*q83ge#e^J`90_!|15K#jD=SiKH2w(ctL(!LwfD!l=9}UlY9rL zn*2|c9?^Sh?>a{l?bqW>U_7&x=M&sp?A2%b_9MPeGupeh`cc>EH~g)JYk;5lm1WBO zW^`b#cF+QbF_Pu1WCD{}%u9@VM0-*GD^Jw^h`w9ev$(z{nRe_Vd8w^y^OUwwGW%kI z)#IGwoSsGX*XL0&F-&|)pKQm(aPwh(IbMb=>lpWXs9k25=d0}!!g9w`U){dv#e|STTJ0{T4Wo=(QN%LF%NJEwIF5tXe`Sf!Uz8YTM(1;3Vkqd`4&Euh zH+Nm`&`uJc`$+v@`U&H+nmMkGt{1WKrfXe2*WTTmD~~Q^#?8)=I8B_yHp6>(jU5ah z;~0BuJM&1NSa`zm9n{|Zh4(kBQ@6OLd3|(TsG8NY$?V>XW{q-dB^z07-#?PpyIEuS zb1^z6J$uH73Nq`jMm|-@my^KHr1~|bk7hyOV7C2Jt1jHPjcc(#;f*kn*CcX zK6{sYS=Z=kX>*yTk1024K@*zOn3l9+z7M#Mgj~u??oA=z2iI0=_uQi2Ul%yu3?91klm8D$e5A|ai+b-)f@1#7XC`V<=P?FNj zkPgrAt?M_V{V1Z%-mJ7XewkQ!XNYG4rCgshbYI()R-CEfGiK?3?C74^x}WXSCKJC9 zzisASfapB3iCoJp!~Lhdw?Y0j`Z1H}Q=xTA^+Q(e-E8g?T?3cMqW-Y!*Pgd;wtuhk z1|RSyZ}S%GNatOF3}hq|X-G?EZlTiv>7Cv^o_g@Z=X~GJK33VUFWL1o+rB;}P82iD z(5C;+vt_!|oZXgnnO@tEuYFdY!tTS^XZTyb<9mJ}zv(}U1;w_zQZ^1Yov|KgutnJJ)Jd?>xM;5uZAHSRT8>jif^cO7Ojb6M&8K3`(_$u%5 zK3grjlaJU=9@A2imeg#vo#D~2_>%cA@(S;h$`~#cEoXQD{dmmyo7~7B zai&%C`8B9TZR%2=hBV?%%hb0{Lq6p`zUB*lwNDMruVwh6;b#qh%|hdg*=YD@j&PFG z9Oo>*qFH|}Jqr7r0hZ4%<}*D%1u0BX?x20d{QQ>7L{@I)e(7`EXMbmY4Vv&heWGpB zkGm{WnTp&=UGra|78PwHD#xPtQ|cS9VSJ}`ZW3D=PbwzTg5jn=%q+t@&3oSPM`9=A z$;v6y40o~pade^^_c71>W?~bbH{3|P-?~K&cd<@43LB2fk7z&cH~s*fEc2jc|>YZzm3Ml@5Jwk+Cb5M z%<|bYjc+$^o^5_0ZZ_UYd`jHKSA5Q&_U|t7VMfx-GHoN)%V#_z>AA_YUX(Mu%Q~Nu z!{>Z1enBq7H~ymih_06*w$VOXUVKn|g37kBm?wFPSIv7`97k%`%LkTO!vnS#Cmylw zSIui-ye_XBeu=t7d7+7AZsdnqwl#+vf0`55(xZfB?qHwg8}Thq8-G!pD)!(F<{6(u zGsA6Z#l1|m&8L{o)68TtnJk-!fAy#Nb!|T$v1}j5(2D`|<1vQtFpn^j;nZg|C9G41 z7pP&pHnsT8_^o1AvQx%>mf~$5v~PXPA3#4IGwn^HwrP|;LygX5OXCFbFz;nSSu9KW*Fe%#2XH?G@?rX@G;KJh;56*Qck z8+ra&)Bc+8OE}I_+{ph6%`a^H@7KY9s{b;<7=~KnQ)#X#4x8q))XM9FY=SsY4`Vre(V!Ic`BJPzg zTfcc#%bVX?+vj!THEl1wc0;m!+V0v3Gls@O?jN+-cgBaizR~9YCLv_fHkkNgd}!ZV z9$K0ZhFiBletn-OwAsbF?`g|7h!4Bg>91=UAL<)VXzV*kYuy(&j1OluDvEz2pPFB~ zS$sJ9u6qa5Uv#W9>cofa_Pw#szL7Uxw7(^!T^Wi}iaV&tU6i9TcT&x=e{Vl*H+?f( z`G^mg?wJ4Gzo?Fju9bgPSH5k#FYy+y^CoW))uAtnKZ{2=$qU9$i%&RLcTkk$#?KPf ztBcM5``?Xg_FnVyIL?%$B{iF^v(fZdc%L<_<2|0T?cvdKmicGxoAqV??>0_VWp4or zQ-%`!^)G4zz0)coe4kSuW%?7|d1nUCGLcC<%~U2cg}KaT4zqZMX*|Ut{c9KB@y@J+ zysxUhjYqvJ&MJB`k1h;jIUR}GKwI9?FQLzFGoSJugNx{^DdrgNaNcN4j#pzL-`nmV z82pL%*f~V5>h7bza(~2ItY>u<@3xcmF5g!p*>-){IlKdqFBTe2R7SRO4<>yTUWD&-Ll>8>RNRPop_6x-VExzOkO?jrUxS z-#E?*Qk$NZ(xjmTg*jYaNYmeSAS7Wb?{haZ4>1R zJ;_8)vXGq&#OOvIZYLFKDM%6OQJcmz${*g zvy35(RnCoWDgQ8=c`V{p*06yA%9z>ihu>s_d*UCt-+l2Ma+OqeQPr{4=e4`lZ_17_ zGH7nYQ9g~n?=rWHdwc6uD(gN^tRfDxz2{6HC(ak=n_kuQm&EGg6w?=&zRGw_<7>pb z#hIorGJT!#I>tW|KjY~_>K<{0`OC~dWcV$^N5rVk-;g6dX0qS55!cR3 z2=6PL4&LEDG)UHv~R62eI1hnFRUzQ*&u>bsD2^mo0I5Pmnl-~9c?OIyBD zJ;(A!LKtZIzAq*C-3Hf|<-Zco8=qjg=awgg&X%kBdP2x4Euv>oGq!r~&bivjxbMV6 zu2;h&c=CexYI&B0%;#}tGmR_d9qR&R&hz>+Xl(pX67F>GTFtY&A05*X_uvebCb!xC z$?v@{C@n_z*MB|K@!OBV&FpJ_&uOH6%Y6ELhkGtfr+MBlnjaS$nm$e*uA9QORYku- z7w6}wzGN;deD3`*7VhlpnGTO$)i?B!v}oj6Qc?YxrSwrY&`;3V^UBuV=RWTH50)8N z+H?BB-nF%Cy^7br>l^*H#t;qVN7(qY_w;OkKyKw#A!S5!`!5y|cZ=&=cxQp#?B@`9 zTI$;o-(x2!E%%-HHN!vC575$e$@gsjEQC?gc(S;F)zmiK;as~`4#>ObT{G)$m#++O z7Y~VFi-*M{;!onQ;!!bme(wj1MZ^lK9P7I1X80GwKgf5>>1X`B@dw3W z#9Sw1jgK@O?ML*ELqXdw&0Tb+H^UguCDK{;4(f7-POh`Q4B;4`6tvGA<}_Crr7vbI z9W$GjR{PC%`tc?ct@D8Gq!NE{jYRv=cwJ&>ZCVTK4qyT^>Ef71@Gjfg&s8!-bq+(> z=~_L{)spI-QpyTib2+KDA#usHnQgl%4XnG!vZqL8Uv8x_gM3zwf1H=A(r2P&{}88& zp{(*tjENVlzd}qZZC8pP7+)%$5SNRq#3kYp@n!K#ahZ5ld`*1Wb`r$b#U$b?F`4*| zc(ZtWk?ZLZ)h(|$S4TNRF8f%7a#ZJi%YVdC&hZt(5gy}9=lFS^G~C;AH?G^| z(Px_0()#iCxwZJI`LCIt%6J>&xy5$kkEX9M{iL{3EM$5I(@TmS#a~TdW%^5wxq@k( zO}k>+YSZpA-qm<*u|ADhYkyo)*S>?4IhVG9G-`5-{h&2fjn}cG4a_^9T|IfTwqPC4 zDoDCSWEt=CA&vBpHW{YuqmnjPS@ABhl34mC?S39hA`N&esr>PneB_*zH9bm?=r?ix z-8`1h{uiYTpR%7L{6ZGTpO4~HB+8E|OyA02<8yeCmHe}O8nr#%k!Ia3-&dLq7W<1M z#DQWO+k4mi=pD#G#wUw|#d+dG;vzBnp2Dl*Fma_gLR=?4DrU9*TI=5~t{1nPKFaj( z#V;9SI7*M`z37a|)R`n99jUpJR3E?iyLgkBfN>8%3)#h#KUQ~S>?ML)o%0AL+3iJ708*YQL@+&$i`@U9I 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

    i;g_LPkGwc|1~%&{tMj8JX$-Ydem>f z%^i^>Ix=dJ@r6=RkzFc^XxGAOyY3hMZ{vx3)hQ|TSspWn^?r2Zh<@Gds(wpY#BomU zzR_ylzv|lAW6Ge9lppHmJ*Q$tUh#XQ>Rq>rgzC`n~%P?yZ)AdPs0--oqNqCB?0O-bbQNm=0g_j8Wa^7nRqhPAv! z!xyZ}mBOxtO_X-@p0B+^WS>4}dwrV=>Lc-bM&I$_9{MYcUuT?HL9tV#XNZF9n(4i! zL)j6Y$NNP&&&MrqJifkX7B*ELmDEq;ZhfN&RoJz}eXL*mz3GGcs7zos2Q4rDrF#zj zh9sl&WYd1D=Q-oS95<1$)8e|a+Y67rOe31P2Vj${uYm(_P0O7nZ#@gP=iM) z&ll3AkMIS$^NaaMgpG;IZu6~$M}-rF!n6e;chYmvO>88#b#@51bC>BG!Uu)Rgll-4xA=uytmZp@;8Tupn3#BcZu(2k za)xVM`>FjM^D* zm!%;+j(h(Y-|{tI@e?uIyJ`Af-*;UYw*4c2W&6KR|391mZEQ@U%+KfC*{tpGS*%D@ zYHhp4(yQt1dTNdFp$yv7zyIA_$H(1It&Gnnyz}>SVf=E7va7%z*IGO)y-fw@?^m%R z&%AFO=(||||L^O@fZ^s)li3?tBhaOL_gjJ&Wqw%KCqwE)##4yg+)gGjpSD@jczNB?j^dXShzIE&4fR{8X9xfVRG|!?z2X=D+K; zsehI~!f}a=)i%;^c{!QBEw9m!iI>%5oaRj?Q1goRgE0OwW8tJE5lKkRBP1jN5A%K) zqvQj|Eb$v9eqE%V=Q`hWi!lB&;gpO(H~lFRlexe0o+oHPO3RiuHwG)r&m7ZfA8@bsXZA}x5*~_<^r)&| zqx`5o+&x-6MbfSM8QeuQafr(U#3KQZ@Zr0TJ-a!|2~Km4i(KIgzUCXg;|4$R3+o7V zT#{ZuvM7b&k{45VD@l4EEmZ zq%7nbh4HHeKEHxD80!3Or+?Ft_Dni{`@B6p+d1j{>6+d-wo2ZpF0VagtX+AsOP?e> zKkR%W*GJ^z^G_HHc3y0+ZA@>ays*{(LEoaUaVb_L`w4Bunz1AK3y6QG=twDH{m#*m zn!?k)+|!ZQ^JM&wx8~+ATi#vRu1j=esPKkxO%D6pHQN7X(pGf8Ce;9{Tt{=!4v^EK1Hb)3JpEJIG_l+*j1sct{#!&NHx+?{ zv32}bi>SKJEpk$h7Z^2C`A%Bt_P<`C3=7vvud1hSac=>21gXeGE(%eKC#cSL>H7g6 zaggJj<#WE}XQE!VEgm8=3?iI3r z1}-eKUB2hD9r^%V;*{f5;5~IF?P!?6^=y{2jPUwh2+eXV<(Qw-ME zuE>G$x9hmW^2y(Mrf@OwD^Fz_@GA4YdeJ$b`GWh>teaKZ6=B{A_12T}oa3?1d32+AB+}An!Yho;h5w~C-##s1 zE^o7xg)C+X%bCXtma&Lz`WTrWcOQ6f$DHTLNj-{FpVBm-1$Ah}lhmXHZRkvBn{N0z zR^jyGf5EfVp*~HCeMNn3yyknKtLJl@l}A;LA0IWI9mYLEdPK>v345xuNJ27FkcwFB zwg0=>!#(E5Yk%}~?zE#T%~(L+e){0NI>bE;#y?8)S6-p64flGkalS{SPfuyG*mR3~ zl?`m!tWHj?d}`tRp@P2MHuD*UiP>wqoaISqyxKK<^;8kc5WkQ1%x>%LQLgeW87h->$wNM7FpDWnV+o6x!#oyHgPrP| zU3|m`?BPS=k&lob;kjBzYHKg>`)6XUbUuz=Ebp(^W?>=ANc;^|?2pgHJTI%2bM`LF zZ(MT^3o*~nDyELC>Ae?ujy_+x7U9?~P@gAr&ZZ}nr(ry*Y(l@|t?9%pl_?<*qtE;TCzxcx5`S^Ao*?$cNUMP3P9idCPvGPD$;bx3rnwb`0ssa?Z0X zl{&E8?XmrEFW(sPoXB{FF`UT^UXnGL+=+8Sn z!?P#-Z+X_5uB!aGZhC|1O=Nk|Z^sGeONhrA+dju;Hu4s`*~>oGvVf2Ilmi@M2}d}_ z3NA8Dd}lI=QRe^3E47sdb@lub`Cx*58_%1>dqvt?cGmQ9l9@gsyv!9&bCg3|Alm!q zgy%_Q`i$@xM>xzWPLj}ea}dQNWMPcuA%BE;+--ij`PIC|Mpp6;>v@+Ayv-Umv4X8^ zV+*U;Omg)~AIBtvZKmZL%kCAo)TaAd{wlrcFik!xXk8MCNBG^%JnM|&afZ@{zRaQ@ z73jinR#2AGv}HC8SW7vYGMHyxQqRzVZoaEOcUSX%R&mtdO5H#|%z5+eY-Q+w;<3`_ z-eVOr=t&XEQ-zWYVF}xLmgVH5D0AsUCthL@)2POi)MEm#GmO_L#WK1R?u`!V(av;x zx>A^NyhU$D(1Ds%W<7=I#dMxy3}bnktvp3HmQt5z=uCfJ;6+9f^9uPR#G{U78@X2+ zW~CTUaA(?WcpiSN#QTTpGaalnuo|iY~qoQPrM)UM~KHqrZ17*@k!8z|26^7roO=c<+xK5W+>UeFMaaY~bam};5zVW|? zuX~OSpMM*1Kd9&VY3GD;ETl&=+u37#m4%5Y&t>yhc*OKwJj@yMv4o!r;|NpH)OnFx zc+;{n!gAa){dZoWogCtE)#v`o@qNN~+Ni3iOI}h7SowY$R8m+eu(A0oXRlEy3&abbf!IBxTUWCm7Dy?4Su4i@5)17 zad@1^$VqN;ke_^PYou?^MJH*x`10e!>O}LS23I;%z3ggIT=AA{MfQl`LifOWDXO<}sfc%pr|< zgx_X0Zewh}oBqAqGJnvsla| zV@69DtUo;UQTLuu&h@m`#sIo7dZY4QxS?bu@-90`AReKATh8|_o+jT5tMe4?D9aOs zG0oPrq#3Db&$B#3KC)1d3Y4cB*=SBNGEJtCpR5$3 z2#=DNjx^;3UZNB)Q-ivsBR%<3c#ldv#h<;B{wE$8d?pVa*hm@f+^_ZKf4^^CEo)26 zJ`OcKj8EjfPQu^s^Pj~bERQ)ZkNMnx8$;>o{VBPc9=F<|}^nJu77889Yri@JQ{R}+lGrun{|Lpr? zmZvZg{ue;+49cgp`s(RpMOx^C?()VKzo|-C%ky@e6RYPK`!$|7p_AjCTKOT*=N_pH z@r?v9i^7%TFVZLLlh+i&RopNo~o3NtxQGom98hiW$f^W>B?kdVd=;#dDMP)qEK1alP)?Z$wmPlqY%Be zsh9Uje;#8JCw->pMCZTn&fi9P(^Xkcl1G&pgm{EJn#+1I^<)9lF?D4@(|=T7rp>O6 z%Hx#aST^IRe^7_sc>1r6(WUuMJZkv9Cn-x4o~9}#Db6#Lrvas?MMbLd97V|A*LbP0 z9!ce+$7m@ZJuJ*dKJO>+UKBrR%RFe=LnI=ec>MN1-I{7I(Y?980#CG3S9MdblFH}O z(~=Hs9`3vyk8J9<7fm;0VFzO&Ni6HAUEf)qY~6n4wRc|hIgYXP zIpwo(m*u;u!n0KJJr#L^P?m;gN$qgm;UM2X5EZ%nq3ah^G1gU<`}7Hpo8RaAKjJCN z#=0ias<8XnsA#?tRjI}<>rC+e2f{c$d(dYySl&h7x`OZt5*1Om3FldFr}aV|_id)= zh{vc#k{}w93O8IoG&Uc*wd-G#Jf~#2v3-4>H7S)TT$^kA^BmKw#^xDeoHl+&*J9~9 zO*+`WgyTJDvXgOz>e7^XUBYi6{yfiy;}V`(R9w9CQ<75Tr2vmpn0%C{4CN?IF&?A# zKxMq+kyV(D>^w>qGV>T2Nkl^8k(lJfr;T`r^ayRSMo%km=tvJTKcmcMn&Un|8)le& zT`66YFV=Qoo9`bozC|u9&DLhIZiZRsnj}VXW%+=S! zb{R-t`tTaV7(l(X&YKdhuQ0o^eR3Z`N9AKCirP*A*HDU+R~xPjHwLPo8v6|;9s8+I zsPpHC<+t-CJc};pz1lN0;YfAYlKR@-YktEZoN(ClN<{c9uW^E`t~YHgCS8~;o|E`D zuh4f1_n(~U>HH>HFURPN^gJsq&*`U}mq#osNMTA-mbXtj9~tlaZ}{9#SB^56rXKc$R#-mz>b|9oQE5RQd& zzdFs~pRDM?U(}eXi86rLA;CIm4J1&ZG3|0Q)n5o0k2` z?sd{)q5WQIzqmw(RmNbLd(;1kQLkOi>=|T_c}_&0i0iSp$4E6#yCO&0?efwD0Fswsz(|fJk$nUr6tpqg^K- z>NW<)= z@qOt;2fEUZp7h`~p8m2c%v*pVH|$PCKJUDMp# zK&99HUYWium;YP*qVD7EM#`aw=M0} zftTI;?cC^Youl3xAZ$#n!1DIOr7WS2d^SuQd<>16tIzv+#x@NYlF7X$3~>II&-I^Y z6sL-c%(BmOm`;sF&dIkNi#3i5@!xj8viUf|xa1%kWvI&wT=f2FE_0IeEUo-pPJG;!W$7 zT`fJd4Zq+TKM+Z3TiT2<<@R%FJ@<@1dxd%~w1e{6ULKNj!*{0^W+y4hxM|tL!VHWN zr_qe#O(rm&vCNi7?z2ucs!~?m3z3T)+{8PocOa>D91v5`?X_qP`*nnjHxT1bF5?P%c-VMO5a7oJL}F@?e9VR8|u*Z zDcna%Cst5TzWju07d#7tw&eZHeVP1WeY;0JHAMfIr+m*q+aAI&2GNT7%w;ySXh#b^ z6^B=R?s;wJMJv>!#q={9Y9~swLYBQ+RNu_9yu*w`vQJ%qh>4c3<@G0Tr%=crp&wPK zhk8x9@wBiaPm+s5mQ@utF5w=Hdn1t|^o{M_9o~wge${?$8($mT@(JQqBcb%57Om(` zI{w!y{5~w#o~TI9$FzIC(Uuox9_TkTq#->iS>xJg0cH9+;R@e(zOZ(ua5XDg#X6RU zd1<r#-!^3=SyDq zniO}>XerNydB*>qcvk<4X2!(It&&dbj1#}(_qbfyXx#6p`{9qd|Ml*u$bi^Uk?-uw zmwdt3T;Vc(GfF4%*z$06bq8zSF|yT*VZmg78OaMZ+Ci> zazhz-Yp-+TkZ}ml=-hD9dG%QANa|GX)6MVRYK^+->D>RC(>ThxSdj@cj zqrA-y_H$Qi?Lqy6!%WHy`YUIZq;~!+JrHokT*g+!q`w1Dig+to}?yK zd75Xb#Zy%0IiBG~YVdDgq3j5CeplP7B;P#ABLk(a@E($yjwPHtL^(axJ#4(oW@a;k znY_sa#xjMejA1(SSjc=9v4FXZW<1jf=@GAEtjKWj=*~a}(~tfP;AP$*v-G`}=kC&` z_|pG5+af(o7tH4vFoLI;LOojZDjn%hZR=+D`AR%ML-X&mo6sf z?QS1fLN9vq7K>TPvtKF8{u7UqK39%X#NsZZ`TaJ_TK1Ch&PK|R@cZbT3^CpIg5`9e zJ)LMnYueF~X0)WqQ0p>^35-XxAyRRkF?#K=qnx1Nr^e){&&|Qofa`qE4Zh_Ye&9#4 zB~@O0X8eYOe8PS{W#S&^8E-O~DNNXEo=m&dA7mutj}VXI_A@PUDL`RzkdnkaKnCt1 z3HeD!8j_Ne^b{jEkCTgJtdjQoImiJ%WjVEm82_^0Ckf?8`0Y(X>px6h@==ugc!c|T zjMNOR>fUT&7BZ8aA|&Eo{^={6x8c6zc9%Twg#omt8+}=$&AgVkSx>%o@-c5t(B2Rp zQE%M1U)^8PIqm(rz0`F*wYP+gvl#Qv>i=eNpZX+DzCVv;Xq$%frMZ1+M_pcGiE*W6 zEM+-sXl!`{UN=35737k(nMg+x3h_8O$;_kVCl6^UNERL=2iZwaXp4n-)U*9IwB{Y# z@1}n}L^xbHTiD3*;lh`N-RRCd^X-KLg#%d2I_g_CO4wG|m8LYK0}bgxOYVGywpb{~ zhFU(H&C+%YV@$s%94Xu+e3z|^Hb0D=rfX=Yy;esXwqE2<$IS2iuKzZz*!``ZdsuyT zullTAF>Os=q9x5~K`UC*l*Tlo2@PpW8`5Z#q_CZt(s>pWn87rrGFSZPFq>zrH_@_P z>?V{S;TcZPh{K!Se>T*u!i8-0`=4`sN9j-G6YbrRXVq!UBHNFCSHX1e&tx)FnZXpk z)$Vy)p3U&6{t%CA|G$4s+6ngxzxRG7%bz5)gF>I7hwDDA@;k?USKZp`XywyIg-gwC z@{#$<-g|GnabWIYJ(=x)3*$QF^v!B;c(l*3PWifo<*AG-bB%17ic ztgmkj_vhlSA(&20R?2hU^2-I?C%{tk)0j=P`B1KhcvODDGmI?zr`xfafAxxq#|itg zg@e4yR<^O7;~e7<=efWRcJdy(__wd5HW2=Q#x2|WHEhrMl)aAj&hySIV{Org-Ty$j zBmR#rrIqy+xscGc5ZWe^Z;jz!7@|$s&a-4TdKQ8)m$Sq+*0JWIYXq!ms}ECFIm$D< z$k24!IrJyQBm6!qb6xp`+2U}E*X7so99N!x!PNt`W#~^?o>~~Lhc0oxzr{|rvx7A(Wf6<{qid#V#3TI1^rLIaQ+a&$ z)~HCyGRAH6_ir_{t(TP@4>}e-qa)>n8Se4hN8`}5N9$8Rq^`-WFPheM=$h`)FjjN_ zU}I)7T|1rCnicfD*Qw9-RXgSPds=n!gkOyOSds zG>VFJ^ttf=!CKjF2IW%MUGi?5s7S?b;@LDR@V-;l=h5sY2JSi6)c}Lkldv-ssdgI?`pDcIO+~2JRWENI6cG)TfnS6BiaR;hr;BfASKPm8|M}78GE~K32nmerh5<2ZmFuAW##?SkyTfu zuecAl>^os5VF@06&i)Du(18}(?45mQ9B!DNsqJ~8tb1d4-Zj!Q!eex$8)rFBb;oO= z^+TB+eoL_JOJz4ZUvZs++PpzATJSP6Y0hezF@;9-U@`Uir>}6%e({cbF{DLBx;pPN z*w^Xe_zM{ZNh4BnADMWRdr87WJjmTVKok#?fP2VDTGA7bSR^HyWF#j(A)khEu@k<3 zD$_X18kRDL*&JgLhdII$X7DMWu#5M3n+4403?FcgQ!M0T)^eWHEGG2jLfa$6|-y>ILKKpvV#q5XB%62mo02&6C3%ERqW^QykgShuk6bO+y0~dd1t70u(WMLe`R|q zN-}`XbfFj}C{Eb_53IYK6>KH630EuI;*?P?t9PnWubgw(cYe;#T<2SE@;yKDHNWx| zUviCGe8*Kj;|gE!6F<;RdC`?;(>VWp$HJ@H8_MGjuBnIg2=VyFdjD%XX^OgkkSwGp zKN%@V%y$%3XWjWdspslrQjt2eV-Vr{pZ`c-A5|W5VXsApmQdk*c zdY*EmFY%Ik4uSIFN9WNQ;ZMSp&aJbiZ<#KW!uXT&rn|bd2QSl;UcADqRHZ!~=tw7O z5ROZTM;70gf;hw`HEBpkD*np3XH)<972>g>Lv*B?WAzNRd4U?#rN{k_De-R@x4!H= z|J85nBgPe}Mpfci7MFkXiWfdSELLPhR(;j%`m!uzIioEb#Yo05ocQXXG)yo(OIvJ^ zu)OrDz=M`2;~`Qo+xt~5ugOsB?KS^>O3zGl?9LT*FFAu4NQlQ%Nz}8}%}o*7Qj~%e zpf!bPNqCk{QWBGdM@YuK#G#2kZ7XKquMU>S(vhEjeC+cD<+*g#)IXP%rDw#Oq$ClK z(6?QnJ#o3dJUP)c)0o7~?aIp+jgwHZqH)TG?wNA^?<&~9WF(=I6k1LF`QT(?<9 z58vC9ehi>LedtOTy3?7L3HP6bc)Vu17XukZM_!>DBN#-?wnmyBOW5Xc{%E^4`?p@9 zT(5X4Dw3v#^J$=X?bF9z;<$YhEAoi_PjW`{eY58=U5piZ(fnc8QNO#Xo%f+~u%Gen z#Zi&!()Ir3QITF>EBg;bMTRz1rsq-C-s<={Q-T)w=MtHkAKf>GIqWrDsn+t zme6w)^SXzk{x`8A3#=FKg7P?@>le+VBZ-akR<5iq`KkV2n%I$(#kAS_>mR!&n8bCB zpVRsN`JTZt+1Sv+s7ML@)`HcdBO`}-w%tl~@dC$VS5)L?MQz9wQISp;)ot0MBc}|I zZlCLMx%K3Sc+rvl&uarW(MFXP-I^Q2mbPy&j3EqV4CP!8%;g%!Q{g&BdHb{0dBGv= z$(-7i1t`ML;#WcVB>&_UbFR$yos*c%LUyp8DJ)3wGl#jnq%Lbg zbDB|iuxpo=_f~H9V50%We-V|(@EKBdKYi=9xpi;>)2kJq{{f5 z%HM6yIqRKvKGt(y?X%8)7F|~NtylN)d4F{wS13I|9VWcN&wR!&d_foo3jLONqqN1X zw|$xW!L%!zy%HUHZiqaxT>r4Ib7iD^$v)F|+3A1c8E?JX-gRDKn$A&?g9pslh>lFz zs@?WNRHU%w3Ezl{OfuiCLsVqMUj2sN`Xj=_-J&8H)Iq&-M@NbXOCF7m43j4Hb4Evc z*`Mfx(UHU2vhz1ZN8WX9EQ5YVM1SybMbFmBppRBIIx;+yJpDv;q@Og&zEqo7*l&@v zk?yz3M@5p_|LsqTpD=r+sK`oTQS;f}am=2uTzG#)d0$&4!`sHTg!$IoE=M;wH&Ugy zUN-qOkKeNq_tz39syVSXsft}KRy7OZmOL>b8gmdPTS?ch)&Jp^va+!AN zQROp5*?r70%4%%6I@Ned8fkNkc7BEWE!-dVwByl4IS}q|TA~m0PwsL0C+A4aXTrG> z`uO+hSEeKj_0B6F>H4|6%_J6clFxYS3++%&5dEdPg0fW0ZA?yCvw$t^A;B?u_=GV6 ze&$}EA6&$^+XmOp2+wUvU%~y_|A|Lfpb!NK&umFgYEqJcRHPvZIVnde@{pWl zBqarT3D0}EhkFUneMv}u(vpq`*9SO!B2Q3_ zDpaL}vZ)+p2xI%99X7@Hj%S5-%W~Rj?{*-8a;BZ_7aFEsWtPuh5Pr^O_VE!Pvxpfi zWCg33!*ph`lm*OZIincQ1j6|e#-dh;!zz}ufo-g0Ez4NPYBuvO>)FZ{!dTNg+&SK~ z(flUDxYOP%;>@p%v+s#5ng-oI?Xz7k>BkC>($jQH+R}~IbfgWf zXis+<)09RuqY1}-{_sWpU{0B?ug=LVJs%|#8A(V2Qiw+w_xRd+SNM!C_?!_Vq#Z*T z#vq0=n1QV3JBG80>&)R0%lMq-e8~#FW+m5{$t-3wj*uQ9pZ52??Rbqobf+6#c!dG< zW(XZJrx~nJi%GcSa z8!K}@r7GmQj4-qI!7%-SYWmcJ)u{)RQ@dHlov%=SgtkXw-)dZ>KIVFDYU$I`el(#ewQ0`_bRb+y5Ao=1x*ji5pXYgrb~L6Ft!Pa%T2PlpG~ij9 z(}gy)r6UcgMIB!7>5qve4XO)AF_nboQ*zom z?abfgSMIayd1>(#ub5xX_tyDPc(?Zs3D5DM=^Cr02`}*Zs@vCo!t?iQ$!qya8RMh? z`FY;5>NMmzYSM^jIkwI?81J!zL!9Ca>p8$S-sMyN*Zrm;pN4U<#nNpxD_PDe-eMUC zeD6utv4VNbWhIAL&PV*4S4_D+-uF!>iS5PQOPs*;U%j9B-^3w&Hk2RX|1upChcleu zBku;pUfu^9v0qu zO;%w*xb`D=Vj67vs`mHhl@ z+24JIarF?7us`|uU;C72`G4Q9zx(|$>xXM{-I_bb`X)DtG*a(6&o1)4@4UbXZgP5| zc7S`1+j+0he0gP__Rn1X&Ngea6?K`-97a%`m#IZRn$eaQsK|WA@jAn3O-shmn8DO%C~wk}HiT>G zp`M#)dOAa>!6Yivl~?IT6`C`aMhv7TPf>@F^r0`4nacAtparkdi7s^JIlA)<;d}|{ zQO@)r=J5)>c##1-O}Ou?j(WT<{foLUg@FuU5d9d;2;N{A!+D*dR95G2QrAxtW>r6q zwyc-(y{R_A7R$qN3F%SZch#l>J$RPh+_^t9%!hp%&F}YXnq^_%W)k-A@4iC09@3+o z&o-n#ZxC~Q=bHYj$N2Al_nqs9^EUhNSdob}j3>Jv(#?J6!WX*xj&|>XKk^dDGlZcG;|H!V+h_hP9^t$VV|0_>(#CaeY%o?;Pq^6F zRVWi88=@n%^iOVWj{5DM(Hpsx@{D`0Bqjhod8TCpbU*#EJ|Me&qi0YPMB-l>eXOey78|V?}xipAxq5 ze#JrF7hZlX)^GQyZrS4g5`Fynwlh_p$z0X5I~>=7$)h7x#G~I#zyA@|?&W_eUr{z! zQAUgZ{fnJn(qhC$c}v)PgJ%N>lWcOWSa@Uo?J>I0*Kc6H120mK9=t?5o}~g$Qi`5ZrZ=#LwYoq6q~ychEQDd7nk6_hW`hjU<{ zb!*BqO-iaqD7D_Uguj1iLEMXaQdBgU97GCEYPI7|NoMMjmXR_P$ z9zNg_{Ta?=Mlh05jAsHdubAU7#nP7#w&%Q^lh#rKNvlJGO(XTk<$TrW;) z+xBgsG=IkY)6}9K&vH>2+k2q4y7do`n_||zC=9<7c-Xe~n{F-4Xn9-H@11mRNwfF) zfDn(69$A&o2i$*mlJSno65+dKv-~0VEi5&?lHF`$v~`9vhOvxd93vRXYU}J{K5H1k za2BzV8S+iI_am)%%`qKQ*VgiV&+sg@Nuca`m^b44Ji~aMe)Oe3Z@V{eHLG}w!Ite4 ze#k)6gBZXl#*)bPmdN{SS;O0`V<|D|QPy{tqbS8FLJ5jfovKu$CN+49r>Q_i{_X3x z^22@6t8yyK*}@)<@kB0VEX&!zH_Yj%p7Xr}7{(~JWphvEIO()hy3xt9Y3{S!LJ!kJ zgb$OPWR6Kj%F@+)30-%+S@d@K5q{HIKe2W&`IG3E2#*S{u#O#UU>76%=!?JRbJi)x zY0JK*+;sU)*n{DWu-+u!GsiW)f!2GO(R{*9iduiC@O|PE+Js>&xu^U-xU#$>kJX~O zV^)P~ROKmZP?;xrf|^v~HRa(e{F_%A9}az&F2l7a=|;K{%5&0_fk(+iN|KS3(#oZ_ z%FLb4zpp>jZfA#cyP;(XydR%v1 zd`#l~L?mQP)&JZ63SWEYE2PJULatRsYeQYtA7wes*~(e^@*Nxbj8zQb09|>KfBTAO z1L3?~FWwW_$eV0tBJVPZZA@kdQ+SW5yw6D9aauy1UQnb$&PyiCo~mgONxJzmaLr zm+FFa#f+7<)*cus@ABn-Z8!IRT)q(Ab8Wyq-oxD^u#n9h<{Gh-WgD%xk2I$9az!1n z(g0n!w=v;j|F^*Qj-0n`+d40dFZ|?dKj1f~ z^!ikup|be3CL7HuLQB@9)DGgR?@8c$5^INq;}Y(jKWf@!8!%41l zm;2uzA_SpCYE8#~EsduE?X8T&l_S?`)nLL=IjHNH%OOxH)B9?XA4RX)WheG3uuhPje-?PQ< z`8dci;(e+uMkaESAmUoKXX9j0ekKx^uIj5MKG%~WjAbhG7`NM47YX)6A|+|UVunkb z1Ednqq4eBi?0K&`dY`(0iXYi`mUEn@*6GTI!j2Iwy4*fr!vC#UYdfEDlQ`DNOLKaY zJDvL|sY!y|#==OR-e-jwSUyEsyr}*1oZleJr~NKy!|>SW`WRnI8wzkbtMA_+pKThE(;hD>=*4XAtu_Ifv8Bg^+>3bS?sudM!WV(K|ak75uKxy8??)qclDzbZ*db?{> zWc<&btF=TvuWI|+5~or-HyzUw&E;d~Y}px}Wfxa|i_#Z}>p6Uty&t8mAgwR&*01TM z-fFI0Eu7!%cAp`fD>3=}Nyp$>>eHSbA4|lXE5f zj$n)Dzm1x$E@3DS&Gg%7ZQe}8Evep{sC=8`p2`~93Dlw|r=mTdm51C%n1CzpEBu(P z-)YCv@KL{&;IF*WSSdVr?R*a7fRxCo?CD^vhE5%|cX)%9SG952&RIU^TOPiq%|Zr> zcGM5-q#fWsyeV(%C;h1Z_>*U_FkHSI%Y*V|V$$;p1F0vEhPK#j?UD}K$epPEyx+^6 z@T`s{`j6D55$)+pFZwc=O}=X@rqdTl=}jV#iE>;vHqz zw@)au%DOj-c;Hp>7HBc)>oG;U%ijg#1*a0Bw1O))eDeO3;-$bfz5j zsK9H^{|onNpE`e5v+Rs(-5lgo;`C5%k(6wNx+V1Gb~>*=;XJtf1>ek+_my9=d$lB!UiGs@CSk^5rA2FEWjAartsKvI0%G4~{WIl7~ z+U@6huC62wzUMSwF+8JkrL8hT_|qratTmmdFNnYUU2l5-mZZabj-8I zPRT!vl}3#yEo~Ocb0_81$1G3$nf|_I51MZOhUvt{oM=j0y3vmj{G!iSTN|_^-RVNn zW}Yiw&Ud|Z`+V6hjlUc(UK7;cV_g^E1~<7yWSn}KghWxsdSxj`T=NI5GvrPCC;WtS zrq8q6`+L|+c}{z;zvTmX)ci=IeLfaRq(}I@T%R%85%gmq{TV=4n)+OGTF{Kvyu`5( zivL3EEMkHA#Vlt&%UH@=jAJ|#c$1MV^_kVwHyy_4LVCPzegq>KMgeiH!gSyBv~Zkd z6By4V9=8t#$j?ywIgEIw<1@$m^O(y_Rxp)!Y-c^6vC;e%N-8_k3qu<@#ABc7-Rxm6 zX>Iob9t_(jJ`a(Agxtfu#N|HjClR}Rb{jj`&H)Z{loR~QFP!8wXE;SnJkFUu&jl`W ziOXE!Gw${sQ6#ayKbXJCkNm_9uJR3Ea-E#k%|k&7QJxA^q%>tHN=$l$^ChH5a?4VX zl2jxm>|Zh-AsrdXKzbe}3)#p@cJlL2(?c=xTRiUEmo1LpyKG}SVc)h2!~WG0{w(~X z{XArOH+u3c&rzGZ`>DJkFNV|G8q5+L*Ld>?Bnhx7* zPD@(Tf)0f5cvaY!-n>R11~8C8j3VUI-}(%WOGwi;)V9ANZ9jFMG?y28@=x-eWd2*P zP=18`@kjg8Qe6Jm{$vx+Toj%t&87bt&hiyuUnen^MJ#3+vzfzO<`L2(wABxvH;(Re zKeAtX9N-woxyrqk-$Pt3n!iFN)4h0=SBMac@4WW|-*bcP;+T`J_Ng1)xn%iQTxPg< zOc2JLFXPRRV;2|L$5B4z3l4LD{hZ(&M>x+}zUCXQag}MzU^;7A$Ga?K2_bz}vV!Hr zQcw!G5;_pu7^Kct;)`4^U76W+4CvgQ2_dOnMAjQ1xB zXCL-VX5s21`ccB{!kpIM^ND`0<5l(xW18ak(XqQD4+%Hu_ZAeMKCW*eoPS0e()vZE zNqh70P8$mr&$Va$wp3X1oM)0*p38h`VQrs#S2#!?VXUy*NzZZ+M$A7ZY<5Ch&gXXd zTwC!;A%4$UKEZbL=pXIZUu}H9-z*j|R4OcKFgsiy49Dai>kSs?h%(?VVw>-0{&UA> zkZ>q{x!3Z$xSN6IFL04>xWWzI-~sPX5tm`6lbcRON>Y=C6wI>iB;HSNI-Iki?C53s z6>c({FB!;(%%BGY*vvkD;zxd93n6`Ou#Fw`r9a;@l--=*BqJEfd+g#U;aRgf2{_4IeX?{TyNly@}(q zp)D5DBZv9Ql&1m}DMBF%Q;g!2ATRkSBCbWrLUtabBGq}49(1P*UFk(P;`-kEd5~&M zlQ%KMAs+KhM|=fC{60#*l$i9^&MTHazQHqKR6+)7- zlaM{xvzAIF{hmkN$H${@y-WW1y&jL}J+r-L&di)S+swQ!XE;j>TGEQGjz@etjl|)~ z_55c3U#;uB>0y1}6Ti;$zWXc9NbOjpAQd-~jO3&wDOYa)OUv&e#3Nj{;duPpwEnB@ zU*r-Ats{;r)BknGKQ(U`SM!N4TQ>V%$dBt-PbXnsVO!b}^5$}c{P|X@6Y}Y*guJ>u zA-@iJbwxscU75nvrwPqzNei0Nh?-oPr-$RQOd74^I;}`S@#t=uk4;;{T6VI5^=#w| zwy~AZ*}^*Ra_sjske{@W$J{TiR+KK;tdD7laBT;9-p%qIJ~r()VPSb}C|g22%GmDJ z?$0^fjNhjrz8}h}|N4oq1NCqW9-$ADd7c+}kbLyzf8|5}b^Gz(3w6_QJcioNe75o| z8`#MUOkystF~l(#&PmQX2Itspcnc4ke;18t%mLFX3#;%?pZN1K)iHg>I+wGEb*y47 zAF+uwY~&L@VkZcq}yiQ~qf^8^ZTl zPyG6xkv?y>?{x|5-frH04)7HR`I;a2iSPN53&iKA@%dOP)6#Gg>B&fDT3h$M!j{5z zbfh!gc$kNHfCuT$y;P+*Q+%(Ic;zrW%5W|k89pIA&XeXf5Qg$4zMR`;{0pvTUw*cH z*q{5XJBEZLB9_ElPXgkIxQ-Jn^4!Uq93dv#XOOw9fEu?90}FWnFBm@rKUb zOV;sk>SQ60KNRkFSpLeoSr6Mie?*_1aKO?3tE>HFeC#pLXbNM6rJd)g$36EeOd~9% zUbg4d|JCVcTCS8jWqQ-wpZ2V&aJ@Qb0bygy{au|eexLs?4DFVXM$_4DTHCm?oJwQ- zuga>MO#ffyRR;5~_7lpM&@a}>aa`-1tm7teDq&qE9MhZWEe-YMQToxJ0SsgigBilL zeB!T_kk)(h=k)%#X_J`9^Sr=l#uBcD7lqRZ=X(OLF^@lABQs2Uj=#HBLK+R{C9I>N z;}E}|_l+-ODe>!EV|YLNh`$DZHGJhZ-ZDO)`0H|!;di+5`dn-L&!70?kyae0*}q9- zGMtqhWFtHIDL_FAQJ7+spd=xEm*N(h(3EDhHr&7)KYEYegRI}ac)S#yETGXLF zxhd&-y_Il%-$H3xTecqcX~27yt0k;W9X>GrJ{2t6)Oa((vwR_a#2?c~&A*2~AKO-@ zh2z_ghv`W#9-%J}F^qpY{(pCD!tn^#Z9D6@kI%$yH&5|4%XpQs^l)t+b6t-Sj^i1g z;90KqljVlq-)z{BV4^f39AnOY!Ufw_*HwNn;(w z_^;{x-)`^kmJ9I+|DW=@Db6z+XK1%?ROk3yoVKZxk&!RlXPoW+4R4*Z~dzytPLv>oZ{_ZEK^{3<}vXYk~d~TbeUwyuNxsPUfJ=$cqtCQa0xgYWF%rMWyPohsVKf%A& zvmD|Oo_9G%{fzF%dTuP4aEvg8aJ(>;aFQ^Mux3`zu#v|-+j_*>?~-&&=6O)>;^m%O<;N7#?COrXkCzropD9&MRbW#qBt)aTvD{?Rd5U)3{c z=DloQY0u&eUg!HhTh7|#>RAMsdP)-iBT{~4a+X3wV-p#Vcu=m$Titn=*6Tl6>nEF(#8 z`Z3eq;}PS}@gPr-}tJf zJ;^6~m35@^{p=hr==r?u#u?5uN>Y{e9A=?(@_ZrBJ~Z_Exl{Cyo0gH%)ZlSuu;XQI zjjHM_k2mHB;y&NuNj`QAr-}b;=J5_6u#ya~ zDDSCCQyyR#DHfZ@Xbyg$&cNMA)%7Uh`G~X9TM^r7-csF8rXJ2qcu)Qz@4T+NReuUO zOkA%)QKp8xgZukimWD6NljuyzY4(Y_bTO|tPtnM{d+A1L^QzE*q$=d;$wt8!T;q=0 zm7malIX^ots_J{SDMuw<=Pf2Mm51ofqYUB?fYz6pj^^5vEz=y<*`~%OAJgu~mNGPuNCSPMCeU|Gg%hBmDpS6Y8en zw~0S=JU?R_shrC!q0Cs{NB${~d%|_GfE8?F zA3s!+PrjrtYOwQJOdYC(zP(HSuZ4Jo_Zha>{+I0GEB@z(=#Z7s6evHNH)_nx)Jp)okzka?rIcSNeel#gjn`PfL~3y-w{bhe7(-%`Qk-yJLOk*q zF2a*MLmvjynC7&iEnC^e8a9!UoD_RX9gvq&N;h=#uHR7ZnQk4_p(;Wqr)#MfkC4N1$Fvhp(b;$>?x!mc(47bANH;prg?HrX3wf8T{iODV@LLW; z9rHnCaJ-*UHt*{rUAOeyYB%M04bNorVt?;=j`Hlcba8!ebpduM|N40kpa*^F&2u62 z+;jE^Jzpt)BaB~g-iHcj*~bN@4L821ZWO)WR=vmY<@?z0MNyOX>Nd>d6TTv+dh?*&o-f2fq1~ZBY+*;x4j!Ag0Vo#13zk%cZ0p^`@Y{_z3 zn~^x~;62k`;S}wRcjX7e4TY}>U*I`bu%2xku zc{}BGzmeCpCVXM|BDoAVA~D5iO%h7bj;?f~h4t*SdubbCblW6K)*W-r#q`D85x) z+jA(Z4WH_$ea05gr@VBtx_l|e-m)`!g?>ZSPcwz~n)+%3=if1U@?mjSrw)A%p}hUk zv$PvrKlcuBU*Spn>KffW*1Pe-ox)G#udh2ctAwu#R|sbbKkn-P{_Im{U=u&_5_5Q- z!qRC8HmS#+O5*q?RX=c^ww;uhO2?V#K#o_){LaY@G11~K@+$5e>-tt# zUBMcD6942gT*K@&eu&fDH%#7lPWqrU8Nc;R9+h~RH(1O{hURpi#4@Rf;d-8vUbBlw zcsBY{e&wk3C+0?OVqI$Ioi91WH=N~rdYAHk_$}JHL+$5U*Dycv9cKg6M_HzuW%}h) z<}i>MELXU`!Fw!XKB29jy_P&e24920GT6_#L}vM35Ahj!!aBq`sp~5_S;;}RO6t2j zsG|J{{pm~|(~6RVfBOmNC0s9Q<6RuCF2W(XNAjz z3rt@mOf7stcrBmwz8uPz<}Kt0&VRo%@_u~=d%xBexm{UL&0X45Y?Hpern)|frBn1P za#*?3Nqcr6X{GhFmd`s@-PH8$=6|%`JxRJ)XI~=6H;wsgv?JG&N4vF!K8MTc^cBC` z(_dalHSRIJmhdjhaYHyi!Zzw2P57X*`lCFez!TDSC)dwNd5W->{JAde`$f@>uCokO zpe{=-vxTX?H{3p_n<>3>Q5?S{9FOo@W5bV__k(hvySm25wnwsq-d9=RF`U_KRIVJLa9L%IZ7$(`wz7@wEN24?SSD&-RQv(I?<6X^rJ5W7(_1~rZ;oQ@Ul7!aeQw)i!c+}C}g}C^{7Sz3Lwk4 z{D0lHJI9A!|E*L2J{+d&;ViN3$W-k+YR%zi<=o;*`LAIH-> z)R)Neh`OCPf9Cj{<0r!P63)vy(^nFo#&#P1r*!s{WzKPiQ+&sdl(637T$v94>G*{7 z5q|F@&13G%keak)AtOmh!Hpy%71_u{2C|c!YyE`u5$?^!<&gJq1BpU-ll}^((VAG( zQqw%C_fF*pGm^VT_|T5LC^Kw$NcyG8-P&VZ?I+}?;k?AB_56-!LH;hy=QXb|A?+6> zKK-{hd}aDCXS_O9sm$$^r!+MwMMY{;hWP9D%5~gp`jzWxV!RbsuCJT%E_9?5EeP9a zL;QB?8g59~UOSr6nD}kiH{6}O2=R~&N23gnVJOctg{i#2WL{(%GkKbk3}Q4-u=j57 z1i!02{;Y7lzPOG4zXXdmILDjxDF~l3-r`n$f*gHM9khY>H7n@9YW4f`z@g7_nRR_F zt-m8YB3vb0N6c(>9N~;v@;Kh43lFo13e;c-kFnXZ`#H))rW2VSM{+VSH`f0e;V9qm zh4y|(AK^Xu*|n7ce8g7Lt54>jASJnzmK0T67rPY&{DvO2vm{wn1OgNB13}y&-)^q(Z-93TV_<4mi zX&*CIR94Y6kKcmGuT4wn9}D%uoMp6$c&@1XJi<6-XkKAH@{>$mGmkKd@a@~wJq#D5 z5cl~`2kxh^@ghtxJdlSNpI#aj-r&1qgiq0)j&!0mX~iR?j~nfKI&$z4pRt_-9OFBZ zNGmD$S)P6UBz^qkW}5N&Eag+qb6gtx+ILR#6PMWISRP_(m@aH5yoFB;hx0OC8Ss`m z-HK4JbFU#Q^WTytk3`YJA?npEV~x6Y?g#Z7lY zudw-r7t3c&Yv_A-&(U8Y972blu6ga2_1Eif829^m3Hkc9IrL8&2U}u4fVqHUNrA!c&UB*knVvFmp&6}sm|oPU3!P}s zUG%0Q_tK8q)TAPnDNRR8QJxkQrwQ5qh{q7a!x+FI+EAUUT)Ez-jQ1se{bLP}Cw@E6 z7`}2_6O4!Ljp1=dF@muDeuOxLPbgnPztr?Z>K}<+4`e4VImt>!ZlwZ?E%!c4SjYn2 z;#xnd7MJ7E`&IkNG4Xrj73*fZ@vUrTjq$VQeam^Kn07*Vh|}~6%Lz9M=Lx^Cd`-jK z4e#U#GZX1QwJ(*JWB3(rF?<{0c#P_!-K6YjLr=bOE&f1e>ncwTQcL%l8B0soLh_}` z8WPB>7qgoEwA*R=QE7{YG~<`t+HHB{Wy0Tt`RiI&e%HRkxZ@kY`*X+d*n+x=sBqm+$rF?W+2chDOoKJNy z6Y3u+^ec2tElA6sJgLa&R7#$|TjB8z^0`tpqNHp2cKRVM6a5hr-@ae0;L zkBLi@qxvuS`K+{|AMWnAr6C?*b29r)yV{Be2_it<2)xh z!4ZyefgkvmUA)L4PIG{lIm=w;s{_2rD^C0zUJnW2e|*Aq8}hLMzFVFu6m$(#q7j`L z%mn_|Z`l8jP5i4_p?t}oIAK&@-&|wvB-4HR2=v9xdBnY2ws4vpz4Z@sl({3^-(_SS zeLxr7Phn$CzeB=WN^DeaP?!Vqo^Sb{Syj}xnE8bNslLo_H&)X(T3y@uk9aJ1E|-P# z$vW1spSK;`>C97ydfxa%p5{5m@hnrg*Zg+0q6zJ3#vA56C>%duKE*Q}o36~N5k*HH z@SK70BVl|z_FDdPj`9_UInLL7!znhfh0j>c4tBGOcX*%0{FhHiAMJC-MMaN!#zNeZ zid(Nk>XE$7{I9K_)l4@2GVK`7Xr5sp&pMZjJGkG|F+ucI7yZ5ZOdA+(#VO-0yJ_=0 z;CIn2H<1|2zRyVWUUQy9JT|9`iSoQAU#BER$V4`BvDf{I6Y|yiFDXx{dC;{sL!4-A zcwTw^RV?CFW>Muc^(_Wc-!flV$5i_{iHW?x^GxPBLKYn2(cJcGaR=3?K?Clj5qHy+ zDm>3~OyLQh3qSR3IJnMt?T{5Hw}_jjtsMdb%MuGQnB zGK1X*tQi-*KUBN5L0q(InBTa+GcMXO+`W&Eev@1x8&NSXI;U)DRX!#flU+Z<^XfLX ze=oRfVlE%c+)u(Gml(`&9%CpEQ3r?ba@u&+@C;sNHg7POvOGvn9-%)2 z`K$G zTY`jo`a4%f`;o6+c1VWx3 zeotyrAU1E8mdcwRO+$X5(Gm{~AKJk*-B`_3Xl&V6E-oPN4Q=14X5~ybDUw^Zt0zO81k86W-(@p zI?^6_9G46ybL^7sQV$mI{)8@^r5;kQSKG1Aq|b_s>X)HmNYzJbl$V%kXIc%G$<@ha9)ft$I7vecpm zCCtC>F7kW0KtNPTYCf(>laXNArO=wI*iqf8Tw4oF6 zb&p4_yAM5igol`Eei_OU+AiU@EGG@OPdv$Frtl2oIQ@cpc=*2M({WxobdjEk^wrRt z7tEi-OJV(7?I+yQTaith!Sg(kcF>_YQFQ+-&v|B-M{h|GRlY7^^y6{;O!X2*TlQ)* z?hoValJ+lB#eHOjwhFlqMS0jzQ4++ zzj1Ch$3$y2crxohZoAlhxOJX~ddB$}789M-F3+CUcdzmj^3s#qJcS=n7uA;UbyI9q zyR1CtUFE*(YsEhQSKW0|y>U!bF~587{XFY>i}T(oCOTdC_qOQ4+`cEToO#-Eo-sOq9U0|M=hcNGeFWhi?I?Ly=yR#s@b|v`@%k9rlu<9wX1jh* za%D0147+OY$Nm2Q_)-mU?a22ph(mU9`lRUZ?_*R;{`<3$>C0=IEV8`*f{@NS7g3i< zE{(`H8!oewfB1xaBeYrO$?DIx)Ym@JbwN!ojB$+#t8)i0it8I}b6@gxVJ*{sb-_1v zOjftk|LFWTp#wvhDew7!17u&SuaMznp*%xL{Eqt|gmV(wv@5N5Ig9yCS&=}UHAzAD z`N>EkWkG7;mY&LP3aypD(OtSI{DXdgtooLlYLhE3@>7_+6eLem{V5yWL(S-(o3iOc z&td-g6Z$GcU2soc_0w9ekCRdK)f38!UlK&0_j8?Yjftx4bPPIb8%jf!lSw15+TT=; zNg~g*=`VUm*y?`ywlJ}6y!xtZUpP!&FoU#_ftK4Ry`&ehlSn)Cdo zI_7xKH$4#N_nzI)=;r^Y3+D@qJ?)-~=^czu?;01~Ele+r^idDU9TP2c%o;m}X(vcS zm-G=GRvs^ji5dv2myV6f3I{B9Pg&S&x#vNI^FD})vLtrB>1SxEZa*N-&8I&;ArB2{ zV}t8FnQf#XDPJ02O$Nhtsl|EYYuL=o^6mThSh8RE|5hR5SO2d=r|a@PmGo)+uIy~- zI(bZV#<4xyNxT-@m)m2aM#}g!W3*M@@VsSGWz#-!>6}piw)#R6+$S9$;IMMzi#qZO`Ey>^S$+yrkU|HeXsdb4Sj@G4;^Q&bKE1<8 zW-y%Dyupi%=2aH*789Amvn=2>_l1_QnD<%9GM1aST)2w4yv(Z%HhsLz;x7AM(7r3W zqUr@=qVG&k`=&aj3TiQGol~En1^2P|N7o{QsLBv_>rdRz*BqB6`SkZEUP{{NV*L$CbENQe0%{ywFvxJXc?>x!( zn!ApwDx<2iOFg{5>Hp;u&PzBRo5XV+U2Xqn$K@g6t-@Zya>C}qY{Cx0Lc&(UoWj<^ zJi<=GqQZW{%EE!dYQiSM%)$l2cH}qQU06!kM_57lmM}gZw;LaByq55BVO`;9VFTe< z;a$RU!n=jf2%8Bf3R?;%3-1+95w;ah6Sf!55Z*7GCF~-6RrrALbzu+T8^UwaLn^}# z?d9{5)bRCeF@DVa(~O(0-oty!^gWLI0p=SnV3`3f_`dXG5N+vg*?s06=4wCj$KxmQ z%4pl!s7OKiSz(H?*!bOSvrGx&syOgO}RxT)ye~XDqnm5aZauG42slqm{ zu}scWn?f(o6I@NY>uLGkJW6~T{HN%Ix?qUMKV5I*tn+_eb5ELoEuZ)_y2Ej; z%SmPD5zcd(WBkasoaF>Rlfy-v;Dx4K8k-S6qwz2JFr)@grl=CZ%nex-7uIJtU=Vt-^$kKKe4S)jtJXD{)YpHGp)j%d-at}{iT|JX=Vr@=eY%!UI3A(R(k7?Ad?UxoXgk^WAw{$~?B|8TG0{!7 zkyu<+|D*SmAQ8W22Ni+)r%ee|WBvu6xBqsW-?gC&ol& zjTauN&A&w%J3c0=VZ34AnCPpm+H#{}qHcF+Q@4)sytj7naqp)a&n+X(sm@nwMojc> zc6s6y=Rr8Ny#M`iP+9+p|2J`3+0s^;wcM=dVxoI8%d4x!Mi*<@sblIS-Q?*-)xEU6 zrY4ey=hV(s=Nc(IS;ceRxy-Nbx;MV3^6&kE;TfQx^>yabR!FqKb1mv?omr;eVz72Y zq|fQ#V)aFJ;VG6GYnf4|PbP)oE#?hbrL@P9o6$il9h)n-Pc#O)1rw?(gk9h7&`Y4=6JwAi;lu`O5q2V^d zP!9|72l>fW|bX5ShtA241)PtMs9r@y-+=H$54`aQd0wgeg?yHo7|*qtWfZsvNjP?zd7<{ln*uOq7NJuBhJD&i@uLN1EZ(tVb; zylk1*#A!CQ9>_9ug)K#_^ruG{PjDGMrMFm*GqWTwO)7iz}o7y`a%mxTQikU1@xo5RL6abN8OwI#`7BPb$n<3&pdAW zw z9qhTvry;z+D1LPQGYTJPH1F^#&ze44xJi0{O}Ih$mT&|Q@E~33%mSjPL$xuin^9-|kK7t^D05tr;PmekVm2nrZ4jdkKhAK&*~m{JhTN!6hYrK-uQYg(Mb24# z`lxN0%oO1<-r(*+u1m_N^*b^*dB$2_&_`4?K9#4Q{LXAQ{42*8 zYWyAB{6Y9IX-UeyF#N~yC}@9n*!DU$v4&MF=W~|uGP&&ImHT(GhvzN+W*@KSyoBpE zTrb(x<1(_$d0#<`yYxS3-{j&OY5ElBIKxkT&yRdZm5>Qt<0qt#scYSXc03B$*LLFa z5WT2i|I5)gi|6Rv$7m<7e3eVuUVSS#_bhC#U#hdVQCD>*8qkiuq-^5d*=GMPf}!ma zjz?kJEl4HmG1~R^1XbTsKG52<-n5Vhd@jEE4d*2{naRqvd_uV&@{d^8dXk0S>G;Vz z%G{={bSkf(1Ig#UNCEv`tRlI7`(||KS!OVg_QmuQ71!^n|LDJbLiz~tDDjy7Ms6iH zr72GRe)2o%a1ytw$1GJ>Si*^x+8)=7o8yo{c&(q%Zn*qR)P2&Qa zpcz*_i`PG?XJHA?=FiXWg?uc;<1OvE1REtfi=+eVFD^_<3EHs7 zw7J6lBoUu>!an@3X9wQ(ohzRo_;dV1`UvgYTco#_=OTJ6W(zN$0OWt?j%n*;XcyQ zq~2Xs##YOqFGtvXqcp+YG@&I;X+|R&(~7iTstk>NGpnhla~ zpbqDprWTLzJi|)qtnIM`IvC^$wdIpP>tA7LF?qVanZAk2l%HUS8uB z4wBHdc|9ErKf=Sb*B8`6{_rGYxYkdINBE7gf;k*xZt~p3TKVD^9Fz|Cv%&CIb~97j z{*dYF!qt~)7iD+fgKPbSRfKoK?z6vbsYz`Ljg=phpK7#w!f#np&hXuoG2EJ7++h4x z?xKY8;lvtl&vTvq&Xw_OhOgt2;kLqiX+FmHd5Ca4#&?X3X7^HV@j1u&g#?eN4|9MN zz2!AL!(DyUjY;&1emrr0ho$`ZfxK|Jyq3FHIBy)I*hlhQX?=t1C~m#=Y?5XSCor7B zaBV_7!gDoqXIURh_?*2&wv&o{l%*jZd6cJ_!2;X=fYqd0s%^)lW%{LfOB}iu)yGXs z?xq{f=}Z@T(uzqz)tHapQTCYx#uw zY3PTUWqVb)M?b;e^`p!%e;R++pHh9E-?s2>%PK>+xmyoX~aE@-E|L5{7 zvTai@qX1>8O-pv|a~<)4)t+COk)QBU!>3=4f}V z;Sf2TgP#fcSa>e0T1LN{K{LLn=QmAQ$B%ZWlR9Cug6cTeIe!#WKfJS&`!mYIBRrhZ zvrEorTAt1?-zVh>^={Hogv{h78Tt6GoHQRPCzy~cL6luQLi;wSboPL}X?0T1=HIAa za-n=p|Jlse`bdUoBQ$qkCzS1PXxlB8?)YJ2f+(kD1`JU~Y5RVy{e5>E{jJ&&7wo{= z(m2s>J#dqd~wbW8D4LBUBTWl^gOQe>|7@8yXKz9GTgbcv`rVf z@&MD9xHdV@4;=dl8eCJUUocf11;W zeB4J{x{`y=o}mRp=*FY=BcphP>*a{?efd|!JD(3ZjZrr4gG&2iLUqTsm{dd06 zZ@FLlfnj`T`o~nF!s~t~w3zc+TYa~d>)=Dr1yt}%ETNnW`NukGWt(^$%U2OJ71_f z)Gn-g*h0IB8BAjivv`S_Oy^oZm-Dd!?xFu?ogCqN65paMRaR%e!+Gbc^6D@hm1~aW zP>#BH8EH4xpfL~9mnvTxW)ROalV5ivh$;%7lIAApS1Nekvxn564owNyZAhohs%w|B zMqS|`KM{Ar`6MGbdEWNt@Fwr_0jt=`Q7)3i`OZi#b`nWnX~{|v%2S8?D=ORBQbW6l zke}|^B>#Tc{`S=0qKz=f@CCzZ4X4uXPE zsDIOoGb^-9Rwjs=x>wPH5$Zf&?Ux@Um)=>#5@r+1{cyd^k^VlCHa;cJe*J9xHx?Q1 zZ+ryX4F4*PjyC;g!_Nqx<7HmtT0Wt?4euFLoFJXjkhYX?Oz-4T#xjRxl+)HOEzc;= zBG><+aq_V-$|L>8@ADz6Sj*LXLOKoU)N|R!m;5kQ-9ow>%@RJM_-}r{k)zi49SP)#X(&Jy zrf2nAs@c@z&5JXhj>43nHn&iZhK#H4`B9G0k4)kb+6@nz*GAmC(wk+hV+V&hO;+{5 z>~xf7=SUkVg&8S8MegINXXNj!igAxCv1j5f-~R#ksTHME8Q@(JlQyw|hg0sBs&?yluowo50+ zXcawd?*{22HMywGjSb}ucWTo-uieM9_`hn(~EnNXCH=MM8sm7VNc$FsV3`fZSR{m#B{@dWOR_@DaOcdAI+AAnzPx``P42D>}ND zegD_gL>)hXLBpgSA_y%QJYADbziwXm=f)BH>DPXnol=O?$tu-z9O)XYJ>= z?Q;FM>*LCp#$U6CY$ucLl%*gw`LFf6E7$*TheMq(yd#&~HGdt6_(fmJZ^Rgm<9bq( zmK*uiywt)@h2?V<V$_6Z(`H zykdNsFkeIc-SUp3@{Qj(%&+|D`xC`;{cv>%dO5Cxnas-+`AA;E-Ng)7^9%>C64FPS z9kJ1J%Y4LYK4s8I2o#whynI0G3>e?~HbYyHH>V~1_8V;6flz}Fn%I43#7w|vh9 ze&G`DbFH7t*X=R+k7JdO5>y~3**KBJIkKJmY0pCpVA?GAOWa#c%bHHE`yukN(SASh zgx3&A%+-8CnIHO+kE=&!lh$%kkRnCAC@hPK^i*cM9YCKl^lUIx{ z<44mX_hM=k5SOC*?n?Z-*rc>rcwW5VFzd7b6M2^6Go%UO7=|%|$JnQgI>t@I#Krhi ze8^tjXEEFPfcMzJBEDb=3)#kNe98hg6VgX$V^`H?trps?RH8aHxSczwO&uyzg}T(E zJ`E_xZIq`1hrZB`;1v7V!(Mjt6(`87?9IXp;t|qEI361fzs_gOWi9jB#5-(d9_x66 z^}NXj-ewDPSi>p~vVxBo%@YjghwPpg;T(-Rt3#?szT#k{|05osTV^S{d6iFC&OTOh zfUw^Egmr(#o$8c%SN*%~*v$X@T)s!>caDI1k~!Ile{vg6tR7uc$_?FxIQv2BOKdNzdtJ#;&HBx^U%*ZR_wMMI}|+ilY5wy)`xl8F-YY+BqsyE7{AC*e9L*RGySaaXMP~P@pQzJnVZPSjogsj z@5*r4av`0Dc*GhnMZ0|Z%#(#@JKRSjvE_fYTxww!5|W5G(r`UDkc6b9;F9G}a5bOI z77p)b9rz*A=PmC^p#8N#UB8hu+uF5#kNX_fx%B#2H$^aIV`;+hoBV3}OyO&mx!>?Th95D%hvl9!Z7rFMk23E|s+#|_X&cCD zdS{*`;~(*O#WD?TJE!kwqYy>8nNr+J9v1jcX3O5dSBCeon=jZ&OUt}s8|}?+VVlnx z{+!(AJ;=+3+nV>bu!nG=u%|GbmvEo*Hf7pj9y5INnyjH}^J=J8d__Bb=A}Z0ku@k;Ha7u$=FyWm}K2 zol3UVpA!_YohFQ99f@qG7H@How6--{UiB?4^exPxhV{qz?i@-RK5w1R8xCducy*xh z(pzksD0)r!Vr#!!evdYZn76 zMN4tJQ`|0+&%Vqvt&3@GjNfbjCK%sL4)N;7B-WG0G3(B!T%xAsM{vlzxy)fUFENvC zmU&Znqjf)FeQU@f9-%Gw`EhlO6OJ=W)Ws*%(mz^9{g19~-LI>yjbQk(M;&wa?lym~ zeD{Dn^c#6sW_^KK)E{|-4)V1f_0%C!sV}fid9#*euJM#)|I@Xe?T_P;QXIRonqO!T z;>sRs*temarI>WkiivFDM#rfE3pqw6$8qjDb!gg14{wrNS=N{nJmfn!S!W80ax<5P zDue!r$7{yVJ3eK^;cdeS9k<$sKQ?^Y^hSn%6y7FWXxguas~BElIQ*bPb;BPT{@L`3 zhTk)M&hRaU-wMn8!zWxXp&w}H>#ni6&OH?kXAy1_9;b-md^9thO<0H>j; z>v}g{8}e9_n5d5N*oHAt5B*)O>RGQ$w)igZmzrNnf6y`IWt<`MujU*4Xvu7@czec4XJTKX>uhN?yl%2-BsfFQu(4hWqfG@jb?~ z8}7#o#`EyKG@oCXfovgkon$6Ig^ZWtuTLG1BxM!j-0dW0~-YFI$c} z2BS>-n6#E_!x&bO*mv5olyAA+_lNO0syO{7%q8*W94EDC((>_)As4H-9=VTAso&`BC1WAL7DyanTJaig~(a_|YMSWIpv-1&dy{U+;4=lc(_j_Z8) zZl2~Kbu2%UAGpPNZ^smNklK0gCG1Xhs!)-=*0YPV)*WB(Y3lp&b)SxgudM%sa(29B zKOvd#b>br~P*)tTtji7Z-BT2{o#s5lMs5(7y1dO{(o2VPT;tz!kFsShIh^Y|`K$V1 z=*JG{}PfZdUo=b7Vr^V-4!|7Q@K{ip|ytKj($ixcrv7RDqMRA99Y|j>Ef-!FTri&uQTc-w)~GGeVlU@)Oc& zI4@7x-~GhbUB0ty3EOGSWVVsQcJAUmz9Fk^zG<7k@OO2c_LjS!E<8Yd-RF$;U0MHe z*|EF@GXsnZal}Stisc zYKm)B%2Sfk6rmDzC`%3EuiIqGxUS0X$;z@A!zp>)@GR08enB{u8B8M`8OX#lzIUyk zP_`VHC4cDZcSEG7UY%nu=LHjtFLw^77t&8B9)+c$Vz!sLmfzD-UN!5IFnV8@_<-lc zwJ*FUdiE4%mDS>Ahh!f1as>GilaR10B( zgi$5a*H?1Cv!u3h+t}!Bea0V`N*Gn2;T^6UsmfWS*qXo*hjHZIelpF zy&e}GRzFWOM;m*;v^qL2di81bhjs3Gv@*YZ!f5<*Wx`O;OAU0*c@B59aE>zILwyJH z5^Jmf@rf_*_d1vT_?qLKhLSq&r}Xli~FhfvUh`LdCqg8dp+Xamxt+0 zf9~T+#xS0H7(quKp&LVK!-I@Ob@XyP!aAO3Jqy@M{5rod{0U**Gx>m>yhQxA78?%R zTSnOCyTos6mEo|x6@+a*%N%Aimp2J*xNtls8J?I#DDpO zJS_Ylgd_JzqxUMWy6R^m>L#CTx2CD1-O->l%O=l$i~eSr!YAfq%UncGbpdVQbd_s zl$pk7@iJ2hZTt|AX@*~7*Cu5Q``FE1!m}~`wki8vL!%kP6O83ao?;xm=}#YeF^ESQ z&M^8igrSV!5e6`r&~^&H8BoQ&w3paUpIa=)Q%qqFZ?lxN!>q@Co~ocPlg=5`K~*EEx1qnts(|_}lxSXVMIL3s!Y)$rYeOB)=+~FM@ z7Sgb$v_*WM&wy&)k7Yg!34K7}c!YRdO3!+i>P9Kmy9PhZ|oP+9UmGGeGMU<{#9DUzdx&2A`FaWGC6q4<>_8y+I(|d-=bsGAa{>>-U zk;A(#XL>nqEX*noP8dZ!c|MVMJ3TkB^hUpd!%5OOk*yLbSHJeI3=7={`H)Z9!bX;` znzw0gna6mV`7C0L_pF|xd=B@a`9)XvP2$n)Tj|{KDDOBVaSjVnmFDzjw7!rjyiN+s z?IyA5`Kd%t9yf0?uhQCh7R$U(tJ~y{`8*d?z&m#Zz5l>m{qAuky}Me<^XObC>v?bS z2l(#|K_}ebQ=B-^}urS%^d2|g_M~k zTnEN`Q>wbWy`f`Z`p2e^o9JE1r3t)9;+ZfC(R-zPGh{Ygg4D(Q=0|bq*>Z&#z=Y<` zg?4z!YMv_-<`OPa2fVG6cKt1$;}wr^-JXyiUHW1Y7o zp7ZtIO`@-rgIu8AA$34n(Sh#tVF-^imWfQ^6;ch+ZYKeWNJ4T-7V!S-W52guLOT7o z?c<}4*I%`f?anoQ!tqF-B`zAW*88veC?_n}$FENRi@YM0^79?x8+7dGo@gJ>=<*UD zP_eK3o($#%-X^xcdteOEMmVVK%%qN;mFK!E`^+CkGkR0gxu4n9eb#RBXYmN{Qa<#c zbXL#**e0Dayhm@(2(QxzBi(hB)>d+eM$%<#Ix&qx*TqB$rPqA?;8=ZZnTx_4#$;F^W@)TPR6sx>JHK6rnIh>B0Z{g#07C+wrir=hQv=_g&Y$48LIb zTf=2tQzu-HyIhZ@9fMzuCs!sc6LzlS81a#~mN5SEDS03-GL0o%8m)X7=RU3Z8IG#& zke-a(L}qdm%DK?S9&ty^<@c)ItsN6p9;577u8cpU%$ewah>F9k*6w%bm!B++joy?$ z6kqO{!4}%OdpwgMocC31w565vbTHQQ_0s9S*l3-w$C23RJNq+!Kuok$ym}Om^?$6i zrx(QeKZpsU%5(iDwy@#6xTxeD&wRfT=YL))H%)(0c+7Zd(|4MmR(z{3_1=+vYkX^L z^rbNK8`6*I>-|=C+9&0c%lz**;q(vfw{X7w*py2>#1Hds6LzZ-8;#59S?Y>@FYgJ* zV3BK3SZc92ITk5;#zpNP^jxKDB$e<6c~lpUP-lqaPTXkyvveLOKRuwX?0W7q&^v=q zdH&!D=Wwic{C&#({+@Ffl_2`Y^f%2vNEzR6lS28jP&vSOwpDfCV4w83OSwhJJ3`&# z#}Cxi^$+};cVz1+V|q|j8S)$V>2K)9i_BpW^~7}`BOI?kzf=2w?-ugCi`2GEKSG-_ z#G{FMkMbU+%ul1-nI&&{pC*)V@Py9_(4ul-x^f~?mMJxJX{nI4Wu_?`bMw%?leJjNI%F@;x| z$A_$9D?2DBzLjV}YaXIEqj-|%nZ`%#8>+qZf;OUf-qKxLw2v~F^m#n5K!`^uYoFe5 zZEZ2Dxu#EOV~2FQ$^K1r4#x2YuaZSNI`yUc2estM)%kU={MvXXMq6e$H(TyAX>AqD z?R!&}nZKB2rY+`r%Y0#c6Qkry!x&(Fec1j--6QnhPFk)lw?e-X4=PWJJ3hm#?^$NC zflj{D&Ah>eZ&p|SCYfjBNtfKU#HWt^(IL`^{;$34XD&;4hyV47Paps5+^(_R(|kup zanHuhl%^*2=s*{SF_Ia)!U|UNPw68(8x_jhgtxoSDbL6297p>-fS(+fhR#_}YKliE z=Cg+c*1y&>Ob6hQrY~B<4x0z%0fOT-8}VCO0cw?b43@=HpG9j8wk(Kw}01l z>pC1v0eSpwR3oLf{gmC(49n@bS3ek4ZL>Q|S<7Ccuk<*v}%21g`)FG5D;k}N8PrIIY#eOW{BdRU4PmDikyYklQhtwU}ltsQkTV>rgB6)So zkYDS2XjE3(jI?FRB7NqfC}pWi9Xc&ipJO%WSpV$reRSdffjoOcKa))DU?qJQ6+K(5 zQB%T6%d*e$Wa#bAJ2~zUFJVF9Vc`YVch!g2O8iKsE<0#a{L%jRVYqI?|6KmSu`9k+ zx=5?+DV!iG_MH08Hgz`Yn>L3>9p{dz)T0`xGm^F8|Hs;&z}rwh4&eWA@0EQ^+4p^m zkR^MO5)raR3&|Q0p_C;mQVNxjy`p4Gg_I?U$ety#MG+zUQvBXeeedtn&%b2(pV#Ys zpP4yxW}Y+i>@#z&^Gyd9v6lytm{xZEu**3!>DudjZ+I*t}T6JLH@D(`Qw|1BKg2p5QTJZ>a2r72GhYSEbH zJVkHbQIe&O@V zuY0Z6`=I5#$%qZ=7QSW{-}>D2P(N*SZka)DI@@L@>pvq*EIcO6utJ?LUAE&f2H9Wb zFaKBXU+S2?Ej}Of8C%%S5l-;DV>XzfjNpA{uz)3e!y5kUyoA0>=<7EXr$^~T2ih{m zcMN^?^}cV+chaTrzQ=buWt_?A(O@{oh|9orZfp zj@xGv=l2G3k;ne4`CMI^(1zz2%M4z(y?0r{R?d?|T+307fzHb$=CY0hT%fTs{2^NL z7|+t3FcuV!M?L55O)@i*Z^R{&c-Il1S4|fe&)b~i=j@{mPlfFYJJZ^GC#_RWn9KL9 zCNFnoC}q_vOD!K|y{R>C@JmcBOFC-W5tQ4mPjX7d@Zs7x*T%xVDTsj!3 zKPfL9vCZ?`VV%&Q&S#y6iSJkcJ?`Ong#Z0~(+T}BlJ?Rz^qDct;akQX(4Ha5uda9S z1Wg-zUQ=59(SAx>XA#H9almhm+$E1N-f`+iqbB~}2$j^^6{$dFs#1l*iKR>N2xCE? z%$6SKXio?i3+vKC{o6|W@4FfLMIXE8Tf6V5aiJONfSh;gk0(`z=ntjS8GGA&Ep3-p zyrHjqFzc0_tI!^6c22vXp>p(yI*=y&w4;ivA4(d3VKHktudOlE@>K8YJMkp1aMUr0 z9E&??Lgd&Npgb*Ucb|JTSNnaI&c+72XwwQa8Sj~S>;KM7I4|LManh|a9!Pppl8I*W z{5jiAWLu@FN_)D}hvyj@rk$S*%JF3KS2{W{P}^-NllX+S{1`ZHD)b8V~Q+H_|R2oXv4!89O;gmh7$t z6fmxbP|3r0TBKONXY5it}`8LIrT`XxLU;6wq%T8wdt6doSbN}|7$`Qxo;%8NU zw=Dj7m1Cw)a)!S@yYjy?e|b~kyoCR2cTBsdxOLRUf+EJOO3aVP33p@$~rf!eakp3zj2;wBVET}HyOnv{6D;R7b&mp zrz;Db-*4#V9QV_1zRMU@_1pB>X;{xOr(b>7-dM;Ak~T1A$G6vu3qNv*r)+lsV@O_6 zd*)Gfz3(uO$aF91EzxZ0QanQaQck__@@nVNIP-Jz$eQ)aR>!&|)y1g_Io%5qi-|fE3((kG-X1E@mTwXe-%;gQn@jkP; z)GMTqaLr?cdwqs*wfB8pY9E*LUa0rO@krr&o!_LbM@rMFh)6(c(s0~+CpgI|PIHE{ zoTKiit|797Z@7|II36J$H`-5nvXGT@WFR9qkeDPSB!*bxNJ=uU^%WnFTWqTkg(*Nm z@{yk+6eSzk$wX#yk((S`>nq%Y5{}31wpESlRG})xxtTk;i<;cc9n_#SWhhHIuH_ZR zKSFtWpK{@6Wke?7ZOYCoxlf^$I5eZ~HN+*{R~Y`EYn7+vQ9kJ-4Jbp>k&ix%;*-FB zzWhPCN=@ZyrX$V^&ufqDF67$hbmbMtKKE=mA1iO)Fy7GXs5qK?a1-Cjr)G&REuoz8DSNDEp>X>e2*@HAP z9Vg66`oQrh&@wLi;aB&MQL}jzz4?@OC<{CrRkNuvKo+Ry(%M#iZN6@lp)NgmmKxd% z5AiIO>C1_p^0)1bHr@Lfynl8`XrfUmp zaKGt$t#>!~n(k~_dup3*BCJnd(}lDd^3vV>Lg8ohmkxR}Nd64vdbr;3wKSL8`jxz2 zjtkPp3&MV6v2J?Wd%v&!J0HGH}SOhwn#JU>1O(4;Y8lD?l5Xvr#d5iW*9Sl zw-4xLohJ$BB^-}Q-YXaO%v~F#@`6b?9D{nE6oSq5FL45kS)VZBzAG4XqLYA_Ub!=ukd-#PT zoaA>B`aWIg!GEQX_;_4u8_(KKe+Ka?Z!nq(OlBIhna4twvXXUdW_uuy{MU7{P>x+{ z8+&Z$7mjd}-$^LFB_<{5$V3kEQG^ndr4rS++<07S8#QgGE)8i$3);|;t~^B_?vvi` z=V4m&7*EiX|B6TGzl3!9g74T`+G{}>>9w2rPArlZ=M$gr>U-}Q`}}+Ui?QtQdC(@W z_!ZJe82_kQ&+mh8GgL1;=Uk>2hr#yuI`1);4V)l>@0XhF6s8P!&`91{qVKbo54ABf z_EX>d?wZPr#;~r}?|xWaQB!|S|6;%GOx728lZqGq$}eI3<8sC>j{59*QrKq}3Q&sM zX&?@B?SC<=xjnP-DIQ?8GJQKg^KauH;hu}|9OL2lwUg~*JRh;Zw)*HNjAs&qMrjk- zUtW@uk@J?N9F1ewQyK9z-z>LZ=CXmyeT9BQNFViVx1#fW#x{?U-}GC;`-EqukK+t8 z-`sq2WkVw#G~HI%GBEv!Z9G6_)1fZCT^L`VwlaOGSA6+#skGkPwg>PMukj}DGL>1( z;R}}V4QtrQHg>a*|H?0!L^9MbQ>^>4IN$9&SLX%OIfa?&ZTdIwA7Fs#8!Ssjchie3 z>nZ$J_%)yLlKFDpFG;9lDhr>nY_I7{)h`RT$6fNf9P;_&oF%f&L?kCI8OTN+3Q?TW zRNyx5()d$0PVJF}H zX$J8Iqj`sE%w`_n%gej@gY0`8FQ#b|KGRIzUF;qm2CP($XxHrJ`N`@Y69|YOlxp2 zPq{uBcbhRR{(k>SLi2BTa(~kQ-G`D+JVN=A!uib1E@i=1(wKgN;nKw`Tzt*1y!S43 z-S6+;^>U`;>$xS4WBffNH`qt~eI&)gwDK$dUXqOFDY=~eUc637r`2l2 zMw!<8-?<+;HcXuE_eQ39CWzQ^%B``=D9aL=9$|W~>BOerGX1u?Y_9msWQ6IfeT8_8 zaNL`R@h=`^s(Tr}q~LJv8J0+o*E#Q}N9r3%2gBVX@)`G{WiT@r#|28})-(X@)v{u_Ai~rHuSiA;%?!BmVGJ8Z! z^s@8PVRTG1z`2|By#Iggb1NsrL{sd0$y=Tc4eM2mjUIH*+!FW7EfO}X5*vLb+#}4c z9lUd%=Y!>&$=UQvcleE0&o)n-X*(NZqLd1;gYGLIsBj;Cld@XddV_l=%E&~+ley=w zl|ES2xagLK&QBKYb8VA0^~Ya6EU zKR7K<-6Ssh!{;XzOAzHScGe*_Hu`q9V-WMd=jQ$_!~8Fz0gh39V{IL7x4r4=*l+BU z-8}R1U%xxkQrPyeuCD7Q>p1t4=g2t2JMQ_I!qvV)nI3+h=X4Ykov`hP9*B#U-s?V$ zmd5zpOL4ra`zalR8ONgNHhtaX6Jw*tedblq8vN1R|5M8o7fnrO+(M^tm2l22QS^FZ z_tzxRK2B%MyG>m5et1mI`>hPrzM5Bh_(gj3`$tQsDl3b*Z}KDMe9Q+~53 z*0Tq~9nwmUQf`s={l-nv2e92JmGUr&b8GPE#-zq9!h!t%(<>Z{3N>7Rcun0lOno_2 z-AEewV2(0!A;aA_`7u2#%Q{${Z+Z>$#v7A8EY0%y4();c-rMc_F`>Wwa-IK2Z22hd z-NC{=yvE(kA=dWxzamfAM<~z3{cFeVI}(rNJZ#+gXYo2otmSFROd+1(50Y3ft8L|_ zGU3_I{jPIAC{FF!>N-ZXoUS(pwzrMrBp>O%P$n~t`TW$(wKVYv|3_rlAnhLp^BPsv zOP{RPZWr!<+_loD<+BHUU+1+@JM9YIeqY}tlQAgXqkcyDlZQFYqePa!*jD>l_+xGF z37>Hd;ZE_38}VcOA=!QLx*%I}$azlhJ&PX_pUk?O_?d&`-03_~oK|#Z2B(PGrH=hXUyqCL53{>} ze1-Hezin)^ZlW$?To1`VGVy!Key|eg~a_{>Y(jWO<6Qdo(%D*@K#)u=}v8I>Gu7X^&dI^v2kMG zX8?2gm3ng>8*xb>E*a#Fjnw=_y5v*oat|8|_^r!=>JqKQopC;Ovo>jCRwk)y4+`04N%4? zhZ>lEfku>|2cNUVd&fdqWqK*yn8zZ^j!@F{x3;m&_TDo6CH*YFM|d}Hu#n>1UdeeS z&BLzeiAVSysonBja>wnw_qVW{={|p#@P2A)dyF-ogajm_2_5N7SKeT+b&oNC*BH(? z`q7(Q);V8G8PrPp5Y~A_yQ;R|uoaJR-^UJZipS?UR{l50G}jWJoT5(WiIK|EQO5L` z!8&#Mh3E9o;{4AtN~-H_(XJ^$K8n%7{$}#Aef~m4X{n}bku}KBNBQq_hj~CdApRAO zN4l)q9Je^X6`hmy%BH363pD?QetOeyr1cWUK8P#qnAXx}sw+RY&@Q)b$(_nEd2yQe zCo8jNGLJ9W&gH&Bl^O2CEhXNQeTS8-_|UUc=8KV^l9ZqvWx0jYlp!C5Dag$fp^W2P zpSs#zuQQbOn~dLZUpi@~zBI)3spNl3apV8R<7N9V@PFIcApc+Pwhk#D{vc5iQr;t82 zE0juhGiKgPd+rPENRDuUGz;WSDlv7TI&G2dQ<;0HFD@h5qz`w3BI^8)it7imik~^n z%{RMmMj6*xKkv0V+JZCve=g1tJIj4!;t|Fhp6+anz{?{{`ynmh>SNk08XrN3!Lyeur%y@LSvXyh%;TNdU^54%`DA)h|EneTL zvvT|;=HC-VYt5&rr0nJueU@Sm8WLk#ckLhF;Tzu}?QGXUsZ3)MX&0s?8+{_%OQmg9 z!B~LlQ|H~w!wbsey$^eqo%cfH`2SvimLKK)_VWCv)F> za{HAovyh$Sq#+&6yw{EF*1gAPXR3#~X)|S9p%0|pzf`-Vt+q&VZT;1j-=^JmOrI^Q z{(E^sJi>2WJUY$qA8-%PP;`#=Hl1lXUYfMx&)jj+Go07QL^Xx8h2IU4o|DEzTeK?< z_}mfdRq@OjA5`^!+KKCH>&ue|G?t>fAC6{;Hp6aP#+!mSM*H`cKDD|PPIp6jC`X_xsvG-EiMS0s#f zaZ`HjXqHk#U-m6^e8?}4` z>4ocsorGtF*ZRt61IwoC|8CG`aQ?nxz3-o5uVXn%-O5;fn+0q)eZg2uN_pd88tF2v zez-iifSR?GK~$$DyGm(S%A>K2=O^S_@Ol+SseBVVh@;%#9ht?$ZJtxwgndIdi%J3d{GKGiO=X*aOJw3+H(%K2uX4KBf z9klNq2bpP$>P#jV^z z5}!YAy-gf4-IOY(r@L3<0KJ*YPRl}h`uGpAQCrjP!us0x2RO_@J{Rv9+WU!_Z~BS5 z-Q)VAv}FDcc5TvD7yc;RUd{K{XZt*tV=PA|T$;N>okG*v>Z-}=7)H+52IO4^Dswvf|C7%PKeO#`ILYU%~qZrxKD}uX-rMR>(Bh+nf<)tos-NIAV2xYK{hJ-9#!~Zps||0 z`hHB|1Nu3B;raDG!aUa5WxBF(w{Ro5OsBPt+`_%)pYoYXrZ^&v_6j1IxqE28d9r|l8@gjxZcMtam>K&S}lnir>wQw$v z`$Y0;%L*?D3;0gwj1OfgAg_t`rUQOQL)$g}yd+WvUPl~>DNGScatoy>PBES$1<6Q7 zO0M-4;t`&ge|v{>&c)B%&vrZt?zeC4%h_zEfi}v(is}sa*2hZI8HwtvR~u<-b=Dqv zL!W_^Zzha#Q20In(^va@GrPFm@wsh!05 z7onXT%8xsw;SZ$uFBvKwA95Tj3zON;mDJxaSpRBXp&fK^p6?>>G^Pnn8E1Pxu-2qi;mh3FPGIuw4KSk$8eh2M_=#NdR`eq zI3A(Dze@Xk#cE?v`V_;}WvLn|gJ?)sUZd*A@<$8x2`5`AYaf+f`Ned&|E!ctZ-ew%iOa3OE;7?}(DKEjvi$ESS2Sawd_2>AolR$cT2@ zkF$(#vx}ELbU(!m{T5+M;cLRHd4+UZH-l?^FWNruGSL2CqP6n69c^htqQml-eEG5b z_P{`OauZ_%cRSuSv=b;sJ$bY)4QR-{)Ta)O=p)ZQM_>BWkJB;Iq>*8+z)Hw~+~PHXwe-kwi-NqNR-+utT$#~6^uvn3RFzS>yc%D8dQ9e!(b zjcZZNV#Pt%T@Lx(fFrK0pVLoaSyOqUaC{8@3Pb%eX_B#~FVxSZT%f%|c^VQea@~b& z6r}=pbMgO${r_(D%I8A*2;<3>)<@B5{e`r({YK2Aem6!~K-k<^&Zz#O4{|9Bo5XXENUpqJ7lJRL{Q0y~3 zmsu?0lVANL`XTpFG1v5Z;nlvvc?r)mZW4!$tYZV~*}}+``VPFsXx?VTV)Nu*AzhJ= zYkh@rnDD~w|h19%>&ZJAni)a4s~)(vYYlz zf6K(FItMHpYS}vPpS673i~10zuk;n_m-#MIoqk_gG1J(qu&gj-I&uMG(_vYS8?%#2)-uPDin9s4H5ATyz-7@vA z|KE7JW%bYJ!yl^ev+OS9+DDx7=N8*l#|>mW^UW`y@&RoFIx`HF8@$2N|0fuuY2b$(Q?^Kw?@rn+Mj^Xesx zz9y~qdj_(RhvJl{DmAE0eVVXTeg5Y-zyB-yVk-AW+-$7pf!Jucws&mv*r>u$bzpgI zpJT>qs_0W$zd?)GsLu)aMBb)7FAhuIjg9KtZ{4l2(GzE-^C|wv(kW%ioY<&`_@?t6 zLmbceId}C?y5b6_I<9+J^G98?TGXnQ=6}*jXzZW8147V`^pbJ zJ~LL-R+%E5_A+0*h~IjXej8MaiTck_&fgjnwUOyYmvOEd%Ez1k>Fi&6S*UBnwUirhZ&v9z`-SCf@&pHwstInx^ zQq%O8)_Z88z9=uy-FEvh)AqU$+CV!eX@_R@zwXLu4`hysI>|uu8#_*~Gt8LAbZI7M zY;^Dyb*j9XBZF%_xnrY}>Ge@_#YT;U74pPJHMGedy5RZhJwCG|Hu_k-RBEk0#x2UC zA+gbsO7i`%*eJJi{dh%f2;uO7u1{R2pKo8kPM3}{CW>O5k6L*WMbnB!QI2_W(LnKy z#>7Q0`!4Br#zs&2{#7Q#MWe<4p}nzD>;!!X@0WF)dc74J&9;1>knH3ZDkRA#oF@ES+g!{E_me!inn{&#i`o2%cA=+Vd z;HylIeN)fDjnk(R|F?N|i0cQ!Zo=NeW``XsMp<{z9sbWGYxWyo%xsLnIOsukRo6!I zohnmK`rVMqvG5(zibuGv-}In-Kr1@Zm7dID5o`ILpGfelvVt1i$Frn#9B*X2_ZyiX ztb99Rx*|h)pNA|jBOJ^mnwo!6{c*E0Djbh6PPo$NZm>KL9T{BSbpgxLSpQCbH=R;= zMwm=kcB6Q3FWJmL`HX(D&rE3K-Y81U6$eJXpTHje`<2xy;kw+eQk>O_`t^>g(LUKq_&{MjO(bpDcaN_I_?<)0MnJ`gqm#!7M&MM4p_m zT^-IlJfKc(O@dagzqU6n-b)@O@ypUTYb>k&taQgiOk+}S*8@1rd5ZRxCb^e#{fzt5 zfCrnK91KbarusozB5^mY1g{*Zt~P9CuwQ17WpYP# z=nJkhYCN1W&b2U{>??eQc38+SrR-}U@#(#f{ry{-ALzY{)BSUng|xr#l;d~Wy(sd) zN4fNWHy9JzBaiDdTlK4>sT88pjs> z81~xV9mS39TmC5vBV~#BEw#>r`s_b>@63bR(p6ofwV@+?XZmVhA)SVCu`Ofu@fgTK zGATFvveER{!USWCWwM8TthOw_cI*)0QDtJRYa*L-T>98wDt@8;bMUC^w|SHs2Fdy} znBk1!edZAEIUd9tjAJVEc$J}C>npSe!|&3hAMM^!=XNw>7{M`4@T6nCvZ**6QJ4NE ze;oCD4#%SCF%BG8K4}k?OQIaRhF6G3825PB{-*H>^O(;e87$d`(%p^DX(+U!@W$?`fPuKF+Kj$fAB!4xJ`bwktn2;k<SkXy=OfuNHgugk#nvk27i6_&wT6opBs&} zWg-LP^(TK|7dzOX@ZZcT*0F|-G*h=cz>T31bB(XipA64sB|qYvQ<)mnp%D-97&Vkt z4Qa`B=2KDAbQ4N(pVr0pjoqZ}K)1naam}!Pk7tdbY8bL!9CdVt!MP*Os>L z(MP`Dy=pQ`NT=a{LHDcbewg>&A4Hee{EpQu*R`u?BQcSkFRI%IN)r^HE^kqMuHP{? zo?6m$L*~!d4v=03jdW~3l)pc94=YPnxi4(0dv&;lM|ZkUf&BMdcbxtY@yFvzzDsi7 z=LWKopO0=;zw!y+F_Sf1{GEUJPFyzX_wf97eKNjhRNlYhQDM7un$&qdudjTa=Vkef zV}EEXk=^no<|_(k2|JvTZ({W?g>{9uic6=2?jg2~3#W{?CNV}6;~KAJm4r`gkIb>G zz3?TLnO?|qrt8`M4AbFwR8e1#wyi15Whoo^kz+*0Ra29dqTEVN8qu1r^yf9kGmS4O z?z5f8xu=PtjN*01(4J^~6n$k(tG?;@c%<;TOcbIFHE6&ibfzz_FoqBKjAd-(Cyo(w zOnk{fQ7TfCrnIIz{Ta@9rqfAWdlMgzi@(bX+ug!`PLjxHt|vFesX}d<(~hTjfj61N zEUx5uI3-a?AM0Cad#V4Y&v0*tF^!bkf}ad_kJyJ%RI#P~a`u3}E59*lpL-B}w%Hzi zP4ho-h)1Nw4i}V1(#}ibKbekPFhYCYIE^S63BbDw_}&*M>e@us_k5*i}5>smmXi}<1f%p zS}6b1da?VXjEhuG5=GgqbA(o1jT2eEqk(5qOdm7mm00;XgBnX*OCA$N$E;U|a9%?C zc*OpOBy&#y^L@8X{6?}9?(Y?jrn&t%7-*^++JfoTR6$}KHF8eM!raT z)R?s}zwlwI@vMETHvfEfugA^$|I*^*@`<7{!eyoPe?pqemniDsdvDkm7i})3ouhxZ zuYu1eO%y%wvS%WcK{>vbKC>o@?r3VPl|Hfa49%O#4Ah*O21{oi6`-?)=8fBt{iX8U8JCleX}I%}NIc^ds| zOmxirk#jLoBcJcO#n_edvUn65y{Vk-b37(G<2$)@66Nwej_B)u<~$^SLwQ_Xdrnzf zQ2bvlWISiKI$nKuwu64XahcE!J@}3?+xc!%-#uDO+^aglc+rr!=-4cMc=xq6{>AYs zs68yszqd>jJ*5sS;2F#UPuusqG0}60^)(8*q$n<-|Do!NsulDS7DHl1VLG*Pt9SY^20@QnI2)V~K(*ncl$BiWVfey{GS z;(tAt(!c6o?Z{7#{`Fi}crGi9%hxtmJ-enh+aSlp@9a&gq-;5-{W0LL`{P9KA77zg z8{(T%+R8*hN>h!xJV*zg;(1`Gq%xvELwU|N=5m-s=F^djvF5)cf$5~S{eyE|M!Fj#{DthM@8WrN z_}Au7FomAxvr7Bd^SiP;c_bfk&~y=H{3G&me0hE~WpPt+X-!x9@(N@4fX`UQX7+M| zgxVx&$xbmci{r)R`Nd^%bDwKRclz@h`(_d*NgE*!pEhVI(QtWU%)0w}K(&leaF69bk(>V1o3+=Z71F6SL)a7OFVF+7{ zQ@{T15BA)QXP?%OJvTR-$&C_yR8^4>V(Yc92`5dN~CU);W7kKEnQm6onALXAdD=k6u#szgg-wL|>1YytW#4Hc)0oR*R%AQnY zrx=x~!-I69H$xc7G`?UJ+d0H}zR@o|%B|HrLuKEgTo3hQGU4}**;(f_dqU%&_qo=1 zZ^CFwL)TSI*AU+1oVIrj@Nvsqv(5aIls@9#h6b*6{OYu+qyWD|ct&`) zbo9zTb@Qw0Cf9lTSJ(I4rC+OF46iT_^k+L=+oO>3H3bL6H<$L{IOi|7GU}Z9V&-R< zuW0_b`0k;F^Io0$@=h~a(UCqB)>iq-x)*qf1LoUPOx;`8XCI;p_gl8x`|;=HN{(qt zpUuWiRN@{Upd-)n3S*eY7p!7Chd574ak==sgm{GW(!zJ{LO@h3D?nG1)n4sNI>_`p-)XciZP3=98I!(tHl* zvN)+J@4eFAJ12b9dru2P8}@eVPBZ_R`4>zdHT{9}*v2oMCXr*1j$9O{618YbS7l%PdAX8fTGVIDa~F-6U^`P; zz&CuyP7ZLA1j^Lpq$d|ex%j+dC%Lv(77m*3&JWrPXIV%E%WKh$BD~=J(0>Z?XstbWoq8fY zA4vnVym!>HYUYRgPGgxG;v=4m#Ic#Mig2`Lz4+W`DvDpM@?^02rlylg0~MV6h02{q z(%&oM*o#iIWGa=E&!urG?az9Dgk`5lY=3VElM06mlM9CmQwm=drWT&kCOOL=MB2VF zB;q&o$7wOnxTNp^+epa{_OhGo>gtPMIV=e6kAk+p(0&RFzYrD`&KDLF&J*4&Y$fbM zKSr~UW5jxIj zm`b=&m_WEp82MiF#p7$%@dNuvVt?rOs!-I69H$xc9bQZ9h9USHY zspO;V6yx9GaV_VzgnisbJzCI(ehg&-vslbJc5@VWCAil^Kamo|ACD{fE|q<*4iD0a z-V9+Z(^1v5%?}*l49UbLBl#&!Xpe>R^h4#}kIc8uH*98@`Q^k|@4RrZG`>q2`lj$9VN=W7 zkY0PcHb41HeEZvGujmzjUasVrR<-XsG^ag1d4boN$VYt1dVb^>G0Oex$xTWA?Yvye zF|B4l^>~Pm^kNVrc$ZID%0_?4Em!>4?H;pv!Y zwzP5QnV4v%y0o!z#O2D`=#QA_LuG5~^D)sjeYeRMJd>!t-jFah>ZcBV{Ds&kiGE5B z4UHu3AxO7ACYqoRJFc*6p3+;beg5yTa(vHzzc;6RPG?*))D@+~=Qeqx+7Z8jD*bH} zuW;;7AB%|^idR|jX(&Ex#AlrNv@wo3UwmE^pVQ(q$2eyBvFf{@V*b45_Pgu;OOLxJ zz_R?OefQ@78y|>2C)aXb?+~XDuSa=`L5$>mzGO4MaF(QwXL@o|oP54VX>vFxp^n?{ zI6mSSyrcZjuiZ0Dee}KX3E^5{Q}1-IL_;Aw=4Zw;kfp84$?X}$C9C-H%0bG?_)Iva(bneS_zDYhNo*I#M>ZPj_tGm&lPKeMk<9JFqGPVpqM zw%yzE_k^Pv%0ND&sCa)7`uZ$qwC`}KHduTC6D~i8GOVLGB^AeYwsYFCi68GPZ98Gi zuYvc%xL;vm82c-1pKpuH6#i=*Fn(W`3ggqqmE^bD;?R%>X+vj1K6;Lqc%3m!;d633 zh9$Y3`n2TYJR9G~E@S;8@$S)k_IH|=w9cgLe9Mz{453wE<8_C>n9>HDM`*Q z%X2ulE0rOQj6Zba5vmO_{`i0KIBT8LMAlEpKW*nJ`|iRZ`Vqg~h0@4BZTp|T_rEQR zPaoHk_wNwzP@cWOo4m)Te9a~jJ9ilX0wD1?BO)Y?K2BSs6Z{6(ScqJW;F4~<4V3uPoEpeTTEdt%h|#{P7z~F|{@lT3{)s;?SCYoMid#QkTSj`SnDEqVWn6|xsvEa*zF@Ab0nzhC3K%w+JdtA+d$uDu*oAD`krZLQ|CrZc@5 z$YI~}97XNF9J83mV!mNL+eq%a=A=gDM>>m*NTVM^Z#32+*qmK^!HcDE2m4vMb(EH z6Q%}z$2$&>YQHe8mADA&r;{Rq|4fhJyM&7J8echlKK!4EFZQ@^V6QP^$2kpIxvRVO zJzeO_FebB{pE*Y2-p(6U`MsYs_MG&@4$rei&$zzN_bv4^O{bPf`( zhh@m>{|4+ZZf(8CTIwT85AB4fs`xyc2PKTE*k?UD@ic=N%}my@%J!dY<2YG&a$DnF z?ti?E1eD~wdm2t~jsg3{p^&(f#5tTT?S?U_@cRkR`Yv6#?nUj2QO3vy8V{1LvfA!> z;cM09C1GOe?u@kdd4Km7n4cnl-}9^AQK2q1NusRk;C{8Q<@>yO+)I+%@5>3t=W>1- zW&VP2pk?u|P{)PeH!q)3U%~UzcL;|HSM_u)e3ff#=JyKo3o9}z&bBCaoqgx^I}%K$ zWC8c~bG5I~X9)k7V4;1i@9i3@=XzeGKLgn1{+@ZgJojY3hnZvg9$lSdrptXSzxnR- zE&GCk&BFaZ{)eFOI^mVPG)w=y@A5!?_oUpfjm9^u4_X^DIusN49!}l9xdN?U|ObUGRIh zM9~vtJpYr;5s%*NkSZn zNlr3ixsLb78LMZfIG*4FN$mT2veDf0t-mmAqcpo$pXPn>BIj}Mlb2$ho%15%oX_t^ zI3D3%>_L8KxS~AYR+vW^EAM9!?n)RFRTlQKyqs`_`5eOI!VJQ#!c4+qiDIHT>g7k( zkL`GtE~H57nvt-Gu&(>V-s%6(=Pw+OaPM^ob?R>BPBpGQ+jrzFamuOGWFRN`xQWtK z;tm?nj1F|B7cVe|>C9$6U-LajsOy-O$E3I~0s{d~nH4pD+5 z{6WkFW7f*o!lsiZ_gfm{v;l<4rS)rhh2s(ar`yae?&*~0O7el}g7Vxu-@8UncGDLu zJHwGR?kVBh&F(9(?tP3hf32@@JbI;9CRS85(e$?{dikjG)%CNt(|LB$u^Y$`ddjPB z@-gd4AupHWe)@4OuW&peHOo zbmnOWFod_5$cKE&B3AIE?=hTNtRb{b!!rPHJm4Ng&n>KyreFVDJ7kBx7`e*oJ1%hj z>%8_?MeS5|@?6$zF@KjjsI5G#{%e;nkr37~d5%hJ{AQSk`>v%H<}@))g& z<+GcdOJ(oZ)G~hu=N*GO!n^p``{k6E-MSc)dc*Yv(!8mELJPJq@NN6D-WodASEiOR z9z_VcOVe`9Syndw)6KnqDhh%^Fsj&tRV!$xR+|k(qD2 zmqnO~_2F}@BboWn2D#6RnS96`KIIeUGL86GMib%pXtvE2$HB%o=J~F|#M0`T7hNZ{ zy!9*A|H^enVdKS)jc|>zjC9gPS>NFU+uJi!K2Yzh9OF9+s|lA08;sTOu${6CUDuzG zFv>A5E_zKkLIZdGjmm1_bYb$G{zseb-f6o-UsmsY9ve+ozW2`&8#PdW7O3jp+N$~o zqhg~r_M1+)rl$IKdTf+@fbIM3oixHC`V3e53S~$5ef3`)`vU3J2^rlN&oJI%Ebs6E z)3fUHXLH>nr}B*63}99XzYf3uenY@S*mgWaATh&A0>}-BiYDDQP!&;GKfdW zD=oyM6`iR@eeyfMDTO&WCVeIoenoc6Zy=XCrZ|f&``vs6)5%zAegSDr*C9Rs^^z_B zeD12O^D@?F=hMM9`!beKX|9dYfV;VkaunxI@2%!7PO_Z@&RZj4A>oz0LO(A2UcgI- zwT-#gHYPBSpNaEbnq|^wbWZk?JGZ`GCD(UqJ6`pz_o@8K;Ggs@wV`ISG=)Bv=f6Ht z4liZxTgoAR<2=)h}Z=hhmpKj#=#Rc5{_f4{Ds{D!)D zqP`=;S@4eMvZu*P1@xavxPLyU-@It8Ozf+CUFiPI#-2A-e&q=X;1aJ;hAqq<<2gI` ziKN%A@Yy@+8iPz}Jn%7Xumtk^{qor4xag~U)iWdf25EEc(>;D?%ke4xeq6NjS>Mkw z>eNQM^nVpw-mY&r-1!#HIpEp5o}Po~s!Xclcfnrqe0f{-?(nX8A zl)D_bO*?0t_vN8eRJ-2(Xft1a8t?hzr{y2>_tQ^(+_Fg&Rm$rB;j%5un!EB%Enkeb-xb1estgAO7Ybm+|9MTLJ|(oXs+m> z{Y4`AcY|;z-}6C7{r6?+DyA@!S-e6|Ci1v-+VSuoj)Bkb;s8h4$6@~K71BreE#MDx zY7g@|qx(AsEahv8RngxVsSoX#wcahQI0qjxkEVsBTdwsL;!!J=_&+5-@&_@_c@k2Q zo-E`fA2sK?2VQ<2!T|9Y#xl;6IGy^EJ7#F_(1w0|O;>%D-n_wk{J{QCjc3Vs4-v+q z!n3H8J(K#~e!tPer?$C}@yupVANR@MDz8?PE_jU*Oyqq&WpS~o@FEr7lppDdxQ9|S2!<^=Z=XIi9<{KT`C@BwG%6`+;lNz^ScGS z=h(!Y(T^roX3tRa`_0BdO6c2!_BI*o>Mt;#o%}(Td$o^#)s8&mSq7TWl~3(&HHFhS zugbt2;t|qEHp>d}GU>&kw6Lmhr*ycVgPbO*xLwCN)3L(2!cTagkNDi@nv%?CH%bG4 zu#di$ee{a+B<#Wsw6ace;dVm$2xD{oOUFcaex!^l>;FAjzSG0)yI=OaN9Nc+(_rI! z{l8z^TUf_$efH5#DBu~j*`BNS8=ARkZbZm_z%h2?g-Y^(p3vQS;F3_RXgdnTRpX&h|uoS0~({qD)V84Qr-7&PJhO-kh+f9 zS;sv_nn})6_SMq-qYUzXS~AnodKD}y$AhNZ3OjJfIf{gtEXzkVYSP_yrhBi3G?&h} z%^7|2a85!UH({dl$E&=-AUe^KM)aU(TgPaRe%Vm%`(esb$M7Njn$3>k_pGD6`Hr+@ zuze0=EE6c**R@kJJSqJMlZR=lS~rJygudj|{l9Vn9EaWZohlJgQhlS4z4;p9ql|vln7Y=ZQ-+0G3MQEpoczh+k z8`#QJ7Vr_@@)N(Yj}!dNF@EF#dpXP=e&u<`r5i8uBr`2rPDRs|sYDUyrcK%Zl_{YN zE50%&`gXc8biU+`kBtWjS1{7_Xcn0sBfMvvHWCl9GQIeaDTDLQV1D2rH(Fkq5%#x= z|9XXV8sd?{XG-&x&n#dkKQf;m_|kiwZGQwM#o<@;=}cGSL)x03zz1aKPM+lm>Ahcr zUreVFR^>U~r>M4QS;D=y;s3fcwN6W(@!nAGwXa>~$D7_GoFwcZ>_%T+<}L0~R=oAQ zvD>WD3I(c!Hq(E9|BH`L$S>h|)U}`0wtJGSrfW0FaoB1;q3MD&VGN@f@4YcBrj_|O ztXDzYmkPU@f1c&0y9)=B)byoZVXQLzzWYM!y=VPO{A@a92wzgC4K`LPJi?u+jsNMl z-?Pj$Zu(QzvJ?fSSNZr_UZD*Xj>qMk-x=cePv>}(}xNmo?Qd5pi&dCOjvX*Okg>)Lu%V$q3vtE=&ODcnnKTZ;U#2}VYcAz@; zRe8q#8i+%4hUou4D(plL`tvFuw0AAT_8RjfrPOf`Gw&Jgs>kG&-agA*@>@3#p^Y5= zKSVZdhnyrVCY|&&w%=Hq&8#gV+$v1f#PyV2`ZC`8+Ol-)v^=%t$4pN*-CCKOFpDuU z>wL6NJt%yK<=+3s`?-|C%S=CE`WxZ?5bC=wC!~+?|EMQge+;8|o3V^$rS-R2|6Ac+ z;dIMZnXbt$^Q(o&g_-Q*6KVBhvWrV0^N)*HSDsU6)EJ`QVc9+2>tX$L!W)SHf7GEI z3vHlR%c>)IhiS}aCKDLTGs@*dcN*JuE++9Cci3(@VJBf|C&d2`xeAtD{D0&sTh`4w z@&8ZmHuF8q|NZ~Uh4HzMEt|&zmav>vY-9)fImS6+Y$G|dwRILz*O=Y4{{O=;rXI#$ z1`l*yyq@;vtFh4l?ar<*$UmvIjlOYD!bsPI4jE%kVeIYt*gwYvr#=`P-CoN$%p&6? zQWxqn5AMQDMSvq>1dXH!as3X!SA2X7NPwM$?*=@#|JE-UB-AcMosm!7{zdxzn z(O-JgzU-mzvO@c@$Pi_5N9WFa**ZA}*1J*rGA}n#hKj_$LK+RfZMxKP%;$VB66O)E z5Ec-walE(F$@%C_5BX~d`8Mbuk%g9A>np?~Tqn)H!~VE#r{{|AP>%F9e$CeE$|m!@ zgk6MRr_x5XJh6QDh()&j(aU#yCP9=#9xcH$w)?v6mv@b)PBY`4$zwdf?L4_|_w7-? zp>x9j+)byRZ|6GY#;ZRnVO%Vnm-fTmZ*sdf4!fl3V@y*%e<%(gI!9TAvxM1%p9*sb z=L>TQYs(YOC}jOQ%w`_fkGlNx721RkDWm2(=L_gQ&2OSI3)E58?|MJH`g=Dll7mX&O0{nOf=Y+xfHeT3gM?=wd` zoewF(OS84rd4sOzPk*HRH+>^d&Xli&jk%u#-n-UUI4|M)w+PIz7vBFnb zCe7rLHjbt7zj&p!j?epme$Rt5+`m0f+kiH7B=2X^>Jt5aMlM&L`Ruk=)Jsg2*9ShT zuHioNQ11!%&j`y1L)#<#@1csTZHunl#ofjjYV)GJ@%$lU43^cWDGxJ)fg6m;Sm##L zAM%8QTdJWv)7tOaC=0hzu&MR}Z;MwQ@xLp-_rGGfo;^ZyWc7f@SN4a2B!;Gq;L5tL9sECc~XKsu$nLsSGrBm@yqK|w;1lL);SG61KHL8+=|!W|WY2#o zqYPz4h=XNS#JKc*+L_#u>fyCU!MAIiQp5=71KTeF2 zpA=AD6Ru+m8(71*0=9wIX-B9--PXPWB*ukaGj(U=!_i}tkTohiyx_I-X~DW0J+`w91;!hav`wGH1`epwE( z+3+FZ7U4i*S?AP~?mHM4VWe?W6UjTp{R7FdD`wguJdfwzu$7#WYZqPUWPv@ z4Kgyw;QVC)XPLoiR&bt5r(JukSbUDS7kNjod&3x^7q38%QHn6HSk zv-cqCbdlygceedC?Y!lbC0s9e4UURztf`)|I}$0|Mj6aH`gg{S6m>uDQfl>o z_dZiBiW9l?v9^H(-WAE^I&dKFKkkPxG1M1Ay=9SOv68J6lV++@pRJC~A-*R?I_ZqE zyi{8mks7XF^=QOV=_SiJ-#}2$>S8;qFLIqyroWjkoGam4yTN*PaF#;WQ-O(Fq|t|+ zFORAZOHbF%*jB@NXfF=Wif1ieH8Tv{wOcN?V%IgcdZWHEno}+wH>s2*>3^=TTnYQB3E>6?ZdD(`}^dqMA$*>9GJ%+Wmc|U!XJ&x1qJ7tFx;k&%<4b#-L*SVShw!WQx z681;9wluV^#=Jxm8gan&#p|8jsIsI z(|CmA68@KAyk#eNK-p8fUtSW(2U3%bl1woD4%5@=f08mhO?fKuj{K_=?=ma5b{gjJ z33HjpeEL?9AMzca8eYI#`qPWY=A-^|%{rdt06SREGU_lZz3U#im}WSO@PhENa3xXv zY`7BN>hH(B?56ApY0UWVsBgF$h3PdrQGScu6 z*?5Lxl&2;y@+xm|FHml5HL;c^_*--{G%r=;!9 zWBd{77_P(|{qNA9k$k{l;~VnRNY`%R9h4!|DMLKo3-d6RUYs^ZZZ)SN{mcQ<<8yp)(U0 zY@QE=-N+O)Ya=zyq;|{W)Rfbovk(pd%4ad3070z>( zVdf9}p^5%hMDLGKhYI^+tZ`!)V4e+>)8Ccu)a5zqQHO36pb!Pg!Aif0Nf#ZDEtVCX z#!_dporZG>zZD*!i2kA+)L&6}M0k`-JZ?Co%Y?#^CNl^#a%0*&WLij{r#Z!+(`l$f zh2s*vPk%N2H{w~&{p6=0btywRYEql$c%GllpF{W*$w);K9_4QCAwq1T2*>Tl>hHnYyF?|h5fO* zQJhGfHNK0wR^6IS{G#5TPH)N`@IRNirmX&27h@SbhP1D<)Jjy8}5hqcwQ ziH zdc-{k2JkWc8OI0)(uZO6W(b@7ehXccXWrs%-lZo!Xhuiw6_1cU=32){_4uu1r4EOU zJHv7Pmv~736GTW(PCC<%M9Kiq@!Cqysq>X}f6X4Y)&2K96}>-xvaFxEzz=NXJQumn zZ^RXsc*G($afsq~(;~vH)>+j)I3+yEPsUy2DlLqEjU&dVH2)>8@FSNA@d)W-kaRea zbkb)|Ug8}tD-$KQoF{3(IJVjDi3d(1RSJ-uu6U7`e<)k6h znxLLcBbxIL?FjJ*{|oc}Cii-*WAy;-g4Vs3CtSOVQHkN%TxZCa-8yJb4;HeI#yPYX z`|T+6d_zIw8nBq(Xwkxd;qU>yS#qEDK(cDfD#Qcg5&oC5oqe&x{&`qj2CVF`tpz{grtv_Dtdg%be}^Bek<7 z)^0a|(1m+Z;eL9iUB1`ZT^{+d|0!~>^3prDql5dFpZKrr%=T4L*R5pk3qI>Vs2ggV z{6$^PGUhDs4e*oN#a6|MygJ7{Qdb1&fu^{QNRv|aafFHyMXL+OozhGP@*ju4N9_QQ8{flJJygW(rY(quk~ClS^2X%DluojAkX@ zk<>f~v{{7R7vk}@aU)nx^fDeWPY!C*jGI|zM)T#Q4lN1mX!(X~+~9xCSE7&0?~d~h zaX7@coBj99m-1s4Z1H`Bt=bcXeGJ#hEnV}ywy;SQGZWrPazIjq!ep8DdR=Uowa{XXiV)x~*dk>GcOl2|0ntT78 zI4#s0t|%WdNBiY+9+<1FO<(!g6jBuS{#$F;_~P<2>NA3i$_q7x&r{7kppZVo^C!!- zo&Ugt$~)z3-wal>jq4;=R>(jJPUknQ>@k#YrfGv9wd->?CQ#gRE7OU6d^|@RJ5?X_ z+sx`_l~Fdx{<3!-JtsAwSLBa-QQ_If@+rlEW!7_?nfCV*>)*sdzUE8z(&Vh~e#z&y zu$6UeqJJkFb(`HEb(h9bkwczYIY`Dt;@HTuK3km++uVOupQ*@Fb(-R~Wf^;_dv2_T zvd($e3;X74<*oF}S~2OubuPSH@nII%EpGPxi2Kc(nWxCll}&&B&P2D@{yE=>j(ccx z2*>5dcd966*VK6__o38xR`&ZHHy)g{OCHx0uk?f9(eDzFv z*OTv*L*-Su=vi1gVmRZN!c6AU{sVa%i#S9~x^TXPwxHMteQTwPI0@&S^ZrOv_dVGC zq4Ilk=YjscJzZmtN{=+AA~~IRMR|$jbs9klJR zyO(lHZ|9(MG%q0@p*;4Edf-^bk$;tYVbWbzvhxJnGO3I0Qm3X3J^y8od4W0h$iGn?I1mH$ln&^3p8t`n1llet>Q zbFFUjPuu7|2@h;?UXq=KhEHYwPd*m*M~|$^>^#nVX0wP>?B+PD8O<=pGnKXSnLF)| z5%%2-ZnwL~55s@ApRmlc{7ALWl|kgWH8ML^<=soLO}|-1Y+1qF!^*tM!=I`6T=1Qt zgpb))TG^(-Okg%IXS=l+h3D78d%ww-c%PHOOT90`>@V!omg-INp-HY&H3n-F`NVxj zcC1xazV7_s)hCqEc%Q58!zRk9oko9O2J-=P8O}A+f1;ZHWS;4nD14JzbEV>{D{%?5Z*~5%2JMw z(%370Q;%WvBOI5oKhh`hoH!MzM<;qv$2__HHl6K!fI)_TF&zJ5Byu^UwzCI)JEV?p zaYZ?gc#n@5#jSL1rTp>zmCVVt1IZ&|KP0_!gj(t;rL40U#TjXzE)$P&!kp^;za(|f z*7(nj+g#Ior>h%?3=7)CkIdR6ghd#F%0nt&sc7=-J96V1~!sFo)M2Y z#3we1_&SZY5#d+DDB(U~OuKO3CB)-}(55C{$He`MT2GJ#k*8|8>{W*0iD} zuTj@;R-2Yrn2+OrzsB%d?)JO<#uZ?l;gp7tn4Vs^&~g{>rSV${X*ASro0y)Da=buA zT9Q1w-T^np9qtkdT*#_U!QOf;)b&4P)gIG)e3FZdqsYI_|bN2M<|SMjE7* z*HSc{aI17mukxO)swE9+_e-2!Ucpx9UH@#_DW8;|<^JpZ!m9t@E?ir}aan9#S;V;* zGf8HhsmVe*nuu3hI#b8-N#dBc&|k!~Dz>ve#r3ZhCMK3;Y+(Tz%=b{3PIfL*$oK-( zWtQpTdaOAu-f5_B87+C6{)}S|i`d3Doa1+@Ti5&a zTe=CO$7Y-AS)_>N2b&K*DaFJ97-_FszyFofEc4rZ!e?kkbb7ck9-(X+j!QQ4lxC-O9p@6|4DS)1 z;3~T;^DHkK-$L zw)Gw|&{}$^)m7O-*w=pem@hd_Lchz(0l&FUi!SQDO&o7|ZddZ;Q+|Cy+n)Y+=}ZUi zHBUETIA6l^o(=uBDW6K;i&?=swy=|Zd=t2?chhb$#P*Hi5(UaR--*fhy`sxNM}}zo z;1^~)#w+A;3;2e^e9L!y&k2rjoSEW2O8(e3nX&}4{eCBtwc+gLB8gT@7pB#x7Jt=+ zHp_6GOJZ3``BnaOo!_`%Jr}vcPh90P*ZAG^<>K%Ksr)WNEMoH@@!4S7Y4fJGA1?{p zI)3d*VA?Lj359E2U$&D>Ji>R0GdcdJrKg`sWF1=$I`(JnZ)LMLc1r71Icc12yY#BM zW;5-0+mxl%AGRG6-~9fAxq*7AX-|CR{@6apce!m-_qbEOFvD+)ed67o1>Te8XX2*w z-=^ucX_in|5RY))j?N(t&bw5ONnWb(4wsFKBOJsl3=tv6V#~b%C6PUterZSDA;(XRJ&QQtxb+}J@ zX(3E0Ou;><8vao}{l)x0(@NRmdCPu**7{!*o;Cg)4fManMdKR^oAI^fHx@SHWtwos zytBl8ziAIz$87!Sg&8<#+yTBIdva~p!bPMMkMR6_ar2~c75r-W*Kcxr<{U4 zrTaQ@B1=~)yVZ*mnJt`C*MC(A^B5kK#CxFyw1;PKuQhI*$a9Ij59z|a@~HNkd2u2S zIoMgY``+Cwb)78kw@PQ3T;G2f>VE0&s7TWxo-6oHo;uJw_d7kGHO%>R%Dxw768_)n z!oCP;w5Bw(O`1w&UvC%g;G|=`Q}~%)CDECe!u^Lm8-__S@Q9?JsH{)+SDW^Svppe4Sce&dUArZw4Cw zw(*q;YeU;^8Llb&NGRWUkY}mLi?k+>{a%LmE_g5Q2kFOezIQ(*@jKFv_N3_U9z7v# zlydHGPo_-Y)ibctVSahYb!Ff1pG*B4x;JHAKfdNZW)5l{~m@oJgOe%GHm?i~O#>J4GQZ zRe9&w=TVWY^~9rrb59;NQhoBkUc=t6$!P!NeAhd2_D=%)?Eh33_C@$MazFceHkBB~ z^NgiAAM-9#d7VjgV+OTi*G94 zXiOVAb1ala6fDmc(WWe1I?b^a_T=(H?;*IBz0YFKGsQibbsQtZJl8tH^B&Ga(+!^;seOcOh6lBf-;eVR zpgy+CxGbh$DxrL8+Jnv1S+tupZRotzR{cf0|Kt;*9GNgder)^S>Pfy&`Mfr!q*0Mw+Lqfl`cK(7e8*v8MeU5la;yr=BVHsg&okGt>SCWC5Pl?F zDC{O&CVXGGTG&IlP1swwQP@+sN7z?5w!QXJ>0>D`Nnfw<+i>l(!X1aCRYI9Gd@ta% z-wg4a3<-pM|4@mxUvQzYE6*Cs@`BHd#huaNQs?6|Vj(Ovy4K{r2eBviU87#DUT(pdcW!%db(r9MwgfHz-epVJdMQ7!~p)6+) z4Xit_-#ql5`!coEZwh*MuAGJ4W*6$#;ar)MI!c{N+uIe_IN_NeooCAFBkzqDxzl-; zf4=8W^V?6qxo^=Tyr*azyD2w?vTWU0k;2!dt39qK+CR6Qkmux&7b#=h&=%TH_p0;y z|EhVy1V!UTw(kzl(#4Bh{z}~;PrS&e$K*TmsjuoOi`0#ZbbQ9MG5dT!()DkBJLmBd zW#NO;xb1$yK5K7#yROjA<(!-FgEqB2`uoL+^nBAfS2AAYi-eI#;as=ALqa=L_z!~D zpHVKLpkvZTSV&lyA{3<<#VNtFRxJ2b>h1BDy|szhx!n zuj&P7&3BITggU|n;YI#jR|w^w5RWs)|JyPO*^cPtWU|h%tRMLCPs_Zd|54Lo=XHJ5 ze}$j;nNT;WXBoffzp)F?dW5>duj5=JJtvz*y`Z;zx|VuE9QB7UihADUyz)X0?<@$* zJ?XsC-dnD*I$wNsi8Y?1t*p&>TU4ZGlsd!n>caA-3nff5KF@mJtx6Q~X6M#j>XmP) z>jiKAa$l@I%kdC5RPC|Aw-4Qgw@N>N!=M3tN2;E4j99!_U`{PwwzNEW;Cw zuP7Y&<^NvYAzbgnF^Od#M%kBfxkvwy$IUAm;FAvz3GzQ zv^OraJ9QLx;2mzZ4Jx$hhyC%E-@MJAm+`LQPITryUbU_+!mf0qJ3VM>e7g`2-sW}Q zpbc#aarw}E|I`*1&X*96UgqmZUwZSV-@ip4{mq0Q3HvjEfed0WEle9C{Byh8P{YIc zyY@G${2yI7F5&-N7TTXni6{R^&Jz1PgL7hEP0xE+<`jyyk|tSVz9b{GO&a$x6SzB> zvN9>Toi601;adT{I!Wg}(cM@N?4_Q%V04;Zl}y<8n)z9=+`Twx^u! zNn;s*Ue89q+r?hKVjo|#p96$zeu&3r{ag5wt!!gE8?9qKJM_oOuN-apJN0icE-bgJ zFf6;9unf`bIAmN$!`}$s7kWPzF&&Wl2elaeQ@Vc-;Hs$7DEF^|qXnP6w&~N7ccNz7Vjr?jGt`mJ9yrXmG z4%?J~gv960(C>Wx&3wNT?vp1qE*Z&*_)Q#Q5xP)!`Qy1L!}mKEeiGj0_vb2GXBGX1 zU$>0J!X!M+EW-mxWO>&OM+uYoO;Y`LlY)EbY@RnrssBF0^GB(LX?TG98D?B~9x3D> zAs(HKn{D`BVLRb9;ji>8s(w_=@fBtjjxa5mbtWJ_@0cgCc>LXZ(wm;d^sv4R`olW^ zstaYY5RaCoXE9$^2I}uftMD7kh{Ny3#}>w-pK`(zhHIIgO_-DHbfE+9l7lnNh3i~+H?3G=*F@GU8x6ILjl%fqU3=U^%4B?7&jOVcmgb&(>f6Fa=9|nC z)|x*iT{vGt8(~{ziI{wcDkgCVzYY0VcwRnnAJ0XRgtSaZp^mI=ttvgkGcJZ3jka&O zl1>@ur1GTwaFp*j%}I{&J;ymk4?f_1{;7*D2UQE_;w_XNew0ow@uTHG=eP9<<%rwu z!u2IQce~s1-N_4OZBrW86a7bp+iS^7DNlOq&B%jfA_MpE0Iw=*H=;4MXhmIGb2DAI z-iC5=3Cnt%r^!upU97PFf<)KJis=8hdfCma_r`g`{`g=}+(=#dQRTLWOL0qGtaebrDM_FcavD)zVsx{X}kW3L>)Yb`JH=449(}7%r?>#Rz|HLFJC6V zv5o!NMSI)XnVwC28`QRiHkk0-{ub-&$(IaeCp{R<5ccscd)dJ-PIHE{oZ~zfIKokm zagfoBWfWuB&N#;NHLu&R;d}}4m|%D!lbFh6rm%@=Os9?cX9{Pqnc2)?7IXQ8`FzF# zdQp{U3r8X?`9Qn+L5(f-9?~}Uh%(6A$m$lot{VZZBVcDOv zmBlP!A-hi);_;n0e9s9^a*E-M z;4mXOz|E$+TirR)_l={UPl>2QKj7Ge=TsgMMn9`^um0%gRqoLL=lXi=+RlM5Z!Vws zyZD88w3!>zP%E)L^*?p*tOVwE59p9VG429 zxYONyJBgDN?e5$E!fRaT6u)tX+v!3&4gZ6*$Z}6`j?X#6VHUH5rJQ6tXIaK>4)HZH z?Ls`lvxMtDb06bd&l?|c514y-%&~YNo%GBz8D0C7Lz2m>AL1px$uF-d>O7;GYfw9u zQFX9-FCPt;f3kqBoMz%k<;t$|f0nwpQ!teCl)?VUKdLH2C_B8wt^PM%b@8c7Guktn zcFy5X#O-s|vV%ih;2I6eYtP_q`Vs!$E~L|(c55xaFX$Zkt7n^@t>9d7KK$GB#4$NG z;repshd7b`cdENHi;7RE%jI=_5x4#JQ8%8*rOi|R@r`jm+m{w-dgSuJUbmKP-2=NJjUD z9$gR>IXGYSuZ8cMz3M%N-?R~5bj>XtFEaN*{oUh64i|Mizmmq&JFw5hiyS>?eDQdZ zt?r@Ee@ofU^CrD2#qmE9kx1eFo*Pg$`rvNo<#ONrPvL!#E&jj6y~u<+ytn;;Hsh1N zTj%`f*1$YJ#Em4W=RTcd@VYo`9vu}aQ`qw%`y!Ej&V{kv+)H07->4ZU(zl^|@8Z+G zlC+b^b>4T-ioXyq(qM=4CvCjQdt2pevE%tRckD>v0`Vd(%$LA9H+_ZueARznD+itN zd`h_Q629U6lDsWTKj$fr@_QQPBk>p_+@^foLD-fzC_rv$XKY{Z2kEbEAws^HTk;*;ncS`zA873E3)?gB!F^5f5EMXbK zoy=wfcRl2NJaX_1#i>Xg8qu6L=tNKcstb8~h{s&Z+sY$jwWEv2bp0!s#&Tw`ios(% zpCB%u=-i!78sYHkn0;? z7PL&mlbJvf!wrmY%d@;mCF2@#kmVFMu9R>ZZP-f-`qPQgOkgP88D7Hw7BQ3|guL|H zYWMZ6?yx@=>0W6d*SR$b*V^rF-HO|n zEawYWu#(lRVKZx4#X2^yk@ajMrd?%Z|#7N@2vhjGVb z?LswN<2b=Z;?#7Uxra1lU}qQa@8|a{jQHL$TAM^g`Jp`cXYSMPSF&KNNMRoJ`y5P_ zUUw0mp9|mkNa9@DP(Z%G1!nO(Q|Q1K{KP;;^F8mep`$#Zv+~U-=`pNVINkVe9GtIR zzNEaYrDqOk$xFOKb6)0Eo+q@O9%vjlQdT_PqNjXdy>Jn8cvv2sm!FNF%O#d^ngeX( zZqp+aV2a@}+@n9Y-&YXMHk?y`Qei*RlZUg$9Vg@;;kf+qe{Mf$%k-O9jc-LeI?{z6 z^konu7{_F0GLP_|%WF76#PaXtZi-QwnslHK1E^uXRnwHMAM^iBE-ZU5{x=`16EE^y zYVA0*X6tfgUoOy6Sz!Q~SNaYyb+ft#Q(d{Js^v9dC5QRcI##fgZ#c(QrW931kv8I2 zvH!I@C6?Y+H&l*dCkF}7yoUEFjw(le_>+89Tlt_5BasZQ_ltLVmWfT)v7N7Z+;X2H zANQ=)Mnx79Z}Og!_Ly%wOY0TYxhX7dc9I5jYp361U!S3)d@NxR_h!w1IZx`~9 zDGR*E?i~9pi{ofp3)t3%*7K;})%Kgy#qDp`wh9$oH*D7=+x6sg%GIyg4?Od_vIgI_ zv0d`$k7y^oHg;`q$J&hA%{t1D?(=*ZPub@ssL6X}J!iD*Ki~8G-E34TA38B8a$`S#gA z<&~9&r!k+h)jxINxPQS@N}aPEe8hG^GPQ z8NwuH^XgmfvGVTQ_9-7Tn}w_(lt03GdrdrU=A274L>ZkHg!6BqIB(=QR|dO3L0r?~ zye}99wz)zO9}wra6yq^DG8s4*RYjO&@eT%=<7; zGa{q1gK?=^+m0A?q3v{+XAAq^uk7@KdkCjJ=gX_Cv$M9cmlY5B|DQ)Ak!e}IQ}Sda zk}B4ad->`4GkdsfeCapc3(#LiI8j(kSb~rBKP#LhEGL{MEG`@`EGe8Uys-=WBeZ>Vkmg&- zANnXa^`##_TGu$||7E{h;PoM9&wubxpe#`B2;k*rP zbbD+1J}2u~!Fu-d1*_P?RyMPVrL18WyNPL+-U7nCsL^AU1?wuCU2{H+*EZ5reqcYn z(%AK>uXNH;9!{=K@=xWB)nx7}fBVpNwx@QEUarA?oHx>YTJAsWI&C%>ir%lTdEapgAgDE?TS$m1Vdr}l#xr6Q5S*Oae0pHLa_4%fB>o~5en zTkfarBSv=c{;hp5SKT?|3hmNg*k{C~i@x4|s9rjd@z07UvsuJXL`sUYbXcD1Aw4qF z^>i^YeSaW2?xFq??x{C+jV)DI-X|Yxv%@zfCdtEbO64%o=gzwOs z!HhId^5@i-NSw|vof0cMF_}Zj@mk^JyK91|f(m0Xp6O_rv zDYI~tUsyxM@yep!cj`nE$>uQF%aIFS?%p$lTkUo<57GAsp$_OQ#r^4mJ+0w#R&U13CkjvDP`Q^E&oFEOQj8dnx zjF@&I9-%&WaFOpI@GXnk%_>%~lV%Fk^UHaEogptqBFm^B@oX>GweQ5V3+GGtALt30 z97D3N(q7`coz5Y?|s5-*~pjdWdmE;%nr7*le81Phu%&5 zEU8FIC|JVn@=8bB(m}7Q7#3tZwVKX8hRT;m+4`HAoOj+2~VZh83>PcoYg z&g(De;+r`)+lBP;Xo7hDZ#)vIX?vSch4PfRYM*Rsr%wY-W{ zqb}L}z9F4R=y*NED0$lg_9@r@NLpq4qD)~qJ2*naVakw{Pv~7K!aEJ24fj>=1+-(O zxNM=lxO5YTa@JqUda6=8{GM)A)el+4m)uoNdlt!>`R^?fIq%~)c5V6IeG4M`J0x*U zQQ!T$F0?y@<8rh6bgTHBCG6W(g#Ejpu#Z#QAJO|cmi|Y$Z2XbyN6>@CctZjzTmME{rIzit1G(?dQM-id0P!T#kvzG3zmWld$} z`YhJJnnubQRX>skQHpzcmhnftuXXJ2kNu77{Hx*gM!xo-Z#M3fC((#bj8CU*!(raE z@A{CtxV9$s!!7J&ABXs!3tT3aHlDjkvd?iLCyyyxrC*|KMHkYMpUxzh=ece|dr&Bk zReoBzoL895C(0dbNI$}N3OR5{p2aW5#Zw-sKT!RKUg9^L?;XF(Y`@Pro?0A*x6(zI zlYd<;uT&l`{E7PqKdb91BmOFVp7me0FI&&`j@m$!m7}A(0s6ytMb0=lxz;LwKJlOLiySxnBjGzE+m%0~zctd! zaP;>^!ub;Jzm(7Kx*@+TQ{wOMpKSNL@}}Q-A7!2K;a*BH)1D>zp31H4qfpNd&ldjE zH|sB2PaMnt+Wz>xj(ZW$X^VVae59ih%ww2y>_gwY9_V`ZPv5sMdD3q`{h#M_NFU+d z&NA}N7pN(Je3WuLNExOb(XKDQOnBVA0O6g&<>!@^sKMvNvC{4CqTWMNKnUJ)lwW-mPAuQ(t>D9+to1RCwn2pBG6?Qi6wD3IF_=R7& z&TpKegXK?PGcTL}9QXNsal-xx@fd2_7t}TF2zQy5hZp#OIebep%j;^s8SJ8^d9RSc zv~sjzB&)g1L*`F!`s?N$!7Az-K2B28^YIeV`=grq3!3(W`OeT!{{Vh8eic7(iFw9l zXFW@aQ`Y_#rl6eZd4%8j{m=T33NQ15{+i~iP7SJ2i|)qXY5pSmL;WSB)3?QGEQ$T@ zabYEr=&velPg4C6;iJscU&`-$3g_^Bb#1-eH`I2IQm=JAp3QXTO0#pA#huQDzw1KM z4#(x3xSh1je!?>}V-{JguY&MR)5fuZhQ^&Hr8pJg6+U7Sr$}x7&rDxLE>eZ<<%Isb zO)p4e`mliSx%# zg|UQh2@A87b(WXUe5d6{*J)~d`tv!}jSuzxCQaf*N-1j{BH{hE*R_^PuQ!0=9`{Quq@d?kvgyS;F@|y6wb+-`a<#d>4fKa;wx{(Ba}ZvJOlRdWgq) z>$*m4^T#DI$w!VSTsSMW@sFe*YwOc#mo9=T6IfhcdRIETvg)xCXFidI!;SNY_Vv(SxXZF{Y24j++Ui&zC66ic4F|ZOV=LVJXv!Qh;CgRp&cfixB0C5JqlaL%hJg0 zr1?KD_g4F(%OADGVKt2zBMpvc6Jrg}U?@+EV_qKMK^`Il>BvJNa`FsM@g&)Kl*dTH z-DKkll9GhiEIXu+@XTk!BCcubVuia#MLMt1_K+i938|9zoF&6=6B7eMn%3B&M^O8;U&YNOw-SDJ`|3e5fy1*{^GNvZgp4R^!%aD5Yk3h z>&a?claramtT8T^Fd2WhUvr!G=Y4zAE52dI=sc{P<;A3od&6RHc`!OpFK63twp>|T zoI}~N9(AZocfXG=XWnuo{2*NO!+#DZIpBUPIlooTqa?kLD<|{u7xIgv(g%CgEoa{m zC-RB%Qjdq6505He=>I9BYl!%aEvM|Lf2#5Cr&In<>snV++da?nJh`<|-q?k_BS8k& zEz1~3(ekdJ!X&~+_>>gvB{y05l5ebUE1$D~*v363%*kfIUqw0NCNPXOhOd*!^hfB= z9OhBe^i<*z+SYSx8-I_Uo3#&WOWMXo(r4FJm_ysH=Sp6s>2)0o2r%T8}ui)w3Y z)SpiOOBZ}ogEgldYsr&9P z#|+ok-;kJgAs(TO-03A{MEhr|__VF(nThGHcf7;)nexfm(j|rF*{5I2ij8i@keABIQ+3UMb}JSB&?p{YS#<>gBHsLtYxv$29wN zjd-jRZscw8d5>@r>*C8V$y~4c419r^=zJJwB9-5ypnf5^f#andVY$|)wLaJXZ%3_ z`fB2m*F6XKL+^Pc5_ytxTz@PkvG~t3pKY{%-|o9JgQb_gb<|~M{O3KI+l@`Q&V^^k z3Rqri-r;LzQiy46wx3pUy{>1wol6-gN(G*w4vl$=+wG$B)BCOO&-vj&!?&6z-fkSi z@51>K(rMNElwWv}YcwX3TAFypGw#Bp;`O5Ng0N#3_vTFBNe$zU8yC|ql#$PT?p{uQ zNBLG zYZnXkAE&!|VGqM|glP?DVYT7@hBNW4{#e3syhH=TeQ3u+bfN`MG1PCHaR*fmmm$QX z)MU$4wpzzpR3w_!Y9;C zYkN-2yWO8tR=Fw8ZgC}-a>LKNtWW=N<aQa{1#MGFDp7;te(~&Op zU^J7N$0AM;S6f#maxu^{ADygCoBPWtds5CkLxxMU?5D&C>4|%CxV}))^r`L#f6gx? zbbs_!Lj5+p8})D<*R-j&DXnKq^nbvoZJd8kxsRID{n6I$*(s0a)Q0|KtT>Uqrfs8V z{#cQzv{ue8^00ly?R23W6w>LR^W+8Me6#uTYV$_t&9}4u=-))|j|K&`hk9mh3;Q_1 zu-48EmKKm6*vuhLafR4^lbmwq{eZ8GJLdh4+v!632+t_pXS=epgu`4Xtu*iizn=B| zhjZ$i)TRxe-6NgycrtBe>O3*+LOhnVj*6s-Z&_^nH4=H#x>pNVu#ClYFm4D#8O=zB zF`Q9^?^>=i-$u5ulflLnsjjX~J_<6=xLJ3EwhQkg=&$QJnZ(!rlaGaZ_A^wZ^k$58k7g{R7|u8b@*zEWpC0t$1A5b)R2TerYnoV* z{gl!_NO~GVAO5Zj=_Blqv3@gx!F)Gbj(8SSifuI`jz+Zwyq?uduct_L8wQC|8xClgZ8=7z9+8?bdU42 zDVb)dJM)s~@m^s-eE*HD&19VSd)jQ1k7?%K$?wGR9NxF)x!o@MxTLX9ij&p3R7qHn zdpK^ttYCotQ^Ik=H-(=ICo`7;hKI05e_LT1%gCTVlQ65W1FfjR`*br;Ki;+9$I;&L z4e?0f-v9HSkIpCGs6s7XB&m6?lF)A(@G67Z#TM&0L{)iYJzixLGg!=OI>{G$u!Yh! zwaX3<3uCllGpM-fU=o~qO) zq^)=PkYU^}ZjX?ir&+6A>t?#}tV77h4n6MvPDuZDP*;iOxx&gNJJh+@zgrsIfn76?U?c0 z=r5^lqYR~amQsAGF1OE3%?%}`OTOY8POzpkfm!1BK1_K`A4G2bOgZ9g0TsAE_E1#g4$nDXz}(tq1m zp)3~i(tkVOo|N8hJm*GA7d?nR_a^EO=ilvgA#H?fOC@QjGG!=7S;|v^zP5eoJ<7n! zDqjl^bC8W}Vly%AoVI_&;|FQHnQflQ2Kh=;;es0KcFd;+)u>KC)B4hfF7)6-y3w7k zbml#JQpdK`qb{|n$&Fp8>xca@$NY7vPAwYpGF5ny`iy5H%bCXl7O{lWoZ%d2InS+h zA$^2+{9U=SxID2ue=c8^G+c(iD`(!y`lII!=_91mRrb~Mj!m2t?l}ni8!j)*O;y?( zUM-wVU%n>EMgPG`N9EO+cHvqZ;&F%LzR@=JXFoqM%(#!pY+aX?#q!G^Pe?nv`Hs5` zNAZjPjKasc-7XxLFAl|xoT{f>K$o7jZHat3(WYTkwbapxTidls_=+~j zUcw~wCMkW0Ll64Wk6-MkkA!#9p8-5*8ClNz{~GrwYVk@Q*C*iu<(d?x9Z~*XX})8^ z<-)zD{c&8hX^%^z-J1K;s=Jfu5Jc9EId=lf}QaIT#cE))(CPFW`(wZ6^M<3z>@>pdJ5nfs)DwkIl5-Ei9H z)g@MV|E#w1rLa>i@7cVsjJHZTNu6uPNOcJb$gc3fVUH7aty=|lU+ zJgvucUxczpxIg$}S@*ZZwXI`t)baXKe2)uz3Y*CPUmfb4rj`EoR3x9_r^(ARJ7S%?$w2|}IbF-OO#d|d{EYtO z>@wV3_^|1f+lmh@ja%pb{wDSB`?b+*5N_mFx)6`>PDA_*uATNtGbXsl_qO$9FW<4uMNFRJ#!ZRb*`32SJN=xQ5hC)2! z`Hx-NRUSBXYx^j=o*$FHnUXc42>n`?ll6bv9F(!bHM-*Fp7^NBKnmVpj8*;XFLelN2EvSvYF?5x(U( zUvZFQgnPKl_>}p~V=i-uzP79$6cu?x9-n=nd_*{9fNQ~r((Y_&PB?#-@|XPLi%G7x zOI#B?BYR#udwa*|oG|i{yvMa7YGItn=m*0+5Z}hu9+;&-RAj5+U50lFn-z(Q^ff+z z!Kg^tp4vASct%5*^Rt^vM={;+|MdHC&W2+$!G4)e@8^_3n9daXF`ki(VE_{u#$dkm zo9%32GaK2)R%Y=t;U4-Ge&X-$rH6X{=A%)OSM$q1XiRB3QLBJP}XoYO6sq{Bl@4BA1&!jV>0q^NomCUN+E58?|i-DyxYnl zF7P{*#J?2-Qh5)NCkI9%56p^0CaQP6`CKHD^?A<$D$`E*DCXx%sJDdg(tK#WPr6Qi zKhgD!2gLOX32aZ!@#;xelmYdB&P&EOW4ZYcags}1CxQ2iKeMdj;$M=3x zDse175%*Bna8ttm2*>3s%bmh7Hc%+^TW5dL>R)J?ySYws!#{>~n0AS^TqU7nHf(@) zSpA7vXPy(x*WaDz{4N}iG5QZ^}IH)^=Zd^;}N`Y&{TviG98kdE+-We4{vu1e;a z3)hi1WOjWgy|S@ZyPEB3oWtJeyx~pv)>+O{s*~k<(+7FHd+`#Uvy7M1P{wMIfs|w= z5B2H9g_OTB%1vAP@Dg3-9>^5Ijm>aQYx#stfKj>*hst9t8pc~X}3 z)@dWVC}#M$m?&mov;KYzyv1QTOa(2fNuxIA*st?^2YY2KRCwO=-m)l&3b8 zs7hVx(}43m=7)WDsC~ZnPRDt5#v7iuZ`s2=nV#+?=-+HV_(ja)S+Oq3JsZLU^u*to zN7s^-OYKfxQ?DM2k~OnG(1EV>;6b|6o6bDKQ$5scG}V7E{h4C8zSxfTbYcJl>Bqwi zW)RJ3NKbmvhz5k`8|obQyjV-;k?MpmX>q?i=jHawi8|zZt|b?FXxhvDSTQHf^k)^b zkezJg=4e~nghTA-1d;KF#RDAV7{?i9J#31Tb=ZavlSZ>Et4Fp*(cRiMlUiyg*7M)2 z%hYE>y?<*#(&%~T%tIG?*M4j5v|plVg6D51S(gdjoRij%MI(k=R>N2{`5MRhT>g_| zqWfuI+P4hXygo4+-q$skDzT`1XKjea?!$F7{Z+B3rTBQASk(Jr<=E#Nhf2RX^N&jE zvZAY$|wU~FvYrlE1O_^|> z)kK|px9jyS{=NMj%0}2GW3AIY+)Xnk$)`4ATUyhKmNa2F9cj!HrW++b%4GdR#T2CC zW!rhGZ99#RT5B82|9O08{3eDnoUe_$PCAw=qYwCAH$wS(oOl^~On8;Op`F@y~{?z2*J;QJE0$bU}0h0LasJNF;`G8Eug?%NY<4*IQ%L=|U|0l#vRNxPm z^9I#;j<1=`3_j;4e&su+aiLwf))3M$$92ZGoG_09VxIeKcX2c&^p6ma`s^@i41aI< z1ZzoQc!#);*GOh~p}3l#S;+vhk&|#uGZPs}O%KAcCA=rOg8sX?jbRisujDKEK)LrRlBzsQi0K{6j2kTsr-i)17aPJ0R`X>%WoPsZ3c0Q};g`f!Y~=@jVI52Pki%p!T{_;@{}oGkk6k1fpNakY zvxxEh2yLK{A5D$#Kr3ca(lklL**we?CNhK>Jk5AQ-WEA!erH>;V~*KtsPHgSOXoNaKfvUr>6@^hvx9P>kd?C|+6_AuZ48i{|h zkNw=kTH}X^!#T)d-ZpN4_#S_0b2V@cra6shL1S9cls0sw9UbUMXa4rRcseGSPjfzF zHgouxRdiuBV`#}B+Ax`MbZ0H=SkDZ;q82mxhMx4L4x^~fM!u&C@%rOp=JA8?Z)Ph$ z^9y0VzjKU#2+KI1E?%!MF@0}h>W6*ux{3a~*sA{xu^dZT#@no5JJ0Yu?ODl(Tuc|X zOW1F7s^^PxJ-2Z)6-Y%|ZX`KXs77JRQHf+El8KBorxuN9!adwY9oo>6hRXHLl%^UX zKSDZYSnv3JR_b3wF?myhJ19phZ}=s|bp(~8D)q!P8L!Cl-Nj+>h)CKLk#ZK<~rA$BFbWQr0pU=062h<0}rR%RY z+VTmWCDYz2eq$`EBBu8cW)bW2cNB}h(gt5#E_U+#Db!(&wL>cKvGvL?Hs@9S9mH&0 zP6}GlktIGWCuU}${_f(<0C)3`^;3^>M8jc>W)K2V^OnI_J8+jzhW^D<<;il2^Kn!{DQApPqMz= zzfC4?rf2H2Z}&5<{24}u=S*AYj73imu+KWbT*Z36;;R1k1$p$cbFp{$fR((@du;I8 z7~gwD|I4O-g=M_WLhJaD^&iei8nsf6xrbUbrkL*~5fcgd5zgh>Ip@u9AF4%Wl9<=Z zfvzd=1ix6`Ua>2G>wiuxK`Y*%Hb1h4q+COOvOH}67e|T3NI^v!(S=8SHjt2xP(B`z zre^fw5r*&(4>O2<44^-K7))OVQiuW+IJvYS8H#U9qkt4`{q z&_)j1WtQ*EX3qomLvapsna7LFX8|wqG7EWyMZCeAyvpl5!%UvzS!(~}9rh`dU)K$u zU@}uV{lDEpIu@IL31L1hnIm`}KvbcA!;kdF8~R+-PI ztY!_L@i}Yxf^~e!dN%MiJLKW7{KC(CW8B5&$G5(_k?;7PP5i)*Y-S5v`H7#|#xMNJ zc7Ee`{@_ybBR-EE=ChMs>}C&p`IDX2br-w&%kVz7>;GHa&jAi{h>OjSBfk3&M>)oE zP7o>22_zvYi6rB4t{^!vE+YjgxtRQj?=SIrq%xn>q#-ToxRR?#PX;n_HP?`dYx!Ni z{6QA|my(Xmz8{}QR{b|{J=w@XPI8f*-0Zc?koUid@%{5PZL8m8ddW=Vv{9Fqh_vGFMmdR)G_Ey^ABz0PU-xfM0&n5 zkBQPZ#b-U~&I9z|DLT=GOgw7&&AFehbfFs$(4Ec<;9=U*iZ-<5Cg0CNUUHLxaI6jK zxK@8VI#8CXRHi01s6;i&Q-$hWNqVm0ha2w4y0(=%}6Af$pp`{1EYU{AfM4a-+}kGFh4j zGn8QrXA1opNOM|HjN1t3j8%QFHg{5kd#On+3X-1!cu4_2GPg zQqBn;5L0nAb-2U0USfJ0P~LDKar#WZQ_?k#j9u=rhWvcOu&vx)Tzp;nE z*hgqPhTq7A^6{SUe?WreekmSw%s9+<`oCbG{%^%kIHvyu`}x}N8csc5{m1xl&YDf0 zrdAXTF)FRwV59vs5-$_MEQt-Pp?B;s)(Pf5{l1KjyB-0-w zk?~bcFi!g#N+GMsLdL?Hm4Z^R1p zkoM8yD6TSoggAhQ`HD)+;AyH*jZ~(aDL%zx9HSQJ(}im=Ass)MekCh-o6USk3iD1% z20k;qmZdx*owpg6ix$+PBo)ZR_2lI)>T);vxl*}F&m8;pJR;?Ovwb6;A7{$bewOu& zWuBU^os8>BH#*aWv*mR%%e{j0>Eh`qX8J5-qbW6LP7XTKmCUrFAa_!lA{6EhN>Gk= zw4no4D5AcsNEObOAK|zkwo4_`H>MihX+UR6$dCQ@??Z(79dMm2yL~q&2lek`KN$^Q z!=L(7imCZq|6e5N-zo0qD{kgb^WMo0_7L`$a4o2y=Kxw!jTRK921V#dT{=*LyC_Ky z8qu9g?ZP>BxCWC}dAX8_w)aDQw9ENe`B}vq%GFY)IgU=J4-eATwB5xX^kxa`wENaG zo!LCcOkUu5-eV|l)ayo1g>As;*N^te_l<1eYxc8=Rjf1p zdOp(MzOQ_LNIN176Tj}%MgQ5l&<@%;D`_-LdRsWhn$5RU{YG3J)3Kv-F#E{;+F6sB zKEkpYum5SW*GkVhe&D}We5a582ENmp3cgpA_EajRKIb#vDS5y46?vWe{K}^lJy$#| ziejFnIoV!UPM6EacPOrWR;G~YZ{aWNc8&7;vH5%; zJ3e6(-?Nc#IK2zyH2mMqGihyyv9^cbBqa4)gU0^LC$Wk5<|cY}Pyg}8oM93rDU zs76QI;B)RA>6mQ%=d>~WinxyU`d<`>`Mt#ByyW*Ny=>bJ=JzAt@rdEH4g43_Hm?8@ z$BRkCk>Wzif3{QPQSB>Mj8RXq&1boN=LTZRT5{$1O>q;S@&zARw>SC8 ze*FvKw;kKs`Jb6I^4&A=QYkCLM`vayVrqr|Gj9gzcf_q zGRo9FjI|BYO5X}~;{xCN$n-IFS_|s)zI}X^&kOl}Hq%dHg5ih68Kw{C4cBCGd~saA z^*jH;SIxUV*lwDG>X_8_zw+a>y=>$6mFv$aZkZp5YbjRHFaAK}{A@>uL-o4bCpSaerA$F$30Q7N&g z@pp^wy8rv0xW@RKEq{~g8i}nhcg@K*?32&4h_>mQgQfZw9n^9uW*0Za)%~& zPGFlgIpO}eZT78eTi4k}+YE{A_i_4H_N;;FH&pPSQP#cBm9glE z{MnW^7Cm8n=9KOSn7*g^Pcy&EGsmJy;(eK1OH&R8U8l`$xZAbvvl-6qna5p*fAjg} zUG1~3@m=BjgSIC|UBuk(&xgDS+a#UkUBk6pO(rsP71xoG%2Z{)G#%p~5)4PdC3c}~ zJnmX#KG#yS4^e)_oebB%g-!0wtuTC*YqqZ$PNshP<}v3J^6`-2Ic#76JDEUt>00eO z-|#EReK#{Je72hJI8Ivg$}XQ;nkHVCCd!|r#GljLV_r`)jGOEeH**7d8D-pP9%T&U z7|Y{~XC#AogmIR0KF@kO9G0a|&0}YMSuhE4z(8>E@)^nwN zdYCS>-m#x{HT*aO8A>Rp z;XhQbaUA%Y4zy=)X73FbGiLQpYVj|_ZN&TOP|hRHw4oKvxzsK+O~SF|8hMzN&-sGy z`G#-V$nWgnJJ$0xM>)=Aw!`Jb$jCJ$BY{LFnr1jpFo^}c%y>pKfpBaI=_sqeB4sE~ z1xj;2w^58%w50=S`M2ZNh2&9an}+gnytQNNC}o|yE#n1c^gT+mk!e?JKl7>f;^aZv z#oD!x4o>jf6z}HJ)+(G=oy{Az^;!;-PWvn`cQJ9e`k1Yx9-+?kd3xiQ`~D+-=X&yY zrH*lbst>wZ{-z49*RYu%_%M}x_iV-2o~w9)r^owmbM3w@#?Q#C3};dAJ6?29p1aeB zNBG9)KWK}eZx_mG*e=thVH}I?ldthAKicOu^9MWmmhbq1e71W5ZsT^sy^ms4r8*@j zOi_xn#QbWBb*M{t#$u6i^O#RO9gj=HWS-_prZA0Xc#5fG+^451%$n91`L;ugL(|1E4Le!RUtTo*BXt(ch`*kgD<`#4B$ z<8qRnT>N6(&unEoe>;}dr2*Y2$z+m9Z%TIPf03X0jt_axI-HQEaPAWFW0U!O$3}7) ze?4i#=X9bAjs4cS5jUD=Davpsb-9@)ra3}x^S;h8^SJ)Yj2~!upSIV2Vx2O%p2L>& zJ6WyI4lx{GLK}IJ{))bLBN>RdZws1FIYK*k1o5_R8spB^-aVi4aQZay{3vD_#hJ^) z3}ztl?Ymh2soVH7=Bs2Ra_!=HU3)1?6(Xbv%L#xqm-v9Z;Vpcag?hcRW^+KN`ID{ z)a&Hq^1RBd@oAi=H1t_Y!|m^P-bFs+!ns^%tJm-8J%G3Q&zT3m# z{mV;Ch4=SJz1B}N~9@4m7&_^XyP@|!3sY+WDM_73Yds6#Aj z<9B(_w!JL+zO>`c*uxoS;?Kv7^!cMqW(r}S4gVAVop&bfcCYcyhx#ptl-^2L#2cz!YM5zljr zPm1CBz3l%aMu)|@Vt9V-OwZ(`mCj8${`<2z6Mb(}$=H8;MyI&8-hH(^6EslUwskCO z?;296@~(pzUeiY1>Ae3?ZO?_8Eg=2qw3K5-RX+<3eFkNn5C?9xz>B`p}L3JV+N7^A?{|)I2+h&xs4^$Zc#kZa9UxmXh3K zd>iq6x{!{1-h-WffHsKtTddvb{DpqryU@O(I@r7_Qj6-8qYTquNQm~7jiQ6pb{(j8 zdHW8-=sqKg{^B^vp0$AU=)!qR_$!&{KHXBfA_&y^L?Cgoa;RZW5VYb(Vg6H zonI$)Jc&q70_n*}R_Do`)T@d5k2$}(-0`eAB`HUCs*~EeNj_Tl)1G|D`4^?gK_2#X zbnl9ij*q3obrb#h$Rz(m7utm3w}U6F$1d8pupGYEAAS!xl}S877rN7tY4oHoy}8sb z9A82@IymodN@rT|Jad@MJSx$Z(Zqiz`I`PS{Z{fZjc_-~inrTm#aSl*bY{(VQB}6TE z`mF||T#Ns7g7=_`cmM4FgK5dBUDz(6oSrbx)1Q4$lwS!XAtFXnF65c`QXF{NAOUd-AoYL)s7I9}UT8 zc*|7x!`RO(ZJu{|ZnXcoe%q;D1#OQDxUX@xw8qQnrSAV{oB#Qa59tWco{UN9`Lx=e zo$BH|LM$iVC|)U+6|0HG#KPiU_k7;bHmIlVHNbU(YcH}5c4`{K`OC?7CEDHxctcq~ zOsR3s3mng%B&TEf-SnXP2<=ynGt6*W`_(<89fR4z!ZEH*(9`#dndU2X#W?%<0K*gb z!aI*XWeuN`mZF6AM`)ks*^&^Q$Q-T_dAFXn#s`+s*)lRHf7eyfUZ4o&`Msk0o~-J) z@_aGOel*;7?Dv0C&+vHOVK+xu&t_^=mR{FMn||o}63J@*Cs)FD3HNQE%VdANR=YyX zD9#nH6<5#npDFbA{MC5d;{H_DjUMY0qQ|&;gJ(mz)GnkW9B<35a!rN-{MJ-`&Q5l- zm&4jc+sUlWa}{6dPY~~*0GHZ@c2LNVFN(SjTTERkjuyWb$BEC%=Ouijp8d>r`ib%C z*{SmPZ4N)`+)rM0;JE#|u=u5SX>a2~x^R9Q%Ew5@jTJNee;&)p;`ejY#83LUkFNiH z{p(3?8!fhdQb{h})YNH(r1v$I-eO>068U2ThAML-h#$4~eUte*Z?UtlbUDr7i z4Zm2!vy!v?bZw&dOM6DAoVef%=@9=;OpG!sr@u9G4NCdi;`eD&_E?_JCtP8l@&3fe zT@Pru!Seo>x==>LId&oM1y1UGF%@;47f)n0Yj~e``Gk*nhYwiJVfJvTU3hO&IL4h& z*YsCk#NS0WT7PeK&KPF#A(hk0bGtfWq? zO(>(``t2I?J3wmF+&~>3A8x~%QJ=lRHp24_ja>r`&p5b^>lb`&%067psnpSz&>%meD;iJynI~fw!KPv3saePjO9~akk2=n|17@c3fG{s zQiLzrMlR2YRp-?55vr(gU+z`)cB1(d`}#456>Q)&d67yzSda=V;A1wER2^B2 z7CgjQ+SwoacQ9Ugs?KnpB$<3`$4?*o?*jKNt9AO%IYaoJT7UWY01q>T2Yo+#SKDBQ z_cR(ll-j-{&QiZGGH!_B*B!5yw(y*;{!8t`u_e6oetLWRhGjpc&R=BTK29t3LIwF$ z)cQ7b|Fxeo@YglYJvmO{E0abWoD-znWxZ&_#dhIX8`81W@{h>-41?u?JYCCV`T7b? z9Y2@K&nfb9pYm2ve?$GxFi3wl@pXCi9v@J~xGE%5Rx(jodnuRk#d-B7&na*7Zg*~> zBp(|W(h=&9H`=HpmEo<*@6XD|kLJB!Om04V^~WCbT!qh@u*)=!JGsW+S^L0w(`1tR z{!&KxY@WPK;&^r;U3L?Pdi~#?D|$$JMpNHD(2)VOHhdd7Nox2f@fi~Mf*i)ZDW3XF zQdz@ya;9gKLR+kva&SNW8O;=4U?CmVE&F*`{!Hb07V;+VQP_Mt^By}$Y5A3CN;dgY zfC@CG9S`ydQ+a_UgyURjt53I_WafDro$TZHJ)+LEpVr}ZrYftivW!m|(_Y!|oylbL zoqBYmifO;$AFi_93P@LJ^4hM&8SZ=Ynacv(FW!Z7+t4PQX}gY6R%a?-4=WFETbG&2 z?E4+nJ$%mM*2<}Jk&F*%Jk)+;{2=3JTJCDgeXGCrCF|Lp`TX~vP@jHrb<$|vV(&>| zJ!|>hJG%R>_by)j-)J|_VFTByo7e45h>p2mGp1D(?Go=2FSQHL6oz`N&$aSMyEFY5 z&+Aok%&lyF6Ou+BtNTCYddvUJGZ2RCP2c!3WG^5tFG#T}o1!M|hOWNl76twaab> zq5UzcjqRlDpXoPMugLdo_Kl1qm77QH^YZ?QvCgUNr!U$rKT^~&;eoJ!aieK-nl_(l ze;uu!G5u`QpX+y7AwR;smrH&Bz@_F#xc3r{FT<_VE@ghJ@}5iCY9;-Hxsx_NyHEVm zXKlqR4W|VdmBG5y<1XGeZmnZQ zPi6cr>QI+@JV*`Br;Bfwi_O#2(w?2-RG|so8Ne83@)ED}A?x^=e@JG1GZD5+Xa^nj zr`KB?r!IG`ZEh;pjOBGq-CIUGFUh^y$eUezsGtpQnx$jaA*Rcn*0$ql8sGEzm5!75 z*iTd0zN)f5!g=TyHyGZ~Y2W znN!ajvP(y}hWl_zZI?<>^lRrRx?Oxy<+pFHA#f8TXoTEycNpyNp)O zC_Kjf7nV?fYP`x=`%ho{&uZIXE60Cy%&MT?&t!fN`7JpQ@gSwzN6|ic|4uv4d`e|F z-af5;w}LHP@3_&B2PrDg+gtxy%4lzXAVGfT93_3yGv2ZbN@okxy`^56uADS6+*`Vb z@Dj^OE=|+LbmXxBX)W)1He1f0bTW@V{J{ZY)-el-)-e-p zyJ#<&zM8zNYF>+Y(tQ4+l<8+P#`M1unlPc99`c>=y!mwBJN=pSrN({E`8<1m&cb+( z4?}*0^6`@8Eawx}@hbb!Jh=L6+BoHvC0s9~O$k(>IIApABUjrecB4`^kYv;9Wk99i&xd=&B{T*Li;@jJ%w zyN9CI`E0*u{67-*zc3KWXt=K4$N9x$+^H_^##k2e89T_JJ}yFCy7G>5lCRl8Qs29V z{Pf~cYWhxRMzerV`Hd@mw-Cwf4_DKQthQ;WOT+!JWUjYlA}2HKZwE;2dtW*K{E-rl zF(-^G;Pd>xyQr=DqLb@S)57zz{?|_b`+Vd&$+8dJGvPwIaBVCc^OIdI4GhYt4rI9F z_#j?YpEg!^CY9z}smj~R`d*SK=hLNc9Y1r8^xo_94y5;4F7_Lr__*_b+Gl^z#<*)t^COLXw!rs3rjY4tFvoY_=VsrjO#EE-MdJz>j-S)M zWVo>5kROLW@Y7xMz05qbQpJ3mlSQ7r^_c&4=OeyN?bwyZwqwemgy`U8^*b4!u>NB5 z(&~CKhvCb3UH=Nk@Fa5>L4xUym(qR^6G=uWr(wJNIY6CGO6&TIJlstrO+%!29P_N} zEb&RxOqBi{rn{94rn!k*Y`c0qL`uUsxR5U7M>u!6*yH5OmiHDb`HJoABZ>S>Pd-Xg zhc?(*(sxkrE4I^L)*-(_Bz?Wb4UUIi&b3g5}aE$o&*Y2?lC z@+i6d8EZd2VE@RIO1^uRq8oci-Szx(B^+DAF|JZ)?HkMbomA4X&a!?WL0a;PC#0*m znAtL8rb*9X<1RNYm+w}UrV2jGFWxAAAf4fN*5})W`XijnP4=Bxyuu!ilV2IRgSwQk z%&OGqITkTW8lGepKl2yc)eVP9A#a`^P@)@ccbWDeAp#TyW~yQR`xk6>CYiv?-+MmCVAzWVo!DN z0Q&Hv`>nS%ag9Go(sM29oS%jK2+|nP*Vp{SpB&=~Y01h>l%Nv#(w1Hf<~bIz zico)q_Sk(F(3Yz0d!2aKzA{t2@T0gwOl@D=BknW2L3~*pC$17-6i;u1eQW$u<3krO z9~Zi9n@UFq`Y@E)EM^Vga+u3)i|pj13{4o$WM1O*@)5SnrR3>XmU)1fd1oOnC27PE zCh#I3vXkWMolNB8cFGd=+i=`J^?rDI)1J>g@pPt(-xt3}{TS|zUu+lB5$*xqss8Fr zMf2Xkp%C56xam&k{q>^g!@J%8^IX+Oe8SnDySmtPgy+`7e*16x+$++xn!m^U1%BmM0)m+S(5gXfd3u)ldN%Qj{2S|7mQNnGCv2DSjKP#H+V_s$$dTB~bXtA`)qeV%j;MluCZNe7k`#+nfWbb2fO&5ADBgApT<(QX=($r+R?X-?*=0C)?x%#<; z=qirdJ{!5zE|ib(?$_-0wQ}l+8bh@uJF5Sfrw)2TJf2dUlV4J}CLoSTWnX3}?Rdku zx4D!qyDx|1{^g^sBNdsz9NuR&KkyG3$2g8rmd5m87|$|~CZ_35QT=!Fa0hj-_IG0j z@*I2Vto|LwSe~J~eI&l$9+eMw$dh&AX3DdkaNpt@@x1tD{HcF4k^Up%@?BB1f`$5@592Sf z3+V{=8q)smf4@C%lzW=@zLfdEgvE7EEh#3a+%IE z0oNJcRMvO@m%DJz5YC}ay(T@#HlNJdu1yd3*}1MyU(70nbcFkZr{CKfU|AE`z^V87 zu5rEo-|qEYOgci_G@RRBN;`YGwEjvm`$kzBa-m)PdGWaeT^nHHBaWxM&CTkG8_fSq z&(jPgT3MqW6Cs>gak@kywq|0wGe@p+jyZCYCVxD{NCGX?U zzF+Ekgmi@VV4n2KBsWo#QskvH<8%1^oErh-#3ZhH%yW5kF7sKyOI&Jq@*eh{ShRnN zW9C%nwT|_jrrD@66{I+As84S4lAhZ1A|qot*Za;wI>LGF8`_JD zc}V*r(Y_EX=y!a$|OYK6P9_}CiWqlLOFF84A zVz>{ZC}X%H)oG=j)PeHu6JKVV)RX@!r)tA7E~R@KTuc{!f4nJ2(kRz>%crSjm81%l zUz88jr3PiWVvaT#sYpi}l9AqT#u`$ejBJ^o5dFbU{^B?GlIXMD;&D#xLi;$Rqm|_j zVFaTX#`V%wjT%&;90QEML+mG(79SED(46}6E{~X(y882py%rO00KISu4 zv6{o|V>4gz1K+ciZ`jB|Qb<~3e+kza|Frlg3z^9rX7fDn@eJb`$3zzK5?A}~#dh)hxYYHz*yYE+7urDK zf0+Mj>i)n)^(0^O9S>W-aSUcWLzu`g2JjdU(T~xLU^1gv$x_~C1@G|&OX$thJi`oT z66*EvY;<$|jc7q*S}{plJ|w|20dvJSCOO~d2*>GVnjUP_|C`VMpcM6K$P--av-I3N z!L=pwl85WbPiCKGBO)cgq7D?>Wg8UGol=VN>xWvttW(()e9>7OlrOiTUG(pvu#mNCol zYS!t0L>$RIl&323?GjJVKFbZ|G;Ejd`X4pTlg!iqJhPcY8@e)|cDzIf7SfSLbml(a zol0eDQilmtq$hpoPZOpyjiLOlY=-mN@LwX$c6#QLhTO-S)Z<=mwHWT`QGy~Aqa>xNZJIm8I$}97bRj>&^A-;nSKs;JJ#?WP4R6!->E=AL zyuXyH?)u0uze#5_V;H~?9_CWJ?EjUHq0;dz&oPS^n9FcR@+e~%%i~O75>N0XQ<=te z9^rM~ciw4W*E!sI#i(1EaiP2{X3DJ#>6QW^ z94Dcs=f?f!cd#$u4&AI|oUyosNk~#ec*T z9Ol$|aH0LKnL6N2cCm*)S;1n~GKiOXk>xC4IAy6$$d8bYY?c!v8CQ^rtGSLWh;ri42D^zPdK%8yg)*6~(R8QR+20r+>g`u}i_dtECycL3bt+Psc%7d8ztR!5?PlXo-M;&b z3)}cBeX}m|=V<8>_@G#ZW%t<@8tmKk^e>xW+X9)_%!qns^)L z^zD72!}0xgnq?QZE=4HFZIq@YB`8NFDsTtI=pr56s6%~fGnSEz;ZcS&lqTFqOPbM% z_S{cf;%&l)`fJkI{2S4RRC=aEmvD@m||Y4 z({NYoIkI0YYHED@Zmyq+rF?I?>6`S4MfX^zPU^;c#chW3nm#i90d210e>*R5Zr(pZ z`_K7#asO{rMNFU6e|tA`OpjvGSMGT(E*CpJssH1{@okb{dgJv=U+XZC{+#c&z0`!p z_mxxk{oc}aG5i0eq$T_&>)Z6&ZK?eJ@J{V1lGkyajvx4w)OD46o_B z0e_Ih@Fw$k#Xa2D_<~i>yHCSm{;dn!Wli$LDAz3S!lfyN*xL#Gh9W$NX1b^!%uC0~o=0rZS6{c%2Vf%>%Au4y4wzj@^b&u(F%uy}0#h^`G&F zW@tN!34gjD&y`$5R`OGX)4O^kZ3kBKGsnr6&Ae+n=Cn!h zpQH)?_r-s^vS7G(3RwRoTx=IFr#b8oML4m`yTf*SA3IIx&5PRkU-MQ5$7mYRmPM?h zi1c4-7s^MIfBYXqJ=;68JkH`83)`KaRBfVNPUanst6x|)yAQbj@{M-Tx30^GtHiA9 zZKvPl6FKkkE;k01@vbbty~xB(T@#|5|H!W#p0h3JzFVdLp6;++cE06!Xj^r*%^wxV zGm()z!2~8TneO(Jk+ilybrAc|On+OJ*=AST)@eyYedB8SycIR5PYW8-h;o$YF5>AJ zZ5cxt$K#A(ETb4hCu!_24rMsQc!a?`Mi-wyEM9CE%11ON7S)sXjMCLg>_|mrzmwR3 z2Pkj2GWY0TW&iw?&-j?n`GhsBW|jSVB@dY2qkOD?Enl#X&v}mzSxrmx4E1{0E)`5) zmpas=8qK(uiZrJ>O{hd;DsvzA(15$CLRD(hl3Fz7-@1?=Asx4xwyO25LNDp7Lr?Cb zDJ_^L->35oy$wG|JG%MqaJn*-P7I{E&&G&VZL=!eZ@4xkeZLH~^tYjcWrq6eocrre0VGKL45=8)lZeuwZ_Z^v%FBt#WGc(m0Cq?LvMG8krdF zl8?#d!FbPR(lqY$f{O|jp6z+Ds%3nb{fjL}i7t&EY z=6@kWd7G}z3dc^8ZnnN;AS-z&Kru>Df$G%UsUGFznB;NWQM|E| zeW0?uORJve1D5d)l^Xr$-4!Nj>fV-v^(w4o5hBU%Ze!3iWBI z*B`NucQvmrq_dq*KYsTx{(O(&7qa~LwBh=G*l%Bxj*n+S~=6?-2xtaR>+T{G|kWfxTew^+2(9XOb zp(Wi2$BUQ5={&^~JjAKTkRJ_ivs9O#PH}VoEJ8=FYq?&Sii%}&$A2p(f?}OGP|@= zy{O|#F>S)q*8Ohl-qkrsH)&!9Il8N3rQu=bux*~U$RgLCIZCoum2onYhg&F3Rqm%J z19`Bx%e}nH7ld?#c46O8?&!=Qy2*>H#j?xn|JuJ_s1MfisQ!oPPkv>ok>lfmhUZrX z&XqOke7MEA@_mD2C)=3sJ|2tixBNb%W6=`tC;7HOV$`RsGB?Bj&8w51{K$22w#Xh<+un1&R6fbPI*R^ujb<}{WRRwe&WG|j zCNr2B%qP9^Yt~$Rdg66QyzSWB{&x?x2z9`xq8) z(-G>68R8TsaJIT5+-C@N*qP>$<{5P(yL~^m_`8^2{6@S?+$tX7Ov{>U{F&OqXWM=u zKdSm8tZv%=GyEnY?M;c%{nx6u?ubR-4|Ki8|A{TA=fCjYRJJ|SJI(dY%euR#>$kqU zYFP*InArbC&-OO-d!`)z*XU{UIij9$53%Cyv1p-lipRG^QT1@0^e*p`ZsJkll!?)U zexEXFZ4~|B{&ee`FMgYzZQU+(e8`K%)m`7HqbhUg&SAWgmb=I{8k)2HTq<%yQ$S?b(?0?XC$yiVSaT^pf1w|?UMeW>d@yzP2PnH$wFxBTb6ai~Yn zc5b}Ga)04hwh_*iHxNHxUavo#Gk?kH=gmJD_Z^$~o*xP4(r40hWj>X@bx+m-DD z+@QY?LpjJz%489e^4$#SVh7n8@l+p@BEr#R=ljZR!>7q&}ihn?-*xVq)mC!8bK zIPsO31;h~3%}f3TAe$3)Tg%~4b(i(_7SzwLi7ihlOq(e<9wuN^9&OYFk+xlo4{ zl8zg=kv!z(W^SS=w{R=PC_-^=qZ-$diyUO7D%Vqm+*BqfnaM&WPVYi~gx_@}%c}j7 z#qqnE-{kf6{DQcopW}|WP+TBB-QTNF#6pAQk!eQjze4}(;-z*c>yLH*$4?q7mX;3` zraWaS$1UWiAo;leLDzaHuKx}SaH(A=r;DZIZRwcCJ4|Ldi+G0jna(7h-y z+Le%BgA$|3u485XB^HfzzFMc@Wl^eZ>ZpekquVdH{r#`OuBP6dlutXyL$KEzh()_D z(_VD};J)7KqaOeB&!vPmY1k%9ov~7CxQBKzf2e=-Q$$N__a;NSbg{3O& zE6Y20-lM!UaJ9DJt@Lv4xX!wM!xnaOh(zg2MMko5BZVnNCF;Q4}VH#}7T2K^)T=L?^cpMr#aC3h~{;U3rKuJXT{+FFAdbtsBH=DNe$ zNk`ld@%{GnWB{XRdXsIX4K}Nr_bzsKEvt#TGn;FE+R+!<#rN4m%EdhAinG#sr>1S6 za*=nt=l7efKHjbAoT$)I?cZx$yUFeU0S(W}>0HV_JaoT2wH+7#>b|(+&IiwVrtCWV z^h>TgYX`JXrH;NkA$qfzHtvV&r(LmVp0?kbK*OrO$qt>XV5ad!f)Q}s9udmrZ< zQbedEnIiKPnKKKS8%#x-M5c&BDwQIVMv_dCgoI=$V~9){BlA3jBqW)>d-eOD_uuE& z;5gU&efzrZv-UIXz4qE`-urn@F|VgHe`|~|x~=al_R|kJ?YG}+_zv7S_a~ckNW1p` z{&n?)Jet`2HOo0!#7Z`>o5P&sJSpUZblk)(l%N84(vS!Ea~=)zP$7>V^x2j2$}-`{ z%w&f5K1wd@-GuK7dy>g|9pTe7LBrnmQKcAO`>yvRk-4n^l=e1GBN}D%FQA_RI!8r4_xm=fE2u0=V z{?&aCmyr!)qJ6E5#T)4#PH_(DKsR2ZKLZ)TIHt0gFO<8Bm(aF^{Lx{gckxHYN}Qy}2Qg8@G3HI_!iP=d z2iuy+W}X~vTt`0^`i{|0e9d7t+3zoG9_3m;$2rYd+vw}Flj+27-V?gmAs%VP`v#u# z+<5PM+w1e#YWusy=QypKd7Uca^PG0+O7Gw4J^O9Dny@lCy{`zvJ@=90>XOMZSuY)) z|A)Fhl$Uww;-Zb$$xD1iocY3J#1g}K&z$!8nNSK_*tUu2&rZ9my{J?h7dC$d5 z=!=E?(ZPA|P`J*)LAgxFFoQd#dlOob!ud^4 zR&tS_qEw_N8I|d#&hZiFCm)x(B&5f1`>w2vx1=q-Dek%4!sms3c!Z+t=0?w-5Dugg zH5lNzv3$f_Ch;j>FpJ{T^t&iQdCE|cawODan{4MGzwkTBeJ%~zDaax+QkO=wpowFD zoUW|&nPTdxtm&l#KYRVJ>dn7PpNw7zm^e5Z4?Im5Zix^hr;QG7HcUraQ1ng3(q zd_=?Iqh%Wb^ruN5?vziA?27=CXth?Bgh> zh?Uloz{QUUMrxRf!?fFttNui8`lZtGaai_;Q$B$S&zAIC>AjwjnE@zJ~L zq8TII2ds|iyuv*l_sE0GeZNZh!Qv=N?)k$W54zj;j?J}=71sayG7ct*AGy}&Lw%k? z{IBCm(lg!h-QrmClAAot^xQONklB0ElA0UnUE5frkn1hHEssB;&QHveP=AHGr=)!q z;C8aG%5zIesFQB?+>NB;N6&vxsHe^l(*NT6>TS;r=5_kE19Y;UC#UNGfK=7+P6?< zFHX~mwmFZFm`+IJ;cO6xToIJc?Wu8!gIfez>EwcRb(N&rT+KJes>2 zx*zSnD7ug;HtOkd{!aSmu9dX*nO@BH-tXukzb>qEseAw5_l3G6oR>7VQG@ktb{$q>9dYHyXl%?7+Q8sEDa}Sbd=CYY;L)5EWTU2?cp4UGyfBGe7Na=Ut z+VEG4YSI7oiH)8Yk9p$pyKpf*XihE9Jt2II$GL-=wDtUh!bsSG{`}x^SK+rL=WW_~ z?lUHEg4bEdDQfcwUl7Vmh{p`;b$#xDa4CCf2Y7avOZ9FPPl?j)+-S5M~KG<*56=^*M8y?j&X=|o=?M#G6}owcN)bF33O0%;}yL zUMnVf_r^ut0tGTLXtv5d8za6IF! zhhzFq_~+w##^Z3FzYz{6obRT>gya0s`okog|37y24}TKQOJmzPn=?GW#j7x+T**N1981tTHnONN91SLvXvZbT{B%K z|LniKxP)>We!pS7ZO3xXF*Omk;bn3<&uKYkeLq7;^QJoE4flz%h^!u8LkxpFjul=I zp5Y|3ImbUOp&kq0Y3XD80~y9B#xjwq%;amnWj)(CL3;7a%{A6<=0?|bvXh%)R3@M6 z5ye>fqTd+Fs;vJ{zPvb2VP33ib-!0oRNCIE|4~faUtFC<4~pI<@6nXGW%QNF_JR76 zQY^IpxOv`_{IBcDi}&|;k3&BwTGZ;=`5@n-(FeRt=-xqA>v$`b0+M;6CN4RX4- zm|>r)OFuVnZoSn+`QGCe!qdWcg##!;2{w7|6=6qKT3^Sv#Ce>alw_eSHE2XmuI4B2 z%O_kY9OYVDNRJSY_g#BS%SQRXsBnd_i!dcMIO6dW!h^zJh_&96UDl7xG|m$5q%7Bm z55F4|9kR{C{K$TeaDaUz6W=$*d)id_hCTMXmtE{;Cp*~4KGw2^{j6s-TbOGba~Q{X zCh)N|8BM59LwdBaua<0(_m9wv@94%tV&wH9!pY3!b@`*UaFK8Yk9oZ>?{KZ>+ba+G ztPh|h9k`WB)Fg}dj1Xob1EIXU(K0S-(a1b>M{yqLTyymx^#u8qkLAkeMs`xgd8o@h zJRIWfn3_4Btm4w?OUKK%O#VvypkArnSx^UB=huCYG~VUf;_(UUg31Vl4T@?|l-!HxRN#SVFzNqj_xf%`NJ8 zcJZ`v^l@YA{Dq^a0(Xn({Dh=*+9U#e1Zc$3y=kq(?@N zN7=_Ge8xx)usekE+HubC1HZDC4C<2I!ZgDBrN!sAF~J+o64yNZdXq~t1+6VDuJFrRtM_l5JaaE412J^W@{RqtWOaQF8vkSEP=re34& z+UzsCz4wg!3Y5h~%3=v)?s)%0{xf6EyAPOW@%&oPH#}+^+~)bRROG}?^|#MgUMs!! z*go9{`p#`_x7Yj}MbDE^uOE>H2ROwq>bc*Db=+5zn@1SQD?H8s-lHqqIKwwA=S!w? zC%@a?XTov(Q~n6!mmMHlG-sb;XuDZi-7PEsrH20e_ubTsy$zaF*Z%de059MW}`0n9H=5dmv0SHSwD6BN0}+ z&G!OG=m&k|eLvBJ*BC?z+q|9L*3${I3Nw+54;b zUHuW#qx0R$ocGKk&UP}Yo2Kg@tf%@kbs-PYjxIdQ`;4dabk}9*txjCa)y~KD+~Ryp zV>zi;dyX}1;f{6k8_kH-F0>}ZqyFspX!mFCgW(Jf+^auA_zqimpA*#f{4n8Ltl>S5 zQr+`OT|&8?mo+w8GRt)n+bmu*HmYX3vxMJeRHrmh59C(I)Hk<&tLdLs{=Jgl_=;vL z2aTgB+YgcXP1o-B_)dO*W$&!VTiwg#+ETw;`Bj=K6ZL22-Pr-;;E0 zr+;4eZJKv~dxdLlXOxwK+Pa5bF0h|jepm7a_c=XsJn6@Hsc97MaR_B4A)lw6ERRu< z6wZD7#rhZeaW5}ZPPk&Z{+7CB1J9gOFEWSADIb51W9W;8wk3!C-b^mCGgLVk!Eip) z7Ea_-w&?F{W*b}C&S%~;mI;hwBIEglPpP#_z9N5leE|My33)WsVcXRu`>7~zccTV% zX~Uyb;Q^X5gAoj&7jH0@PpM}cg_N~kj-@ZXd4-qx%4-W5N?V%oF;5ZV5$5<$USpiE zp8mXuISp2_pWi52RDLS14|tnCS3UhA+dRf;;%p-g;ksQ;3R8w^WSp(OAs3ZdKTjRa zc~Z>x{MY*G6d|(6y;WmQJg1A{U?8fG1Rrvx4ydYRldlnAKO4Z*E5Qqddc|dj+p4U?X`W; z_bY`vIn5q6@?#oxj{D6XTdAD$%Id!^oBxz&63T7QDcUh6^EP+UQQX>6j>^pDQ(oaC z-r_Ze@-)x#1@Cbe_wg7-sY4A~aF_g1o5$%uV?sRUZHtcz*O$gzAWH-3$Hc+L2pl8j z`|6GNqyZB=-oQ~(c>c7$SW=fT7ZiSL6PAQNP)O5-Bqm*7m-qjiwtsB! zGXEshr`-?vT~6L3*1T$x7|)_so=*&A!pb(3xlG#WwT7d(98m&<82j*7srb$9GPbFDtsfHqHNOa{ts9 zll;!(WY-n-Egn?P)-BU7-TL?O4P(kspFUv!9gI)AlG>PPhcW(R#`rJmul?q^EA?mI zHKzY0jA1?3mkl1jQkH~rdxg3+o-oc?p&aE^ZjTE$Q{4J_ zVFuyf_4zMlU;p%;Fs2OmTkQBEK3c0UG4J#E=p*MOS`#02lh#YVkB<&I#u_VqU(n-L ztKy@1UN5rV@2}}YPg-vN#^)wYiI47f?0JO8jgh-fkB?>;$GtZ*UOzVU3*w_UY-h_i z@lk!p)YiQE{Jd1eq7{^z$g#YP9B#OmZCIe_*@-5nf6{Q>v1`fx`cW4S^i(f%ks)-s;YMy(32k+r94lj zp7ZlHE4XW#`DCV1Oxxa=);!JYGv#6Z!n>W9L;3tKgzf4niZn3KQIE&82|wGpdaDNjp}7a7brc5ql-AI9%Un4z)7kr=jY6rrQesy7`Kl8M9wHW#gJRn&8#G`OG01$ z8pqI={PtCaV%$tw&f9NhuN9;vBY2BRj%yA(yuONL)=zkTH}$MHB{yxjjSBo#-Wc!s za9+aw1&O^kAgg^9p%VAfnm+XBT}CmHxqQzyej%TIHseeFe1AcxPs4pMm0bgD$jvWA z(VJVM=(?i)*H;N{9iJ~@7{bLmVcrl?KOH3Wq-ns5UFWzJ@!x_ydOyqOsQ{H*1%AM4wA@_&% zi`thz>M{47zUDKvyZY8=N|0ImbY4C$;Ik!&=Wz^Iq7BO2=dL9toR?z@XisO#{^lI1 zf8sCb2MALL6UyZ|k5hVlL3mXNJN%~~cyYW#derFQe?O}?AGlXvLfx6c@eZS(eauT2 z6HVvC{Q5e+BmI3XeU;j_b>1AK`M&NvrlG zKA~O@{g1?!xv!L=Z@6WRc3)X}M!H9Shw8zY*yu5y;m_sr-{O~0UKZG9Qm!Ta+kXD- z^>FPaoR^K_aXIrSSDS~qig=Q7!FH|?Cd{w=+x`5N46n^Jr!m8CSh>bsm6Z7|KElL34*4|ngPtv+zsK|R zq(L3uOJ_u5>A~;weE(8>O5N!`{PMoDMx$I&R4b4EHA!7UJi>k2>u%9za-P(=wM`VF zBA*&(&9Cm-1v^-1&U7iO_?|5!bqV#@fwpncWXD?5_0?O2naM+GDpHr~yyLvDJ!Y<@ zvi7%%^b_7JoK{TTUR?ZdyZm}Jq(`_Gm2Zf7n!T>SQu2U%C}==;^?1DfUCnLsW8sWkM~_W61VEMfB#)kRMGi=#Q5Pr0eRZ} z5O)@hqHL|)f2qGb)%Q?e_gsPZ%(Z1Q$L)BYcuKx%Xgu?&yeBMw#Qhqp+73C zU+(^;2_HmJv!ecoz;bhX72LmnKI!K+sc8}BEW=no>$l4M?dCzt8}lDBpQY@M(SJHK z&sfQN9dnU)Cy%20=w}Y;oJ73ltTxb`(lkEIA4TJcmtHfqGgGX8NivTwWeIgh_#dvh z%K7d+*~v;d-W8|S#bTm~#r+1GxxRe`{Z7(C{f(|MQ8%_WG+*kqj3v~4BxMQLT~6$B zKD)$3+g8Z)-)rMH7>E9#E!|{}V7GBHoqbQN$bRSBHL99F8k-(*9aa6h`nWlYlg56( zy1p)b?vQT7m+7~Br@Se9uUXHy(OAdpGj=J9(zyOsW3)Zy*4CSs|Jr=<0%K_L=<{xT z^s0O^r;hh!a2<>utTiXRn+!+YtIsy7d(S+!&NY5gkKE$^p}g$une_As-0UoELr2vyQQy*UB9>CU@+$q|5xr#hatf2(bi`HYM2uedmM!nK$1+mWx!Lxb2k$Jj>te$E?Aq`)3^8?O~MFUB%<5nDta zBsZ0)!wBcEl@AzIxnNIGv?=0^sJ3IJ| z$Gv|F-L}aO^2)lct_h@3=PC!|<&A~b*G)AKC45*p9IxzD7WNe`>Fa*C$*w_@O*}%m zE!o_6U1(2M+sswf_(_{q=~3f%<#jrR%mXx2W*4h(Mrvo$I|sj1)BcG6Hf8()@l5xm z{}oip+`POz+qrw+IUJ!}uHr}H)jz+BV?D=shhwcrPxWVLTSB=Vwom`2jCPCn$~rby zabrbu9@l5}Q{*R_IUb?WcUX6c`WjHTkj;`gjm}tc)bK0ZbQ^D0)oZp-L{vK1=NiW{u z1IF?zZOQ1pNnJub!hKQ+_c&drF384g7Lr z!g&e*3u(W4Z>e%HS~S=RfA(mXIFde^f2Wr~h@Y`!v{*Ehf6r`7O*gZB3@z%}eG`ciiUO&GP@x z=_4<_LwfmXyw4_e3HP0r+ZG!=pqypdVct=>|3MplzsKKS<##MA+ecOR<>-$dRu`Q= zs*M@x|6b8X`}L{&ULGH8-r@^Ck0NZP{+RE5hx9Ag+Ri=dtPj*#tE~Uxvqu?w()_IV z{CNrek8nTE)w$Fa$xw*IkS#7)?S#4I77hVxSM zXZ7}8b*{GY$rJiduE{+hj}Ei_l^h^eebQDsPnFKOox=%FXouA63$-tcSt{*Ukkz&_ z)7^P{mY4Yb9`%TGoXk0{R@dCGe&ti!+@ETjW#qxo-p*^RZIItGsILa_9rubutTfHx zeM`w9Pu5xF9whhO&*f{xde^a?mzG5-?{PP2Q^9%LmR_v0eQ+WMn9+&UZ zO7}MEkVmW^G9H`a@hjZveASZ2-BU<2{7;mpz86jwUd|Hc976ljv#)y_(`#SoqFuP5vi=2I?I+W5{jiGK z_%D<%?Q%7GFo|&A*hcU9Ou0EJPhRel%?CrdExJ5eRFT^#L2)Wmg=*YERSJ@iLX@Ty zWf(5*$K>CoEMg%G_?jj3)Yg6WjeN#H1~Z&*mKbvo=IFw`Fnf2nZ>NcT$7YUjmO4%K zi-^BZS##X8Xyx-Ad4ZVs)LX))6njG1?BxCX5}z)izaIV{L8*FiQKs?wSnd;iQ{9nS z-!SDT(tnBjMQWIL$s8L!x7Bx1#JRKm%qS4&f4Azhw~CLhZ>i6j#{Vs7=W!-;8xN^> z{Xf>xkI1(f;-ecqUp%Yd1{2RGZuZ>;nR4M6*JdBkhe{h4t!o-ZT_4rY%^|;KHKFkT z(~?k!HCGJN9+1Yq6Xbk1@VEv^T|!w2 z-`78+uFR$Xp4qnF8)H66zv$c9#@Y3xYkhrU(l^lFs5jT%qx~PO?PHca@f|<2?4`?( zPspR8PH(nC|82G7r{Ef6Y$otR9d)OE`D+cGcX@imz1j=){bDlJ)_w?^>z6!AubcE~ zGwa)CPkekrogS|1m$Q$`)FulRxRxU1rh9qU?5SxzC8as7t{D7dO!TC5*eX6nDa$f_ zrW5jAVwO;shW}so?nBPEeqioX`hv!Ao3-7$ZSxm?C6)7*jo0*T8j8bRsoYaIRvzNS zedd{o?pMCJoF$x>@P9Kd^?zQB5QnqQ!M8iKZRFMG`K$kfk=VF|^AhUxG4kAMjt(yO2M^ z_0k9JtE0Yo8^`lJ{g@=(b9^5~H*l~0<`QP+8SkwpzWrFkUOIU$tJg~S&BM!CLY*Gk zxV!AP7I#vUdeo&3HMmLH%|u=GOI#t}XD1mcxPs&)WeM>Jb06=S7rZ{+|AICLzMV1Y z9iPXVg6Np)e%XWC_8xxAtD63&_>_=7H+pTmb|!Yeeuw9hvV`*z=91g%=Wc4KPgh6C zRr1|X+fFNATtzBU)8BJ%@HQ{dmwKMRi-Fd=(3R)-R9ioZaeT~3!f&WglfL!5p2B`| zQGk#hAs)RvKbYQRu+7WaR#MU<%vpwdY?^-N2tL!NY`9kaaKJpEd^=ru+d=o)95SzI zy^hxo=w~iDV}762JnUL=sl&>a_*bU{*+ad!U45_2zkN<$yScP(CQY>S?^};m22xbg zj(E@4`gx)L2<^*C`F$h1NF)C@;d#De2S+$TT4|b@Ty(L&fqY3O^;rqZ@frgfCN95( zc0ZJtH1?mC^gPhs9GNh={oc)0jwuDPBqNS`yvn2EFrJe7g$2k@5z0}P!qnh)s&gxq z$VquBP>c|d@SUioxy}7BhcDPoOdkDY;bK1HFemwigB)cQQ%LF(=GH@cBpgdEaSO*& zlZ%h3uIKI~99tb~bMZ0O^IU!Ye5{ue$IuT7@#v^-?#$CXnBVv@x9dUXT~Zt4H<_z% zDG#@^{Uza?bujO&KAAx;p7MMbZqI)Cby+ws;XeK=GN>cCW0LtBTJa)_>HLK}%RoM6 zD+kTBRGZ-*9R{q>|K}rK{7pN^XQ#DKyy!anHrF9y-J4yS7Hp%*m9bG*-XWXcYz*Zk z+%G=aHm386ZG7SLdugIC(~beY=e>dZtaso|>pyTsE`3UN^RjE|yUFIe-XFLgxBL>X z$t9e#kRD;qVVALKr#ae6CKZo~Dvor$+*ow@M%N*XUoY%4rqxe+Yo30AIfvgkyGtK# zm3s4}ID0LpI-#=9jqv{G*DJqy)f3&^M{Q2w7!Q7}jGG^LK>d@}`TpvNc`$AF9LFEx z5$-Sew5qukRw=sul z<&|4*te}qMieC7R1=7!HA*cfCKA4?6IP=gR6QuOMFCJ=tq72`|VWr#Zt}erJZ~-?X21xs-TZ zCmw(Nf4LXUiKUK>%B6FyC7XLX<)0_r_mnZ2-)2+p#{KO7)Ei$Fr3TG-f<7!)?wg9^ z{j{Jtulyw6CnDd3{zv!?gN2pc17BJEg~`gP<9iq@F`twpq%Wzso?^q*qm-ZmchYFD zYf7QaXpb*v$>u|QN+gedS+9??$NrV6pN?xow9g~;(e5~`A9_JO{k!v_eXeYta&>9f zzAB05cIQgF`<`-FV25_b`M6yhzno{q>xCcHb%)eT%JDvRK<*!u@2%!joa6NBfo@(q zw@rI$J7I1tjBig%%UI|A+I8|LJsC)6*Epu|Gs)$bR8&1?&c=AFEXQ*yRGPO<36Wb{1&yk?OQtM^P3oa%oH9k{J$v|`a$77y1ji|&nfTPPJUwqeVa&} zO4-jV)_=9_Le}4~p273At-o*mO6!%akG4LMTeSZLsKT9$)3=*SR_moH!VHgp6o-qK zP=8F#;(rU+=F{}#RR%DP_WESS)TyPZKxOHlT)L)Wz<%w=LGR}jS&eOq(1&-ZPeZPB zzS43ng?z3I>DVOA?zW9XJ{#uNL;vH5cJ?j%t$VlY_G~`u-cskerS+=q^l!a3k%z^l zzw=zvcGgul_7dK#tmSDGMTHm?GXBfTllE&?dSgEIeD}T=AN_wn4)sUqpO)6gJU7cV zPi;$<7RG3#XO8)p!!=_3-(B-=)_;^|`pSRDg>MV9iCbP8%g34Jy+hWs%Xe+$(+XaX zU!ZQ0|Lf~3r2gK$SO>IOj(@syy_4nqMeqTs2o;(OA8cc#kNeUu|q~x3rvdud?TJ=hbQd zwuIjvsi9q5=v;lxZ_57(PVy@)#P_IrvzhQd8q%1iG@%jojf?ks&k~KPK-p2eIGp z26pp34SM!6N5=^DdIsszlC1K2ZTUCLA?I7(d-!ALp{O~-GSZN@%KBcA^Eiy%>_~TM zaR~7Y^;kGBN2K*3cCv>Z>|!fh*v58t^H=#SY%3{Ch)4K+zNGxNUW~fr3Nn(5!jz^a zchiD)yut^ZUN4_9L|Gfji|Ut9kA-+V(pbGAQpFo8>yP>WusKOndXJyOzrzt1taLT%2|x9^t&K6VElQ<~eOwSDv8@9a!o4g)CzM zOZk??EMf`Y@S}XRhrR6M0Q=d^*N5FF$wFH44Xv2RANj+zhTlGljXr)Yin5)FqLE{@ zy|>5u9dYw0*TzO)2=fS=j@QoI6dTodE$D>T%L(_CGagE%44#XNo)n&_79UmA4;zso zHY&f;_kD}RM=5K}{O+t^Bl>R2%fux!ZFMs7rn7vDfEIXveZD zb18-K#1Y~V?xRcbrM8^Gv~Zo_PzLRSHvI?To@>>oR4ZV+Ji}ly8RcF0MMH}wDTzsyLZNC2XNO?V-M+&UHd)de%I!>so#IcIsG!9>2HKjT?IGWq2S z#@OZrCfU|BPTJNP?rH9rjh(~&C*eN2-L1@j7z@-i7Wiep`a)Z_*}2-{eUE7))A8W% z#(3KPa%b(=m_56;uZgy=j&VdqeXTQ&W2m~Zm;HTWUwiH637@+{-{=bcsDD~QdW3t{ zm&)H8*+Dwn&P)y#Y*KI0S--0XKk*x#^!d6{P`~arR>=z+xkDP(IgX=(k4^-SV1qfuN`-TAM>7JY`I@<1udv$>~!3Co{WcFZ^TtL!=h z^Z1T!{8~j{dAKp@^X_4C4%*X^r}>OMh25)htFhPlzfX~H%_E$b1=8|MQYZ`AoS*&D z;3561F5>dNG=9}_Wt0!sO7}LNKexkqI_f@4#@z0D-q+eT{ekC&C7q*lJ|FKqon5Eg z=VvF*pj^GU*a33IrY^Sg_4eSQ(ew;1y`duTC1~e0LO%5xyXN zo*lo+gAA}f*7FniLfp^E|I>vRgim|zZ9et5yZpZ4M)yP9VQy9$?;K%1sFS`y+W+){ zLO#7){@S3NzNKzBtUhh0Y~II%Oko7;jnjV9H~v9*Rv7QS^Q_kw_Es0wQP<>ftT%9# z^?k+_*@b!3(NoNyB^R&i_EFXGZBr&@%Byu9XAPeX^?JD9b72R0^$F!eyk~oVE$_{8 zOr7zpx=xtq7yVUM61V-w4o;$KPD|rM$OC*xKhN`&?<;*;D*K*P=rHIO@4c&hHc!ncLaryic`0j)~0l zxfp5sl`vNLjBtU^yeW>8t)I4jhHlp93qSOk>!jVwUVn)W9BF9`;`wgYpXC`2dG0!C zAI6m7n(49D?)zCRe=oDm7Otf&axKpG(o@%d?_s5VTr13@zfoEp-o!Q@r98Lto4CKT z_TSsqzdA?Z+T0uOt6z$#FW9RN$ZFrYXk?$wsP~F%#5aqJ_N?+J<`U@NJtn%Znt5-U z(00}3?LQ$-VN99fCi89f`(rKj;!x>j-@WL|8w_MPUHO2wd4Y$Xa!rDv1NDjI^VLik zq#okMC$wvajKjH_v_7W)rM1Fbcw(239^t;^ao;;PY~&d6#CM#R+Qk>?!vNl67^4}-H0H8|GUoo< z@+94PiAA1&o^F)%_+8;X_0(a0PvhED+L$N}H<5#U6eFCMkWb%Sqpv8hy)Jx>e)Q!N z&pqp$d?tKKe!WLtn`ixL+uy}GPOzN=e8*4he}yZLz#GwVT@)R*?v{0$Sb|M`oYAXq)=|d zTw!1B{yPj{FePpKHCB>AoEr(7(kq94%y!?gkjCSg##ekqQkH~qLk|0TFQ4li%-2rO zzS+3$UTvqay>OiHLE&U!E8!?%Q{e{T5t6#xWCP(h@PGMCABXciJzZX<&r0Wp7UI~F zP28x@o|C%zclXeNC+WuZdt6`PVeRZ|)YK2Yi~HE4AFxh8U=!_JSAL_XF|%vEx#{iN zN5WjtDS7I5j**bZ#@p{PdGg}CHpcUVd50kkC*;3D4CGzj=R-y^l=m1#$eSN9j1eT{ z(}a3GdkG^GNrP*U;N%two`UfZ+)vz zpkC`HyiY%*brIJhvYY3Zr^;PI|L^bO8m{e!IowqCmy7(Ap^<$z<3}R-q0%nx6{*GX z8m_02JkW!k;`_)i`T*`7xKBUtR_~u?+*evSSGb6qy}$X3`b{d%tFsutk%1U85w10a z`s1o?w$Ehs-qp6f+_nelx2@*~w)1EhubkB|?FxSIqqDvK9J4;Tli_b!RmSQkn|9p$zmUy>{zqk6}^SI?~_4~=h?fcJZ658AFTP$5S%8T-62cBav zA97B)DKC6oIt=0@XLu*@y}W!U{NEy~QHw@g&JybN@W19N8Q5JdKYz$nM)9tBm$7`o z60*7HWkaA2%#hbybOC*+g1(nt|Ncw{4?}-!S{Y@7$*kh%I>w07zR7*=HSngb z>s=$())rvz9&I|WNR!8J`TwX+Efm@7~i}`C9sROmvoG z+l*(YM$y1pQS=_aJ{d(1xDG$JdKA^wE^gA+Cv^$q>~ODk1Lb3%Hs~;!E4vPGMw#J` zJKf9vo4H-SVkrZEcYU7rh2677Ht*T!z1v7xQ{Pdzo;q{1ZMVChiGN!{dW3sF-jNn< z%eY3zn>43;Y5QTJx_%n7dC=pxO8IWd2;YU`83XlO<1Vd^_@}sp@qV~>?7h|cZtCqj z`WY)w-{XdqHU3zpJg%nrDP@Nm+(jYvTM5c>o4)8w?OluB#+&@rZ@wn?nNdf`_ccpRmR^j}E#{bqME_iL!kIFVbbA&_u$U$~% zFUoFGUsH;boRJ@nkr0pVw)yAr*sIbZjLBXmVO;jH_1WInK;1st`Ui|)C?grhaB6w| z+ui!~w6uOH9+?%+0BI^HKq<2bXE`#$CPn%JoC2z@OscM0unxR(8$JUL4pl~VuV z2KjD>_H-XvJE|wnoA2Xu9=pPI%oXOtUh@BMgbf?ZuOof`Vv;dnKl3xf@B6wxjPf2Q z<5HH;zJz{q@(RktHgkr&Ek9M%hiR>i?Z6DjKan%UNP}zkxVMcryl0i?_VVXG@1^Yb z;`fB~2=_{*vCaA7kW1dEVqXKK%g6J?M_%hFKewW;vhnRIefr<^!SoZ0Rq`E=bLJ>I zy5~?EoqK`)nli9%g*bZObGEZwd@p4Q^;r0g&pS4odncu1%dZ|ON=a_#ZkjNM9O9Li zVwB-A`Z0*-#NpKq(pB5t)%xq=@eVolkzN+|V-Q1mCcS*7UhKzPWE77uZ#hSsR>53H zR@cUU=23IG<-S&D+~b}Q>n)|v9`QIT+%HUTze{cJxb@>{+=r??oJ947%Iz@U3Gmvg z@Vaf4?X^CojI?R+G}FPxX0H)~tkyO*}B?{w&QbYuMn`JP9s=zI2Y zUG-)6pY}4QWFRY*myMpU@4Zb(>JsMp!@Xl`^v~Tv9OaQF#raY>ZgsCV%=~q;y{^Su zFPKgrZHns3gxBcRr>tI zrP9Vq^RoKEm8kle`ixHWq+1t#VxH%9Ugm8U%rLH%cV204zLCT(q5cT}L-a*)AI4|~ z=ojym?)z!C(i{T^tUoRs%#YUhage@0i4Wx*^BB&=CpHHEd4DJ`VLoVx@|w^_eJ?H} zwP$OEX_Ws}!WAU6T}!Qp_Uk9_$?5e=X~+I8cHz8)dr*>cA4?x``PjMql-Rwn#!!})~&Z#ajG|Hols;}Ocs z6F0|3tq-f4xPhGH<1J29)rYEP45voS*NtKHG=e!&Gg`wTgxy6`VpK33M$i-0m9YrsF^-?vBKPQ;O({6ml z0B!R?hBBJ*OkpO^X{%l)R{7bgF5Jz#j_CtNF^-MesBI)HA)ki!Wwg(Xr;2maoX03D z4pnKU{cTMrs@TR>%BXLulk2GYQaY$Rx-yp){J??}=H>Nk*LmN+wJ)JQ4e3$+7GdH!9RZl{nmTJE_O*3-&A z%gxOk@ZR5*pMlbRIQ19Gi;G=D(w|DG*DvS)I=>=)-Y`cskmKj|kJRts|2$vL5-wSU zd8y9Z<#*dU*h;_0dOv02MZUJLZo>MWYr;e13Fls(`9a?!8M`XDzWB4pUc2}^ahDpW zP+mfN8~N_Qwd&2a>Zq-$^gor0U2I|pTZvU};)!Fo$6MIOc9OdMpLR~$^@F^f>dGZ~ zr8$i#pzPdKM!hL4s;<9{l*&&|@=@kOvZx}}xUsu?BbA9RtRjPYrk3Z+dtWDy3tBHm zOY2o?DW5gm2Xcq!gkgLe>al)(^oL&6|I^oQuHU=UaUX80ObeUHi%;ACIM3gOLF&|8LlD-)C(1N%cZG;Zwp1{L^ple5m|{ z-`%;~CDb1wJq|0g59uejQ(yIL>b?}GwY_58v=|9<35_3NL1L-Nn@4f!L)W23tDj5_Qn zCrNFei{*zF@I#A4h zZ>I{+%d4aKgwt>Py*~AC8vW)?QR31l%)^9y`jLLcEB2Agz9-sdap7#?{Q0ism}^-; zxOefIQ~!Ja;s@e!Dfck`)$w2aT&O?7|70F}!T-zKrcawQd9>XHo~TQW|-_T=C@5U2dzWaa9y$lb>r8@_P^RN`{K=IS>|qAbHfq!4)WC%qiY+d6GvH z)jj2^E8F7TqC)a0)wA+K;pEZg7j6Fq_db=jjc)$mbJ_p=Pm`C*soRqo^=EPq`~w%q z`2XJHP*y@8Xw@p;wbSm*&*xsm{Q9cyss6#-&Q^9(&G!~+kbJN)6@@89CC`;7sY@vK z;U2cnv{k2+*J;vmi*}};ygu6c@S^7Y^|kXZGZ&zKe2ovSkKv#0SxjuaLR}itW2JoX znmXXK7TO4PLKSW&5BHlhTWtTgs836Cy}CLFzv=&;=TrTht-@R7>qoUYOAl%DS?0Ob zR4=X_xJ@6)dP}bM*$mVuC(ZA0olE~YoR@Hou*U`Q-~-x{>a=-0a{yy$&&W8}WIVUX zdN%8`yk`PiSWZ%xa9+Z_L67POx8+Gj|E?Yw;5WbW8_x;53NHws5hi=XoSiUFHRn+O zWqw+15DWQ=IaF(s_*jMW62|)3?Y|(!7|c8B!1wvq*uLE4DB5QX{}Z!};kPi`^{^}x z+}lH44R*uOXeVI_b$YlbIGb|4$axOePIe2!^^;M;zq^Jq+-rYz9c8{_7#%(*+^!D% z()woMVqtClq(>MoAHBy13?kv$OUNIm+G?}pu^;50VcLcfe8})=QPezs=d931=1M|eEacNrZvT8A{`KORm7nbQS5_W(&mI*WOAS&f*BKam zRy?VyzQ2=Ky|*`)avy&e@B8z;{Gn|LZGIW;TB1rM2f5SP4^q#_UUI8X9C z6QuVP=CLE6e)KH!6C|5$j)G_As@J)cC1Ff?hrV6-u4)d)SB>zU)nm%~Df>(K?&?SO zm+<}7oXXVSeTQ|E*G_4t!uMD&bqQ^L$fslMZ<)L_QaFUc4CP%0@;>h{jEnQx8hI+e z^R~d}3yJ$UVP0W2vXhm}+(0HWaxLjdPspbs9-*&3=}~<_ed24>satJ#2lMpJ4(v2v z#-;o=D*7!An!66x$F-2H>Vx}p89NwjUhh2J#Jlz} zgs*q0Palq=6wXsa=W~+BU-7tO>*)0!Ox6y}V!X7;WS(PJA9b?#mZ+${_P)H{Qpn5nJ~Pdo;$(`YUo$q$Af(9@hUENNoePCY0vXhK>HE; zyXV8XP+$I4zc;h@<=|5Kzn2=XP@je|Wmb73VLm#yeS|sbNIVkerL%Z0VQ%`Ebosma z=>h7fFh`x(C6wEFev`lLv#t@V15)st{hVjx1@~9nX8drC>kwYQpC)AYp8VWOIqsl7 zO?i+i)FBIxlY!=xrZ6wc>%DrY57KCVmHC?q=@G`Zv-DrGR#k`ZjgM*?Qy#A7KK49* z`+jMB)X}_4f8oM@0ds#((S_RVpxc0*&JTrfz$|H8IB;;=25fRB^gbDfVr1fh&myqAS@^~`m zd4-Mq)$#sYv_e_=t}}?O3D?-#bOUNjp}Vt6axJcly62JV;9}cM0(ba}I^=rv#ZC z>upqE6rVDk`4ktYQk3U~9L7@KpN?2kGU(>S=Zl1Rhw~EpK+DvnN$JBRZ0~Zz&{yxO zEG(Sl8Z0NsIN7;4?Rd|~qj}Yz*1HPt6E@=kx_kVPu!rywVM|)khIVwIBb|AQu5_n_ zYi_YGx_?BP4rCcy9?}OBk8r8&M;Ob!=$g;HKWmH3iQcWx z)r7IeBFVH9 z?yad@GSa;RU1($;pb6#m4Q{6#6{ti-@?VkoHa=nh3E>}e4q0NOb=t{I>|j4Di~}zI z?XG(~|5v}?)y(sM_ZwdE#!r{Bg!BmYdOO=n?$zZxqa5I(=k{7-1Z)GKlFO$-OE4{{x$?CdBSFFe}ccP(98$o0DU zbzxGLkRIXwq_3x&UvaJJbQb?NsbUm$VtggPQA~VK*OW<3TGD?i?Y#ebHtMr%&zY1M z{O7Zwy$$v0Dd#2OcMoSthp*+2hfk@WXhCbj?;$o7Hli7c`EA61i)rW+hWppr+HMtP z@qqpR)9?Ol@cPFb;-7v4=->8x@$2Edgx_^2-dmpJHhTB_-g(UeNl5#m-Bz?k{XZD z{|Nt2Ea88Ftuv4IjCr@0d5w*1qog^u#x!T*1${+2>7#U@D_uBS%ox3-`EZI*lv^oA zah@pk_xUKK$BxnJ$+Wgz$av)GxG3#4w&S;RX5SSPwa8-5&hy1v#6>ZlpL9)JG|V=a z%!`X2sHcwm+HX_5Cy)1vk3RQ!UT^39P4C1;#f6=P*@cJS z_FF5$M}$vJkBRPi>(bi8q^A2neLkc`n6J#Fjabt}AJLp?KJ$_{^M>^&NWaG1xPEGl zwdMfTw^!>29rFAJ9?}+Gd+P7g`k(gw=hwo$N#VDPru}aIhbs10lLj>9Vdlsi3;B+g z9=~Yc&l`Jo5-wbA{><}@Sz-xp&FDLL>dP{=(s!8}X*H@K68mvb8vU#u^ICi!U&Mp^WFB{vYP0#4w#V)z7H^ zVEel{%z0wenQrx$!p3~U;5FX8`Y`V$wI~unkOvw{}gvGuvu1T0LNcj`cbq} zM8>!jECy4kUDt3O!*YwFWC&T+pi(wu%n%kMB4$+tT1pY5T!aA1MFB0h0*;x9V-SLi zLc=nX%!;Df^3k(6 zN!Dt_>q7nrx<~Rw`zU*UAs$k{mkayto<9i#gd61&fu56Z?0Ov;PF2qOp zc2@pcV=Y~@LCac2r-!J|cO^x?Fo$4=a*@quTJS+q)Rtmjn#Kk}*O-^X=G(*C)OW2# z?_=F^En8~6ezJ7EC0pL#A4Qk*^^5$bpZXyGj#$I`t$laK8rE=~GdHM2`8)YoEIMmE zt6wqOmhes!C;u-O(xg+jq^R8rwk0IvMx>xEI-n!c&>fx71+~lRsE8aVAYP{lYACbq zp$3;{kS>13OHcQZ#y=3uOYrrvfu5pYS`EacDc{}JNbde3c^zYF#j3GZ}ZJ4o>zr7JpO#JJ= zL5`3vGt`fZu>up1=-Y~uqtam1c6+5`>`d(d&aXE=7nQFXyG9`yp9~FUoG#cK!uqf& z<8%}6v6sRVQPffUy?uHVjVz+WA+oB`3RK}!Bnit1+>g1=SK%`}hXq)Irr~T1;|bSm zP=~K^lmB->H)J3i{c#r><0IscAV*7{abJ_?#1j|czhT~MXlujT;HL96W_d@`IU7@* zPs8)L*8Gi@$Q0ru?9=nKHhh@&doBM9WwN*Sv$(Ie)cFsrAN@MVTF(7+Dd!`nn}?;| z>+AQ4>a$kzP`obK#lk*4S?aCXD8(9V#pRU5sJlMiOvi)xtNA(nh5VtX)#=D^UgrE+ zeTn%f+o-)?+kCk~x&%AnRJPKsY;Mcc-8KB{-7oaFetVm8)^soEmc&g+m!Jcs4>q>T z?r}Ib7WKNQT^|;UiZ8JtjEY4UKhn0fi8bt1ost@h9wze)vd8o(7u3^@`0c(*ifV;n z^w?Omm*TykPZSNK6Lsor{uO;Q%e>Hm()P>S?0x6__~;~Sy3L3Fw(*>q#$NAEYKi#& z)Bkkyw9sF8!Jc|A;w7xY%UF#ycm*r591Bo_MVOBr*oj^E8Fu4Mlw&(K;Z?kbjo5(o zcpYVEPT($=^hO4FWgf=edrVo;# zCwij;#^4!r#6NHXpW_hT!V>I7lJ&?{{6Ax5kvMyt4P+smskgDhsm2PC<=VAeh>x&W zVd)8B_so6#EeQJ!PIKPeJqNG#zN_62ZQQiq2!nE$x8L`tQ`uYa5ILTq6Bc73j*{up zqt-a9*UF8Lm0;U^^T>=l_P3W(lzFu`T;KID&ohj<{NxVxfW7KI^S(CrE*px+vG`{B z9wn)X(SarAlHeHri29Mn@(SoF@7dSL8tG+g*ou~_W0%3$Y;#<&i-qs1{pcNID3$6{ z?83ZS^C$3gdU!SFk?}MclgKt0lW-d2ec$FetU@_%_pP>pUmS0)9oLVSd|1>qZlPkHYM zy3~d+cIs6^ literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/files.pbxbtree b/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/files.pbxbtree new file mode 100644 index 0000000000000000000000000000000000000000..b4cc2dc446f31cd41091f35c8ab1a64f14ef367c GIT binary patch literal 6000 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 literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/pbxindex.header b/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/pbxindex.header new file mode 100644 index 0000000000000000000000000000000000000000..bd190a771ee57db8055b65dad09f7dc2ff4ce2df GIT binary patch literal 24 Wcmb=(%Pf#)VPNkVVELEF7|e<@C|+XVS!!@~ zr9tv4gOh6w&TKY_W=tYuLW!+sM^P(Y?gZe#8$l!Wln;VV0+tag+yI^ggM8{4$p+2T zr-^fvq&H<7R1#y*Wf06b2eG#kPr2Np{Vd}h&>dUh3aNMa6^lv3tl;kVFMP1_~zpW^~0C2E#iH0{A-!e)t{gdclPyc@U2aea%>R}M=nfK&ZFKPa5DIet@#ya@(%q89- zO4ELW3wZ_^ErNsWwZ-4g^Eva>9=mc3vi2FAXUygNG5$I`@$7LiXYVD?)4sBt-uml6 zYaWI4No9O1b=FNm0%s(mNpOO?>V@D7wa!90<6g55dl<(*?{f3M&aKXo#%ezQyA(q4 z?DcJDp31X;d1f=u3g)@kIF3v3*U}2Kwr&aIuB33Ex3PI zFuOqzOg@^Y9cK=08SJlGajQZhOcYHw%tE5@fQs%180_t?)b% zq_qlM&-jM4iTAFDcmDZ?D83yhyFr;V{A-GYm61(SLNpNY}+UJyd=>Tln#?GwZgFsDI5$0tG1@K}xX-s)Wb zZO#;b0kQ1!ruX3*_uGjxO)uI%mi9`ySa&BD0p9yl@=-7}Dv05?-X-UVpoF4awDwv9 m2eH$J1a9*5uZRCpR<65@_z6s{5{vmiu(e)Giv?_%F literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/refs.pbxbtree b/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/refs.pbxbtree new file mode 100644 index 0000000000000000000000000000000000000000..9b2d654b1369746fcee65f8935908bad77f2a5d7 GIT binary patch literal 339040 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

    XU2Z-6hF+h)_lbKsgz>dbjD=s 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

    faATCfBS*wiM#l@jo($@(+=X9Zx~x% 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 literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/strings.pbxstrings/control b/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/strings.pbxstrings/control new file mode 100644 index 0000000000000000000000000000000000000000..980037479246e096bffce0d0c511bb43572bb4ca GIT binary patch literal 524308 zcmce?b*J>{Hp)2~UBsti$xM<)=5{s+)K zTeerWCtksSJ->G|3CEC7_DiyZ1vc36cqJYuTz1<1pIudnjB&XN$V8zivJ`zOrrSjG zkYL|@3egx6>3hx~s`rik=s)}`R!hWw?L@SZ;(+P`1AcFutWorMgDNAqfWsXO++1oh z0z-mD+i8phzDtKBMq!A*X+E1#liFi`+^aGM+Ap;f8IvLIZ2dLHauI*ALmXql@0NXa z+V1~juj*nM67J+Po$=HcNGSXF#3f+f^|riAjOEGc#D6^fE!{==o6Hbg;P>}PB{=%D z`NXAD`(t&N#*hGCO?QDOoN~2DF)E>ZuLL)V>CyHi*!?%wEyDiDi-cmRh82P4 zARh1r4z}Sul8c1euNG)~fKgSCf(UxdQ#`7VgyyW$XnXk2euhVP5pTvW#ABciGL~RH z5<^_xA*RQoINL#gr>?vQ{QkUW6faB17uCHS);IfQ*2{vo;a9p>!2B&eO)r}?|Nbqu z=2ZeDIHjfJRZtIHTg$7tiEqa?*{fmxs_d-SK>RIg5w8Ki&0Eem|B4ER7rcqZS7Vvt z<6`ZBX}`-p0r4Dcruqa|oho}%~FDBUk1&Q(PAgWq4Or0(>;x7YToF+aSmJhESp>2KqI z)8Bp*32?DIGulxlfcT^0-`80PfIqSL%5-1@;P>-iTMjn)gHZG=KP3f>q~oLWJ^k4V?)GELO%`@L!z6IlX*THEbreAEgV8OvOhy)Y*6M$q^pwa_d(%!lxvm2EDil>?SA7+Uj~lbrXNb z;#>s0p}`G>h>CUb4KXPOf1V*nOz<~oYDX-FFrChE5j%EWU}~SR;;{dt68v$98OO)? z+*}4FPQ<)S`NTL0*kYy;Cj-|u*W;uh36#la#;M>bGEJcPZ^gCrxRiom-R@U4Q?OXK z8OzlaTx`ClPZ5$r0MElEdrG)X1^A;9Ir^QJLcuxu;I@?FA9%fkewI@hvGLJ) zQFKqKVx%N4;+`To7;R4u-C67LDHHHV$3^C6Qc|k8PClwBrPPrBrKRkYI^z1~u9y=1 zOr{UTlqTZae#4~rU&WQ9vc-z9+v!7-EJnUa|E|M88=>bNd^v|V70$%HBJ zm&}?ai9g#@g|*;EsvaV1$JRUY$164!3qQrwdMXb68y`C8Yg~s*C7=$!DWyC3<1US2 z_@|``#YnTNS}N=VGN~*{rJ}wzTqLP9?31sbv#E4o_CtIs1Gu&npUOmiER?uZS{w;4 zT*s!evA=WiPQRzeRxLFPJ;Pz1BEu?rYM%BtAkO@bUAfdE_)_GMDZY^cMcLE}c*pa6 zY85;q{8DQ0d%7G|Q|riAjtM4h59L^;Q;ekSW282LQ$EpCTM5qD)peO)sP=?L^2mX?l1 zUh-$R=)A-doRG>)2Y&B@`er)J3w&@>ODDzZCpzA9ssoo!!?-Io2*uE-TT(jMbASDp zkq*3}@@oZ(uJdQubT<6@t&{!^0pG`;aPP2)b7(jH9gemSk!XAHk77L4!@Zvh?+Ea( z@B)q63%=|mydx*|GwR2`MPJHtN_z14Dio9*95Rhf&jm@S@g6BXc)h>u=F@{WtlYF| ze_{!?`&&(~xQXYJ-_-Of{3=#WrWlpL`#t6K2J+QtyprAs0~Y~t{cE)2HC}QsxU&PB z-ilopg8jPK8Tgo;sJ$rqI_0u5Abuv$OUs~uH~U7BqIb;{E`tVt1Cl`Tjr2HUWH6Dx zz6{Agc}CsSGT{7=44tP?-S;A&l95IKuqN^SZzjh7BUG)koKXbdyK!@A9$w@*Zv{z6*Q*RpQ77`(5Naj#%=$Mr^)s=49(#JEs3@yJ?2WnGiquV44_@ zf5+peRbJx=2i>D{@R>ARS4MZRDY^!Cw=$W~KWzZSe%O9P%cS6X!9O%I!9TA(#K@$e z{yn{f%$$$-J|E9z()`4~b)B3Eeg-`uE|U=;?gIOS%o6US+vKq`(RfDg7cyfW88=qR ztYZC7zmzG4)=OMw5&6$nl+7fEh^J*XA+rg+=n*b6&X@4Y_G~5%`iX2J<#ipd!DV5= zZ`6>paIjOPlScJmp{G_B0d;ZyB>aP)FLs$(B%I6PU*S(`5?6hfnaQI2`#m#@O0kX@ zj|)|bf#KijS+o!d=c!GyXl@cN{fwpPKC?i~VuSbCJtHdtU-9z_MIRH^vvT0O<0lk@ zKQ0%u3aGaw#Yt8XydNLbowyS%81vgoGpp*sbKn6W^0DGDoAuifgpAK-XEk7F`X^FW zQM=F?rLQNf1vY&c2tV^~cX#4nEfIU-VMUAtK)5Mfe=x4J|LC=8%%w z_wLTg=g`n!FFl(Bb@pGyv;PkvCkLLzX+?^G4Vz7hq4s;7_P7EI(T+NLe+1frMe;g2 zX<9?esiOYlUa&dUy(HLl6A=4pX*w;Zf%W*yZRFIEw^=0x+8$S=moq=mzNnas{ChuL zlkcgyB-H0iRm~;G@)M1dDZGs2!nr}#J=1f6&o%jPA(sZfu5}l488IH;%i(4&8*x^6 zX;X}fXMQs!H{$g?P$Y`MxJqJf0sC_DYB9GM8y6iPMVEMv&#flyXZ}p3=QfhIznSNL z%;q7;vr?YqVUg#4Ek%ln#dRU8nI{2%_;wB}kBoC8(-k3)0{{AFlk=!l&#dOr5Lbb3 zjXau{g!=bmsZLhhWb>HFgSZqp8qY~N#5^|m4%IdCC~gu74AAI&w^BgJi*@zPzi8y; z;8&|TVqO9Jw{=k<_G9a7@z`dOgPv|TwY=c>^jc|94Ccuq=Y^d&k}sc_*GQnh?qE(& z6Z6_wr?-f&!Z0?Ufc0)sQ_Cm9P7RynlNiF>lZ||`3-4Xd3HfBi{pTE#54_<%XKkv7 z``A21W?MxupW!9JE*I5&@FUXiZ<5bKywe65`4rsW&Tpi82$1lObwG@p@}d2n5PNP+?0ztPE9E^cHa~HHVmC*~Ki zo&z>n`3;;WTWbjUP53q2u=88!&n7zP9U7Jj5Ule@%hdwJO@b{J8~JfxjPzm)DByqe$}9kWw`v;&H2C$rmR>+bzgCo` zet3swmkMB>zu;w=Vr0%ao%-=_#e3=)Ul4YD69;MqCE(KIGR0ud(o#Y2Czjxvo?Jm4 z{0n3Uqy5aQZ%9G#hT1kS zXkDqWfH>m(JjLWB9C{!YR)Zv5;!jfeAN)veUbH>Rx5@cSBVvfk&C=kac=WV|oM z`s2zC)8AKOdeq+AFvPAP@7s8BfTkBd07U$gwg)70u`h)Lu7fSpCe{>$vKd?(E$lHU*QVA9FLitGvtr7{R zn4nSJwPS!>Gw(nCgIW8RSW*lVCjAVpqy&4Ob)=-+3fG4xY)L$ax^}R7NjXgX zjoV2j!5b*x6-(m&H}E{GP*TIXkQUJWB&5CKOX_&u6~8u0;`-~GTUIG)qn^tL)Of7M zQe-l9)=Kf<$=H#U5~|{T(4RKdgS$^jrTBEjHL|BwO2)dax=Tvxz|*a`lCp=y)iae+ zBo=RA;$5qhf%}F@)i?)_f1s7JVCUtxEXBz4#(HTwJ~WV&W{bVaiho01t2E`0%A~HO zw21xNDkxKoN?fkXYH0=fq$Z@aia1Z^(@JZx{^+KT3$7bryH4u1H*sV0Lnx=>{(=46C?_Yd`-b3u|09?xi&`H1q+mHx zp36i+pWZd89`<$A%EO<3E50Kxy}TA1@2=8IDUbSdPqC!(I0xP4S1i>@!Mdcpor1Vh zsAhQ^akS~oQH)F&D3>>5^MmWESrriPzm>Q~vy2J}`2Eaoy8?aR`9(UR0_^%*4z(&+ z$=h@7%&b@BkoOfXt|IRHTstc|x<6pWV^E35hAHB4+23+S5p`R6lvGiL-7yb^is1L( zZO>73*J!R*MBIUE^_=nEhownH@CQ5Ba&+J2aatt;edo`P9^BV69)HLekNXQa7vhMxrAtt?kE;OEHWq>_bo{eF~Q$p-$ETdjn=kotd% z0*iWo(8R&$eD}7EtRTeRQ%BnqW8iryML_(X!&5{7{E-sPbU{ZR@m^Q}Z&Y05g(!eO ziR2T7%Ha3N0jV+vKVRiDs2&<0uqyMh@xC7`sFfv*d*{AdS!R=%@gA6|Rn{=y*yUi7 z0f`y{X)AD52=cJ`oKgjRiN%xRAXi05dVdog=Px--tfJt2J#*2lq6VVP$zmYIA4(M~ zDNl5QE6pIjDu?(seriw*wkRo9O~CKIdP}M*;eM7qpjDNT--RZWW9UgKX5y4H>ps}a~aQOT}`>%Xtb`|L5$`!y6`Y)NW+_F1xA( z{JNm*=$B?{)$rVyoOt@S)~j>L=O;QZQsES-4m+NL%dP4(|91_$x{7uGJ*7r5G-bO| z9p_z-AUR$fhqVBE~<7#oJC*O3V7LWU#a1*%}KB0+gG25&KesXJ%Sxbu9@r;{q)Jnkb z&)Jr(rHvth2aSYU@FVo%s!>Zv{Hbg5waij)==~RN^R?`l9VRTvwb}A-`h#nNVr`z* z+eE&$fO=ZsW2v4*?w!(WWBuLN>zNe2lkUj1!RxlF^0jfF<+ggu6nzC!8MRf|E1c57 z(EB1wbyxGwd>sND(3Yd<`Es0CheI8ueCFtpnSUy^m4D!U?TDxT3abwKnf{&ZIn>x}(Q*B_cZIE^L-(%}>X;O_IOwjr0qxm|yXtL$_PeX6mFwt;qk2^!^lKr$ z4)r^HU7_=Q-Oeg?Mff#htwHUR0ZZk&GW7Yyth&%6ng6ipxXAGIY8?a5L+RUEb*$w5 zj^;7&;sjfdU|ybLzwQ0sCU==TbfJ`=*41dJ=fEuF&eq0TReY zqoUJut_mwzr-5B|A)pIY@Sd8~#u@_Vd+gD&Z`C4xV4dxX}|!ui&u5D|N)A+GESQSMB>sNoSP4%ew%k)r1*!MS_CsAZR?q@e*k*{<+2*tq3J4Pc8?FI6ZMnb3P zG!jnxNNglwou^(B8p-f)nwwB$x~`TRsrbC%hrhT+QkX=>rBWM7sJGx9v5^66{#c-x zoG@qSkj88}+*f}pGzRa#mC%M$R%0dk@yvo7dSk@TJZ)$;HsNOxA8Bk2CEn8WgvRj4 zJ>s&|giw5CQS_EsX3=(UnI9wv%VtyJaR70!{GxcA&x%cWjGMpSLI3Dtq_K^>WxqhE z9VR@OG|}mMw02w*1J}n7Giyy0+#fW$#y7E0N4vnh|fO_^&p6_D>?zZp$b=v#*HO)<~?_hbi|CR<2Tl~2c0ytD-v>}y7(bMKAQX>eF*;G>L<_<-&YS=ifDi06A3`OqlxHZyPfJrnAS&AFt!VZUKC7h~OG zJA88)ah>EzbG19p(PKh$@cVm?bI|?gA<`UihZo-Gn!}&)^>?77?!0x4<~ICWJXL9d z_wT++FWD9(W7(uY34StEG;5ZgSIX3BE{)2ut;-1m;b#TH4S(2T3bZ zfiUIX1vV$18+Yth9Qc+LmMOZkwbfb)*tbh}JMEs<-|DTvA33!S?f6`R9c;H!Jj9cw zrPe9|zbj2;r4`P7zsahtD6i)!X=TpGI`syo#6FxSw!-_Tz=3mSD=Su)QU4O7yWugb zwFo<@JIk%X?>!u+wU)7ew#_tXd&qoOaQcg%C#|(K;OPY{Oqh-J)z%v7`>v0)Ht@c1 z{${DQ7Ry8A+x~VN64Mj&l01dkHUjdHd9s6V`ioy9ZRqpg$xna>h)dq6wo#Lh!~5ic z-p0hbotZ3BOf2rqbJ(^l)~nQXqb&!2LzVTmJjTVfC2a-D(*xL)_^kUP9T#Zvq1sjg zPN^@nm9RdggM3>xX4jMHeWR@oz5-uyZS@3xc;_>AI}yBcbLbRh2ZODbYE(}mx93Rhu>bt;50~2+*l&dy($2Dp zulT#b$WH%ZvVh_oFvEkeQ~=uNrnAPH8n{CHrYfZ9Xq>tF(CH$ z$l8`<;yz>RWl7R8uUSz;vhls8PuD2z3F0{Ow<)1c0vCoE6hq{*zBg2i)^8r-qRZBKXf% z0b)H;SK~S;3Fe1Yp@UYGknl2Ky*FkP|HEG?tJT5Ayas8+jtTisJ|i8u%87?3t4C^o zD|bxD|9WJ&!)39f9`nn$UKBc-*hiDka2+kYmp=4Jq`E8b81W;5Z=nA9gZ>fx@Mkcz zk66UTX5y$GG8K(tI9NygNW^|GP~7-PirI}i#>^P3e}r{nX3PhANjTq^?GrJnf3jIPBP+Hm{RDZ!T&~wrA{2KKlyah zNrFE={A$qgk=8l&P73yIn!=E91Vn??%3} z0RPkWH#$qebZH&*D(RTc+@H_G1Ejnb$h#TR&U)7=8qIxHyX8WBbLd&!0&&akLv=y#Ny9!SL-6g+C8ne>s_Rn?(bAr z@1n%?=zQP$y+RiqaZJcAbTMN6zVe@PU96ZM9Um#%(CA9}Cs=G(j^^#5+Lcc_E;`<| z<%-r7>+QA28C?_bd*jxVt{To0V;M&=^x&TD;Frynu4c@h`^<2ms~yv$c9TQ*%F|*u z5#zJ3kh)0;<}J8qb))?G8*|-M)N!@R62*vA#Oj7~EOPUq>GUUO_;tI-Y_5F5B400e zvlQPZuDKn=Ph`Y*u($LH<$o=%$O-im#O+$QLj6R?dfyI_Pw>6Z@XA9HZI6nl@nh~2 zJNCVYXnPbr=3}utkNVRxa}*OxoVOU)o$_BHa(D2%J)_O;D#nFB)4JpP)vn1q)b2QU z6N}5c(d=#^KN&xjy4x|kzBK`{2Md4Cf66&{^_kRz!?-rX)52S1(>uMerk z^^k*a%)48-*dE{yzPp9%fjEOh+Zt47xK3;j1N*xFbDg69i-LlK4JPS5!0(-RPV7nG z$Dx{HPw=}+{AoG3>d~|@j%R7n;{{OSAOv}nfbwYZT5@i#=3mliv)A3kO; z*fclkBgXWo9si{HY#*$ve-`2UD5#5B?V$g|xSc;4eN6Q47F3FfC0OJN-aLmq|dWMx6Nzg8LFLocoM*WhoH%Tj-Q|1~^` z7wNb-&jF>s70ZXacw2D*!F6O)NnrqqwMY4b^F!PKA?fur+MfjfIHC^#FH`wbb^zZ0 zx_!;{0jR@3t%vpi9r@f-Lmfch%T!8X4?w(uOT0+igSWmTpMpQq{tNa~4)JAuZhp$+ z-0P6S(W5-Bsh0Sul+@2?|66foG49h}f+Q|wZT(XV=iQGhxq;vfo%b69vChHqX^nv# z^b6&9+D=}a(FY2si*XOQfg=25&cx%i{tkvNHgLxI7s={C75nJgL~Wpk`>n%A#DP-G zPj8*4+CUTQv7#kA(268+(_eO=G>C=$JXK_h%<%@F^t{px2%(tHJ`H!?o6!8^ApPcgChvu+lL;`$dU`L{F_ zegx|tVTX!I$3^G)1MT&pD)vvF)!b0^?VrO&=S9)?`5tK)OY5q)Jd8u0{y1z8125Bi zyEP2g-N=;N>M)!GaXB&w!vwUiiX+2h?C)l^v|$RKQ(Jwb43lI2xhikvhUqaq%99wq z3wN2r3HHU%9O7{ByXU_n4QKJW)zwOl?#ot47*6>#jU6tcKa|-hzAIO)R zr6a)I;u1>#y@KFcD z-fwx@?q<%gBM5jaE)++Aml+b0MsPTXzUZxv;1EZ#ih_bXhdX^>Dhlehdu4Nk1V3sv zGDcAT{iWp*X!qwkYK&0P-g_7~LZf)kpcq-4Qc!f@^_(gl=PUWEHp0TW(ZaMwU|pl) zcF)j9f}fnsA&dlna^h)i>LVrCDOAfC3I0$C4@;5hw}cz1qHa2mHAaFrG`*)jQuPxz zw^bi$AdY;CpaU0v!j1%g&=S>=HlA0nY%)g?=vNQwBW>V~4}oaU7SKoW&~FZL+QYME z%A+{UUpt3$@W%oMMNgA0;wT0Du8=wk_I=$Okx>eM?{a&PNc)2+j_RWf#Fa?AtDcCX zz!wP~7Dp50!z(HjJsYZXqcJb8&USq?iJgDZ>2bX-nWLrH_d$Hyg4}2Y>zA^+N->nt zB%|R+IL~c!G_C`0li=FN<{0q0wq2CQu$bRgRw%wr{P!h!j2s&m?weK}1726;xjIHe zU1eBokHK{}DxT$;_%UW|e6;=lD`c(-+E|?L%=HcuMN%V99IInp?2at{0tE5(Tq=$= zP^U$|W5>cj-_F|nSQ~n=YrDqV=@$~pZqw_=Cv&$5N`8$*G zCeEv4J2W~jT>eX*&JXWg!;Lp$yxte3qzPP1XF@~d2|`SNTYS-e*RXuT1RZ|P8EQ{} zefQvs<^zp{-s#M(Q*FY z%E}W(==rLvR1cRw%ui%7e&iB;qJsUB=czJLfPS(HH&FwgTcuHST{>V*G+_T?7M|*H zZE|uG6YQ&it2#G{#NrFqoxx7xVtO>5}Gl{86#zlRzMlT`RMZ7-Pw9#^hI;v^lI z_Z4yQ{h12Ia0M4nF)FS-%k|0NcPlDC8SkC_o2zS7k87rylX?8UsL6VBvJe~3q-B)J z68M^q7AMP?clLxhS&8j)f7dj^WDWg8iFa-*avY;gmtjd5|NINiuYwRdx{GGXN7f&;moa!DQYY)Oxmi-6chgA_dpcG z6^8OtY+9eC$rs>%o48i@)xHq1o~!3s6g{mk=wC?xFi+XQexbqN{8h~_bl|*A(ig@* zj7vlq9M(}#S=im|w^a`Q`2!+FujiGb3W%%bN`s;&bXQZQ1oldn5L5;Fd!MMP3jg|! z(5UXNJzQ0>F68W&f{JzWKTEBu@Fz5@nWbv@9cBfCr{kIQd&Msa`0m#+R1@pkyP)CN zOXOcv4RWi^FB9@dJ6@w_Qhn`9E#_bFCyD>ki0RSc-m97TFKzhKyrxRg<0{BbWpQ2G zThX4%!T%XKg{d6Y|K;~U#Q*0cLNQ!1j-SfI&*7hQQ-!2igT2?n z9JA!9X45) z?>OW9GfwN%z#n*bA2*Fd-Y1S>r>XF>=!IWrkQx|D%hS( zvr^*z=#@2%@(0(O)4}h<=g!kv#B*B^ro*0R^>C9Sv#X3cUBKt}vl(%^fboHE9o?f} z(P+QlJw}P3c{-1Lx7uycd4Z#UXw$(T z+Lc|NuG75M=ck##^OaPZkGM1o<>>~VBR8$(W(ZW@>gZ(e6nln5c}{3EB+8?b8A==> zg(?Aq#G4D_74T(@C^NK-BzUfzG((1+ij(;nGVFAHkE8aZ61?z}Jd=b;@css2CfbAd zPl*)C-o^Gzp7LDLX7ae67ivLfig>OlvC2WevYMMIfoIZVb|&omHsv&Ds)*~<7>=T= zL?3;oj?ed(f6mP`V0YRBX{JE!ztE|DU;no3Oq=p-vS&eOD%I3xvCs?kC9^onV*v4f zv*c!=7k)g@W)WP6>(}9C!H)aV3wajSg~{kvXDOJMy9PH4yyRYQdzJ>j{>;eD;^EJX z3yNcJ?_qnE34PWI=onY<9GQjhU64W(f%qL@$zwn-32Zy+^aq<2H)rYC|6>X%v%wc+ zhO4th;GD12S-?=+Z$-)%QdM)7jP~;T#M#iv-plrE@P~Hu%1o2;+{aJeP;Z4608x)6 zZvn%Elv)hLb-3CAVYUT-haQz@8;I+J2l^Zi_X+k0iSjd>ewXK<{)5>%YI8)`t@oig z2mX+~kL)=z^oKP?I*t^4Mdsjsn-p3Lq&!pymRb+Q{Y~04@*ETKj4vz90Z-uXoT`H# zrIY6p=wn`zxh(7~S+30GV7GC1X^xG3Frtk(7kt4}CAhgF`U|Bcb0wOuPk`9prQQMJ z`L@(SAnK%aZ>QbAqN6@nhTV;M%()uY``7*EToZQdJeTGwh+FzboD2J8(I|Ev`27`1 z5~{n$S1{)xeo`nGna9&Oh5@PlqCm>`6Oi(Z1!7<3`%9V!d+zZqoO%9}OZa)z|3;~# zxd!5vs)_Rq=pSuh=cvG)hYX70ZXt>KM@r5l^9i+E7YMth9>-(p*+BSF`k|voN_H`4 zOYpD2SL}QV=TqzJ`h4h~X%Tfk>;!(yX3nQ}r}p9IOSmrA?M>!cI47kE;%t`kd`;$? zG>*1F>VGI6%TNT5%&7Bij9WMyI`WZun=&8u8SF5K|B6TcJ8Y3CMkcmU<|x3ah1pp~ z84~xwA#s+CdRbP=_)5k6Qr*c{8nvG_9?N6{!hV_k@wjk`gZ{gfg|7_o+->M!T>kIW z1uXo(QJY=B!Oq*HbTP6(22Yt1uki{HJPS_89dTUn84GmeuV@-)9w}X&EEFhDZ6NBQ%o8AZ%1({P3ZtBU z=F((+p@=#wsq+hAKhWijMD;+oJbXNse~k}Ks=HkQd7+K|Pl8T6Dcy=_^!itNJ&^LX z15%#IYh2}^?_xVyxAz{!({@t& zFwrc!9&$XE&Gi}&#$&k+4hH(paO?#7m5ZO>zoba#hi3RxO~d-PyrnP1`nk_eVizgM z*NbL~#^QVrtP~ee`=x&(i;zcBW;~F_QTjFBjK^{(9Sp2bB`zkI*VH8}68^=yC$5V! zv&mw_Ps%oZjeo~uIXfN`jrZN{DlE2QzkgzWerYWM{~JlsM_GdNp0E>vcwWgpoh;$d zUuF$iB2u1?@mM|>kJ@%1&dIGNzeK=!(5jw9b=UVFOLU$meKBnb{PRs;VK0%r#IvN7 zw8TQ)8ErVH|Cf>4QiAn*Rm!AD%JwEpIq;M#8;|94Ip}Tig|U=J-Urs?mx9N?k+GJ_ z&{r2%mKc8Gy>f(GszP7$tFgqud$KBC$8MZZMP6zoh%Xvw+2LfVO?jHdWBC#ex?fad zml3R6VrjBYTZXuTr>F81y;o=Q%fL^*`;9D9fSdgehGteI%d`Z1<@%6i26)O>cQ9OF zt+32Y(Epl;X}Xv!N4*E$A7(A*lJ+NdC#t(XUal>t{N-klO5;@vcPY2Zg%Y*X+OGE#H%TE#aJa(pvah!g;klKl?T6 z-?u#v`C3gn-`J@_hx{Iwlx_odDvu1LsVel%IZ<2fv@ma>A6jf=+pU(xGp zEw3;UXYC9+#ZZgu$_hKFUH{n?@=7jgdz8=9`o6vraYrS1VS&67@h2zV)mzP#3FDt& z2rDhr`?-lg+=u)hC3I-FvWlMnuf>QY!+LvWqQmX)kw-#*?ux}mTJ_5Vgrvg(?Dh}*X{le8uQf8gbEZH-BJvXeCy z@Wda$Y$Otzr?0V-=k-3yEv}{4-G3>b`z?*N8qTKvcXZIbqMEc` zh>c4wjv%)~T@QZGFAezh;Aa-j7S`kXAJ^oZN%h1M$i|cP;1A@u2E;j>=U18P;WZ_6 zib>@Bhy1r9_U-*j^0y-Fdo$P$_72M5()#P!i2GK>b+<-V`CIV$ivGrbD`VWLA>>;F zdjE;6)8A_|_pOERFP~m4ehVJ&)-e`EQe!jOz+$}hLf^pAIxQAI?-8SJ5O8kx9xBrL z;h)_c<&8>k_gDG`h3?amWCQxi%ACRmEjRHV?ayt{X?%B_cK4HG{00;GDKt~vVB+tl zJ?NlrP-1qX_B^w`SH1&(RG2zXh3~+hoP_`QQTZ;x{tG;M*ZfY4jb~0Tu)j0#J(j4H z$Si+n;k+uj-oa>d6kShwX(RXpIqs2-Jn|8jSJ()CZ=<@xMiKK?HwGjNB&dJ2F1VZeqck;xtDw zSg?&sF;ZoixC#7G@w9%fZ<1nqwB2?4S9_C+{Ei=~ZPHwXIXP6`qYANHo4=eAf_*Xy>j#r6_k z`3Yo;jqzzWi{GEnr5N5;S^Az&YL~hDSoj|N!9{;*4tAen ze6Pi>>w&vP)$fhiya+!<{T}?ui8t*Z)>bao&#cNwwhB1syy@hv0^-c^MA<6E`dx+c z7+aN$#M9^rzg5NhU!0 zJ59EUG2OkSCfO!qz26zkZc|`)@2|$T|M9su(`>7_4R!A`Z>ihhhkwplo1&-5Bw;&A zP&bPiZad{YSybK5#r9d$kHqMDx{quJe`wt)jbd^VY}QZR4!*<^*D%i9k$~Ux<#Bxn z<$o=K%$N8b0@gpz5wase{7l#0;tm;~XQyw&?f4(O{#*Ce9Y!oZpDzJD;|8KFAb`y-t@l@Ci{@{4tGz{pWzr@`wH&>6hbGaih1McJ3 z>AMy1_O5O0#`zZn%7u>IOE@6%kHybuX;KC2LgPYj{AW{{%72^ ze?a`fewT$Gc;MQZw$uNbn8EwzALx76WW<}Rhy8(W{EWKT+|PUP9{;{U^~B9no-6VJeEtxeyq-TGVV&Qd z#~%>DJ9?XaKtcVVX=xo$v0sW;mna68<>hJn|6k%A)5|&t-l#C&^W>l&hu>|Evkw|L zr+1Ds51NQ;d`|A55gQjBAJ?f0cZf}Ty@`CET{%SKd@anNJ>*b=^=G~>Mh+>yXgAJN zML47(pVmU_kdAt^PDm7^;_X+~JY>b}1tKTNVS@emYK3-~g@0F?6N;`U>&3%7a6uRI zu;3xgow&maa6|{2VtB!2?ywAd!vg$a9Xw}s^)Sx= zz=z#LN3YOPKTP=-?O+evu9Ra`V^E~1a7VEt0Gjas)|9qz!aYwL^Lr==HM>yEs zG*zYJBIg*zvGY2hzyn1-g75nT3SXCxs95)vO|2su>ay`!=?LA2QTcVVb;Jx3CU}`U zV#3a|gCf;E<7=`<3GNF9e-%_sQ?&qgn#q z*9QGe7jhK5QSnQ^Ye(&v?tM9)JH|qQE~!t2EW)OoPb?-&#Kx9f~k7(xz#q-)aZ5lkZ9^LJIsRz#59vXx1;eyF|J1+^CTae zA8mKdZY!SzpTEz0{7D&pNO|m&3hMorh<;MV_>}eZlURT9T`h7FelQPi0`d1#FKY(X z-G^oyCoSar$!AJDY7TlbY%oq?9YS9|Qcjv!r{1ZwlLq1{oQFLnATOyFiKj&HUP<8~ z^WY9Sh2Nh9CRjjRZ)bNBPf`B=qj+~LHGX8lx1AM#1MyetB8_Q9+!SG7CR~-#=qEOZ(kZ9vMICR9|CJojDP)el%epzcTyLpg1)iCtQPl z)MsuVIn5%U-J8l3!&|>*PqX-5={64#_pdKS$8O|hKhxoFTSq@FgFo<4I1PSxhTgV= zH4d4l)tLW*!>h&9;EPIVY9(^ois{kz|BC+oL-aG?Pa+%7nP)WA!-4O}86Edq2cBtX zz|YM6UO8hTzHS|KM^9(6XKb|Js7}tm(Ro6Sqb(}lo!u}KdjZ{sNHb3_QF}*|9ST0HP34Q;8$Wtdl%u(f+ird|hJ+D^AdxO8V^D5SPOwc&5VSNj~BIga@ z>Ha|c4*9xYpn7PIp`6#TZgHGM$0aAhHa)lt3HXDHU+EX5q~n?Q!{h>Znf_O02Ty+t z9q)4jrEEv<+<;s#k?$Jo4F`WOu3oUQE}2C2B5~t=$SdU{i~4EzRJ_Q+zY*i43-B{i ze1}HIMTNOuf?Sl6{(d6b?>*m~yO($HP59FUO(($3RwS>zmp4<6uK{_tdAtR@dt2*-ZOE#bjJYNAb5Lf-bjjKB9N~o_<^tE@R z9p}~V{Nh!E^8e}RAme6c0+<+++9a^ulZ8HA)!vb`CGjqqAs5QYFsygfAmx+2C6h5*Olz}-C1#R z1A55wyLBCWWXTwE1J`}B)CELbXNCgd$2HB-{ZEG|H+kgw+#LR6@Cp$YuwcE`O4l_@DDt3esa^G_0}^UmrRexrSH7PE)Fu+ z8vs*d-ayBX(7wWs-O#>vj_z7rPPhdg*Xm{tdh?x=Zh=2oAx^v{(Rdb4^8gV~ z*^ht)2-AGOLfgG7%R2qOlJOW!zfHTPV}6c#>Mav_+P+h`%|ahPL%N0dLhf|ZEfN3! z0(X9n@`l_e42opQCUTqdEiLXKQ}$zEM$}JUApTz4=by8;F+aGwn&x1WO44nE&VT64 z52c7Bx1cjSOUk$H5OJkS!QLS%@q9H>yaWEgZd1L(!G5WUO~A+72?^b^$&3 z`ya3MLho636nYNkM|&9e`zwVz0`B7)jhE^C@SNKg^&@^hrj0fU8_-QW?`!v#n+yxK5(8=C~Jy*9h#$D9Et6Mn--C6cw9Q1T&_`BFg zZuVW{t^$7FP2;Wxd!aQJMR%Tz+}%Ds2x)wp+%+rUbIEsrpW*ZK13-L_u4PyAu7dU1 z{{u&nsd3r*mBW6?&3RcLnjBDG!Ad`4(hK8zTf(=ANUbZ z?g;r+dj~ujfg|v|bC&%T^%rq>L)~V<@8~)0I_yL?4Kc1`eq{T8@mG3&jQ-iahx{;C znrRf{!sn#xBL1FqiubLX2K1aIEXp6(u{C$w!uL6IrzH2}T*PO6Cf$?KUShX+PX&Hd zM7wR_dqzDa0_(7X@K z2Z%o^pz=(~HoW01}1n--&rPgim zdJbo@Z4UK!u7G0msNX*Z*tUS*f2Z!t+Krmv@5KGC+7j~Jf1hr1c+apbJx|96FMUjG z)RCvt2+`J1pW%~=t%7IlSz;T|4^F~3-0vI@v9^SITXdGQ?U)~~@FnXZ_?g_p#fPvL z760W?(nIh^j6d~4x5lrNEZ*stt|2HtOsX-FQz4`1iy+(Rqr zxac(IdQtL->p{G=&PtEqhkud>I-Y|+GmS@L(s|zTVeXNFJZ;aQJ_5fxTXo@)hUd=F zH!P|rmas3PK1#svZu5eFOp=aEJnxM@dcXZxLY~TBR4BS;jg}uPc+TippQCzI!kKo8 zk9FuZ50l3R>ZkcS`7zD`SB`I?hlwZK3+SkaoTm0W!F^MvYdRgz{QX@29qSs-+RvFE z&N|y^59h2OujlL*ujl$YUeC4H(cPKv_27^$c;iRU zxv#|EE!4wBkMz5Zb9w4&>oG90?jHL)&Iu+bBRt`d$8Rnx6r&Q%cuIaE(s+)MCsK$o zyZZtA;{QW)6o~iY<-RqasNnf}kr9vI5eHWkaxlal(w@lh%Y9#aV&Qusp|b1~1%7;W zhH~v*EtUd+5yV6ea zsfPLOs@qTTdA_^SEtBfOmgh{`ALJ&APZ2-ac+Y%l1MANx&j`@$r9HzsFx#F$Pl3NT zbcLtmg17Flv_CSsljhhxb5wjL;XRf5nfOe`ybGiFXA0IW!~6U**e4BhvClN<-MZ+{ zRQP@KsrC$cC2>Q9XD0GrcO*y0dAbF~XEyf3?8Vx1*!NeTB|g(o=dZ3vwBKKNvHYCJ zywNA^=K|Jgy-$2D!jG}F)#p5TUQ49NKJ_{HgBe8qIp#4x-XhQO`MWpgTJAag@cSD` z&yCo4m#>!m+=}T@JO34#f}P0!!`getJ5hXZz&q*fLY9uSEWMM^I|%|x&mz4hNUvEy zMG#16N>2o-0tp~Zz(f?JNrFffNNCbY=$!;brN7VYCFH*MdcXL4KkxkW+%t3LJm;J_ zJKK`nC-{F0$)?_D@;(8-cA3#YG1+9LH;12O;MX3t8lPm~SKs^D@RUJZU!HMN%-qPX z3(Qk9i@5FpRg5I`SM;eBJQcn%Q_Qx_{KoLqk9sK3FHTYM{rKq9F!JP0(?12juIq9? z?N>c79PLpK6F0QBaeG`L&p7>jCDLSW8STWjHs8HaPp)0GiO#m2oUGH3M<3UDQ`3fWYo>I+CW@K zl<6LRZZ5_sD$WT$w<3WQ zYkgtHd1HPFhT3HgejI;cLq3iyjlXcf?v6^#3wqskc0Ca9>weg0eE~gbXD4Lfv5szv zGG*TI3+zwwhi%+1qF6u2UHuCyaM2hi^H1C?(^#W+6LZhHxSa=Z=m z(wY~)tNRZS{!U2);&*a4=nPa(*>!&KB~W{>o$+}b>#H1Wd*R0at?F7c{xS%;O$d3w zyj?~7FTtN|$`=XiD+c?xHDGw9M?AYfWnLNZp0L6KU`|G|ZbF#$t4j6ozA_{3+?|Y6 zU%PR**q^lXe?_hPfd3WzOg70C=%I)6NFE$4SWl&UH_Q035AIw~m|zKfKC3Ro1^1tc^>nO7k-`6dx#O|lh;kljqwriX^tGV5L?P`renv`k$}m;3Yn}b*FXB7#6f&-R_D&4Q-Qe?-5$L$Q{K^EC<&VaQ z`U-;vi1&t{@AN73SeN>LgcQiL`iU>0FrYr?_pr#r;B`rf!iIJH{Y#>7;JvA)OG4ow zncd7H%kuBx6=CSL9my%8m|tAMQj|}<6HvsluTITlp|WCXsQ^W_={H_!Ks{Qf2bAWl z>#ckc6qFfwN$gBTRqAk zVMw_ziAp~Xzjrd+q|(E$;)^{L$(Wlyl^LIF>A!=htjM1=Pl6(oryEf@;Ai>#yvl+5 zi*t>uZ4FksyOWN^IR(Uqmt~k zpvuA1fv63z(_o5;&Q~{i>`^g#Mm_jvp8Boc8A{N8Nsa>erA#e&WXy-EG>4S3}J)4d5gU)Ly? zOXCM_|AE&z@th%eD4;gu|2iL=B~ZOI-Khxe*TyD9bYa+=aM`YlVtszEO>}VszBf7| zmd2D~B$n^^G`#=PUipgGg%S6EY$Pi4rNMvgrt>UC*&Z98=1t9)wk<=_g7m!d5{UQJ zjy}ND{v^}xOXOg1zSCY3k-WOi=P+Pha-I(4FyMKEtb8N~;?VWI5X!;8{<4XY95(p> z{@z3m2lCOSu1l0#6(%|GzDKg?6%fB$_2=eT4nNL6k2*re{C;`F`MOIy?846JTYQc< z>cK9vP)ySvbmcIo&O7QF-?KT5sPm7#d`@$LH`yTN!X&4y72az}feUfHFaU`A^S*!B zbAm_GuhwfEn~wc|dX3N1aez4;XUIJ{gUC~v!z`{g@cpm(yk4J&QC3>!p>{~#B}7l3 zr&SsNY{tk`8xwjn&g<0|`sldw=gxM$0oRRHPet@j$S(_HKJrogSLg$842a|m<9L;q z6LNa-|3AxYwopEG*-gHj4vaUrWYWjMQ*k+AvHs-D8X(RzXDwuGW~b$J&ZR~%Uq%VooU zvWM~ILLBlh&zN#KF+UOy2D!hUu-uI_$-p4@TN z%c_APc*#gFv#~r3j)P-&Jb4VzpRqBLN00MPWIV}ZR^UEzDiHT04gN9ZG2-|i{Zhna z;$_bHo;=w9GB;Ju%bq;oO*T!Lf~Gvtl&s!)DuAnMhOu=ZdG*D>=K_MSVm{ykM)6{! zkQaQ)*kvKF8S`2MEqQIo`vj#YFXEO|sBh2fMCH^cB(D?w?vY}@V&;w@w%xcm;(wZ2*)Km1bEDrhO72i85!ZQ8zlq z7BB$UHge^|=Y3>Nng$9uaozM|UXl;>rcu8~3K&rzf6sH}kK=rpCyf*cB7e31HqpE( zXMM^S0FQRyqey+y&JFxHIx>n^b6MBb%-=`jhsJ`yE=dS!=y1%p&^Qg8R54~fhatGuA&&5Z4 z$*Fv|oC6neQF&%L@Kxp|Y&t)pRV>nic2e zX-f(jq1U5=uMn=kR1M$7eE8KmEmp{k_pHtPvV|P5f2_T|5Uu}-FNH!*j6WH`7Q#N1 zR_L!pAw9-BbaoZ`7e7@od!SGp>$`MRqA-KJRNR*+tVf;QjJv3;t`TGlgI{}gT!5mc zUvpDoE9@PtK?>WHh-*6#|9`Yb$)DyxPx;YB;UI$I2S$RCvuWz}yzEyesM&Iq2w3&NT4 z{jpWw6V8h9D+Zo3gEut7#2GMtOP=8H{9ARPQH-;peh;`s)SjQ<a4`Tiig;3m5Ih!J}KOO%yi*H{XjC zx6$i^CxPM)7laxuX=p(Ag-?pb`2E|f~R8+ zQ}HN{`(kY(#pAfYtg)Xh?uXrm%k9PEDgQF(kyMd#C9K(xt3I9*DgnM^Q=XY_DgnE1 zYq~zuOeGn7?r6xWKuJCJ#VTEZxX#;KAw*^M_)!sx$tGX(ov9@9EGe1hDe1sIIJ`V5 z=}gs$?5igBl89d!`#~rPe%aq8NJ+#k`@5Hg;@g_4vV<*V$X-wW{92%t4fYC@=Sw+o zo@_RYlyYL99Q0nGlsoG@(laMlDv0qeYhtCa4$_TVAmcoeXP~E45Z4_ekMpG&#H~MK zqL^LNd_FT)+KTmDbC{Gy{G|7i-KqR(HDma){*?S?;*u`0vQgx#@;Fb~c*-yGYyC($ zdfdNm>KaGca>lIlmG=e*%GnTiuS217j?}nX_$yQ{1Ao%a8(b&l%7u-LihS+CE!3NC z>E;<+c?N#uxX+i@<9M!IjV;drs|~c2Hvp@55s{f0ah11bm{(>bDer*X;xu30iTZlE z%1&kJD@H_F*ZqO=Zmj?3o6_;X99MZS{FYlx<-;jEZyd?ykF*h^EEUZEqQCYTSHa<7 z$aIsbfSw8}{h%MlQKwDX@)i7eZ~No`ThRzRM=S6Z!?@GFKi^a_isuAR ze+g7Hrq(~3@bTWVB3sFvi_wm+#8rabH?7)yQVGYumBFuBG2cbUHJe6@sJ(K? zRN0Tbb&QcJ;FafIYpP<%o}ZCCvQ)8U7@zziQN;Gz5%h>|5F*!}yyNu5W-ee>DEFlw)f30i0 z%cRHrZLI=SPByaqBr#c0PlI~#CL8=E)hs4QYCNeYd(zcz0)Mi}XW#Uhz_0D?XGQ$v zT?<9VcZoBBUsh^rs49cwqLkM{k*V}ITh)MiE&fnMS*e|3zpS)Q)YEh78*&q)^S$K`5D){Ale?mXv*t;r0`*jC)1L1e0y8(*HCawI1y&41m z!YhSpls{2CQq2I_(SfI^II%QR%}mEb7{~8b?7r`-mLV@mJDE{cxSgq*KgFZr`@5=z zao%co+fywH|Alw?YEjtj)PPh&9<rt;4R|TpYQ}dJd$+4websO?F zx0b8A1NBv>imN)}BW+r<)!n(1YHv_?MG~nVMEqCs`Y5L5u3@1lzj>Lh9;e66X|4u? zeBI(aRF?hNDp11!S);Ltc<-vHC%<1x9B2B?XKR3;lq@KsWpWuJ?WrBa_vSik?6t8DvL3S_ zBi~PcAhl7C%JRxc?RaTMJza`%tpD-3qz?EsFW6X}|B(-MnH8Zrh&#I`IWdl_Mi;pz)MZeox3`I?s8!Zd*NEd)aSr3au1@r$?p8LB)U^SxjO6R$ zK3Hn)Z>fvt|BAjwwyqoNP*uU#Mct_m?DbJu+kPmii|b@flZdNs82f?ucOv5E%3NLi z{!Fq-bh%>n^oW1@G`=3*5k#ZfugWOI7*^}wHOWCQf@{7I{A3`89z7P0lb zS@%WluiHpH@GJLqj@668uN=47dePK%W16L;r@lVx`IvP2)K%Y{wO@5s7O3xly%i(4 z`ruVPD($Q9PWh#-ah0v_PsvGt--hxWpTrs%kl)@nga*dce96~;unnw`-{-joHpIE< zMxucY`%baVt_I*IpB7>%N;~GYH$eQ7x~@NHl$F({C=IMNG!!vfO_kV5jP$<#}^EERY35~E0THO(r%B267rbfuWR(D5~ z)idwA8iAh})A&XX98dL(q>&S{VX~zWcs1?w1gNZSRKVWIi2gs$bB%Dnqx-#wtC1h^ z=DrYU1b?M@hl(g$ciCfRkf#Nk1hXE`2^KnlkQaWLj*Bj)_b)!1E-!v5qU_K&CbI$g zOe^SX6vgxXZ51ulu4Y-^nAuwlpTnP)Fk8W&w_d^=r2h1^o5Qd>qXK7!p4Kv4l;7m3 zY!{aWyqQ~Cy=5*7;#Ul+X0pJZiX8P=Y{-Ajt1QK2lYH95XK~9I-HtnUi#yey9A`>> zWU+vs@iq!sD1XKGSqt``WRtaSnP?1t$(rdxV*}0`m*xT?ubLq=HX~n`S_K-z59O1s zp2kMV(w#zM2XIVlQ)4HN_gxBKV<+OTewSL8$0FES~iG?A6hrPYr{UG z-y!Ph^6c_ZeeIvKJny<;r(dPOyLkSSR&O8ot`nbgvs6vI>qh9oyA^>Zu&?~NxTT2|*Jq8c*y*^=E{`-}vhEA=$Z$&& zFY>naV^^+}ND9WGPNs}P#^g71Tan+UMu_jUQOxr=4GT@nVGSC!unMo$0sR8=h zhJ>PY+;mG*b5_5lrH^w>9s82Y_XcIZ86!=-$cMR#y(xGzH;Lk^rD+uTz5b28X&ldG zuFv3_Fflz9Ij@ztooUGlCoNMYrx8OgJD zruS(4nVR(JK+k(-l-4u8) znw2N1Ae+{Nf8T&Ql8&;xkK^FKHi>D6@V+}`S5u?0<$XWw?DfPbW^SszXZiQzbe;Tm zipeH(Um?xGuddw8)7*%9X)?vt+>Ce*Z{VAovpyF|&eME1k#FwC`Ydn9HTPovw#_k$ z@;#qfng_wdw)Qm-gQv!bK=UZ%avm3zNz0k877X(G@i@K(>RI;dpP?28@cy#LPWz=F z<#M&aaj)LrI@SXIXgb^rw9sSzktU+7J<>x&b*?zq!cC8pBlZ@!-qM=mb}DP13=6cd z0-twswFsl0+Fb(=?350eTEr38gDreZ$ZuMiLR?GmD`MvpEsYuaUn`L75x%7jehvHE z($a=~>cugxC7%Bf#dnsL?p)Y+NTj6`_jUQU`C59j&VR%6`j52tS0q|d{%=RcTIqq6 zWo#?(%kKVUqNuf0vA2RBitU3)D=Yl&^EulJ_dnS--I`b{@RGiV`Bwha{kL*z&Ooa$ z?C({?T18>^o2{N!aa>pB&TA3-lLnvMwYLVZuE3^5Yw*5lGiH<4;LqHM)e>lpeNNeK zjj6R8`G5M{Ly_5ADAwAK{8nzkwhp3ycW$;j**iRD zrF_5Ue~r6EBvm_eydM4aFB0B}I&1I*2>EQG2v6(o0Rf`EWb4!Me)$l!BU!wc=i!I6 z*Ew;%td%ptJ27wXGnNl*c+XLOjHx|? zyiI#z`G7tbFMQI|o`Idczr@-bDbHXLWmP`rKJX)6cD3+96#WfGkoFGB)9E$-oQ{nq zizrdg^|f~*o=2DL?I~a58GQRNuH*9UNKk$y``FYzOzk^k9T;GTfTe>T_k;C4iS}`< zXOp@14&wT6CLPSEw}!)jl<)U+oZZva!3MjFJ`iQaopJUKw)~9pfm!$fc9kzK2p_;M zdG;#SAxL??igiH0B1e8thbZ=iW6wRjRSlkH_Kq~(28T&UJ+=QxMA`P$k&XuF$-WXg zno-xxm!1#Yz!G^Q?XAFaANlBdt7|;sI{1M@h9uhSkw@W4sG}GA@`&el5l3kfA{tf% zI)-7tL3Pp*{7fSy5PG8)`{+0k4)C2YpR9XCI^n*9tnC=;WQ4zS&kIyvSs*9hi2=S- z(AUX;{oOmy)yaVUxLPh(dmC`hudxnZ_&YU>}+S)mzPO|I(zZ_q0~xC=OE=76Y3mBJ|{gTouk0( zTP##hdpMUs^QkK#@wGDp%U2K4_187&@1l9pH9aXJ)2Kb^LiHxp^K{e$=QIs<3gUU7 z^}eNx6M6Z)qp6FV^2`i%fnCXj0(=)gMayd(E~0eo$3Pr!V>i6Udm_rZR5o=9WB#I} zq^kjSJ6Y+W^W|fP*t-N_ztT}p7rKv!=h?fWPRZKEp{@>$D@>-Y;FpXVX6ouj9h?jB z)Q+@Rb)hTfYu>FM>k5CE>R)qR(XZ(o40N?po}HvCu0NF}g+Mn3vMnvtO;79XN1>Ym zcK-2Ox}h$~+Kr)ZX2i>DwDOrPS_*?!ibazsoMWnkM@#Wpki+Jorth+T0>(m45gij8)lt#LT zDbLYR_bB4L(a=OuH|G_2K4NrkCD+k8h0)EMEbf2g&T+Pf5x=u@y#?RHjCtplkRDbI zc)lP#Y~X47!q)@-DOEE+tgR|K)fUUq$l zPt3LVGU7REljZha27G_-*nQH=3B4<7wwD)i-RQtmI}-MVr&rK}`IkwrF!DaIdZ?Eb z=qSulR3BQEp!U^=LJ6B5{vLO5HUo~!+*f_Qg22_y6TO0XZmX=x+YG>b^*x<%{Aj*r zS(^iLgM}fR6M1Ob-qO>EI5IWas96yk>?E7+)3z>K^uOO%BC`uo!jeY3FbztS4+=qVb z=hYYU9|p0$0~z7Ne~JH%y&26&A3gkesT3%xx@-~p7!X(2zwJ~`Hu+DisgDhE?^8k_ z2jc5Ine78!=IJxOj~n&Z`IVib{ENkbK3>R+wU$0X$a7x#sH}=SHc`}F`;DXhX(L_` zaeP-9zHbJeBp=hJu&=Kf^KP41ijw+wVts8Xf5^jeq_0zg?|pwRqN465OJ6Va>ooB7 zg&+U9&E9VB2YwQ}%=R-Nk2~`7{pj&^;fg3T>ICU$O|4^QyUICCq#yXCw=Tx|A^*~b zcRc-YoRDK*as7gbU;jyi{m`r?VSXjr#^K((l3g-n3Zt#2R~Cu z%JnxwuElfx&6xMVAoRCF?{*)qKLdMZcZK>pkU#k`j?Pb$KlV{%-V1a6z0h~f;QM>= zIe}*?u742n^_6`8F#J2W%ibURj@qK}(SB{WGNgYL_KNf{4bWr%?ARqRz>vzD>is}u zfH@^+jyox9H?MIGp!_G}`~WZN*z8CQ@Pl{We!GZQo}wS|)SYS>0KT_1)r%-M(1>_z zYD7$Hd*3ziU;L1?dB-yl>o3oLJTTCSy6SRM#JAZ`j_YPGA%mFgpDQS@TKPf$!ke70 zE%<;P1b(e1FFOeF%N{Rh2YFNRN%}lW3<^T-Xk`b5DLw}lVwg`t>GJ5lqD+DdT!Z5H zeogI~_CY~BuWr4Lqx0mgFF;1#`gIBn#`6!A@sVY)0eSi36gQZ`da2_qMdi9;!eH=g zuc%Cey;MIZKiHr0gWUOn9UR8Gbaw>?Q$Joea&JEwg8AC*LHiIr@>g`aC@apljtwz_ z|Ci~3A!gVQZV)KSN=ZFKY^nDKNju8CM*~CLDZ9#R34Vw_B`5XNFZGrosK3lDt>7@r zQ1D9!NoIDQ7!7m=9Da6`?w?yCL;H`IW*a?bD#wZWemO5afW{=a#Y40S@@(}f!f ze&wFY0gAe@qg+EBa)wmyN`@kzin=W=LxWlUA^BtcFeYn%X8%Y|Au-GfJ?@r$80EkI zoEPQHimzp9Gc!93$G@uYdiyZ&D&DCW7#7BHT2>nv=EpwfsmTwEV;{Ku)Hj^LbI4{b zeN)y zQXdl=9>#ck3p*V7mvorm8x9`XHxuj*2K|j|6Neu1nUWDI%Wkap43A>{ix2bAes$?K zf{3F!+UdN^O@4k+z~Ro?FZp1A%MnCeRd4eYN#pm319lbsNfDJdm14hU#zBuGjN|B4 zQ{o6CKl%+8!3fOXG9Z|N-xd>5`on;TU_-qwtUv^7icit1vmoI67qVZQc?2)z=}H7Y zc)t2fpt7QFPm2J%ie0`Km6e0r5+RN}*Zqs5{p$R@I8WQo9vfkR{cux`qRujq9l@k{ zGROTkSCd1$0H>$*!8t>#BMv0oIO9vbOP*-!FhhsqgweIw(kI-KX` zM(H!~414Sv1%7FrKlxGS4E?VS%Z48gi~_HGQzy$PH|plmI@2g`$`3U&lpPgJ$=Uhy zwtiADFaMDh>(#ckuyTN?DVqfmo%O1`PlIP-Cy0tm#&Y!I3Ja5 z%6{xeot5sFps3sQp4hMZ>jf}-`_i<%iBAmwBfi&uE7qm4pEz(_octs7i4*weZvGP| zo?pK>9QY)I{j_q<*eAghpImA8d=f>SUD?c1%&w_k1T3SCs5|x$JNjSNJvmQ0Z$fOe zGeaHasX|6m{`zHw(TH1CVN+~$Fl#*IOfzcfp;;BV2!b`eQ~&=@1+ z@?VJky8gBh?a$ogEhh70z^l%^)icHo{Y{U2W4u`Jzdj0$fnWc%k$={cv3ktEFwQd8 zkd;SSWIaFDih8es|rKlYLJy1-cYlWfwQbzNhl$XCv7 zB9ccR2%j;yAI;QAu~qD6#?(CdS0?r|@c-9FW-l^*=Kt^UD>l{T$LZn!SMRdp5Wiwm zT%hvX8p+e0jB{cgXRkIQdHt5kH;*4xPr03sd`>P2;UtpAioQDyt`6Bjcj@y~4^BSjsD#dNeZL zP47Fd1t`i(#y#Wx$p4J*L*s3TB-c+8V?t67TLNI^pFDBms2O<*8D=;@lEr#wN^ z1OxQdU$7I5kncW8Ofca2LH;iV%C8%AgByps(hdGr#5AT~Xo4AbHoPxPaKkUhJ`+W4 zubHL^e(0B-NhoG+WcCr$gm|i-RNrQC>XE;YT5w|jSLAQwbHWd0sne{}fX}yITOl~D zkZ)|_okm=DR_G+qaZQCOA}R+jAx<~sY1>6vTdzBDI%quSOwJ(YZM;aFxDM0Zn+m)5 z-p^Ng@B=|OpN!nYyO@+8vhRzBT(GMuR)x&IS$4ID zVs=gO=`VsSig8ylmn#nc8ciTB+=r=(H2`KmPrKqlVxpDC^QUQ|4SDJp zKIu4M%4_^R9S4>ZQ95T2H_?sn&lR(fi9zrvnp-A@VzO zGwxG&T})6vr0XvSCfjJfnv=;kYHy&3r2eYdWRZ88D63{a?MO1%RI5Y+Q8ciXVqPF&E5oN0y3RB>Rs#t51jzeGLED?1@8}gH#IT_u_ zQDT0R>n;E6J${NewT`6eK+BXM_}@8cqNwhf#!sRAUk@fz;FqcxPo{!bRZI|3JGzCB z%DTd1M15W5oFXReD|4MQO|_-$C;PKQ-Q;?)sX>~r4rFSW@_ZzsV!D!@3jXXG>GRa` zxe?DFXaB{0Zm#-9P3AHRpMziVu$_-$vPn!I@t?b~-e!3^Zd)Rvs#q8Dxfk_w|AO#2 z_@y^|fzPA(UNSp0_IZ^0^QkzlDqo!c+z+|dpaiv}lOKGr4JI)cLMo zEfiHn{~#h3bBU;}e8V@*2sHV}?Am%*9W)WwobktZ+?tr}UJX;j!ue!Ydiw z-8Vg&6TgEO@lD6^k!)&wZfyqm|F2E9t5IZz6LAa)TV~+;PgThun&HK9G<{-#_Dga* zEHi?@$@jP!;go$v*J6zI^z+Sh;{I)c z3nu%yzh~S&$B=_jY-2)H&e8@x=H}R7 zZ|eEP90%;bTf;|DyR@oljvMtV`HOPI?F4VfkMOTqQoNEW6FIjZ z@qC)k=MEz7d%Jjd7}r0AYg^p^5`Sj5lqHI|JjSf?lcu$Z2k|TKs4SawH!{}=Jez}^>qTCUo)A$zts0@SqQGo2 zH;lTOJR>pJtz#rpu5)wa&|mcfnaALL;p!eh$d7Wn<{7X~s-Jj@%pe6f&kVWPPz#mS z&HAxaU)^lHX&zIB(d4ef&2!?tU}R8io*R0#5+afTyIu4Acy3psA(`g|Z~n{B1J3N1 zm>0!9p{nVj`r4NRJoDg(F6VuLqHLTw@)daG9j}_cGDsP6|3}wXc^YvNt&V00o%s1y|NY&NA#lY>rllVSC*}!}=t-r>Q|7G55B3Y$P+IA8N?*4;uYCan|Ca703;vBiv%{HW>EmCy1^E8ALVL=z0C6ky+g%HsSf{Rc z1u7?-Wch7=0p&0Lge*Y*-_}U*Bw1+0_XghI!!0!9^YINQnig8IeoL0|3vDU8NjtLD zEdvX|Cm-2~qnK>!0fJ{C;#CZq%r6ALZfFyBA+A3%H_f|$MHcB%4X))qYHl6fVY;im#lQW&zC3;-muBC|oO&fTPTWZ93i{Dv_Z)@b|&&g6Z z^0uX|eW@3}bES?)mckF^<@{u65c|_yr)6mvyn7qRmV#d;jR;HOm$ci5p=DTqMf74~ znI3+AZ#6A5U|w*dunfGa@>}dwkDN;LEVE)As|~VH9_I6eWtjv0$`KKYn$Mf1&-Z>G zS>{dotGo1GU>V|8Z~IzU7Dk*6ZV1bwsd43kGNI)R>bG)5fugedy~J{?d*-GZUN*Me z3V%k9Nl=uQsccyeUZ#cLvfP=nmw8@VyAH19!R*IXjnY^zcvX!ycqnGq)I~bSyx`U4 zeNMbK`1x@z)=T+cH>rG@;C18kV+${`UN6S)?Bu=v)Ob>lJl$aNMv=F~Mc#|+U&ZmJ zoHw4*lf{qwdpG7r?o?ub!YQ6c7{DE(!WeFf@IVamm=@M4}cAyCvV97I+` z|Ha=NN7B)S{MeNvu+ohGrP;8X}vgcMrlz(d)peXD5I6(VllPh^v z>9Nn39qC);Ks@ytT2?u6{+!b|vC0kJ7ehsTNh`e+e&VK`5UEv-kD(fm;vQw0< z>_b*FSid?01FQ8EBX){R$FYgkMkzyPd4$zC9wkFJSyo$d-BWmBjOy!(P4}$Eb1^3W zd9vCGzvfIAQMTZMeYF>MtBka)_EY@bE~2qiC>;ZVbUYTLsM_0yUme8tP3`uG7yCn< zmh5WypH^ouWIU&sH=JFA`b)D!U34AN8V^oTWL||_YaCRb9-*@8LCMG(w+5dlsFhgb zhJT*F0&D!K^DOykU|>x+>wQ_Wj*_S<(T=P&r0OKuFKb&Xw$_Su>l^h^RK`CR)>^aL zBR`D}to5e;-?OaP8q->=qxPdt!rCD6(Y8EU8^wKohgW269P6@B7g-xc-d8qqt<$5v zdLE5YR2E%E*5P@VZu|tEj{nyt`=K+x&YQiyW`irX4)&A}yuv#0D_cCatY?sCuQ9S- zkIw}PB@*im@Q3@=vfc=+ZsRC2D+ealTOrT#3G0ohhaCIGer=r{f~f!TY+=0{N1}{g$n`>HF3UKkt_2zeOEL9)C){wc+=6Bt9VWRkOJ1TPKdQ zTC3S_9jFI&#~9U5Hi_i}&$mJ9cS!g)48QMO;i#-LH1$zTHt7a!Yy;xg*w2v-2GsMS zGcJmZ?+42UGmgK~L3RV;mquPjHrU|rd`W=zXKrLxMA+cPaZ+`xX@fuOcv4?$+~U~~ z$NGOJB^#OS^`wW&l8xr9=R?x0b!a2vC9`6}MhA|U_RmclaUG;)#;_Z`h;QOorj6c$ zNxJ`xvaNNvwUrk0R-~(zglqFPWsZZ;GNn>gP6v z(Lb9A-y#3X`(p$u%RV^i`_72|J72Tkne#DZL@WL~Yd-uwX-m_0R>YTUBV^R=C1c<_ zC!YIkZ{qsSjd}a(MZWW<{Qs|hsz3XV`1P1SdmZmLU|pu&wfn&@mAp^ICw{J8B+*$V{=HYlg5X^o)Gi`?J zdj|Vw)gI(~{r}J#RF?bRnsr=P`&Hn3XV&`6?5}K4WB&Uv@^Ql~d>@6KsSn8aamYQD zEX8Eg{rFPYY)HxS1^WY=%_%vlC!2pVu-TEdKRKR6Rncay%|Y-qpC8*C#{GEF4x*eK zm+oxl`GJuo#Vn|t|GE8#4D~Nv$C`eyrQ(&=?P>qvKg6Heux4nN$PaOxuN$l(KW5;U z=Qu}x%n*O(c}bakv{CpmL;RXHW4RyQDZi3>Z$s%12Lf9d98VwR4Q*jk-;;aWyyUp* z+IC?JJ^rqRMbrd-W4E|*oHSS(+k)pGQgZ_!_SMBDO(6{8k))@;^@UTk-j)WK(YM6WR)1$@CuVRxiHKS=SNS z>c{bTL7mv@P1#TC|7TqGkNqbzcx&oCKViR-Y}+M>^2XBKPY(E3{5(fxN%Q%>pTMuW zSDXI{e5$9Lp^x*3Vu|n*>O+#hi07v;&BGV4hxh*d$Jyz4vXRrr`E7dKKO9rUwi$3f z>-WS?G1-)#HjQk{pr7o28|rqC@@xx&zg`-*EsS*u{^_Eq?ccz@EsngF%tN*_xQ^>J z!LnVCIDVA#6q(&F&vql?C|b+49r2M*H*?#q_}#+`jHst+`;%uo_G?|0!os#_%Fm=f zl0y?b+x^IoX?{93Jn7jUL_W4IVkst@dV|@wg8}clj*%UD{EoozDZU+)|1C{=@S10b zBkO)AdHfOC;a$#X-a8f90sdrD7@zPv!iYE4iK9q9?jr1ngST8a&rZ7k4&Kb|)I$yh z0#sIBpDj>5^@g54it;f<_?@`k(-ppI5%rUXPk+Sibf)%i<(2EgPH&1gsg@a4yPpU< z78Yd3^lOxEKfsju8sBC*Si?@8>cW1=YQ+koF?LmbhY+%5;sLzm={UCtDrWX%y_ zmzSOwPXbf@NqhfSR9>wo{A|W?^v#dtXDin4#WKs!;MZx!vsBL9hnv=sFH97i0s(JaNcHFe&*mfhe}-267N8~kr;>fHVK-G2C4c9}pib5jnfMs|Z& zqO0u+G8Dg#QB?Q7&(Z$OO+(gLf>!i5n_>^zu-^ZS=L9f>s60)YwQ*uL;4LOjHaCv(u1HY=`!a&HIVO}O8iLxUb zio%cR`)nwV{UBB-w1>g-XkkEP4}*EVz94%HsPkKA5_=4|&c)|a_L#9w*KZ1YtcchA zi=E2q5&a{3Y?vSYF|@~tdW&8cQFU7p+2ci>wEl1w($h6xfT;H^|4==AOM_di*?Q_qq|!5E9rM z&uTBT{kO@=r!y_TI>EOn=K3|mK9qT$w&$9}ui#hYp6mKGihcd)LxG~2S;_8W;D=cq z*rx|twu>nF>Lt4m--lC`P7cnyO=|w&J;K!TRYaQ8-`eV*72<(S_nR^ny-;iPajpG0N58aT4?0yIC zZ%Ws2?RP@I?N~cSWvK`3e(&4o%O~^;?T;h=ij_Eu+A+0V2bk16o%tWj0b@#*b&i`3 zSW~jL&v5pD1Nmfoum`{^4+ne)+yu{imy!eEm&!QyfFJ$u?+#H}d9|N#AdK-`Lqi9m z6gR}u@t&Qc^z-N3K|Q{&@Zn`3@|U+$jM^u%57>j|6t8j(>p5tH{tyj+5c|KZ^-I%1 zCwTt3!yR-Zp0(|K2fc{r+jn9Vb;a_KgRmocZzq2+oU)V5rsVcM*CEtBxmT4vq{nr_ zSRr=E0DZ62M^ReYY@y@wzpn9ACZ*O2hitGv*qflTa!g0lAt&T~)e?uW4`kamjEfxt zzwYO+Lx-XgJpZheI22F$qbYI1b6B5}lXg^6k8s$W>X+osV>t}|?3#MLId<5a8dnwg zCUH0jztzVAhrzEZa7>gXhx;cEgI~JhDfb(L`mScRQ2hVe_{N~Ouzf>Xen?Hl> zo9_Az{BLc8-P{oa@>Zp^+-!~UOPtRWK(gha02|=V;5W}m<;?$g|}eZuyOVi zPF%nAZA?zMQIE>j>bFwNqL1 zMXkh1C-laDXgO)a^Yk*pH?;zqL^&DSGRnpyeT=^pB+k94T+p)khk(-5!H9M@uwNY|KoD@ zv=McEkFir(eg8X-qO`anaN367eJkF=a@vOe2Zh9O>4r<5({5a^6?w#+_9AanTM&xO zp3RZdLBzkLYv45Em&6~6vO1nCCh`=u`+jF&C*E6>6+@pTem78gv5$`H#@fj5W<8UZ zce?#F@|tYQ2TtMl3~{HGSuFhS&OUDG+Wx-Z@%~%3bTlw~JtoqSJA>mpb0Y&=_|8~U z{F%qIlO@+KuxAiISv}T%CXDl5g@)uz6!P+F^T093ZYkqWvPr1$o@qFR`*rW|Tk@Mgu+Y6h{n`u15 z$$2Z~$pyqdT%rk2$EEuAp7XfQmcFaDoX2&zbaN|m9)8G%91EQHBfb%zVI2ASvA#g< zq}BM1J@3Ht@@8JqUS_vQg$d+>f%4=7(tH&RUBEoWmFuw!;3sSLkqb8LFNLoP7aY(l zs}5Xn;=Ei+&t9;onbHPu@2!*K8ot|znLzAUp>5J;G$@6t*Eb@z14EjLGAlRS?=%6Uvy($Ah(E$ zqeF#@UiiCvP3&S2?`7MsCKto7^I=1AJgr8z#Kj<;zkyIx%o=051pc&UKZvq6T*Y+B zi1FbsT$h-CS=T(TLYKfV>+_5Kk`u@EY@_EAj(>SmsqYf?qiJD_i08JLE+Ic@&3+`qwcT0Y}7#QA0Sa9t%FmEs2Ta=Ub0c}YUh>qMBz`e z$@I@i)QNh_J2V~F{1A$IalC%Knxp+B&of^%2zj(EM&)GFsRO=fobvoeVob`OyyO%% zWE8Sm@XIgv^jvYHzVh`JQL5N(x#F*% z)Ost*e^6Vl>QnxayoG#MjmVp}8xVOMv5&us|34`in=f`1en^%d^-)wDpJTb|pt#&a zF}tRl_owG-7$K{n}zH3ITcc;@9ikX|*T-$ODe7e1NJ=d_V zx`VoO9DFTy&6{DJ?+o)@3sz@z@dBo6SO;CalZB%8?p*F#JY`p1dW3LYpOQ24C1vUO z)t2kF4EASE3S4()KTle%f$w?{*RRzJr=vTEa2^2ayQ)Q|Kb}H z9hVJEcy9P{9r5$erW-*#Pb&Hwp|UPgoWFtbY}?=-+)YDjJk2u7bkmIEtL1I>rWN+4 zJAF6t98CVGfbXV*g&)H`Hys)DrMvl?-jvKt4Un7vi|@4~vbi6!xAgEkKG|{${G`Ha z{+7|mC=J6*w~UC(xJID;n)>qyMQzT0Jq z>UVcx`>ix}mtVL@DE`+*ydy)mgQ@)? z^E}m;zQ7&k?e-+)Hn{F&;FbP4C344s=j2x!`|dcgUtRlENXPR)e7`BNiNE89-L!S& zP7wM0{ke!zODu5*{zw~l67Hb>6uNyZ9hWc-EO+(D|DGkDy9VTWlNI`EMlrz6-!(&? znagq){MvKx@f4Gd6l?3d>xBIw!|ivSxE^5|S?+ovFBSN^xbD}qZxpy2L_W{wN!$&i z{6Ud7j8UeM(N+SGu-D?xFsYO;-6nf6s<`G*%K({$d)rXG_hK z#P*x+QT|W53HSVn=W)nF<+nBR{y_dd-hXIsINAFKt1%e=^^-aXRgE^`cZ$U=2{-c zu|C6g1>y|+Fs!u1^(@~16!FCM_9;L@mLP#)}*K~`A>ZRp=5s4eIKg>H!5@yu@dpjcu@V~7|nlAMuyr}oX<17h3 z#q}a8W{Eo8=9x5wCIZThj$lJvi)>(`G)P5q_THW=S!FAm8 zwuGWwSBZUW0H)pHC?;E4=bYrR74uH-+?Ln z>s$ZaXYIZAy4Tum_6!53n9%MIrG}KCqB%pxjiS+ za%N_^o=-x+kB`)Q5<$GfZ>*-eqUO4EpcKcPcF&_ayJY^g0FHs z4d8dU>+EU$G?dJrxt^Z>7nAgp$oD@*mS3~_FYNo`D!%l;9EflChx7gde^w&xnr-4= z5o$N~A;te!QG77@$}{k$wYf8qqH=EaVb478_bcl*YvQvQ>;{}E`kcYOarZO!xd!vO z+m4>JTs(E_!{>VR-&cj%=fH2o#~Dsvc%zQjJSEVLO2-FQnt=Hut-FC%F0SUT@z4Dl4bkb|PE>yvr{ zBK}tl&P(;=IbP|}|JQF8ePu-d7@w_vr9pody1xGv_+_Pr^`xj?9=-C)g8W0qhp$}l zSM}U}iqgNc3A(J(O!k!r_Ej1QNW^v6R}uJa@$})V82U$S7IayamHVlkqFT{;uR_S9 za`A1i^?0sXFp}f75$i@bGo6;JrFA}f4c@mh?P$H%4#ZXPfPhN%3ZR^kDek7f_91U| z>>;gZe;K#!HP#*5dREcb*!P)=xrV(4zwEEa^C(K5%*pY$2L2moVX|3*8>g7kWS`+zH63n;z+ z1A!=N9E)SE|<+0dZgKRS%-mkS?KdsVh`6RE#cVWVB= z{bR%DtqUUc{sFIS?f4x3{EJ;`JMv@;`ww_UqpLj>@LVAQB}GMA2K-WTNy}(34wYnr zopSGYQ3mILgos>Dp0VKEYuI3CF#jasx(0^wkFOkOZ0MKt0$K+B|5m1N(=q|{gRY#G z2_^GT&Xt%LT>shgr%kA3n8}6xEO=GZ`UWW`L?Ly?StG7jvT6naj~#Zh7Tk9nA4OOT z;yfORQk3@iB+R-n4%aFX)`M|tygJT$B#e?PYG=WpmaU(gb)a0*+s{Ul{u4Y2R63Pf zqQiL9K5iiTq#e6%F(GD*Td~PNl=s}=CN_*;8;_RQF#nsmq6GZxt(+!&c8KwIUgui|k%iBHr&~BsshA5*^wNa&ru+F6{5O`i3PQ_}zX=KuMto9MzTj z7X})ivTmAyD%E|jB!E1d)v=4Qf2(GeB2rB_g8CKe*F<`y{CK-cq)p5K`gSZbocFT0o??|JxTq&Mzk{LyK?wanDVg9A1P4&u* zh`Yxn*k}Ge8`DU`$voiMQ8g^{{YxA#2lBEAcy8^tQeC;4k z`JXBx=TJZX>nEd{qS7jvWIO4zf^Mb$9o_I7QBwX&p9&~@UYsbg?h_)L)sQGL4`s6} z01=0(H&5}c93SFUhM=FQY|X$sPKx5LGyD`K;^TIT(y28~$_V^C>+Dv>Fb|6A+{y^B zV}Fy%3_S6viP|aG-Z#+tw7LVrRA)O?^Q&Ay>vUe_L4Ry$8diCr=l+sY1z>-;E1@WM zHHfR=FU@+zt8%;(-1hjN(Ix@0+75+-UR*8l6AK;%`ix0PZ-6gAF8)$qes%gd|5 zFMegzQk0O|LA3|=KQwo%vA$A8x@Wv!9s8H@Sdf>bVc(HA+ht1AOBm6^oBp(S_!52; zyH0r1Z12R;vJ9UF-c(_~@0zJ}pGoyWW`=f!!I4HZ6vA^>bl98-x9%>P-{= zJ7H>bM)K-0$p(H!UXwPP8RPSd%#_WNv}09uNj3-8%j<7|_`cH8hTd!**xil!v-wb7 zK*VRmc>KQ#DVCFD2mgO6WasgCcJMO;^K;n)h-c^4c=iy+$)4An9rwTNI+r$ktXXDv zL`gKd)(k0@7l?i2vq)HDOpc$b(u=6Zg7sJ>%u!5;qIf5}#)Wxyys?vFs*pb#1vTK8 z=BO5?s94uAuEBa#d?$JIR01JJuwbyHN$dSKUDa6Rla)u4@GJpOFWn#=c2{ToAB_m(6V@|SfVXUf2h zQ2~2s1$^u8J%5Og6E3#{JbP8a+%E8BD;3R+bDwH;%u98ZH_b{>_M#2R9g;)u=BGM) zeYZ7t4CD3SA9o%G?WV3Hc{H%EVD$@n3a{v!1I|3S{$?c#Q!toE;AutjcyKFd2RTMu-h3M9XTy9x9rndnKg6jn zd(nvGGbY!O_~>?TK1;G4b8@#fpCjvjNyMd`_M1B&_*K6bisySL|3rNPB{G9Qzb@%t z^w$Gze(XPT$tZh%BjR3OG@jq0Vpx4Xe|{VKZNLpKzXSXG(t~b_s>8#b)Q)NSk2b## z>vR_J=MSJC+UJbs$8$%8t{urALH)GvP5EOepZHNUzYWh%3LmzAfcY*ybHea}j+S3T zInJw%MEnQTUlzi)DzE(j`AcTG_zxWDFH277Nqc3>3hoaA*!RXXwts;9rIWu2QcM;0 z;5cUi4f;LWz+K?q&UL8`{#U)$B5Q$2lAk=Q?kvdQ{a`Z5U64tZr@B`xe;hAp&bmI; zp561xU+|s%SM_z@aKV4cJJC)RE2S-@!M>Q|Yf`AFj8WfP;4XyzP&*d$g^W1&HhS!* z^;rqozgSzyh5oNPAY90W?`hQXTdAH9$@2+@LZPIdC{LhNx;$R^|MLH=g1@ji2gCAn z;)N|AGP1s1q2t_Z+3YQB#(r1ivbOL$d5_Sm`AI?XL=rYGCemOl@ zg!1$&$O+hgzbOOH3dmloLyEX`46&~V!ftSWp4Kb6%;Sr=u+J^16f9!Hel)bJf!2$@ zYZELI!@3^u7pKFxi-#2R7l|c#RZF%Sbo!*8h>yKyB05VxhOKbNq=P?V-vk}&>}PS9 zqO5XfK~LBxP<=Jd>q1F?Y|UbJ9rj;#^cihY@Mk4#)xrLv@9aMbJDKLJwkY@$B5qUA zU(|*Bg-PSBMLo&=RF+TgEgFE`2Yus3!LMHbMO@Gm4U04*9QI#DXL+1s@VQ9mk{qX_ z7>EkkrInzwS2ox=Gy3h}AAZh~jS+kP;i=B(7uY!mt|wPnJLkf6@yTX8=RtpttQO>a zSnu~s`#B@}WocfH>hf|otQ2LF+8ekS#a?cTil+rk9Ojd<>IWRBL3!D-{$e=)s`j?< zayt0Wb@kR7c=8`uXDe%( z58lgC1vv}qFP9?4Z7L?MNqU&Z&(@q{E$#x=$}OPemn+ud9{3Bt4pUUDY9o{| zgtj=^{jVZ>aLfLo4RL%w-}|8haeh`Q{vr6^C!*7(xep`Qum8>+{4kQ)o}GW$S_0#r zkhD&nxDv+Xd`gtR#X;A(65yAoA2pQ#za;y(U#j}va7i0@ z26T&-bcmU>8Y4(a2jb{b$X*iXAKA4KDd{sZY|+PD$pGd__t9F4sw0g}B_qI75;wI| z+>M$_G4S(uHGe7a%j!l5MRudzTMF-A%UtZqw`~!0T=%X{v(s`#&ZT@A4eW}vC1rHT zfBt%F8U6n;?r(_FbpN=^IIunro(z|9VVr$#e;E(_)%wj!b*AN7Z5jAyX73h|%y$lNZEiEJU?5@hVXgh=@NX|NHQ;}@v^fVcx8)sc`2%%KO*IrDhW4lQToFwLpd|{ z$*E-tBrf#jHfV`?9Hg;GO5usfH~_Yb!7qKg0L-3UnN* z4t7&yiZmh>^m2v`l#5otJP^Im@D()3qkL{_1vActTc-FcfLFAoVzhz-^=o?=D!8a# zm#4bq(L+N8ANsYxGohW#m)&2%rC`K{JkbgfoM$h$byu(;|Gano6~V8n@)bwhi|3Z$ zE9z*w1L2DJ{R`2B)z*qe_`g`dPEmSl4qwrTd_z(QZZDBA(j^YiV^UR)I=%D{_KWwJb^8~Kd#qc-sbthP3>jd zM*8*e%M2{T>5XVV<_-|^>CtadTCSJ~f3!Y0->G+?e$@tp-jRo43g04nPkHeD1}wxV zf;9}(PIc^8dqp$FdjhIIklFPy%H!~V#Nc`~Ca%>ZKlNBPF5u-=)(Rm!uc>MG(zw#P zW+N5f`F=Kg;0gK2h9}m?+PFW${>N6`XZXm4II0a6P_(uw>e0{aKGaj5nf{O9PiIC~Ba2e>c=h%Tq<#aRjhkS|>eZPQ;%jPHyC{Wx@IKkw01samYue2PrC>7~{3D-!d(y zX=`~9f4jDPE%2s_szaw}tq8`IJwR%`!=ENupslS*o=Xz#*p8LB+QwwL_|~VSHuw^v z`tE0IZ3msdb%M2B_{8kOPEy;0>vM%p(2;+^#$4?H?6>6SYKNd7p60LZ%7Odc!&aew z<1oGsgZa4e%M9E!!Y$~VE5#{_hc)1+ouqX*THAy1xV^$z2mGQhE|5Ane@b{JOv@#F zVFAU<$6dNQWwuV z$lV!0@XXlD*VUo?+!0dOi2lBp&s`hyNm6ivwyp)^*Q1BO4sCb1y}zyl&l|T#4Ygw! zhw1-l>x9t1GBM%v12ZA6^n_7A=FG>B{Xw;a_Kjq5on%815a57%Es!CldMX3V!o zgS_=D$deg@a@-$Z9viL)JJsbS#OQ;c`S-*1z{4)yLF)OkF%sq%1Jz}BD_iTKJ|WV& z9%sE6%I#keiV2Y~oai;_l6s;%OKfq8m>if74L6%iuDp!A$&b7Ve2RanM=6TV#7w3@ za{jXC^?p+X+HzJQ(9%g5|@Hw=KcUvm>J zS4Dig93`h_y{^l&3n^)PeRx!q%oP z*gZ%mO+EPBZ$i4CmMbs4f{yWSaM9j0gmuy2VFrGp5HJy+a>Ma>Gfi?oPL#8Tq48$m z7v-$aH8Z~xAD4?X13z1_f~gsJMAhy>&(4VBqpZ!qr>Z>P-^_u1v$!+bERbv`$r0k3 zMUr}gCxN1zExG18{^jX#bF6>qzK>0`UOD=fp}8LOX39`&^APlX>GtLUnolRLc?@y-FTpS7`@}VT z3x*({?4}m*FYfmd-vaGYh3&P`)WU-6dpTpUg$4c=?1{H6&7Q6q0lCNK601?n+ghu6AWYLe|#jaC?1nv*)) zGvaND>wiKd7tio5!7n~=%H7ffyPOqBOCPZ5Q31*G4nTaLBl~AsY9~MUEJ!gSqSf_D zD-HT(^@T7+#!$fCN{@ZAR&#ADBg)%+$+g0~69rXvLBEs7+RBXi(&9F0<$(QH1u}3s z)tlmbO}`pi`H-Jw6!g9fJB$J5!|&N%bGM4%{rhX{qpc99WO-RrD;@B!+k(B!lrv8K z%a57ktpYd~#T!}8l(*d>Vm9ORv)*5uT7@uPzIOIjmSp^iJk*6t+0CA0zc2%~bLIg0 zW&De<8SOI3;v0NxhQ2R1-Q8LP-jmCmtr_fxpC9&9UEHT0-x~3#ZRv4Aza@^h2CsNe zv2be}uud0iYX{<&uC&u~MU!qB_|HK%EmvZU)(VJ4Q>-q@>ES)$I$+n!p}4R z5?4x~>S|sSZ-&1**9k>tMb$75{)C9w##-K`#Q%$0Z{j@|H@1+Q_W{RsB76YjS7sRy zZ&HV6)Aij6Lf&YvB&`a7-p24G>)Gn>P*wiMHyiQ7%Pc*e<-p}_o9^EO@)`Io# zTrHsTlvhBu)?I5`7yPUr;%)0e{gIniit=kpL)!qIr#7x_2zlTC$j~-|@;@gLYOiRP z-$YSe>{Ix`d3(&sKMJ7^D(V{J=i6G_fCAZg}t2v{kD3X zyPYfZ{wZ1d#MCa3IY0GhHMQ+xGJO8u)sEebkzcxCZLh)g;}_1_UYFTVB7fEF?ZNgI z#CuI&CZ_CF>LAqRU029dt>%M0r+7R_^q6 zaO7vCqs)8<2j0`tpCcVSbbKZVm}n>ceOk0bD9NX&xzF1H{EC|CR*G3l%dobi5#u5K z8Td|IIjfP5HjGb~vI4T97S4{Yq#yZ5C$$}Y$#Kfke@cZUdogb(9j+He$M6)HGhIn1 zBhEc{nga1;HpfgL-nacw4J^WlyLAI1j=BB4ogA27Uv~6&LL5^4W1*ZB|K8gvfOR-KJ2PnCttaWML4V}EF4!rY!!q=*?Hu*bl(BirJ1cEJRQCAMD44YkRv`;J>HD z-UYl&%b&Gf9MFG~TPccvJZ7ck;%@y(7auS*$w|v455_xbJL!TE-Yx-rpSjGsV3!!; z`tzW+i!&em$B{4ASI?Hf%=2GS`eMAR8GNZy^bF|=|BU?#5c6aCJs?i<52Zky=ei9R z>eWkPTvu1Jy=1x9)D`@Uezm8``)1!pI7-SyDFNq2TPR>k?}9LjSuY}Z!6!VGEg0GOSTe1DSb zZbZCg=WD6o_eq-kK)ibd^Y_W8qXw@SH<^0{$yq~u7^d% zNQ=!5_OM_++P?PEa=9(QWnd&jA0~=Yof+|!y+;7!-{fm6MftE|LOJ_*73mRg!^r>1 zO?qHHkYYQ$7L2<>%b9vOunszIAk@Ed{2YTtkNz62^IFWP&sN`UfnT=4Ox|M4#wa&F zj8i*iabsd}VIP*?F<3Bes;aHE)LvciBgB>U=P#@w8t=(a9*==yswi8pboMmj`PSL{ zd`~0g(UYE(Z^{eO(}s1l`7`MG8TMBrP{Odsy9lUWaX@I7*7G~)A2X7b2TVOfl*ezN zm^P#{$}vC7y^34W|71rtuT_Ko8GDkqq954Jn}}8a6ZW@iK;&EH4};YVyGI4=Rx`%q zcnPZ&?bWWbsK@;IH59hGu-`2`z*#+X-Q|o^lq|-DIDmfnwYQh*X~o8XFLR!WyjAlb z+CSC7{?FMQ#jHdTyzl?ihIv=Jb@)?9)^>^Zq{s&HX(;)7R*CYr=y)FQh5XZU@6=LE z6_s*_y%+LM717YCd@o0G{))GrG0&wpPby*zlI;eH=euK@gZiQ0Pw@H|P}kMxRA z{YjkaX*~`C(N8N+nR;X1{HMZ}%TIdSDl?+C9|EzCTTbPAyMV!Yrrr*WYoj_S$Nk!x zDcaufugcxg+uH}82ZQ{*!LM{Naf<57!-e*5dGl=J`{*!!d&d%rOp&Lgk5P{Q$H)js zT&J~tEa1sG*)3qMz6OfS#hms&;AbxO*HRR{eiiTI!Tyz}m$y#<<*i#e`-I?k|31OL zi0s${{yL1)^Qs(0#ph>uTAmQ8OXBZufn7m)yuS_QC%2RSj;@TTaStHwJ3 zEGyKjdJnbs4}kaep?Log_!c&d_ID)xCH%e@*Hm{8Fry#KuOI`=W%0Y`TcZOI2YdQ^ z=rTNat_qak{y#quzhm6@B|iZ1i92X@mJ}62C>hSwyZEkV{^%(EA(+vW)%f@HmiVVGdzBlM}3gzuzXJChc8RZ@B3n)_T zcMc5T+@Ls5C`voFwNiWbr}|`I4DS(DF7F(~AkMt!-GdlfzfY)_t}JF3{H~lOAgiC{ zA7oZD?1`{@5b~AWckqMEh_AanI0*Z$bmb$#PV6159pr(ZRb4XLui6u(enkF0{y`zw z7pbis6ajkj3+2RqJvbQrQqOQNwG$7T>>sS7`cXlbt}bN~;#fUXK&Ism?O+S~aZXDw zMd|9BR$9+KC`1Nh{}oL-0K|F0TURKTe%-@O>zPVZw1dIVRC;I?uvV0#C|RX84FNwh z+Yuh3fxoYR7VM>)dPW7_O@{@Pk+JbX9`KY~K!#Yxg6~5heorfX6B%Mdy91T^AvoVj zHm~sxft{@R$KgQ^tkW*p`5^)5EfuE0F`(rGZU}hg(=M9^`rvQ$Gwo0Y`rL8hfv{6D zz5D|mSf@)ylc9S2e#4qIsK7!{-3aN8}k-xL(uDYx_& z{He;-)($n|dOo!xM|nki2F7g`%%{Ee1Y~Z09k)5)UuiJdz$Z4|_uDMEpPf2Rh*Ndz zRGj9|{*aB>LIv=9sFh5%2>PXj5<1r9<1P z%CZ7Vn8J3d%PcSC>k z-GcF+U4^rQUo>{T+m8H2V=rak=Y<87=6j&EyI{AjqL3?Gye6DIhJHBR z-AYl>{k5H9sz|x7$Z%uk@`N4xx_ErJBUvw*Z43_gAiu@Uox^>|=Qp2qcpzDyXeW8( z;)jDzRQx0VXAG{pIroy!=((rH3LwU7ST11ZbDPZZ6Zy=N*`GpXaewAQyJKqaXCADJ zNPg>Qh(nPcHBeN4UsL-T;$V#h$!C#zIQLcpPQdePs^c42qZ~lQW9)AD3~{Ni95Z|t zK!0Dk7N;mxJq(U8zr)+Snqh=3sVml-<0G){6T(KLWP}grHCYkU2=L1K4tI_SVVp}V z{3F04`?@VZ0zCh%us&&gB<8ogNdbN&_}Nv2jC4%J|4BJ+8tH=m`6AOuw~Y}$sK$@< zV1KF4he!G*0k3;U;`yJvP8#en@6tcE()J2HagOvM-<%zT6q#%!I!Y&D(rkSNyVUrU zL+ZOnS(5KXq}C^NnLl@U6!n)Pti7Fg6z)3{LQcu~(OCbA<^j`a4f?;zeli;OHR3Ln zfN1~QC#KOxTutK7?xZMgWFn(unV;{g zmrb#c0grf~!#hTwj9*c9t9^_a{luLkV=TZg`+CRN5YJy-xiJok^ME)fX_s(gJeW7< zC1ecF6-<%kWDK6Wu|K+iy)s2f>dQFn<_xJ{_6>H;z}Cw$kS`~o=+<5!o`XKP79DHE zdXM!LP_;GPKNj(_7rK$LF7Thb%8&IxU%$XP7X0EnaxK-FV`IHzk+(GbH|#L}g}#W6 zjbUH={f2dH0Q?*71V7gx?=9t{pTnPISB$5qWVQr9HzMB&EjijweY>=q#;bmoJNmf= zJS`3xK6fPhDUl!>9u)oDmwe8bD3|28<^Mc_IL5`b0!}LBq$qRF=f;6wRqc1}IONHQ z`QSJ`{8rdN#_20EY@43I5Aj^$TOjN|u1Cg!UsSD7bR7C!R4wKduzJo6oPM1fhxI7V zb&b$+aqjE_N+cKEyzr$Z({lAsv>-aAm7{5)W!(V`pU3`Fi;TenH zgW!P3Tk?4ZURvt?!h^iBXODj2gMHIiIXZ-@o=Da z0^(8qEb}`w$Y)qr;=uinsQ+ZA1M{9e@Qu}B!Fixu8?6J^L$T((+kx>_d#j=x^I`B5 zx5I<`VlQ5cgIz*Mspeis2=>M212He!I-L&izZKm+GEsx~BbQAHPt+yL)fL-VCmNG_ z!d}5&wNA7lzTAzY6CKHV<)j+UiMakq|GJ``=u4I>@?LOHe3$QyBSoz*f=&kc-|b_i zm?|Xlo!|K{{Oa{zdY#};NSbsF?{p<~$@TMIC-~W;4LD~&%ZR>dZE^;X_g=Nvi8vJF zrJOScyxfmCW4K?7NTU>)^h54RIy`5I6cuzuWUE)GztSVaZrDX`k_GLqtg>d5e;*e7 zTsfLyf8`eJP#>KL9s5jLBj=<5)t3pn;wtB*sK*gF}171!A))up%M)+rjqRq_KeMK>DnkNytq$*_l1Kw?B7JL4UFP>-eWSaNhpa>8Ejs{#I+JdN9u)RN$u~ z4pMbgcxr&+DlbKmajRi!2>XlUrj^z!pOv#yU6ub^!&DpA)vtAell0gpWRv`p5D)w0 zqIQ}w2mas4CtAv{)`p`~Y-s=Z96t^A>O7spbR5|q`;cj_atw2$ba)#4%1SSbPIJL; zyGbaA9e0FGvtT}ST4J9TfuDmTqEpS7ulbsB(;2jXxWq7B1G^(*g>v>s6x1XDi=P$}5wcOJ& z?^R1ld^-H8uC;}ZeRWWN1MTm$!4B)x2e zz_cOx_(|}eHsp`sG-}6hHO+9y8KrHqdxi^kHHLFDP@fP5=d#ZLU#h6K{%x8O!+1R1 zPi8VwMsEGqKNJ2WDo=Q(4&%~bdYtOY^K1Mw_26sUK0cFy|IeFgXIe7*OZA_stNw24 zo*4okzc4y8Lh(^pz&3>lMb)4M{4DULiu_&&_bg-P@`RnJ%yauJ+%J*?r~I>Abe&ct zvpmS7%&j=pC9$UbECQsuwc@jNI6t>o7@Tdy=VHrS zakM-ksXQBv6{6cSxVi7}FduCX&jmkIbGLwsTt;rL3-Nq4-5aO?R%}RCIZ9B?w4xoO4?CmR@OM`aKe@t@&(gf{) zjN1YHs)ngw)!%EKg8eV;obz?qZ`cMw8khL#m-hL_WPXaY#oT-gc!pPZ z&bMKHwHh3q?|5f^_53q9--GuaFCOFPd(eKt6zlvzvVEeTvO@9hBH;x(wEI0LM^VDQ zG*L_y)zKyV0$Y+-Qe>xp0nLAfD7paWulI>~&|>$380KrCRZ)rwk=~wdUkEcJ{6TZmv*58<7XQYTuA5p$v*Cd9<;9zhmP_uz90(&7@ztd`zf+5el#qMWcDk| z{xQEu1H0YD7#)BOsAQor}!4jx&eti!A8(yiYi)tG3k*FLJ=|{iFUx zE)Bj{U&Ox1h4SkgO^bZ6E2b4tUTnH{Q3!gk6WpQz{0yw^U4;3sXjb2_D3&>%)I3vl z`6tD-i*4w?OC1GdPLK62c41!fulU8755zZxUkrYE8AF(&s$-N;WLF+HERNuMJfo3! zG2&KV{e!1|vXsZWxh2M|>&2!U_9YIyNBQA8ZVCJ`&!-2Mc)-){GqS{k>*|BLUaG%O zq*9~xD-HTx-OWi++2pnMD-FKSdu_0r>ayLx@L!pcN3E@KiU}d7BivWu#g`r9U%8Uy ziF(NwP2FDw;CHg#M3E_fi~A}9KLbYbR2RjMyO&~A#Z7YBmuj%@wfccys!RG|Ex(YZ zMg@L9?jA5%F1|U;y3~gCaeu3SDXxRc{GHuP|AjvhM*?MsvXQ0WmlY_(FU7v6s8mTy zbz;zYmuc{Rf9{cF8Tb|Dg8VW~l27jV!@taoeWCdu{4xvd{&4x1fnVOb2U&*kRusq{ zUPk$wNA1fz$#w}|w&fi6vXFvN?Ash%76N~^U8ZHR%y#1C66bR8%ZiO4%kdoQeZp=o zrCsiL&4^3?6<&@wB#Qmv<=~eu>KCP$R^=|goW}M4v#4bUOe2;upA;X5`iBdU&M;_~}@l zVycKk$4x82Cr-~TpuDusyV950j#+&}yD|p52Hm(-48<=5O!!l-T;^Q`{)C7fYq(YB zocR9#=k8TB4trTG#jHfUqN8_}5B;CxmVjB={kP@f=xpADyk#T%ggrK_(}8Z{q4Tl5 zIqY#^-S6Jbdpwz+>m_)^r8e;%>_4f(#&&8~WB!x9i@d8fS?48NpRQdEeg)ZLq9}=V zv#xd^&n6Cz>Zu}aRy)2rfb~CpqhG+8^X&pID##1CCYqt|U1y-WqMbXwI)r&L#u}%3 zLX?b)_nI+I8*a!zBXc?_Hfp(b$G54Rz_*P`o$>d*tbSq zbbjrCzi8*^*Dl1ZZZGI*W#@WneO4m=W~%*b@Qa$Cbgp5L&+c`8s*5)daIS%W>BF)H zq5NTcKSg=@TlO^!_Nz{dt<+9cVbM%)=PDpoog+)euZa5*IF>{7O8cO5%-_fCxq9!lKq)g-fzp7*EX#MKXdgJ zzcz+A@jc0PH2&z%_I2oIRd}D1>ZNQ)n`& z;?6bw8;qEjLu>*nM~^maKpdi173~{r=-X7zagMx zB<6P9h5*LLJi|*-JolsEh8X5syB#S1m;Gvc6aPj%cw8d;MkBtrRd9`eqdDo9?W*!` zv?cWfUn-_m?iAh#zD&|1C$|yT|AZ*Y-mq`dWcDX*YjbWw{?fLW2t_jcylImKdZz)w zP4C2$@RL^YR&W#6ovg)h|0W;$W0=cLQGDZj?WPdci(!(R)~6YE3aDz{*1nmc<(CCL z;Ya@Tl6|ut^Zw8z(`Nnq&jIol3*wtynd49ROGRm?S;5V*q&+d%om(_XJz+0uaF*X< zOzvZ<_?+Mth=SN8mzY_$Qu%0OwSEy1nemv(kIDT)gJ z#BKFaeZ5ew^ljm(y{i7v;MNHE(yj%!#*%(hd9&0NPpsd9U-4yMo+7)nxAR*^)_&NZ zmiWI7-<)%IEaE}*qr(C@>%xHQ5}b@8%??(I7CW7vjwJr{s_E?Kb$Ub|OsmG)a9EZO2U6ZQAaE{iSZ+?TABc zdE(xV=Q-le-}twOFke4dL})!DUd3&XCG%30C>7kHN$QFG6sz^t9Y*Xs{(IIP=Hz~r zs82;{p(*|yp7-0Owo@D_6Wj@Y@!k#GPMXIXk(ACG-f7I*pSbE8`%VY?Bj33=Me+41 z@tvMz`-Gna$|e@#c1F;@!^`-0#_-FNwy*hJOd|NCErcOee)peqpPo3bwqyKJZrl?(2|_bf;U2e-?G@72uuT(A>ucJsSjh-dW@ z0cGFU%D}%Hd1*Ukxyt@s7T~P@+FcHee=Y;R%c5pfi_*DW0qDPPgFoc8WG2}Sem1l_ zxZA8^WQ7m#yDd0R>392g+ww57SM9vCUg3H|c3Y5F&s>JxI-Hw!R3^K8|3^P`tsUMS zOV-OK-Hd;yN$QFIN}#lJkKlLa%=MzHh27sdFyAY`;J<>yZCP zdkx>~;m`d*`#thY71`_I(eG`juNK#S??~257VNQq?@8+9+Q-rF1MoLE;-;7?>JlZQ zKQLlEXSfJ_|2~yyFWYd&^n(rkTxf*#2YmjJ5b1@P{vY1qPn4&kWN2Z-53yuC(!*P| zKWdV?vgBFQkH}wH@*e?H+pBwR5B_Mw@7$GYZU51cY$sRV;ePbsz9DDK{i6?gZ}`yp z<2&)lo2AEpj3Cca&&iMA7Z2O+r>I=2=YC=^&o-;PKk4v1<4h@`T$Vq^|Acw3Fn?tD z$qc(Lb|CIU8cmM>WFhz-#!UVvhk{XEIZu9aVLTcwHqdf)qt`;cvT7ywPXUzgUK{>N z1Kd8@`%@%&o)G`?$hwE}E>4f{L4B%-Z`jEmBjW7Wj^6`*$*a}QJr>OOiWTE~Z16Yx zh?1=6`{%K8eTKAaW8PALRxjmuG{!{r9x}wUo@LqjpdztpOVK4aQ z;k|x}s^f+1do9WHBl%>PeXj@cOl-^V^#St?x9$zVzD`FiEze5WpH6Z6H1EXw#*nSp z)3nc+xt*#aXWwW0m+~`&>_h&t=63Hs@Uu&EIro8ITBAsOUkHewo1w^>PX+hk`%i4^ z!9Xd)29E-9z39w`13KKFeNe+2(Bpf#j~ZG78ti{XU3|a{9KOg(k=;Gr9fHhGOAHmm6h*d2-asUCo{4^u@0w`Z4}P|EPWyg6o-6D)=H0J{ zzUr}aKjxjHr^mbBf;{T=jPD13s)&|+%tjN{yNLy)0(TR^t+Sbxxg zekof-8+71%{nNI`sjkQ-*6xo0^SIqX#Ggr~U)2V|FP?VZKvCLoH2*XFk|L)~KkKMJ zUMt`sb@*o^;w<|_Ky~&FPFk-1*d3>s5XH#5;h$aL8@0rpf!hRKDqd~)Ie>U8O?Fev zB(_!70}S}@Ep{Hzz;3dSP)vw;|6Kn8BlsqDj~_56%MDPqH&b!>J}qS2SQ1IvR9?O2jAh9Ws8~)>XY@V zF4^J-&B#wb+keoKESIgzuRZ8M+`sCB2VE2=3z&$H^w=Ce2tHBM-2$rn{vACS!24^f zcA5^x@cCDMui+4*W7Pff3FV1)si-VDCU^+^;tO2x5cpLunrW$?)+eu%>TKOf{zKqr z_qPlmav{(8M#CW=?4`A}hrlNv-#d6HguEBGupdG^vX54455@3{MV>htxO{ zy86qO-ov(JKP1Xik&I{*JxufWtmF@aUo5*R=&5$^)7jy9yuX;=`CPCk%l`s?S-s86C%M;Ie*u41BDpu$@aun&f7;M5_+QOg`(c{YG5rd@ zgs3ln9{tsq)K%F;n!HQUh=}nAJJf)u5o+9!DA6Gs}3I5L+f>SeFCdXFG~BER5168aarM&-y+yycgbu$w3INAY|s zRg^=s#gE!Bp2s))kAh$F%^K@b7w}mZLUqN4HO`|R@MdG2@BTK_$}mw4Sd`J?Fk32QxE<&oN%Gv>ozf+z`mC%Y_@sP6QQKPL_OK} zZTuvI_ldu~&7IU>KdH+EDgMVYaVK}uLC5(8@I(B5b!+}4@|S$GpPWQI@*QTcfIBU2 zilS`48cs%VpOT%JD9XQkDU>TcwY=1i{2;@JaJ^IQ=@&d1Kpw64_(MkI$3;LRW6K3({9PqJS1>413p zJ8`7iCv?@B#?df%vy?AYBy2`}%mPCg{PNhkc-RJ=y~I&HA=30aeE1#yM7em(2`(H; z+L06exNr>lRWW)gzLmLi$tm4C`rC^C?ho0^Q{Gd)q#xPb$);0y|A1|N(Qqn)^*8q- zbc#;}6!$;LpVlCs7WGXOWy*@-(|U}fSQn=0(nGTd1+;+i(c zOHtN17C&prY?sFUyEuue6>6 zKZ&jMpVPnJKN;9Me$D~=fdk**C4YwgQb5Up-<;<>i1(G#d(H*^iD&q8J~6}0tz{6HW zckm`e+-H&ZcVALZl*`5a+`mVX<;vmLy%(6Ip0G=xe3D9g!I-(8EFHyPu%RDvG;?0S zeMdr+L#CK6c<}kv{OQ^Yo@6^^>nG$wDDyc}w*MdZMLhpfHJB2<_-}D^>ZrX)`8#jR zz_FJya9q6%Oc4K%D0*Tx{DJi+FZ(C=2j0JzXvzow&|&<3?`i$xo$(+mK8XHd#ynfm zP(aDDUrbb&rgx0~;lR8qw_Zz85&Ydx%Tq=4fjsy}2=&hVUh*K`M`OL00*EvGF%bLa z#wXrO5$v<|I|Qj688{_=nE?*U=clNs_Ph164)uo$3wC05g!8fyaV`JZdfABgE%EzV zmm;{o=XaYf+Ysj`H|>`~$#@jv*`~`L{62-OQv9+9^Llr>`!aab23~Ss#`vpO`rMas z-A{dAP(iG9$|`-YQ@Tw0T3`g+%;6D|4U32gX_~n}$@)T1=TASsrn2}HJ_R%XA z@Vv+Y%zPbU`t;+kAb;`PLqPbM`!l%`z<#%CWti&HgCYafr3Y&ZsBjkYUWuXKw_YJp z2IH`Hs5`2|{&4?{JE})swO)s*z3SN?{wVkpqOxy^M{Vej&*yrh4#Kb_tJ|Y4svi+_ z(r%wW>VrNmo1lwxt#n6yxG!9|(GU&6@5wc$XaxDR{DixT>#O>62N%V2F>!dE^D6k& zr#_Eg)nUD+Pvfs*+|~E~6m<3d+;4EOfMiG9d)0yb>dJYFl6*!t#k9sg!A~OIRFu7J z<-Hn1zC{YUuQABK$WlR9JQ6vnPJaKzeN7L4n-@5*8IyUZ`bp^G`a}KKT%8rdx(ytgPmStNQxhj`9)@l#}TPl(hKJT0Hausl z4?B#1LP)*d{u>_T9~xx3;lnsS-fg&naZeSQal8FS4E4OrL{WC{TlY;(=KK@wR9k=H zZ<;gLi%BulO-E+`iFWMCC()Y$yq7q4uJdL9<2>({m7?;KX#z5*YI|>C{i_@I^WKc8 z7OG3_lE`u+TQ|1IRNJkU6J%a^Pd zb$IE$h4ZKA`7hyHA>>=)SF3;(%SS0DM7*yJe_NN-6XpLak`}|9w*&aywH+7Zw?nv3 zi*6^kBZzZne(2b5rf)Uf4j`}F)%<^Ike6pd@OI#x{v2ub|7pw|kE;9$?Vq+}xh(r% z_CHiu{x^c-M&Mu5Hh{ z@0!tXOI_}}mdx=epJ}Bi2cEP7U&X#pJH0$Fem7597~UN2;am0FL~D2f6s?_Pk(HuC|h^gc`tx| zD09*6z*SH)FqG{r3B2_?xrP zbl(QMgU$U^S1eu0-FKmXU+v=Wd$50w(>w3`!1sxdr}fP0VW#_`B(MDC8SVYpJ9^up z?gtw9@%-X^pi7n~_{EkR!3XdoKhnWVQPz^|icaN_f)rJ| znfL=A=5_Ad@dp9Sd))@^K?wEL^E(CnxOR}D^0-&fRkJS(nBaShBRcUhBmTcgi+jPC zF>_qx(=WLg<^S|60Tb`x5;2>Y4%f`xm8IAm-k@+gFU zDp||>2t4v!vrUf~l+WC0daOzMSJxbFdaOskRQxLZ*qGUGDo;X}-}>GA*pu0w{C}*y zcYqSt*FHYO&|z0}>=hkbG%AX{qQtHVaWr;C(O6Y}iyp#f}!+p6Qe40acs!Po7!OpQ)); z;S$fluU6d_k(vE_u4iQacRXqI4C{?voz~_V&OhqgGpZ1~6m_4u&myRIeNEc47&&g% zlz0w))%cj?Ir!D9eYuF9D%l~|a|8ODu4?n#ggnzeoJ&yK|4Q0(J^XHXoc0{|zuM{L z4?TA#<5HHC_k521k8b$cljpu%lq9vcQ*xw{ z{zQ}hVM=?UhrBYH_5%Fcng`nuR4pz)_k{(=Q`H}Dzp!Gx%`I2rg*`bgF+PFvCVd*c z@MZ0n_1%>AB7*sO+VR|rNU}erN9VMc|8T#R@JDYwdFZ7jd47@(pPu#-{Hii74!uPF zs!KEG5;@W6y^FWK^d;>nNxz;iLx_Lql(d%-+-KgNo$F;RX`dMPzeU-}zpA|Q{^x$_ zjg=a`rm!C!A2#>JCb%zdr{aIVCS4RuaUo|prq$(FZ!uDLti6*3AJr5!9QHxqq3E_uNvA{=)kjZMBix{_^2Czd0f8uK?n^6{+%9 z2wD`)8Id_3WA_?1uZew*lJeUGI5 zZ6))0x6R++r_NV9_qP-K)FT-X@~bf-s@NNc{szBxt*a5yYfnj$2l&e_@A)_Qna!V8 zA*c*41|m-RpeRNBX)8x5J=Vnun}?wEsnteMR(WigpuFBWjxqpur^YE0@}5+Kp_~}^ zwkcg5S;~w4U8y_;e(G<^MFqhB*Rm+V?3z?JJx=SA?|~9_nk%>BvNvV((dH%p(J=SqwJiW zm4IKqt0qrS_00fQg3oKo>x^_sobcPL5hnq^q&MRys90FbCGnv?TVEQ9y|!vCza)V8 zWusY1B>Oxh{$F@TPyC-?8AJAQ$?MY`V@IC9_Tm^a|L4YX_^dL1Uw%rM0l#X@3Wh;k z^u4cnCV=M-w_6*DO#R*>$betIt0&LIU^lTlE2R);6$wl9(sforst5Y5HiGJPS9zkR zR@{n9Ngl=XI0&zz^YXY9h;QcyrB1A?wd;8)_@%{7ywr>P;t!5H2+F1%FiO3IXBI0B z!G37@xYP}dlr>77xX+pUC*s5T%Xa>0u8)Z47bzN)+O_>zCpBN9#|Ik~ox`zV*lr;Q!cZljHhVa*H?1Ey#0k9Y$`2 zzeyTaZbv+821Vs0uDwqfxfA`%CYa^mkq#K`m-~Qrw}+te?srk5m#AkO;tt zn|}8wD8y0ribH|*uU(+#iJwGMO=`|6Oc>X#giQf{>EhqR3M+7lQ6Q*nm|`S)+0sAE z3OD3V;~WZde&@CZ751bbZG3f95lYIc4_EVw7~+^SkyBD6pZ2U$hdi7!MNIHZ7S{JG zO;}e&VrC`cQ0MFuRa&v0^4AxXB#zDp1f>(>bG%`dZsf7r$t%4|N^x{4tMs9M$EJ&@ z+Gh(ASzY8D#sjM@i;{8jIwxFs>q4pPofZA58>Wc;^rMZO%219{tUf5HOz3Yt+Ch+7 zIyR`XLUyIu2%l2(#Hez@&ymXx6_H=&5(r8kmN2RapT}oZS%6C?b0Tlr-wff^OzrOw z`!}V!)D-$pZ5C16cqj6}{Z37PP-Vb;&i|QLo04@))J5~~Y*=m2s+ZUCy42pJp62fa z)dBdwe9@*3B(EoFbG5KK2A=$LZR!|~D_L1yqf7QDc%;&gTpAPh=?0fs4dPI>d1=&G zk#D`(E)DoKT_4&s&Lp4a+q*`M7wh3v*`UUU`PlGO&;;;1*M~!XO#t)J<`%1ofUn5} zv&Q!ieBP_PR*(Aqa>7qgRjEN-Yl6LH0jotE%#TsC){5i0?^8jKvdjX1ss-z->=&L? zEAZEG9FgC(N@uuK_)j!V>pz85AJ)&2muxEdsbe|#)KIctGO@ZVHHNr+cevCT_P>jx zgdEs^5>3Mn^yDxk<%IsucSFPM`T7qO{qrIw(0&M|91xe z;UC((=D5zCm6s`Xnb%?cC7SB50!CdVX-6;a5X?zofBU$tF{h5;7p|Q8WPf5DePS4w z(~?y$oj5<9(~0?x6*T7rzw}sDPfjoLeB6K|a!T=Zo}m20a!k$;=D(6Am=o8VszTiy zL}r40*<9e4*RROs(qX+!u4~MtPu5+wVv0YPiPWteo6AxF{|EO0o68Ej&w6pW>^Oct z=_=%MBCb`3&AGrs{kbhjWZHHvN@R(V3g^Q20~BqR`iU&-mm=hf;P~kHA(tzF<5wPL zSPF67n;@{@SCz@p@n2WSq!ynqpZiP`^7!?Box( z`B_|-Yq#w8vljdwXZ@ZW>q9->oC>o69GBb5i24-yD}mKBxIcUyX0h%xzc&G9t!tw0 z)S&*Z+~8Bu0e@}_?ABfk=LRp`>=#FFJLJLh{kfg!*UmGF{ci^$Mus=ZhfDQrEbA`24uCik%_- zDsF{~*h`Pq_vF`OT#>^5{08XDUv=b*p*|@K&Ab;b(=9`*KI_2ehVf>LhTp?XDFUgP}*g^)3Uo=x7D5>!WSIC0?g}rTsz%Omp zBwh&d(7&tMLQdq}eqpo__8DoP+RcO0n~MTvuL3J%fz<8CO^j|A*T11Z6Al`3qCHo}c?=xG?yrhtGtfaVxS*3!jus8XBFQwZr!NSNtrMp~2)hs1nIPzZoGEIo&D!WB(u}aMMB7HlEp(%R;CbFyFxMS>k9KrTQS6;xZz`q;dz9zk3p0Ze(BOpxnf@AxuhLW zFmsdjt0xqT;5_oI6;~{lwLh~xv-cFM$Ni6Vz-61>gmty2BSSE|rrvkeqyGoq?CiBg z_Irv`_#WcYtuLHA3+S zu)m2d9>Mo|d!FQpUUTHKzjz4totni<;QYvRuInHuYq{B2!i2mVl;TQQfInU}m$0J0 z@-15lJ2^gH`AaylpBd+}CES?rOFh{VUK}sqdL1Qv@b~P9twaEF;5WWR2=lgLkgEjV zvu19x!uvg(4#!{pg&s~1eAJvHDAm-Ab0(bExgQuJCt6CGSeUcJ?%ZBK2mX}Ohy0v7 z*`KhJMsJ6?Kvw;`{tnZ*k`&_ZmV+rtCD(7F|G!4-8KI;X^=K!=2__o-@u_%8ey|Z9O(~_BATu^MS4NkND^Z7kLurF{ z<}yyK!$>b<8TUVoztf&C6Towsu7}w&0mR+^4P?Z1;hC*W4DoIbFl8y|JFMo)f?v6* z6-zL4lU-ZNm$hWo(`P1_%Yt8V=!LDUJ9(X-7%$H`#ax!~U3tuw4JG%>M1KMm)i2sU z_y^uZe*%^DPjMeu5od!kae|sfGtD1>|6R+w$NzyhDXZvK;ST~y`JLU{Ka`~&hRade z_h+_Oub$47vnG!dwdyaf9Qf7h6cJ?w9}DHc&rIGMFXuyDik0QdVg1QX-^a^^Am3Qe zmh+X%?Dqe+tnE0+Rvzn57X6qj?*{K2EnnW7ypB-Z33BDZuee)QM5_AWaQO)4V|y#e z*?;dKb3jVECi|hK0wt{+aeZh_`p;}9-Q3prA@WZ&+2Wm^4+BX#q5oHGx`nS`z;XMq zfvtim$*1j?ZmVGZ@BL}=jW<`ob6>Ub2vY(1XV;`FH@Pb6v+vJ#+}~>*6-oWopK=vZ zf5qLRLPawFk4~`_1M4VdU?g7=^RHdF%UlulPz~2I6=RT_bPD3r2UJSRvmnuDZjx?$ z%#}>oPcF=hRx%~moqX+cPbGWOUb*!{rjk1;(_1b6O1`4_{Vyq3$(O7j-C-|ZDT4FK z8qQV;{F$57zr<|#hy2x_-e3&4{*)CO=rUN7X1c`j_RK?Whc1X@@hm%I;*pX6X@EWnWTG#FIe9y$^)S;8T@2W2*u_)rS)t zM3z+;9j~HKj!UU=&{5^Rx+li}8_I??Ggf(zpMJK(RV9@4tDLZus}hsr{~F9>jNoV3 zLvf=HICihgsBcKgm1}H91L`vWp5JIfJyO4Mi8yxwZ+tJlL>%h09~q+?@fVsQ7`-?T z9$6YR`fz><{Nga8{?b!DqQ(H~q^saDM&LJ3KY_^VmD(_|&)g(e?h94HpSh`W+Rat1 zShojz@l~z35AHlVT-6Ee^8H&p$rD+5Ru!)L4}KH==<;);RbwAfRO80}Y82vqQW`X%i|WS&eg zSEsT+FD1tP8>&xS4_1Hg`d_vCthqYsui87FA*i@tRj3}y8o$!h*jR&lFMex(a}9m+ zIH%<6%r#6H?|#GAFya2D%@}hHE96D_AmhF#*AuRWQ-*zy`P!s$q z9bfuudXxEN9-mTor=w=%z5L!9(2J%CwRG6$p04I<=@ECn77ijSFLmy-;Bz!OTtabP-o8mQ_zl?y$ANuUveJ zsjbKJk-dLHPOcC6sUKant;un+wIgk{-{X~hQ`2ADi##43I`Z0(Q| z|L3BnP&MxsDF&GI!rFK|0*tT*mFeUb$qx_DKe6+6F@$%{w^=n5eAA9_)^F7%onec}Wevprrnfc233g1K%8^Pz9e)(xP4$q_%P zk4!(5t4G0a?{vN%_@!5m+Un`CztnvYC2?toT(;Hq;(WDoG(+N`Ti#~sS@E9ka)ltt zSF-h$qn;D%F6Ry83qP5fWbI;GJ@7L(c_8Yz`mU`W&VPv}$vKp(k8gElZcO*D+4=_X z-AU!^oA6v`cwQjtWgIB#wMA1s^-T(V&iM{Ty53^uSQ$4du!{SDknIblb?(3%?{Z{^854uYARqIXW-L?!ifsDaC* zhkeIM0>MO+l&Ii0S+EXLIKgB^9VhPy6I64$^IYpEl>K<(9!+dT1QE2GR zetsm^H!_VV6T(PqGz^M51X<6R3jU*X2O5%C%@T=_2;!6)6h-P70${qy2NV;}NZ9F8^)z|Zgseu9d-#lrV%a1o@1mwYpF{}r6gHbY#RXdz>>0OHXf5yz*na)!v6n}jbFY;MY` z&uo`jmiZ0l=HO9t6}jgB;5V~t)ydU+blx|0J||kDoDi zj<+#kA2d!BQB}8*zl|wte6kL?<89o?>*KrTHr}lLnFEo&+0C_yp{`wT_<0K0ZLC00 z-EM=8M;#C^bCfq^?~nO2-Nifc`$Y8%$9eEe>h~5=diJ=3cV-lY64 zn16N2xQz#YO7o^>f{Dg_uq@hEk9-@pFcMT0IK{U`9MX~>v288*yyN6~uC~^sePUb! zrK2WA+j?<)M}IRCRQub6+xoJ%PmH76UNW}R;X0&X;Cd0Y-%jU0i{N^u+#P>AC-Prj z&);7EALReGaFWqwJ?-)Pr?R>0*!J$^I7U;1Z|_4Lx;tF$!JE0!pSAY1k6~ZG_Zind zhI&-{BHlrlw9{NJ9q(X(Ji8p<0nZ(@<5sbvoXL@@)Fe*_N5VP2qYmG{JT}?WQICCQ1`zSc($8ezkqaD=6+7R+4)1{u zJz$8eW_+%WPUtP0g^q5>E4B+Aas8>?lOp;}$-Uk~{Qp~1TQBmR;4h`zuWTpqXV>Iw zcKJJ5G5=fVnLF7LpRb^+6Zq+JwSt`p|E<$3ktN^Fv~}{~{18_&1l75!Fr7l!my0d} zLT-3E0}tl$5INCOat$?ievhAd(VOp#^KYW57xasEw&MGEA3S6`+i{$=EzWlapDb3_ z+!^aQbCdkK-_<#QIHuJy63pDB13vP1p^|!OI3RS;C2m2N|b5Tg}l8 z`$nSCKfK|)yYYN|z*1LttpAjOrHtKi{!KJ`Nj+Eh5aRnLx6mDYnVWLbGRCR{|L6GR zH&E7knb~Sc+A(_vuvQD=be@P>t?)DCvCV3SJR+SVsG2c5PW0;KA=c^!T6n+Jhx=R4 zi=Y+jQadlNO~ge%nXOLr%N{b;80!6ev4fy?S`k+d3inqlKXUZYLteL#C;n0j8KR_L z8kU87Sd#HbtmBP6?5O8?ZLkOY$&R{sA}fEX9<*u z@o0=y7@J*+|C7{3usLOv(o)E1b0_-~amxxTUA6$8pFY~n*aBJm6LtxtYoz#ly~m%> zXGYaeMQy$8IKS1eXX}N0Wi>UyUQXndyFcH{jr%;qG`1JwQP-*q8S%Hb3cW(uw-y}^ z_6kAYND%uqH-6@cpOnUoqgMp=oGll6{{z3YM{ZkhOL9GDjwc~Ydsh~Ed$E4@4dZ*0 z|AREt8|@vy`WSkUBPd;8gzX(cJn>YncMR7#W48(-t`PXobvRECy&z=RKNC^YdAR3u z6Xt2b4cq6s?CYly9P!VQr+VK~?sISUcJg_9jh};G(RC&Bd5qxkAi+eFcHP4E(PLkz z|DCaq0sTf_kjUDlM{IpeI8UB@>F-0ncd~S8xQ{(KE-^k^{5X~A6T;_ygIu@|`2VfR znipgHf?wI=7js_|j_;*8j6~M9@8<7oC3qEx)2fmbw`?-GLPc&8IDA&)LpOT%d>gk94 zRXbRJKPUR_sjhx*@K&%J3BGHaiv|0=$Nx^B%^%X)-}C+T?~TvKPTpXUu|N1_`n_C# z@GCFmboB?X@^Lv2kyYiI@kExE+ZXO1z?TF31CB=nM}Uo&6a{lB|kO8AwHZ(|!k@;xH=4DcdO ziPc7sQ9I280!=8z^{8tA$-m~b=zvJpycKWQ=s+Fn*7!|)pbq~h?Q%EUKpc}w4o3d;M5}Qy@|O*K zDe5J8^}=8u>Xw&|4-R1c7+QG-BMw=`v)tea>>Zt%!7*|jax+e3d5brKh%=RbGEV;H znqWu$6}6+$!4}*v#tS*@Cc-n&Xt!b>Mjj7}ylO6JcS3&pZQO1FpU~WB_kyQbDo;?_ zuR3QB5Z*_e9e!m8u5v`La0x~ttLA^h*drJ}@nF;*g8ic-#vyvbGuk-BKyWh<`|_OBn^8G8)6DJ#oQiNx(i0TQq9Yb|kM#Ny&O zSIgRt7{oR5jx; zC+c5zTXa}Ri9CKY4mS}VPDIJ6I{a`8#u;0PNVm_)4|n3aV%;(0a5v^*-D?rm70ton z@Ixg9t8lBZMJb?Gr z3!VNEA=D+8f*TRRd3=(}I3hy$>Sf@izQRZydCsWdM(XoWbfMJnNCWDoUFaBz^+%uB zF@|Q>a?;qKirAu2mH!7@y`sh@*};(e+%PCAMrmHh&%=@67}-V zH~b?JpR#!i^T-%*{LjKjj8o2h;~yEo^*8gKd6XXihr4Gh|0q4`c5qFcptAQ|+b9FR z?|nU&I8IaUQ!c}Qd*di4;h8R??DU`hQEsf)$3B*zf_~180-vVwui;S^_?Z~vMnw>J z{0o8TRnHDNzNB!Tul0>6%TjpZOMP;`q>sJ{eraOhznAe#jHf3p5>fN4kN-=1((c{y zKpQ+?!mq4SAC92*LP_(NKH$w-<}U+T_gUu518y{hdgm7dXoWW4mGZN||t5gP*~F<;C^es>YD9zfWuIAEV0}hcc!$ zjxpgmSgfXlAT@Dic#IYK|J)%u#)|xFoiL7ZlJ$1VI0pRE?Y*L7yr>^HL>S}4{2QJy z#9lJb$&U%)ez6T24gTeb_P9fb*u-&yCe#p6>1SlYY%oGei7l zZnBGiM#s97dU>p&XRMFR&#>^=0O7IlV?&VFY=(^WB6;Z|GVT7!F^XFYNJgPVn<99pk)& zuNyzki*-A(Ur>}==Z%jO`R+Kzg>anrJ|z&n;#rJ!QrHiRF#I^g#SE6aoO(PL?BVt} z^;jo)^D+c8H^rEmywjf4%bvAmoo?_}T4Hv>uk7`0mZ0LzfGE+cf2z(9InmUoLPlo{ z$Gvm_M^LkP05e`k75y3rw;S|8@!36STsf;C4|~ zR$sule0ZKZHzn!HF ze`8QkT6Psj@=P>Eo%Z}UR>WUtoQNq*9}(#}djB_Wtn2&Rqu;ob_K9(f>ALU@)?K1$ z`lbZGLA>-9jd3EC3!k&!$4u0L_fGyG!9IC8yw|meNOiZn zCWT<mged-~y>P-DOu~(g6C!(hE zVwU*T^!+3_$&I??t7e`Ienq9C@yU=ieZLG&wqjpwwn3Qe!#>@*wrg?#`XyKR$szFd zxxi13;P^kKG*5eQwn!9P7UFE`OPcC4*SCG`i^OY z*R|L)&4PNRdp*-kS=R-9&B;!4<2~8a62WPNpUcG&%&tk>*yGb;+4obnY3y`E_WktU ztNe63=3_}e*K{ZHs8-lG-Hvtes46#|@Gg7BPxoPccvps}2k`vCF%<|or<0!^N&01E zX5$Qs%`Qxea(u*|JQ z>9e;>_)DO)MQ8IY?4z2(MQyXdFI`^EF$?wAaPvhuVJAPA?wAFBTJckO7V59)X%Eke zk@@k5XHz)7=Q9o>Cz{$D49+%Wz0Xbb%LkohXWQZDVAwX>iRUDZJJ@Es!CP}HGaLNM za=G}~KA^r~csAyr@$P45WB+A@E&S{d_J!a+5!Lc$(b-t%68$ZgTZi|c#kG6}R`C$j zbl)z_j=_G#LEddirL-!WV|DKyRPD_0Zdc$0n;{!-ecjp z*!MIQ>N0ap(B~W;oofZ(jIzPGcHr*b=DAMPU7FWJ^wLEQgLAz&9;f$Y=lZaJ)TzkN z4ZyCURYXmP0WQ+7`F*dSU`m?>e$t;^Q>;=79uwj!)tn=kXwrQ=?*YGbpUdTOBJXVm z2a&bnc zvm&4Gw+i#Xr`dOzC$cJ-=9%Y4Jev+g=Yd}uSiliXX(jOU^vQLsK3=tiN6-ZSyTy7s_1W`Bun%j*7B$z-F;u=Dix8??hZ1B>a5D zCHsx$iA?P~9-kjT9w~DFd}kT_|If!9>DQ$HVkG`lzun;%Q1ENN$mK}Sh7FC zBU5~9T%^ycPxNPp3TB^UksI}UmXlrd9o9)S zXToCeE2^hOiA?W4#xKVGPomNJ+IkjSlXauI-*YW?!misvW-;MkTs*oM{EWsLUF^$2 z$(c>u;sEj))HuEv=Xbi-QeiRnLHfHhkTEY0pRvSVe)fQC3E>}5%eF)h{=GCuWL2A~ zM&eidJhy*|Daor?_Pb+=Jy|FE{z?B5H$HbZs9SuA7x!mVTXIX_mzwnyGWN;t&DkZm z|5c5B;aL)b-*Fnq1dF-|zH8P(uBG5-3cL;y%+gwY;$Le02YnX942Akp)A-T=j)&Wo zqf5b~*#5@9G?Lu6CGD8#G7A0P>0yG}^eNmjeKJpK(6IP26YdjctAMCe83_>k;o(=p zG7FB6BL?#_><{t+E4gKEtjnSic9}C7pKM8;;Icqc&KxH5{m16zg!gf!=yKgZ*mZBj zE(f1{Si|sg!vE#$I6<|{7hVp2dFYjYxf69f-XbXC)e#gIc?9GCmclRMP2J#F?oINlzc)lz=&=rlJhQDZz)zL$m=z`&@Bk2XnsLQO zP;*zyuh75uIo`~PWsYec=gOwqU4MMUKw#zXul2elH% ztMYW>h`nk|L1twH^Kjw5aV4IYD2jy5UgXa#?CtlOvX4(QcMa>sc*XGiajzToD)=<) z^`cJW9vKPJgID^!0WGCXJ0A4j^3Xf0w6?S+0yIU|wj zD(9Hh0my6miT29IX7g%0zE^dy8b|n5vT;TsprTZsiH_A43(q&}7j~?% zgXgoO{xuTF8Wf7Jg&lK(GOwlZ{Of9Keytwz)ng*cOCLf%_MbBK zL_2x86+m*l6l2y}v7S^m^IBXNDbKUvwcwWqH0HHl;1B161eF)kMZKoOLdV(w;q5N+ zYJb|2ft}s#Itu#p6-7Cv`fCws?Hp#E0sB*p<{A1%9|&T+i3xs-+8GhgI%jg;Gj&ta zE?)@iz^hg+;t6JH_WaDZ$Uo7vKlgHct55Dz%;1;Ywqv5BphUi z_Oi^kIR7S^>{wg=+ZZ`cZi%RB`8Bs*_nzNYjs5G9zjSsB5mOYUne`^j_nouCdaD}e z8M!DkV?PS6cjipE#d&rQv!0xP?X`e%N;1=LUXQ$Goqmjqc&s~5P`;zKc|G=H`Hsav z_>Ep*ztbVVOHZSuKf9KqSjK;6P4>$!&#`^yglu5r-?@Rc>xw8l)}I&Uw~pvtzxltz z^9O1X&wUrc@pX2C=R5Ew8vSCNYl9B!srnUegFdOJ?9G`CIR7%~!^0b}&ZG@42^%b^ zi)jd(fzzNze#eIM8xR-0{%>Z3S4z=_ah?r6{J-cv^<6}-__~y1g9+=g+!|(s6LO=@ z%!U}&@zO8-M6Vu_-?PCBoO3<6ks|(_{6+)hb3cPW84pu+ExXbB-uh@D^K5kDzHQQk z_(nJCI&y1#qZ9kyk7tcUR@ZC55R?wcYugxt+@x8C+_?d}F-CZ%^P9k@EH%YXE8l=?MEH>E$DDJK}vY%kOh0Ket0aVZuHy-bYM1XY^qnl+*fh zKJ4#Q+K(O|c$L#O1$_a$Pnu4-GO%L?F5eQ}ia6AJHAY_yen(GAh7wn;nL|x&0E2vSx{8i_Flac2J$@Z z*lh-kYrKishT~6hBPMJk>#h7acAFLci&OkIJM!7j3fr8BbI>(*8~Ewc!~NR`Z|U*= zZL134dqH;`qW+fOMf8%J_srXTSog&TbK62>+{3sZ{LI;pJ$_0D>wLk=QG! zdk#P0t2vzYN04{!nT+3wd|HoUzo%5N&&7YQ!?-Q8MbtD*_4w_uTP=5xe3=iP@ZaP7 zFaJ=+d{5%2@K{8qV?OqK_)(qPVf@~mb-rXhoWl13%xCSdIf4qkz<(b}?jKb5)690n z_is(1SmxOd-gm7)^Z0her#ye!yxj@^&#oJ{yRkpiITzjTB|IDX?LNeHxMp}ec;B@u zjXc{U@5%2v{@*_o-x>Wo4DfSjSd<`j=Z$#>_$AA(`w1$FG!b@KfyH@#hZFO;J_ot!^c}(;JMNP(kZ~{gmA^f;5tK~`aeE`kD^?;Z%0E)keaK(=p-$MR!|^iV0lQC+ zby4`Wndl|z(fmGBG9LA-dj5UZWF4}LQ*lR#?(-$bCF~RhPYe4ZS=W(v`9;V6_wrU5 zoc{d=th=UOe!nUCzFSr*FSp;C)vtt$2>acr>!Q7m{a)brC*%9wc<-@m1oT)(&#v|FOmOw=tql-64vPIsandB-#9;8)JvY7^zR12h-y;dJ_xGV}-cW#FOW zZ}F&z(z6aB;6)wo4Dt}9dw2B*0-f-C_UnTI>;vi^)ja_p&TGSty8$?Iz_a zUiFC2j07e8%<#bg;c3Vo4B2t*YO~Dv>lqWM6aD%&T}aA9-mez1PT9!0c_BY z{=1=g(24q#UMK|JNjtja;%E@#Q<~e&!9Y@uScwN1MikA#rNh7IhI2=czaS;Wlo(64{vkLtm9YKQTt0e(i8H6PXE z{fBY8C@1XcQP-HGcEmU8ZV*%7N z&EYy0!1ZMJ?!vJU;{0l?>zJ49d;5fA_<=->Zz}L7D3aGD$b{$n4E(hxa{_TlI_~n2e(8Y2wi7zw)LucNm!;Kl zoiJcO=v*d9P&0kD?SvJ$d7JBmn(z|>wE_(?MF8&lbnZpa&lXW-te zK#~tFB6Z;h?j+`&PQ9F=*EJUH=(cm2lQ=&zi#vHvdNHp@KV?tBue|TL@G0b}EWgos zN{8#3>3RJpL&U$HJ%v1}jngu4?=L{Yljkk|Eb8eT=^3cAW?<A%w4b1H)8 z8RyCe$vA3|H~u39e}n!8!q20s{EsBBjaAqm4FuPVNT-$sqCbZ`L)N9d#Ze+sb*Dss zbYs4T)N%Z1NBlLcqF;HVDcq?TWXE;Kk0#)#DjE7OtB5jX_pztJOKm&=1mC`}h;$C_ zE!N7wBDxH0n$vaKg7s3eZtygC=pi+Or*$b5J$kGEG(P`9Z|}vOrttqlRH?AXd7!<( zpEi&@uCu2@#Q!}J>D1all24lqSvNBS8;oYoAP$M;sQHWz>uewIAt>qU6wX+{7jNi4 zW5sz*xS!v0XWjN^0+^_yPXb|wIxO*z?+9X$I}MWk~$ zGf=nnE#Aw(Dyx_f;*p=S8PDi(A5**~7m8qAOKrweAz+S1{AnH5b^7!0Ssgz2lxvxh zYa)0e1ARj>aDUkh#Pey=Pv>}xx`P?A?zM<=u4?eC7yf?!UYtMq z#Qo;85$vD(It)Q&{^`bZ6#TbNW6$aEoMO`zAY|XP3|#yJbIt^Lf5QyvPOG3;ccZN$`vhc0FeK&v_vauEB=_zzLt5Poci5_2v1K&{IB)ix7VuL{xQoz@I~& zs_!m^Nx$@Zt$0`ud0TJpoD+CvbUZ|1pON$tLLt=YdXr$-iu2rboj*j5=L4^~Fy3pc z_YP)GVw`%oEg1F^o`Y|h$qTvA6(VB+>L3Qw9oE#_WE5#k8KI&**fgmIQ zNcc&Q_50yN<4*?cXY6YBEc|GiM1`Mpz?Tm_KU#2pTDqP;>m}=;3Hy^1Je&T=K;N|t z+`r&09?QUkr$wX#ulzp+aQ<0l17h6pqmJ_w{4SVh{3!;xVm0o(9_Q!2dyMBPoF`{3 z@|-sj|6SSh7NGBG2JYYa79$yW@NowId@Xt&^`TX7xbs%5i_{jPo{>3uqL&r1lDCqR%GR1v}PL(K5^himYE{^nwra-bLU=T?ZRn7edfGU%4(sNIuiq3o+mUjflz> zM?Iup)!-|R#HYsd(F+)-`K29m9(rw&zMhLz0ZOL-ox4c%m8Kal+Ts7yJ^w`~`gbf8 z*OT^YGus&h`ZxXUzvv@8Y3#)S;i;d2ha@7>sog}BtQ^N&B>PZrkLQvOab6q&8FiVP z#uHgOFIBi?KwKXz6z$b#_pz5u@c-R5?ve%dO+RkF&Y)Pch6Wh=p68CdPL@iNBKsZ&K+QoX)#8Ga;Y-v(d{j@P*^X%XZ++&E``&9CH|iDFF;~3EFJ~Fo6(8a%Fq^*;zrg1j+3dd-COE**n@9KVAL*{&jf)u$`M*RU>A2ImT1#dQL8 zU;}&2OX6RYfyd^FD7{rdAbQP!KOJKKy9=>@{(~-XfWK})T`vvxTnDdaRYP9HTWuWI zO(g!^>~-W%9a}4+a$HZ(bvNo=sRnZ$JSm@!w_W#QT`xWuydFUO$2k9WtaHU@k6hOy zh~sVrzo@VB2XlkMI?Jc_UytE)_S4Ma8+wdycZaz_?nkyxV{e!U-|-Ag-;{yJc8N$= zYRcR|9Q4pLka1n3`j)?8k>hhv{o^;h;Q4kIcLQ-LCT?JEgb+tQZ}0~A759rqiLA_j z(|D7D|E-JJn>xaCIRke-3Ewn8P7h|t$4-bySL)2%L_Ep{zXxwx;m=!`>douz&c1=XdD!r(uD-C8MI@lfT zX^!ALEQyrjZpN^_zQ_+5>-^gH(Fk}I>waM(7R-C`%q{S1F8>r4<0z2E z-wGif-yJhSI_J1BLCJ;wL4va4KXbQY$g|k@!CMg=Zv|(%Zup?LTo7(!Ua3Q6*xMG2 zf76z~ZH3+G^Bh6CQhw&P$oDM}^4ZrSYQ}XIQ9H7GJQBg@jZggTxeXqA^lAU?2>w50 z+C@hMpNG)Csb{_k5CF53_nP>pl_xYv=qXEoc!An9k0=@$k*k}xOd)kw`L!nL` zItkGb@qd!J1HUr=9rlg^akMMqzoWrW5N5Q=#=OkC)Qb~ zk8C1N9O}B`#{T$80}mNT9cs?r0dMA}x%Sv~CzjMJ%bfPy#r2n}RCV)RT~e=2d+oVv z!oKov?Z9L9t{dYH^%qe!X%!>NZ^xySJj~ri+=-@|@SW!__*KO_2=|b`(%jT@54@@g zDI7uC{+PRGNZyx9uKi)YXF)#cG<(lVc&3X;H*L+|v*UeVX$f=B4Sm_X=6haJ*Vkgd z?CB=RJt+BoE=u~Dy?XP#2(G7pDGQqQ+dHts{meLLpKz1v7ov8tWxKI)#isg=9g`>4O9%rNdgo_{h;1_<{t z|B4PnT=ygJpI(`LKoOoFM5GPp`3IN>+BYAF|Ks=bbm(#Zy}#5!?6gzn8y{GKV^7!~ zfH!kfa>Ka?-mH2my&?M`M0oCtD4Si}ACBa=L|m zNchw5XJC*PQ8G)%JPe@zHAmYX`fxnd6hu^hm6IX%%5C$^q+fb#OZbr<^S`FM|B+z| zz85wbi1S1Ga^YbBcvQnZvJn5z*heJ)U?CCd^IOA@+!+5s8~%|K_4#3>XeV1zD)URGJSlD@Cf?>9oTMugy%l=nqmIORAGv~-y3@TZpMio!lM}M4%+W1jqA#)ps|R6~MV4UI4HMlG zL>~mvTac|-L3XXSf~bpqKKF@i{P=qI`+Ggl{mcU@QytqWDV>p}asiC#Tn``rLb(Sj;zcSDF%$iPmlZ^~CR z<(>-lj}_)A@6tN$9`q%Xj%VM~WB)G~r`@1>HK>EaBa&NM{ml$7r}g7djlJPKm4dw_I)Z5uVmNt ztozu1%9^`D=#>5~?LPG0PxOAl{QEXsuTt-&+_&LR0*13k_qed&}3#zcJo#L)mE5P>~^mheFY=aFv2;|TQWU%IA5)R-5?kC_qlTh?aL5kh5dW;S2{#BkKdxYQlQ z*Nf{(2Hg@y9EdaLc?w}tvEQdeTo{*`V;)C*iSNltidW5vK>wquLvi6lHJ)qpHp+TP z;<%Of(nCGg>CA&i9vVMvM~~^W{h59&AhE$g8V{k>~RA(VbO zDuv|BFP#+<`(ue#t-ka~`(e3wVeX|zCiF9(JB?6u@IkdlHq`UgNO|PId~dy&_Q-|j z%#-rWM?}9vZQ&!VGwJ5@^B=jO``MJ7M<(2-AG*!AS58=dT#l{`*N6e2tqZXV4%^W6E9?6*Mf7_0&^^k`H{9 zL+m8!!tAHM595EY`9G$h`Q*%JTKF-3o%T$RbM5yhInVTnyVt;+XJq~rJ#(H}V3*`_ zp4m{ZdYlxxywA)hcxeES=T}^q8`!D)oza!6$u)~+Lo}2J}o29#Ro|{nb zzBP^HE9bmPdq%$JyCyvR8S<46f6sdEg3dR4(w@WLzon%5EmB@UpSirD+6#4}zA$B| z@P$5Mzwbx(*MZCzwnVu+yMFcy7v^tnTFMI#*1@6|ye;4U{1VBh8aB>+5dyC~NFkJD zugiK7VJP~+7s8k5uVQ?yOD_WG=cZ4lywoPX_a!QQDD5TsDg9zb)=N`DkKVZ>>!l5! z51o8b?WGO=PRtV$`(sIxuaod4(f?Qq_s;oCjd}X^Ax~+Cb3Bv8={!GZwsl*|U(ikJ zy8q^1wh!-f8l(Q+^octs=i?UUqrv5GKDaSE|~e3kNLoDJcHh2%z1_Rr+m{> zUZMZgl^4k;HLJCglci*;4ed6Q7S@OI8?J@OZ>$$9Mn zcZ?ZMC|tAc=4(fOyx%!`^R)--anZ2huWjgWgFM?`Q^fzDDX$~oHYUc5Le<`=VBhe@ z?6-l6?iV`p2K!HGu9N-72;HqWZoV;rC)T79#*?U>_R<@id(4q)U@4-%?OKdG%g4C;8=my%3`04R@&AB# z;wTHw)d!PdqyDwu-4yg0?xK!Rd`D)cT;LaqD0UmZpE@H*S>DmvB4=qW(W%8ViR%-j z^@)8&|Fw*zQD69ar-8OeasNhZh%GZdW@z}8Zw+&Vifjo-`=FC9iqZk>gOu_bI)r)^ zXItqA@&74{w*?e+bp=m4GM1-Y{EJSY!nu1>5EkeWU+!_Yz=-FD@6Ln;IDbXzMH&J0 z6zn0pz=m_-dxu%zAUfru0*t@7;%N}^J?&r>_%Pnvrm%tlboTU%@v8DIckrawU12a< z_}#&CR-qc}i>VbRl-}tY6>7;k|K2I^!9OF?2u)zw@1i`@TSbM4LtOD8Pik{PR_KDx zmYFf`>=omlDKYLH664h>G2S@Iliu*gER5hjzrr#`=)pdc%bg5#1*5;x2qWM;De5Ir z!l7q5VFds0?eNPiW5M~jWfcg$o#SHMvy!JceNdFqW1MT%FffQ$K5Gsm41m`{L175v zR%3*pjGLlWJ}*PK-xP~yV-K%Ljs7drt%THOAuG}oHjZ)2o)~v$$GCSvjJduTFYn+< z4-131t_j;4M7S>yZdzjyVIG(PGPlTs6=%)s7NK9v?l*Q3^r`KQSh0%qV_S^7cgC3O zit+OIJn6kNy<(#b*Ux>tE#SV4iqT%cedi<;-m-zXj_EJz#5U;7oahz1(4Xd6oEZJ5 zw*173L*Ul*7`Jzdv3zSrLiD!}d7D2q#$1-CAV0^6NxZ4$brK`i-{XUB;!m7DJ1X`N zZjDNyPhAkZB`)lf%|}=X@~JIZF>ckzxbsAexm98`)a7s&fcH;JK|Hq|sln&dnnwl+ z^yp^0gAyNB=66?u62#5WofxSWoXdHodbHb`#Y&0pc2|r$Z^pRiXpFh7-*QrnzF&9> zC8?a$f!`+%6$?r+FQO4^%u>WF8re0*QT=tq7N>t7l^RJuG^~tpYrhz`?~ifk-!bmF z9i#6aPx{UvgUo^J%Heu;nGf+k84;Gb(4U??ys{AXXGT$e+?d(*opK5~Pm|rGU)1LB zShEPB$os{$~vh3dAGnEq6;%Pcn6noy@mn zLvwyTNwzQNq!!puGSENxe|n0iRMZB#I5+C&*u^IJ@yc0+58S1B%V3PYS3HGhXY!=S zPVp*LSid)l=@b|r#!`KK0j$MzPF7bHht%3jnY(=l4MkIEAhTxI;nt@A1`k? zR_P!*cVax0H^$3<@uat>n3bMwy>e(a{(P{aXf5&(zHO6CAdD6LsxFlSE1dk4Rli-Kx zZ+9m_mw9~BndCx$3Z@4MML!*n=AjUWW2%|dqkA`S=TR5HxMj0>w9v^e&E?S(y}>bi zcmB7$6yu@FJn6MIFh9i%TI0?Gzsw(Xm^|<&E3;K2_d(~E!)zYt%c>4w$Uc&pOFNS+ z@avt%=B2>h>2Dc{@lYe4vO#k=3FbpKWQS8i+7ErCldC|BOecpQVN$PfUK`Hs@7&(J z4)kknX`ZqrRf2i-sJGms%Y$>B@-AodqCK@cGsZo6W8C|ehdS`Kuvs>jH-zh4>!FMa z>sq*_v|pvien~DKRvF=cpxUfLywXM;Q4jvF{uCwqM)pS`jRg6Wr!}i`k$&xs@lgL5 zmq-{D(LcF>w}qv~IaNNaGxa0bc+c?gYbO~8=GSq~WHqi6@~KXR1#JDjP89*$wAILA zi@)lwOE$sJo{DTTZ0gX27*B5EDLLqIC!6s5k!>FsR4SZXHwRgh@mwPBp3IPaCBK{3 zK*nEDYc@mXTamrTPUc53aA`1^aPT@-f_%w?gYJATt4Uv zzUmpwXT!R=ImVjL0o{@dg857skDOpMp9h~?P4DAQHp1_W@4PY!e(e!!z7RMyPn1wp zxP&zY`PAOZY>JBL{1W4-Co!Hb9^<2B{uDjN=Vg;%3j9fgPwXi~|5jmLiVfdGUXzDO zv0+|p{k$odFZr~!_7p9-E`zVmw`iC$s*P zJH-dRJ^CQ4Mx13XXjtfqFI2D+Ka!Qdu&fIGEa=v-(3KBg9%XSJND6=BW?gEmgA|ta zKxfy?7*9#w@(Z5yu6`iaR|PG{`tW_QyEoiy1pb4&t@)uRDJ$Yw=*UW!;Pd6PrfE_< zxULRs5YBIco_iycqQ`y6vH+VO`jn??jHimer6a~OUY>&V3~zp0K|BX_(d75R{~t+w zzI5CLF24ghf123>6y|Bi&$_(uueg5SFGIev-~lhWj!>s`Yyl(eViovvNLf68kepx2 zI<*)wZ^{O3H3B`Dx!20qGyEBqs`1>wea^8q+(-J41q%f5dC#a+uK@Y7GV3)3Nc)Ku z%tF%6w$X{vz`nV_7F3h@*%ITa<}sdG$Wu^fy|bVZf8X#<*O$%I7N{k1!XqKzG*xZy|jCC;DMUw2%Yks){TjRpqs_ zkO%bs#uoB{Cp*S?x><~8eu(kxA!nfg%Fm6B@qC>aueOhsUti4f<=1mLLb_@@9pz#?wIRl{4P!jNgeP6C zwyuZ+^(tOA6hZ%K_YAHG?w18)bIe7s?gdkqT8mgPPkM=!l#4Gca~BT4E-H5yRTKZs z*rG&l$Br0J`C~lWmnYMuHdj=S&u98xvKES9Jx^-xE`s*LsWq6QSO=2zd%Q)|_`c{V zAs>%8qh7Qq%Bi-^+(kp^e{vUHQJnMC<^^mq3i;cGG49BI%kwdwof~7IB8c;}@%3;q zj2HbzV=ksfKe|v{F(cY9`ovqzf%D>uLs!g&{uH_y<(bigC$*Smiv>zSrz}YNWsC9b z9-j2#lrYI>dcX7*SAh$5n2Tc^BxReJi$)OV&%f%58}Yf7mJJt;z<Hw-0m({UbdfvtwW)zE`3_ZxKJze6@}Gr!#Trb1twu|JxsLVo8qI= zyw?e*hLWInEt(oa`RC_@eEEqotXhS7r-#QV7;8{#(f??sf#i#wQ~YWb;vas6uP?PO z<^4)Wd>^u|(f=Dy`j=bQ(jg@!$foUOpd)PXqqB4f z@vG11O5<}YI=|LXMvr+ro8ctoV)`47P)_&cN(XSCHL8Zaj28ZPe#4e=5S{HY9{C|g z|H~Lxjxm%8V7xkBFqiS*ysG{?SH^|)y>^eCw4?iFuw_-ypVr+;DB1NB%CYW#>S-;D z^Hy4Mx3i1~{*T;Y%bLKWd1E{?EXMMBrY!MOND(Y+1DkZwm9+@)d0y077Vkgk2dz+! zC;dnBSd!078o{@drhKC*i#VjC^YC%Vr8hNYeMILCTTV-KG(71OYq)ZHJeLjT%;k*e ze~~}zq@MgjFK0P5+Skj9mV>_h;v?Qx6x*gLW5VZ3JG#5c^+lZiB3dqh_54XUL%9&< z?|2K2KSxV7VaubOI$E12b8#|L9{vge;c-Z06aOFC)25srhEwT_9R>1;oXiX~zLn z(7%eA(Fzv$|DI+mVBVOHW+bbCH`D(%M z5f?)#$2o(A;a6#&X5gCq356rrYqo zYsUrN7H`R6(usbxv=|4vo#_tv5pQs&+b}*Y9_iBccW%0XEswF?UZw_ z8B%TeaNi|xXJCA(^Kv!=y7IgOqZuK5ud`s6AhD_P)tE}qm+fxC5z32|F_3%-^NGEZ z9&ydv@2!M+63!RBWtX>H&r`h2rmJK^ymvoyS2Dt%KZUL20ne?7@qAUDviv?xB_DLA z8(F^o-yWti1zT{Nr@V5CnUAkl7UDx3bvxU6Hh82Vl-4gFt!%>h%^K_{?J0jbwz3U8 z{eY)n=1X&B7uK0~p0lz?LeaafvXyAoG_`9fV%O(w z!J%UsEv`QzODT<3i~5#{K|;!3pVg9n9nFsMOevmpa(NK@WylCdYr^?9WM7cyv+-`N z1LJmJjzR0gJpDXJrww5I4jkugk!2b0S7g}{M--H5sac)X`mRH3xWZc#Kzi z#dyQOlTLPk7(dGit{ToC`r9E)HD5l8_V?6O!*!Fs;x*`0=#Q@#Pf@Y9PMsFIFOP85 zT)3VV9q+8>Av$MRoe4ZyHpVlLV!Se&r#Nq0ug-;eXz{0+)RU*=59;uqS6*-*2s_mp zW93Rb1zU$kt5b43KRy95t}_;TtE=Jv^p|XP=u=nr@T6O)xa!#N@>)Y;?duNbsgNBs z>kyaxe34*v_!mt1+FjkX7UQHgRJXAB-PTUt>ORC{`-vf>&i|~b9>R6?XD?elLUfj~ zHK0pfo*QGR8&A5ao2#KxQuOj~VW&|-@68~o$LzUit)WJo51R&S=%KgncWVt>6-v;e zG*bim!a5n|8W=BO-M&1T)E({`KH|R-TO)vdnY@ap@L@Jr196D{va>Z@h;NdCk54?w z#8Z^U>1t{*AC;DJq@DC(QnZESh4#yv*=u=l zUbo8hS4KT$x7Ymnq#QC^L)No$;%;+I!ewKH%%Qi^5-vb6Uv7yh7Q*Mkgf*a z&w+8yIwr)YI_)R6a_e5UHidDjb}(EAdcxl;>FPkAR?C<=9_a0M`Rkw_-CPu{6To%u zMlZHb2>QoIS?jpKCqHTk#hR^bT@}tP(T_UPPWw4fv-QHi=`pXnqlOI9 zpR0q}dN!ix;z=jJ;Hk{rWGEIwy@Ql9!w32Y8!}K&d2Bb64?4=zSMdCbaqW7RtxrL> z>s_AIR4!Uyjq+bg*jX*E-z|@8>g#d+xH^NaZ^U@y%OB&W8(e)8?)xtk1@ZSv-5Qze zTku|}Ob<!F7B`WA3Zb$0{A zMWuelHc+Eq$J&Chf6eojlX)`b$1@F#xPLyBZf~F``=pwtegxx`w4SMN!+Y}MVM7B4 z=Al}BLj&kbtE>nUKhkPPcuI=>>245$-(!Q>253k9TIDU*^Q7}tjxm(XHKa&<1?>$H zmjo{~8fr0b`9qopps;LRdqWHMTZ@0O9(OD1ewA5Y8ddJo3obQ7L}J*8NE1n2P6 z+wMjb?xVX-cIzXE=h`?;BQ;rX)-ca#BlyAfc-RB8sprNv~ls}GPb*>F@^cxy`5=ngHHGY#sfNy74F6^ zyl-DF)-*;O(u{H8#va5|$rNo2eOX1XljJjF`nnqvol=$AOthnpOL)@xTEtkYX*5%X zd08SbWU9dpZ-Rs(b#aE|i)nmu&xrmcm-1)Y@b{pn_weO{J znb4z-mt!*nWdHQxDOsM^nrXqhI-rFg^1h%quPe7^1W7%4_z~Y9`ESWQCCS4K1|#x+ ztHRsjN~@va8o8_M$e@>ahvOfONj&Y*Rfrpl`UT9_LJ*D$%A!*j|^jsfAoGudpO8MgK?9O!!p{ zP(}?N%zM^qZ&Oh8O^&9i5954eg@I69Ss87LdJ=sHwrK?QJ{cHp8WKP!%r;ZO=0r}? zPFB4e-(Hb#Pq3Mm_^lmnVne@&)U`J=A^z#3!p$tmw@%?mKV+Yq*k%scTe`3fjo`6! zhD-~dYmdF+^_emA-OU1sJ4MDeBl^W!@l>3??$u-eNxEOtG*_YB4+p{q3cP+1`xe*x zJ5L#Mj)_X1)HH`*s>N5~<|efN^Ln_s1@-P;w>Lw+;_hpXkow_UcXN!lGT&*wKlJec z*BtZDl&lOEq?FYrxift@-y1Y!GErYxhO)Q7{hwg5hHIfhe#1;g?*V(R;z%6IK0S2} zNc|yO{Y@kIoNLlRLks9D7tW40(u4V=(H1t0N4+At77o}MQ#qbnb-Jbj#C_OkZh`i) z<(CXCaDO9P{=(h@=b1D^;BFB?{)#dTu^Fb5x1|c->*y-9wp3vrrWIfaWh*-J<;uO) z?aeSx${SDo3ow<@unWT?_xph{Rnc z0!DAU$>*u^GGCipLSIp(MUar`Ra@5zdi0+o*j8$smv=jRTWPVLn~Vy!(!<}AtZll!W%ts)pV$uXWubbq#-4c`xA4DJ#EP!izCeL_<5_l6pJ{5=m_z@3+r zv!CdA=5LO31nc&CZ|^5I{GC$KS-}bv%8Q;g;O>k{D*1<(Mty2uHv5SW>t*U>-6!y? zm|ENWNeJ9@fFn#wFQ=msmrVcK+*(EKU3mYA_^YINTWeug9N{d1cqRAugVd zr-H6^1ogU{*0iC(S>`aI{I@GCDNm|2%TNn(B~^ACNIXeZTJdpFr}wjMOz`(+nXZim z^{RZ$mkZaJ-EE*FKYNF5gY}=J^K*6JpVBrBxACD~trGS!u#@oo!n5{D5Ps{Xu#L4i z7k>QR-&Te4x<%aOQJ;dJw#b)ON(OPCbEmPPtr5@JU5}gF8lk_6i?&4^N&54KJZL9t zd(7O{f%WiNhj3dLopRKaPLF!sI%2;`@i9hwuDnW4NhjXXw6h@2!ZYmcEVy0_8(}3j)odNx z&Xo_JukO*b^Ps#>hNhhlRH&JD=)ZFAQg1uV4>iPQZx=xv*;{!k=bq;Cl}i_bh;vvG zYg6(*uIyG_d!j##!}m(?{^)HIe0ty79(uz0x48B;jDM+mJe4(%*xNf0$9qZgYrx(f z`tK*H`W%}@q5bA|4B-bU6XnpSu6+^XbuUkPn~BT9=fHv%d!1QEj9b=oH>oG!dW3mK zsynktd}-2PmLBtctAssEkNLl)MLF(&qQeYX5$Hat3qSZCU+Wtzry@EVV!ZwnPo{5Q zCkMZZ!dYBaK#uQ6?{{Z8aIVy8YRIx-JYS#D5xpd#$IY40eo8Md=fZkoW@`vPNY{R4 zxe)S0b$QZj%5q!;pGPh2py@#2I+R-@%0-~_?5v@K_QUqlduyE?h|c@z%VkUl#FbR? zwSkZd6=6Gg67?9%a&w13!hXNGMD&flqYCSxWr!t=C*`jLqaF1LTc-b%?FfC@XDxJu z)P*0|jyAmC2n_IdbR_BtQzkGSJ=jm*>!Te#IPa&G?o_mQ!uw6>t-{Dh`&-pu!*6IM+sTOi(7vR#6VWd@gtukYLQE$c&OPxt zZzt$8!}bRWW#&(uouD62k{jm?odOA4k=j1kDT41^Xs#Rk7 znR))sdW=i%AIK-?@hw5%9W# zr*K0nuDO z68kou|Gy=ZFW1}Eh;e?si0Nud=tv9g&~>$ue$->TLSLNrmyYnCR5xnx>cf0g`j#P- z_be9f`XA1Lf9k*Y4}q-*(@me~zamoK-0dBGL5q>WZqR2ObJ%Y0>b~`(Oz&^+2Hkj) zp4edM7D~)dJpX;lCSPE?YZL8cpEWRdC)XeLZ>GB`@q3Q+PkFiS82^7u(#yG;?g7l} z4W+kx2=iLAh?P)CpI|?wz^4M9@B5KoA8r0rpNJz~E|yjae`@(KUs1ZE{Zm&WU--c3 z{?v!@|2v2MH1J`+MXj=eJ)loFdE@M%!Z~JD`$`YV%{aV-|7i{MZW7?Pi-O&X`gfM zo<`V*D_eU)pE}%*A(Re?n)&=$6Pcb4jN>==ygjl1q(kdyNWLV!8Q0T?>*a&){+=#; z?$o^i(-U#YD(2Dkj9@+HeB$hBOXwsCBpQ=CVT&eA*O~OF|E4= zOt|jKk~V?lI=atpa-beFlr=d%9B1*+%{o&6`(tPTO#EF*d3E zPB>&IlzOY^dWFdOR*UNuL4MBEAjwxwdgkv<;kw_aho(2;Nb0jF7~>^|P#N9m?rluy z(nL}pySEF^JDOu4{M7y0PWay@K`n(lTaEbsEbJ$g zb)3!+#uIb0mN(m!u&HIe*lZi@>tFMvoA2W(SU4+4@0nAukiLmrjHT#{X=@7-iPap?lH^T2l2#{FjejC zgE-$$(pI;1eL@2K4qYR*5A=nlMu2Enu@Bo}tI*uE6*mpYdB6N-oIV)`N;$?bdK zhu0DM^FrRf=&xjt$k6v4eZeO+{Cz#RAG>zhN+>Q>SJxN)lr|W{_VwZaV;+)=Kdm8t zZ-F2BjmNDFjA#1kKkRS3JWlE4&1}DS^yB&BA%~cL(4`G$4gCW6{jJld4E;hx_XhIu z-l$GZdw&Y{)SF>KnW4R=UjX&fHfs87F&?E$Is5DJdEk&~-u_0+i|8t)$1N$!af~WDL4TBm6Hx}gzu-M1{VzjLWyk15aTb8 z9(NBkA}(KRW*~IrCx5UHgg&$UhIgP1{`%>>10C4+{x_O|F3kI`+4g}RjNdCaLnva0 zdP%-4pT#iHhjx~t=7ABchx8uIAPVdBvwem^DvakZhuwqJu!nQpAT8?k$#M_Uqh6&^ z9AE$0CMU6F)2{o8uA--G*|CR(#)9jy_P;b#o_A|`;|7&8>c83R3ANNC-bFqW|FWf`$oJsFk0AigL{yREEo$wp?|2`##gWe&IL_I}DzvvJT?5gGL zLx_I8P7KeX$?T92^fIK}kcfg3Og;%)MhR!9aHL$gJKH@J;~^>fkgq2xwtyR|MV!KK zgF`9wXNJT+)C4qEaoH`LaY68*R+I@E@J5}2$T>VlsK8`z=Hmp-1)4fSC? zj`diF2Cxp3UpR+`z@Wk~Gz1<0T+Tv~ePw5chVZ?!_7lCtuRM2icqpC^m@ZxX7CqKi z&dM;+SLEgk5?lG@sqj!E{I)y7S}^{Cn>+0m8}vI)wOSm|*Ux4w9{j(Nw`ERj4LthCAN*z1FuC1ouy|!+rSw8BV*M!{Pt^MBnLcuu?d;q+^3t3hPDP zA#A1acQ|Pe!4Lht-#%^&A6#XvIRB_G#ZjvZ>+{lKJ0Y#C%~*Z7KQP=hSOd6DwD`(z z^?3XP`^PrjNJql2;O2SV zNKe9kuQ}#j?H(C1$5p|@}+bAUzk43|EHe14EqK2mAA)pUwHm6_1-p+Z5R4SQ;4_UE@rgq!}|37 z8_a0E_#gMe4XeYWG5>Pv4|X)JKg!vQoue@h@x*L7qZtkTcv1|E21ol~%Tf%Z1Bh$t zPwvs7M0vcPfEuV7^B?r%<-z4GhUwlw!HDE_{yh z*&O>=#K{P^2gj*VPu(^;PK$H!*PXDTQ)eJIPK$MsN2eKw{z_#N*>M)4Ukv*Ae&E%q z%s2|{AwKzHX1oXQlWsN8 zjQ1t>_s8`9HGlYNb^>(e`>%v27!&(RD)%!JY&c&Reiog8{!qHmY85?;gdfpkQw;g0Mm+K}%pT7Ma zJ26rc-z#nbChAG$zcV&mx8$R*nr&L_m&TPjn?7;>af^ z(C?mUPQrMSRy49UAIiH_;%sF7Ew{(`dn?8k!8p`x!cL;_oF~5y8|%-%);dX@XfG@y z_fFEwC~=e5hDrKFK2zlL=p+mDbPI!%p#QNXo;-z_1by-34LqgtD7) zqLV4KpCPhNRw2&H7h)Xtmv=J8fvIrYK3R?D6-k<5GUlC0&l@H-om|*CndqlyGQ2&? zVV&%NpQZT>lU>Nq3bT_<=wJTfI#N$6|B;#O!2LkgjUd)*Xt8}V`Y-x%Z*&UuWjFIM zlOq`Kal;J6pK^R2e~jrd9?IjL?85(h*25m09QqII`QD506!;ZPu^Xm9Uvx7sL+p4G z{Zu46C6KV`?$@kS@ZMcG=%RfJbeYRCuU&=pcmOXfc~0SY9xBb-;u`ZfyAkDwy2SGD zDOfw=R_6VbCGF*<8hPywl;80h#Ps7d~fse3G5!L3}5+X?WgVjeOj1H*#vGMc^k;8toI~5g(WLDf!}Q^h;x+p5(TR z`O<>#BP_Rvzr^oe$;wYOeCbG(3l0yne+gYt^Pw8Tc%nbMVE8hGb-bY}_hkg-$*J6z z=(kk2QAcb+=V{z@^p}~th^Kh+r_6Lc?6yYxbR)`>3Ukv*y!Y;er(0mR-=`xKPoB=# zliXek;Dhd$N!H@yGygvL-_v=db9{nx1n9JuyY0lKgpY!8LCAT zD5_Uf6fAW`-}}=O2F;ui9t6<3FDNQDz=zXW9_&XG8om9nd?voSW%DJd*YIUo(cW;6Mb}>eU=K>6{fsq7W74L4AEIC_#OGBeU|>iINxs{ zx9MN%xMyMA$u?veX1UNlqf~H~??346U1*p^&Y$+HHM1fK|IGBm>{rl_C;EWZ`IWvE zzIX90i0{ikNV9)sOq9p##i_7a%wIwG-;(UfX!lppr8jltW>fh5rpRl}Z1h(e$j{7H zC;eOVkCrndj@f6wqt7IN&(8MAD0;~SZgv2AODFLBm;>g<=HMLkUs}JodyW?4Ly! zz!6(svWS091ovN)AL&SY#T-kFb8pAEbqf3>bS1UhnCBXy(_kAr*OU+aSj^3}z~8P5 zuqF6=F^O|7>N78@dgnq{TK<-Mt_SB*{yT=b&}AA856;CpkdN$dCguN@=n}74hc=a> z^7rK&dJ#qM8weZse>(^39D1zllMlTP6Z#<-i~PjrLCQxH?T&Z+3tY8>4jG^NhHE9XUid&jf#dhk2e6 z^)7}r^K3Zx+gi;$8|-1{x$>hw=eT(uoNFaQnt2|a_pJsXKMC_P0{M7fJiiVzFM@fh zJuo=W0e_CM)_I6ic=)z|z8d2^FIPuw*>gWLAMq#(jn)udCbO)0z6s}7&9Y`<$CK=$ z%RC=`r0EhP3_?~TulI#pPwsm~2g6+X`^RDgAAF+cht ztW%HvE&YRY8quGEUs;`GUp(o_+tMaSQI0r^xUEjalhmXj-!87l^vUaV`Vw(cMY@EY zp?B=J6{Q(@*agsM7Rka3)ZmrNJmY?3(K+D-(0@OPiX^cMY#-*!3bxQJ@L)Xac)bhI ze_ufm+15&I z0@Io8>q=q$w!tak;7rLO+_6WPslZ4-Ms>3dH;k+nv-AyP-w?r3W z9mJFL7RM~2K8!zJu3X?}7wJD5&#kJpnF{NDYI3G1)OgYY+&#Q*y#c-k`f z4fJL8yR(G+LvCo)^Et=LPy4ZzrKT#&Q82wd9`f6hJ>jf8wa4uf%$S#iH z{rJwp*2O01jD4nCq9XgJ3$sLx{ZsjC?-DKgQRA+e=f8I7e^#Kci_J^0@2OH*>=NkH zuhQ&GJeVKz2A=Yn9m7ikh^x$0?~*`bzy41zAGegPbF51(=x>U^yVOR0=W2pxsRRDc zrTCYk-;$A??8K(lEoGMa@LpliO2bmcr2z&tEh1ef{H&tz|OnIoB!)fDKK zg zyBuDjC;j=1A-1BX{ zm$do>lu(SbjrCg}iT`uv+W^MZFwF362-lxhv-xsq+voxfOV=+yPC!8)Vo^R5N@b#o)=JEQ{!!vk2+2`$|E))9yc`c30fq5;e zWLz#hFBShO?6TncR`Hv#D}wx2)4eVa#we?`U5*j?O`5uMD2!i|p5Yv-JSCX3*`9;*Um-YQ&OzL=y~hkW&{q~M z%KM{3>0FKv{`*`C<^(XG_lGk%A&f&h1!6oEMa*srybr8yGA}tl z1l=Ln#mun5hU{G;Ecw`x|K68e(e zQ^TwA{*CF}*|6Gyc9q;#o>iK;2^DR|c~>J2Wkze=YUurM6Eh^syhe|9^dR#Z<9bRk z*sfb+#Qqq(7{vH>*&kekc$h)k+-smGT7D?F#)kgiE$1Y*e9RPvv{xQ15?+J#A5W4# zOWkWCiFoMGOF7r75_Y^^oT6{11lJmIe>M2EdoA?hNgUDz*Fx|8Bv>Y}uJwGFAFn4K zlFF=wK4X34T}NRZZu!|tNRJulUZ=+A{mU)}*QwEuk&FE6^yr7h0z0uU;(p?k?5WPK zb71`SLZ0z_dH1f&Iv>X6>1%df0PC)6AiOS=7>9VhIO#HK@B06sL+|>|z21oXjdq3E z^(Mr5f(7y3+dss*-Ujaaf?4kn;eALq|9T^I{yq_2k9b7OzYDI1{`*N{xgK2~!M@Vo ziEg0O{}c-snyeet*tZME^AsH2Zr*_Y3l}coZF<*uW`haOL*Wb%?He`%F<$BG!la&P z<;~y*=rZH1?hPK;lXnGqw*OJHAprZYlgtM7JMpy3$8Mz1pY-z4jVjFVP#L#T_3`)O zqLt5r8=?DtQvA`#xe>bWCj}KWZ}h?ckE_{@0i3_pTXP$+@83_#Z)zGgsnYO0ryrx6 z5XZkIg>_GKlLh#Ea;6Hk=P_ zE-=LYZz#ZlTaF>kYd_1-&9U?kyMx zNj*AdKT7d$(PEu#Drw$gL|kJBXh?nO*dsc=U1K-5#fI+_)%AL};Cz&h+ixKGq81{} z77xZPZ*Sce=rd!O=#~Kb`&%}%C4}!iJsSt&{i*UiPkK)t#-k$NcZvEv#DAAmr$-Gx zE9(V4dibgQn%M%%zx^^u{42-x@Ov=c$_caWgtGddn>`NXe{+l55<&je28bWu*Q)o( z>2YEFR^Re^pf8wwPvZ$G;@!vhUDDlKG5+r-aou0NTeZmlMHt=+UB$A8=B>v6Fpig& zvs-N&upcEL_91m$x7CHXA3leT-vz$nZdajR<4+l43(rZo?OI$jP3crg~#IPN@;<6K>+dUY!jAUlJ z5#zr9L2!Ej|9@P*%I@tU%#+&U-G*{yiK0#~h4)A8_xio?r+i+)Ny;UyEMBh`^Cz6d z`}=2r;{W)ici3w|JXv~5$^SC<{dU+N}*cBiLt(lkksu?6!s5iTx`%Yt`*iqg+!#w+niTEsfnIE~T_Y zbeCQQ{e8?X=!**6S*`-JQs%Af7QmI$=T}1C~5?}Aj>PS6_f1P`` z1)pb~n`S4r_=ghS-3}60ZgjURp~rC5+`D}k*IX^TJAnTByK%ciW^^T2?!S?zR{>A$8_PwEm{ja*icd+~L`Mz|_PuxDEgpzJNY}jW^ zv{xt{%s%v2*!zKfpCgeU_bWa48?(>%@88d-FScWIab7e2tD0Oj=4t#w*x-fbJn7co zJ9DASlzM5%#X4i=ztQDdp!fQjE*JWO%^eN7HthR7jqSN6jO&87PSRfdr^%e_BkOH> zG&g|ysfXCy5XuitGZ24L(PIC83iC9uKc6qVT*bX#{b4_pF1LF>>i@TizS)u8@4@=f zo#FQT@Z6C9m1aNUP&S?G-tWQrGiWBWKa}{sg}~6&eE{)(EQwQpHykkH?_n$F2_8Tk z%*es^0~YMhl6|8GY&hSxjpPnE@IJ|KNJq*=EsyFBcs}m$V>#J&3rHij0Ypa`~~+?t?DapY=jM_C?9{?t{Mn zJ`QPveXLKNct07B=Y2~0|KRsoa1IP8rXv*p&_w5Rz#giOm-aSYHVB`rXs{BAEXpP5i`;CrL3Wb4ZPH<&EGWZ6aU6TFr-yiG3BXA17_CqdP?O zJAB8JUVb%v$b*dX z`~AqL+NoJT@+m`A&aY3zEu0Z${3hr$GHU!5`0HJO@!Oy`c#+!=zs#Vo+3_Mt==I3(aR>Uj_GjyH z7y5sy7egp`Amfhvus(7Yg^vfoBdg7XAEa3~m=h}W=j$?FLS|$!`w1=TT^z-p&>x@} zV@2l)Bl3+6%!E=&j{gL%1JbEo8B$NW>73yN_NTJ^mf#5o{M4IeKjA_Bu?yTMps$>g z89ae=>|;sxv^{%Lm5597aEkvV{Kk`D*23sXBl`2z7d)9y8*nF0iSl^8I0ZSQ*^|&0 ztZSwr6wRq=J{f?$z9M@P*Z&VvY9Hp53iTdU;rV_!vmn3ylo9<%nH3~d3_BD(WqC*c zO9ykxf&Ly0v8Twmudl|Q!gWTNUe$Wahjo^o9X;j4_q0-qGp9mm=X0>9BAAbcrdWC7 zy)kw>g?gwzY)j1EXR@F2;QVJ7aHo8j|Ct%gDHnbZZ(MmDX)jn`hdoWMyDcm0PD5X~ z$Y4J065w;yGR$eT6Fy(TQ`|3~?lj_(vK^hLePBHg-%eKII(IsN_4V6Q?-^YGmA8K8 zbp`p#>CR}UVE%l;Gg_k4h&_Y#CoECedd7t7OvhCJ84KQnrOLx+Y(*(~^H0KO99<~o za$IpuSOJ{y9c^=;X+5g~rR>KS*A!hJwSX7HQ}?MsT7b83u7v=4U< z{T6jC6ejtSh}=&oU9i$i%B9C=8i*};cF}vzhWm@TExhL(WdCfi5>m@-?sFcLx2?;b z^OeT)+hP#E+c4c?KNmu|dKGgng1>Jok{`r;{hq{~S7Cft?sT4qU#6K3`Ou%+(@QAn z@g&B*fAaa#-SgS=h(kCi!+qX{`rN1Nc?USt%$;|k{=?J$^B(kL{{-f|PfW=!NUZ0L zn75OCQI6}&|Do;8<6Ju1xbbt6oa{p|$G*gv*q6b?-U{Z}mtbNq!Nk6#Oi*j+#8ykF z)Ly})s3K)zUxGw8_-eckt2 zb7qiQbQXFQN1E{cg&I$WUxoaZ%}75R#JI8AWIwL|WP3bWejWO~{5;W*@$`V^@qWxJ z9j?VA#l)rg!B3s{i2TcnQ1tZ+@qX~fCI7_R6K9yl$5C?SpLo9?{r;th7OcoTr~be6 z>(o|s&WLzjzaM|j4F5wtA;UgLu?!+Bvo6N#JA@7XBS|%a`?w9a&%bdtENB??kBa^XXMziZZDS=<-mW@d=C)us9%pqNw`OL zjvdc=y8M}%1HA$4u7%jByVOGFM;?^xIU@p8* zMEkuL>wlOS2tr@;xA@+Uc@1>C=Aw)6UtGT%FrVEG;&LyVV|Eo(!*n%eTy)3UC3B{y zT=XNp^RLBU1V58nE|cJYTbKz<<|Td1U*_4v)JysJWh-kvyJUynzebBLIiWW>Lv)Go zfABYt(hmluUh*Oj_6-qT3SwTfk}@xO6_osdHSJOu^Xs0OPLO&^C0|w}AA&=(2^K7p z5}ApYjj{T;-Yc^%Tk(E#_T1FVn14}reCA~*@?-X}#LI51lOw*|%U&W+%^>oBTV&el z$-g9FeYg8F`4`>)Wt@78=of3up8r-qwP|VMFT~#hMN(#2{I6;?-Z!U#Sl8A->aVav zP_?`0R~&!d75YxbuV%D&*^oj|G?L5w)sFZFn(!#C(LU=}cj4=9>FF++zXmZ6SB}R2 zihW;Zy`Fl7f}RO0(yypcU#*AeirN6aUO*i8`wULGl7#u$^?T|ST>mR;uSmP1C-Gd) zkEf@xSy!xh4!OF7=!&(%JM;eS52mU$37x{GVvWOsE?}Lo1 zLB#3i(KAzgIlF4twZ(>qOU$i1);oz>>Ib8Iy7y`A_}I=3KX9pQw> z>rUu3)=a$a$G-aWkSrq0?@1B~QiGbu-=JXsk#BeuPg?{;edRwyH^3*Z(3eN4X=>^X z+<%tcIh{({l`nryxgNy0_I1;5SRwz#W)WHN$%LF6PT=;lD{kOCQTbOgUr$w^5`P2y ziXT4AA}D$CIQvEzXi}#Jp)aoe_h~oO*w6R<5Fb?IzHirk;Ek<2>Df?vP!GEb6j8B? zi9sv!lwHUprT#EJ=tRFYKLX?M|2mS>f?n9!;fW~dM?5>10xBrRzbH9qM|^7UgbegI z6$QiaZ+glKGF~>lH?K!g>vl>o2)oA~PQR&!pXr-!%{7<=+ zc@z31t}V|9N^9>C-Gm;+*gB${UX06az2c@H_h;c1=aM%=zRARa0+)_kS(Y`0L5H z!9#}|#NSpSjtgIA-B!cC4pcTl`iDcJ+d4VkA8ihVe{+6Jysbz6%m}0rluhXof7=TG z7JipXFj^#K$E~>S7T~fEd)p13?G{n4 zsuG?PwgqC}J<~cZSB?Eiv>7sX%TfK*uCG&b%`v_>(}bK{drX$iIUS!1z3opcRR}?Bd(Mfaw1L(>L>HKWkGhxj{YAG<=YjLMr9CL@yYaDf`a-V zq~D>wpycTbbMB}L^S!hG?H}}rgw#7mIVBobI_-`b{VPoq-9i3Q-A)7H*MV9$kT#J7<# zg`h&ZB=N2p{ian;yhlM!=)udB^`z*Y8uw*xG>pHOgz+igWZzSx{ncz93)=f{a$L{F z@%Oy3<7Qmig6w<2!hXxA9!mdBRk%K`{nYf|bP}xFIa$By3%3{K7x^@azd2#|z-4I! zsf5y^-@I7Y!@kHRC|Wrr^|v78IXb>xF|ub0sgE-rSn*pvI}7Tiz9^slyB_oWMGB9? zHr-QyNBp9NuD)CJJKq2Pw<3M`UHb3A*!9V~{>64A-iQB!ZSfBgNV*zdZc z{piYG(S2hleE(og)_w4cE?&+c_-{qh{YmP5Ki0+0xz7m3jX9QlKNy=A`bI{|164jf zXMYww!2h$O?#r_t=#bad??SFki9g>8L>&IDY?+$!zzx1i%`+b$uCy)~|G;1Pd?>1h zzR@ZEA@~(*_T@ZO#rg@;TckbIVISJnGv^`fp!CnO9vWfK>tZ5;;<`(6A6gN&N$1la z+EL%CX#B&CgD6Se&hZbO;5U4f$=93iiXQrLeNA5lBA;qhOC#eI{l3k97{<7xt#Te= z|CK)Kk^TsF$lf#)5sZs}kn%8JoTB!M7nO;BWX3vW%kmhlr>g7~JpwO%U^K8eC3L1F zKXT$ejMK=Yc(fqpksssgluv%-jm2A>_U74R@D(gFe|r35;=gBB>SI0LlPG>L?J?|* z7UjM2X^*Y3d6Z@TnfVy}|5oU-J5wHqVduzRqQ_zESIS}WVepFvFsWfR@UIqW1gT19 zQCJ6DeUV4H!*d|68*a8v3+pl7vpF|xWho(3Cns#jxS#%h76!kf>vMj*qFdt>qDS#` zYzFC1rF;}04kEsPPv9}G_r5&6KRy#ZQMJME7pi7GL4QdR3*^}InW#T;!i1D3#+ZL` z{mzM=VE+|gu95u&{PK31T!PV}IQ-eOCtfm74N{+YaX%_`q38+t_@hOj>Yx2o7n7s)QKWlZh<|Fucc2a(d-l|tub;lT=&2jWo%pX-JoV_3b+J`d`W`-c(lKi>K#p42mu5j;xDv`YR1&zU7v ziewNJH?5id2l!{kNY| zo>5p|BU&Us(_tKQB%7dOxli;*81r*DE%})_W;fk^@3UuioTnTcoAu0zamRiDLhsn+ zyeu2LHJQ{?O^U2|76krsApTicNzwXoz_L*{aeuUdD56GtrGI#o9WRm^Ns94Me`h5} zjF{*6Z{j0HTwm53k-^JNwnEO=@2$o-?UMM27x7x3{Vd|o*SR;Z>eu;j9hGnu|IuZBrv(XMcgQ?_~Rvb5q*35YsMBeR` z^8KVc*RLS`rMv2<@hF*<{ihoKtFMawOafo^)p@w;H4w*<)`8qVb-?SUls|Q_YuvBN zFa5}e`j*T;tqmx7=e;Xl>TsT~S(HvtQmKCCpCq1LF2(qQ_fQZ0l~#&g zQLy`(C*_q2^$z#5S8C+>!9WV(SNw2m1>sSg&P{y@r0)#QdSz5liV!Oz{phd0OMZp> zZ_F)O_A5K|rHqMx<;4BfjVsb$*|9!X=VrX}BA$(3ie7=2zIG<%RS@?2yeoLTwjzhL zD_*NbFHx_^*`4^88v9l2uJ8l-uut5dGzZ9qLPYxSHmXep(lZcr<>)%hLYClmEi=P(=ee@h_sk+omj{NBMGp_Fq=) zkF1oB3&mcEf31T)yD*m^eX1K|94D7(MX$}klj_XZM$Ch%Me1w#FPl~}{WYFT%D=sk z`5M>baiiDdkT^t3oS{zk>mc+MC=$9<{2LYQJ5U`6|JMDtH4m@$$@<$!>Sw&I-~JYV;ZeDs zihmPC{6uX0-)>;is`S5gz=mQTsmh;={zf~M(1=I+`m&V2VTYh)8OXTrtQna5j~eo+ zl4+!#TG&17AB-0l5k4d1#0zdb`$v!Z-PtMsn1Oo~B7$`D^C|z>5eMI`RD#s%MA1KP z4*NxWAlh#?2I6}@!sFTh1hIa~&dvQNjQTOjK=|C1d}bQ0!i!2@1qYOD+qnZEXdqm5|K+G`*v+MKN+ z$n4Ls5tJVCIA|T>L^ZV0Zs@nSiO^oO&&xw<-8vT?#Qc5or-kTK)S9B9&Cpw?IV(W^ zi4x_kK#lA0r6G$zjd86%j^yEX9u>7Gvo!otOv~h~K6sHh~W7 z@<>IEz=`WX0UIHFae}%Af>fhJKA{g3*tBi^GaSU6;1+s1jbva$MN#)V~a!&`<{03@cp6+3ZVQ4$|M0ly)n@s0Y4*| zB??zwW!byV2(<849l3;9Kj;fK=_C%y=toz?IoD_BlH3Eke=O0phcwO4+ z7fRW{>XRnL{ECiyhb5XbQo?_|DJKQ5aP=t2I6t}el}YNyxH)TFQt%5z&v_KndV|yp zzlsO7(lFM;@eGR$y!7{nU9u!xr%e@`h#qD7LXAwH@4BoQOSPvBE=49ZLJ^0Cmti}7hn>}(B z;-#1wkb_?!DH@O`!Crq~My^Yu1eGN~92ZVc(vbf0(~B7%f3IpI^#be14uu`<+fKU_PUuzNWfgA7 z6@SgcF+T(p#P7<#Fp41b{q~uGp!mQF8_vQhMf1`jg&%&+X{=SM5$`5lEHda*wrpk~ zc1r1X8fA~Bc<)>8kyF_J_Pul|&1nC=xr@lcDwniM_^%kcQKQ5-`bu|3=`N4oMYmy< zWIYE34y6<8w|Gl~lEh)oS(g%e=?9N3xJyh)b3Tg1sUREHuyNp5Y}xG~a$KWNwMr}c zM~nWxAX+QFr!At(#~0;&i?SOv*&^7t3Kp3w%TvUSIG4;Y z6al}~BykXw9Ul}RNcq#)B4L)23`wySfgO_j&9y~Ui2qT$uZSCQyt_|J>f_ptwG{CK zhi+qvs^4!%LH?*rhl;R8^Z6yY-%eXJ2t92AOi}2kKQ=N&pG?7fFMWAg)_Q=2C6hE!I>c}y1`rMu2MR8IJ5^Y{o-RX%1^ zUhv$h02EWA%3`3B5?$hKD)_}b9muy!PhaDTsUVAbu*KAvk77MhUq9-`J7lg-XNwu3 zfBGnfpi=j-t(X-&=Wj5@?6oO6rw9-kS!ouK=pV|XOoaY8K1%K_=ZXd4*OY3$Vqxg1 zEU^`X9mwwh|Qb!?(gvLIrzr8uCb`Y+y-DuE=@coywKCV6G(Z!5VyuWaLp?=xf8W#M~B2(RESzSzy z)+-vHaIxSQwW#Q0^YIDAe=w}G@OwqkasM-pf5n#6;rP3MG*?oe&yKS@nUZGAoc1vg z_vOF67AlGN@Pwm_K*l~ape0)p@lf{M>nQ2Pc}>M7p_1NwWm*$dax8S}N}yg2`O zEMv=g3%3{Kp;CNIc{NtNsu{3wJfr=U>T+CpGv+0uZKOQnPnn-b%7dTIaA?b8pN$rA z_AItM@}J7B7%K0_dH><{YA5MvOD}>@QPXZN^V)oLRH$4^fCEoRuWS_NF z0KcT%09OU;`{##Jb4&&Jt*ld@$9D<}{2?ec$5K&+_;%_UsQ4e^FBtl*uc99IR4&O@ zMEvQEMngrMX9@0i(s_S&6_gnB>YbA*PD!5 z2Y<8PKu)EEn_R#oN?NxSN9zBzbX?$4dyz-0+p=nZMT+`V6;KC>zLN%ZuogwB%Q2NH z$dCR)y9%!puGLgl7uG91t>G#Y{|gjZg{FbZR^-9%%a+P^=y@z)D?9N%8XaLPyAk)H z&9s%h7?)F$sq7z&_ZJ%has9d>6R4uZ-n;0J@ukm&5~wPapm`@p0{Df;>+vY5PWuul z98Z}mj>@=SCKHc^KFl}PQ-T@wl8O-`%OpSYNU8Nq0`$q3bPra1&fd!`3E1Bx84C;vVc0pv8mXd!9r(9&M5gG!xhhG(DpIzJ4m>;7aAX|y z>!wf@=#%YQX{utz{O!4BsA9$S`lDRB?j;=q3X}(Sfj|iWm9ctf(OY>m;sh zz(V2`Ei(0uNFoJ$&L(LSRrq~wrzI^gP&K=|G2I&eMCdkEq? zZUg3XiF#ab-`eL&guU`xzwxN3U5riC!~fn7I8v|ZQ<_Ivl7~$ULVqubg`o2OagOlN z9ZoYE9Cw&tIUvqApU>73JL1ZXhkf|nTY)02VfSdT?%r3FBloi!H_lspUzjvr%;%?N zI1T2BN|?!Lz)RP@2*j1oo$rC@cjyZsp4WZ4!AJUuM(uTweoU>UAu^uISQn|Phdr!Q zQLYKQvI)9_ufd^0%id^eP+4169MYt51ry z8uSV0?)6k7emAP_AoT?cbJfIF(-*E6m~SxEaR29hMbO}DPc@u(zqc%{$W*5=Z{oXb zbrtL~C?Vsx`ie7D$Mv`5(iu;6oM#Gd?qaIz@q3d+mo3#{M_i3=hU)6V_RyZjf$C1= zb#6bdx)b}*L#4Jl<{?^S=f1a9hyV1?GuY~3yf-+YjHWvLjgwC?k^k#Ob$ZFv_z!wz zd#d_sfLGdTkgJ9<#w%KW%u~Y}lcPLQq>oHyYj|V)@9LW;Gd1x06OnQxuyA{{Um-Mi zi`2}=A8lvCHQ1VVthen|0yUkmv(_d@O*iuAdKFJil6TRv>awY35d8+eHq{KPaR2dv zhRDhileM)}h5e8<&vn$&A&*+rGZ3WIgV|a}>=)?|^KkMJ1CbSqO}<)I#IgP!OD!j^ zv+LjBF-j|UEH~Bi7uHX88s@=O6TaJ1#ZWsRKb^gwt(}DXTunl*+B&q4i!;^MW8Mze zXKLd(BUCNU!_tR*-OB-nyB!A(l?JUg01kIY-|B1ijZMF{h1!ol+f{ga8i=d)i zqNNV(Q64C5sDpL!-V&I`)xr6f@P2Jg9Xrm`PtSoIXP-BGK)vq%i%84Pj23*sS}3Zj;gl0x|qJG9fF-&M_n`Kxz~Lj z>8^D{b?xZ4Y7Sc$`A=7$50v2lGG#M$orqhlT})knIlTWi3W)R75uLPky_nb1ML9A~ z;c}xt{C#wut?Q2Q#g%CmsHem6Gg?&rH1&+Je3h{~H1({ovv`F-J@`*o>&?`2;)?Fc zX&~-bnU87e5xcgmv(@uM|E4{zdO`4sUl{6zV?0syg)m_=o1}yNIyDgcz}b@;A`9Dn z&n4-wPnO@xBX}C4T|AC7a7jk^*>R^KNsswE<8vf|pE~m*4}Yx5qp<6T zmL%9i*H^LiRVqqSN5~|Zv43nm?jhqOx3+1Myg0tDe4$M;VqTQ>LrHGr`Pdui_wV+L z*5_#Idt?0+KeuG-2MgyD?R(BNP$7P2PXjknf*KWhS=fCX5Z_lQ8sug1+|G^$#Exx! zBMmSQviZ4e11sXWJc4%UJuh%I!2ByGW-<-*xDUCqnxO&g7e1eAB1l!*#xw{b-)mF> z;`sQaL7)NRBB>d$G$iBwk8BOqvH6uOzvpYHi`g&i{xs6i7_*-~_aocTT8R>s8schb z#dEHTI!{B`!;Dp-zBsyUpg`$&JO z_l+w#jC?#1&eL=G1D6)@SDu^##CxkJuk-cFY*Ai&${t3m$9<3c+kg!2TV!xrBgWrq zrAhX}o?8YRL22=qS}l0vhK5YZe%RlpxJT>7`k1~gpe6F#q8ww@YQqVXFlz_Xh=TpQ zXPFwQisO0iV5U*RX7KD}8mWs!yT8LY;UZ5X_$__-($>g~eO59aa!jx2mw*LB*0FryNUf>ghxIu zfg}AX^)$8#cmxm60XtA4!5=`Zn^QkBP3)MTyBZ*l>$Sc#G%+jid&6d$CeR~a@jKVV z4gKqdnkGTa+rU-6#%k;jWhO+LQjiCo(-K+q-8@ZGHF&zWXPYJg3l!nDhnA+`FIdF> ziH@dr%(HuRsHwAXd$hl-$Z>7cAmZ_4x~6FuajaCs)ijLw-GAyKsO(w_GS+S9223;X z(;Mai@qg2HMjXv_Sm({ZVhJjXf5+aVKUp?3A-D0 z2gXr!k6S<$C0u2*G->;kVj6JjKg&+zhq_`00-pY6*(=m-nx2Vc+Dws0d}axL`#_x^}- zk2yY2BW{wL3_&X4TlNDTnXijL%-6_y+y~%O9Q~Oi?SkE99UoYWQIZof(+AjRqCRlGU-VGw#7^#T4wiAOgL zw4`9K=>gLc{Pe|7Y%SFo-?R$bG70j7HmJvOw}r*kQU{(Ez6e3#iJ8323>Rp~IA;9X zw|J08x_Tnp(k;Vt#b!WU*L5BTJ@}4C$+$qvAjX$G`4(^RD5-nI@FCWNqXVC`OlMveC_377##nsmJ1tqAwFutd`I^(&(ZB8`jSl|P?3awrjrY(T zltJf4yicZZ1Z5Y$(dvSTZ;h2MofZB~sLZvZ6u3|7^XR;&pLj=0{_ps^a_Nezl@9ZB zxgC$r!VR{ydI08U5Dy-op7H(S09k9gfA3sq?>E_czW!8!yIx7GhJNPyG8$ zSBf5bGv-E8jIjH-*^^>Md#&!F6f62S`qM^GRyu{_@xo1x=%FvQVp8yaf$Y*=UkZie z$)#K%{y)HwPx*GisIC@{^!w}y%i;JhAJN@K?2?b%!=rfr8!&OSQ{34&&+1-mo0}Wh(q? zBC@#rUJD04vHEj{a{|B0&~RqN{nRCG+a$!NzL-bJ=9X;RB=}#+$+RWB`zrwxD8XlM zB5e@|!6FxrOi{h2E%Y!&hcN`HREwvrw=*&fZgjG z+Nlu#&21rLp6;||+Tpk(U7l@fr$&5(kq~DVQG&Qpj&?@y#jW-5SfpBjpm20|7eVUM zXh%EbyG(M()z*u6XV}@c6ps7pIcz&W(ccA#^Q8gXLMas1MWrCqp2E22^KAr0Z|0cV zt1*wqZI1S^N4Z>U;LJELJF~--Le;=~1V4G&8}Yu$?4m%l-~Gwe#wef!x-;7LcG&em z%%h}xtRTPy60mchl@4(5DvwEl}%Ob4fe5?B4!&;k7Pq6Aw9 z#6dCOG}pl$>n|zNHqs#sdz-H`b)*o#;~()T(OlDXRKc%S?L(xVO8A=XsDqv#bU@q> z=_`(OG@^cR3#OyFDBe4|X6tB0Tt6^II>H|L*|mm_dc?QQ1q&G$E#g1gSvvZWUw`}< z;PIK^E#Aq)$Xp&JmD@Qw2BEL>wh-w@Rc^p^BG-Qj&4H-j*pegd(v&59yENrU9=2V> zkC(RH<00duZBIKoBCgVQ*R{Od?gh*1>oStU)#fv7i3jqIwQ`KT0MZp zQ2%Ry^cQBnHgwkEeDZo3UXNVT)zu00iq&(OPI|=er$$_7EAlYy&7W7Acm!-22xUIRNGv-&Y|FNYDrNwuEIi@rGl5FU~c2VQJs*{=_ ze*U+G-do?$#U9(|X+>A2iyQvE`N7u3olno)Q%sltpjZ0+u|QW9>@L66LNHncYxi+o z;Xmc7$adAkU&RlBuKL*d7TtO{(-prrr?>Y7Dk$2&4T$%lzCLZ}ighT+tY+)##kj2> zFM6Zj<)Wx1Qy%By8_!>6Z=^IUYhQ1#Jyh)S9dS`dvOo_{@qSd$jtOm z$9P0DuLpYQVltCj%hkgOIkRk}hZ%YWS_47l$%#x4=QCT*qo~=h1 z@tb`((32|MpUyF`J(FPX;gOb};Fo-n?CGgT9_0MU^fcl=$)dSH@UN=G_OxQ&#`k7= z+6kTq#^Ow$9_s1o#c^QsQeccnG3Z{PC-_Bab~crQ{#t{9_#St0lQva_xT#87Qj=o+ zqjtX!=?~f&Qo&!SEbZ?}&Bt4)U44=4Q@*|6IA!sv z7K1s)N4IxyhJ5@o&0&qf9cvc^&oc%;gYV?r(i(zTCvBQ=27jzw`C_T3mkP(532V4s zs#txLSA2f}(@T%|4rs#kGRE2k>_3KHR;-lDt(QLy@BuD20+W2nvaHsieJ>#mO8 zR>C)e>um;qmS5YO@U=W+BmI<1Cun+malGwN)zcg6K3XJ;Mp$}>ud_U&rDTY3F%wvb4o<7b} zl(K#&QyFQ_$JLy&%x z!}fJUPxutm*NObDR@Tth51xdpOkeO*O*&`^(!TbPMR+c#arILnPFGSOBd+&)c>1X@ zu7Y0EHw>&Ew2}UjdZ_`TN3x)tub&S3XW6y=^pM>GZ9ihyik60cPU!umJ=4z(o_iKg zKQHk3!AL)h6STE5JW?54zcA$Ui_xz#?i23z^jE>3!;Lll+_-*LrlB7D$+}#wKX?Sq zdb0iXIAbeYH_+dRcpe(9?Qe$O5+|7c$Q!y115BeR=Wt(t@C$H$(%%YwgKSKHFZ!3- z9U}dxm8(7dgOG=P<0AF4q@N8$pKQuSUw=LFrAQ9L$M2WYh5?AXxT)JWK!@Y;2YOe3 zT`Yg1i6d-0-ZFsjE4u^+*x|SG6Bj{YbD@FMGo9011FVRX)vg@?K1sRKt^q-`yVkG+ z!Z@#({hXJh`U;|O(QVsD;FVnO#C`<({;eo#_11jkjP(<`HnJai;dhDe10Uh}FV*-* z?ML7jogU`<2=<8AsX_xO*f&D#`pBQ}yR_7=+JQ;%r$~}zpbq*DjCTzLzu+f3H_!e}PHX8|t@*kpDf{8l8WeWagIRb4X>^G8=X$P5Gz{ctD{=lydh+6MZuFO>UB zGcXL^f#J|VKl+s@%MDV=@c%b|GYkwOE-%|!1|>nyi4^T1@YB_Yy9VL$+($0uEReaa{EcogpH=otk4@-zFi1mjFI z9fSPfIc2dJRgi~_4H;D=f6lYUqzaT`R8`Ih{&!_$6~<^Rf$PcjKuA* zmK~gg`W4p5U?c1sa-T)$bAz3T$Ma*_!B*t=p~kMk z@UvhMRp09vLjC)`TW}on^pa+XIkp~{;2FmdJM!w0)i(sZOz*)UXx{i#FG071c;6}F-9Pt;)oFVi`X znW4_c`2E=l!%&ic%huS2da*u3yHPKu1l)bYP-0)XKN(WbOrOFGg`Hwo7Z=elJ9Cid zk(4{^lp) z`b_>9Uvyq%@uy6~DAa%5HZn{FJ(C+U1clkxOv94!96b9U3qjd43p-4YIF%n17-o#4 z6u90Qrb9fmAs(apqA0AUW{0^Me0OQLW0*H~y&#zK88a-1_v;e9z{2)OHhj+xR~N32 z>W!lC(012wGxSue#tygQK0)pd-*7ADum7CDa68a+!Zh3sJ(v1vhI^5x4|+s~dufWM zOa_7li(rDvGeQ-!vrv0AFFQhy=OG&=I7S#TFOhkW5iixx%m^#^rY_-S<%Bux2&~6~ zMJy^~8sRU@Td4#MUyH2n z1kY&jD-QH$M;l|~MWx#MMq~Ynk3F@G{tt1dPiUFZUfj>Bf0rBW#r=QTQ!PQJlL`oX z#b>Kca6!%AN7MiG?*DhxR8=ed8$PMe#p9V-YXMdXDjatXJg^kYU%N zRvsdY4*X*>!yjhqR~#8nFS_e7tC3HOuKUKjvEQ8=Y9sxmO-p;sdaO4~7YAvlx;JCZ zX7HVFqBX;R>GPihW{ekX`<^j7$^8Wn5Pq7ASj>9dzy0{UX1o{qd-9RPtO8~$-eRq{ z*y$~fd5epAjQUv!yYFW{2EU+58!bWMu`@vA--e-~kHIT@o*Vku8jF*7N6W~^{+L`y z-}@@mKQI$?xIQ?x9*FbdW36oyjIcj(5jQ~}(uC60Hr#%8IOg+`R-%0fsB(qpW#TiBMxoH zX$hYwey7cXxGPtrSS+g8{#4L^#l{~z7L1due_*rV`@4#bSA9gL*Hq*zUcwXavG}q7 zmG;_rd2_{xC5*h!bz4ZiK>fxwNdGuf4~k zWX^mo=_fya)-ov!zl(o`es~{Z#%F=a6yz;eU6YOYoo28_WU>)F#Liab(WU1l=)B~?}0$@u<(q**Nskwtqm zJX7F5y{NWfN)qByYKmow4tBPA;+dic{xpG`VuYUL@jQwfRM1WVKec)QJH?Li-!Icl zaYC=&79slRW2=}cUgXoAAAwTL^AhyKJiB(lF2d8y@CoK$K4>I2g~IsoMBgWB=*#FA z`6P+(rE&zBWCM@Fij3wHBgXA+Z};lRIHpqXUw5Kk&j+U3i9fvzQ=K?JKbU2i>VzFJk0Rd?9?FgJ$H6! zDtP1r8XBg0p}&a6H8uQx{n30E-nzg{Gh$sWN;6C|gQwJVcA6FI?ca*O9XriGlA`~) zu9+5uogdaVO#`2J@=u28@Jm^40on_nw+T!CY@4o&*(I7e$1~jsKc4-mnQo5NzoXYw za!q$a@5LO$boi&7et{*j($2Eey?7pAKV~6Vun0@Pw9Qb(^eG$9am`4Ao!VZ$8Q^E! zJvoAsQ@edL^uW_<9>r`W?F=iC_vY1~VcueI8{hBDA#R2q^Zw)9Jp6eA5dF`N&O^VQ zuNQZjVVenl$+@z5{m$LZYd=4mN7>GAnVA&)`u?e9Cf1$2nVIKR1Q*(P{zE-XGwram z#7~BqPWandV4I2cD!+WoGSdrrl+QB*^Q0U-g-2S&YG#I!ACr#TW)Z#f%La%{UH(ox zOO5-2ZOa;F5czEpH;@Nr>Cvyj0FK~$OV2r$S>RW!dCARkV_%P}#LNP}^z(6^S$>=c z)Cse*f>kIwdjU|4=d<4cvCgWDV650*1?Peeg2I{$9kYVir^EA2RyEd%<(kE+#=7-f zVy%d$V)uuES#IF|y9{Y(dX2JJ?dUgC<*_=E&t2L&2nyO=@malblx*Hwi`5&mTQ+Wl z!HRuH`OyQ*Yzlg}F7?e;As*jmduBsl!6GS_;+U<+@nb|WcD51yJMQIX8w>XEr~{9B<*gkJ|GN)pOWS z!9$(*1C8&hscO%ePxWUhS<{t~PxUeVu@3*;U&{M)1D^(Q98pxUeHxDGksKXr%24Hd z@8Uh`gyGVW48%WLlr`5e8CJ}5^ST`92VQM! zBFM0ZT?8df+SxK-hvdj_h79~3<9&q|&-2*yF?*H0#&R}u;o~fQh&9=q*dPBMYO=X8 z@BjQBAhP(cSrHrNL2+)F#|GYL5tiOzn@gczsZT6(Rj}{EsK8uxtUcNFI zylY+(^2_7pv0!^aS>P^fnMZj2pRx0txSpxn+eKt?-zJ`UxbH~6;Ue?=i2I1D?7Se3 zKdY~Y=DE>-O*eKv;cwcMo3Fw=d^pxHUxoEG-mje(#C%S5@a=MHifvvPc~50C1eHfe zv-7;TUsz<3W4^ku{ercAZa(xYitDxWkq4rSeN6NH=vV8tX+HE)6FZpZLl3i9=Ogvv z@^5SlU~HMUl3ZLBe<4F(Zpoi z0z2%Tz;XnY%fDqv`~UBy@(II2E9}*5cDy$>vbQjSVErL*x{S5CNC`&y87Ct^l`$bXgc5wcwo4eT-fk(FD2hAerFIeak zOWDP$!u19F6_n}9jA1eO=@I>bvG^!26=xT_@&2he&9@lwW$OGHSqy&R*!|4nVBviu zs#kcu1-nFz>x8OV+>)fi--{P*-)mc9MBW{5N<@uHf!%u;JC&y@`yhn6~# zSHIry5d2?@_{U_{u9m!anA}v4v%@dNpzHN{s_Vs-3%%|_&fdB6w%pc=@ zpNA3Oxq>(IWS~W>#YU1xHW2R$A*&qB#?ME3M#b(=D{pNxmoZg^#pL z<==8Ey?BpEehP^5^|N${)XV!WGOY~f%crQ~wj?7 z2#EPU{t4eM7&S?|3cP|*pYzBhJP(m}Sq*n!74es9Wg~hN|71H>`7u9Ly@pkIe=4p= zXJ9^lR~EY(`=97M=Uc6Yecn2j)vB1k^q)4vYCY`u=6l;}Bj&ZcIkMUey&tTJkb34t z^}uR7#!dW@BN#2r56{@uUbJ7RW+EtmKop*Bp_>Gk@oi`b-pAqk`U9OkVw` zdw7)UZW`85@TcRz$Qm{5$M?=w2Z4HpYqcNGg+A}auCXG{%T94?z^m*v)wc$DN5!9I z*SKLv_eFX5TFRqnWHl|RXLM~%YrL@kn>~iL6zmx3@T^sl@t^bKmA&@bcs*|&k$pGP zvsNGT>z#j7+p%k{B`7BRxoIuz5PtT^wbqI2-BS%rYr!KqJ)TG9)$yLS{=(y&(EaR?|8&-Ur>fBe2en{uB0D);Tc`(ss6W z?%4Q(`lGUB*S^Sl3ipN14q?|L4l@5bcD)+$ke1M_Px>#$%Sr^+Tk*U4Neat)@GF{~ z^Q}kTDUVDJtw$W9MN)61XT3k4zBTRH^~irw+J`{QM+J`g68!Y3=FFFBoG%^E)_e(m zseCi{CGuXDG}%Df3l^q(f5Vqn(O1N1VhKDH29Y;S7#G6;RGN*gw)5XZbon5*!%!VM&Zx*igZ3yE3 z1V1U3c{&mIZPMnClRXv1!z;CGQ%%qH+kR_J(H zax@c&>!ieop-mL-pRT{H*`!B)##=O`U%?_Meo?#04m&UZ64~U$Jj_@a*yP4M6**PR81Ozouat|^~=?#lGWp5IadCz}a=LEBD-%zXY! zs#h?$R53fF_DU0LgLaqUTAb!99p+y*+47aKu${v14{%@EG489|27-dl%D`7{#JAo@rmx({ z|9X#rkdu0|Jl6L^{(urTUE}!*`-J3FA`t5^yQS?b#7p*|Q)ml?`D?W|@Rb+!mlqqh z==1SDC=%FW#yT$}i)^vNt{)VUEq1a#m98yL@a$N~Zh>BrdzO#L%&d7Hf|6VNd|UkJ zH}V79mN3?Tg?j9kFxrpDzJ?vrsbUwY7hD)(*iPYo%e@_u?G*B?$RXzIU|~HnW4dX(9)3T% zYuRp$wF}aFc(z-~I{(c=P;~N!W4jZ0QOFUD7Dg~YyB)mZCIejr|Lbxwf%`@$q-e3q z^9}gvX?1~E=X(!&zA;1J--p<5z$>lSf&Iq*-|H2`E#|%nL*HtXZ3l&X)x|TsJguc? zhZ^S-ha0$ds4zdqR~Aw)smQu^=%K$e!|pIb?p2u~D4Q*TjQH(c2t>a3naJ&M!mhJ@ zH3a3eWq}=5#An#y&<=I%efW3&FZzhvNugbIhuaB0NyVD3o$CMIk9T_B{vjIC!nG5; zR8p#Dr~CbSBo({3cET_EW&*nlyR~qj2Z-y3!FB_wj~3abx$G{)UzuIQu}fF@`bE@w zk71WJw!cc8-8H)i|Jy>pXwU8PLe?j-*6qZ1ehQY4o3d_ytiNQ)Vv{=@lM8l#pDd`A z%YJLby#JEqBS`m%H+&2K=>v;^`HnxOjoi0x=nvg+eGC6-$q)^XoBG%YDsDUg;=X(d zF}s_J*&#}-&F;qfj~4mQGiS6w-?u6E!v?SaqE9EwA&loSEQ9E8}?9GuhV4g9u?5IncJfVF6?F? zD5)7jJ&t>oR|ZHw`5c-H)_dI*t&@;PCV2>B` zXd4&W-q*pArOFq-XaL@W$^~*;7I>pYnsdsLWiL+AHT1qL zC%zl3oE6FfzqAI;X5ly_4b((CzOz4eyf!Nce*(h{S$3@Zs>f^|N=Yf3mt#CC#H+|A ztw$Zx8`V$$m2UIs;dfUZ<1qq{PLB|joJ?muh`U^$ZXxn}i}a?}<9~m<_~BE-UhvaX z<(j?fSRAB7raSiPFfR9@X)pNcN+QEv>^IU!jA5@C`%e9DZKPh-=B1en#n*+YR{+LWpEw0%c#``43)0Vwq=sjq4?L+)UIS(EC)X)=X$fLNA&ae;s zl3hPU_F;dJ-kfdNmxMgndfc*)0&kO_vvA-eL>8B%c{10==Z-CiE5H#zY)Cu3^whD|H2w&nf>_A1U)rDv)_*AhBazM z_QM{b&#B#S#rIEYl!@&3!XEpNk^Odt5`5NFvmgAT9)ElGgJ0QoCE8=_DQb_P;dRde z_*t;XXS=lrz#lF0nLl_ASYvXuK8lKQTbTpkj}~#G~I*Z3px5Gfs``ptZ35LhgX!AkO=g{abPe!LMxgo#vqb-}M*di|e*cdq{_P z)ArCIeQdmJ+#JIpb4)HcuAnTd_-Wu!K7M7U&u}RG-;Xb-FDfe@8?=Y5Sm&!8ro(pR z{hL%?j0ckDRss2BCkKKC7UV?7&tYmSBs`}GHH*=!*wxkOuz*|E>3on(%Iw_s5^J9&=zq33eYbu5VeX7mo%F`WO) z{;BNpQm}L88k?8wKZ}1ic-7G3I;HihFt59xGXy1rUUObO^#0b_4& zJc_TkGkEP-*E`p+UMI#sG6%eFwCgi1UN7(|er}Ea;;m&^Z;;3-27>=qq`#$Dj$_>W zim1;O&2cOA73swuC;QFwm!{)R*j>Ax@3<5DVoA=%w>R$YASj-!a2*d4tgg+&rg`!w zS8YUAcHZwg4!f0CPI^vIh*Qt5+7mi_x43ID*9rI^*W?#okFdxf*9kNJ50dOh_Jp+> z@Cp$A|MYw0gcHZH*|iM>6}4WnC%n*iv$=<~#|_=7J>f6BUqt;ATuKg{RAYYAzSQv8 z>hI7=9puaRSt2WTujNr$^%UP89VeS2Hl0NLqeZZ5zUL(Th!*)zO-(2L@MrCK&B-9} z|Iqf{@k!m^|M*vS$k@3V?<9o9^}&x!N!hriVO?7SU8ss4%k{OOcn z@w$wC;1}Pxown~E_Iv6NeOfm7Md^RWkor@Ym94||lw?VIwhrZ$t7K-I@E))7qV#O! zL3(4lI@`qa6y+yn|3aOO^N&6)$jbhQybI=zXAg`ctl z|A9}S?xYSl;pd*QDFHX)?D8xr;KjN*WKJh2AG;=*)GI>A(gVSKzt>!VNF<}g`!)H- zrCYnS{f2!0bl9ohZx-PHfoi1e$8%TlH`_Az+mZK)b=3P|zbFypv`*X~#CWZjs`rQB zhjVe({z%d7C13VaAJ7$DFCSkb^?((22BoAB6d&u9d%y|(`um9oaQ+K+^f-0Ei+OJ^ zmVE%@Ew>C%9|$53J&vRu0RJm7H&7p>@I4)}^}u}PFB=H*n&cit{7j^3GC}!@BgqF% z`PwyTmwwO={iAAG2g&>!T`}Vz{D_OJ`4^c7{rPlVcFMsJ^rgkq4@UU%c>Dhr}k?rKd;Bj|F0+-5zRP4^8f#{$OhiZI%>f6^sq@8M@im4-X}ha_=SId zqdscF_4l7!fkZ#?690-Jb4r|Y6nPN7@gVgmi9bP+cr=Lp>D-Dmf|4`K^NxD4?|nk& z9d(N-I`dXmP=)Wq{4$so)L@-eDJCZM@@}7}1$AWIc8ejkJ}WZ_e#N$789@`)x2|s* zX)j!*P6;~kJaOICte_M7!M1W41m*Q>W(K`L!HL9R5Z52mc4r0gd3RxFZC)@0{;l0J zk5M?M_k}Z$sc?=QNKhZs6vOA}h63U5$9bv84A}2$EloaV0-s|@IN@I^jyhwf^_ubjN^!3-X)ND9Q(w- z70JSLsV59PPr-f)+i&S7?1&?LCG&(G&xyLoq4VoVH1~Sy34h`Kih(uKPDC(H-{&Tt zq|m>^!t9eO#I4UuIjOfDe!txjc}wyUUwD!0|A3C~Lr z^=+GS+Kae^r_`tY$oGXO>eE5wck0{X(|*J;wQkZ2Y@0>!m4q8+oI(6lWJ)qY+5U6c zXAD?}JM*&7n4n+a)MpI%9A%wJiDz^u@7p!yj2-Q-Nwdy4fq7k02@03xs0oUfe3)^@ zkMSJ4KlhARO(_o#Pa*c=BD?#3;#ms*of?;SR>hac>*FZu+dJi~sc^k?R|oM~@GIUr zlzi5X{o|9TnPHB zK1+$CV=^vKSmztcrVymxY@c>P*Zozuf`8C&b<4b9g@0Qoq!27pYP3(jke|PZh9Y6r zQlcN`1wii9h3B%SyQmtD_wl3iTF1+@}KZk20`)SV(GtupE=Sdjp))} zo@f6SM7iTk-ft0%%kP`ANWF6X%FK%t|6J&mLF?927Y&H-Lsi;E6T#~-lr)@>brEq( z9#zXG^-`56hKfzq^DdhCe28xjOS?$c*H3dZE`nF|GnE-bM=0+i_~|i?Q!Y^$r>>1s zE~#KoS~)X@m8k5CA(S^=eCiVH%ff#rk#^#?tCB96dHeLQkFqY=aec74WZoq^*0orc zdkOPjru2v}xv>t9Jy2irzfDPM_C0mUkA4lpNtZ%ck5hUkUBd6>#6__A*UXR#-#^fM zeqIQE#6@~~R%Xb6Jk@!U7&7tY@%n-&aSzT7x$&H0$o#%*5X*fd$$g`EO~iV3^azkC0E zfBNp2lq=w;TXxL7qCtG7UMU2nOD3dTF(6L%e#R9Ou+=wNq+C(?iJFuvZQ78~0{hrBF^iPQI$*{Z;f_ntWA< zyhO{Kx(XiQjt6O1O~9QCQwWN$%ApJJxy$0}tC)ZEop&>@;`)!8QAT~$4c^&DUf|cq za*0k|E|qvSh;rBMtg9i!^?Y*DRXgIDn|6xS%a#mRU&Z+-e@C2s)rtA}P7N_ZrrY3C zxdycVw0B}I&K*g|o~Lrn@PBB_Jknort9@cF_?5nvdATZ-U*Dj<>PP=78?$r0@VC)n zbuQvmP9B*>P~`qAGdF~Gw-V6~<##KkU-gSAOVrrTTOQ^DVN)SKXr}b+e@~OO}eH*-u5g`zox_gpKcH3 z5?$2AmvPNR@K7?rxX|)4+1Kod_v(A62r7T5k#fzAyl%+Jis_Xri?8|l_VIqwW1nVT zixmAFB;M||Xd0yc6TI?6?SOn9is~mnp-B5P#QP&jWsDP69ySP0`6;sM}GxGT0X!dn0+7Bw1dfg6uN04>hiTq5en04KadCNXZAt=A_$*Jpp zv;92zz&DK}t^n^=EH!$z1cE?k1m|%Cvh|C)X zZ$$pX^YW_g z({B>K1ue4(CUBKgZxVlAiY$3_#!WlUo#c5y2|kDNB>AQr`$LvF{ic`a6V9%Zaue%Y zx%pJ~%@FcpyOVqq{8Wv`$+sxjrPpTP%;#U+zH)89lw0793+*nWzLoE~i{5Y|^%llm zQ1MCTE&CUga{AbmTkgW2+mH8;BYj+ydW-NE5J6Hf{kDcLXLi<4znza?Qeu7jZ8OGm z@tU;TX2i4jTnyu8L{Hz!y6r|hhSe#z5x?ZO!AZCMyggy0L-OqqKR#k^YW5wx*Aw?_ zk$Q(h-gM{kW_+9^B&0r<0447k$lI=>j|SOrQX5w zr-CBq+NIqI@$Kl+71a@{0>1a0N{L`U6Mc{Y$b+Z?x7 zz8|cN`?3M4_d{Y_H+-qS4}Sz3JLTqqUz{)_B~Jste|e5_oIfS%rQZ)BZxu=>6Z_Ql zc^P?T;FGP%1nJBcS$S6c4w1Z4Zk`6$!HY&F=D9I`XIrTAz%OjLJSESMxVRxP6hG{m zN$RB!a#Qm{`2F*0HInjRS2p%DaTNT@iOyu=k81xW(UTGd zZ$hQyygV!RG1&ukbQ(^KmdjJ3&SI3HW@&NMjs5bSD@jo=;`z0+ItqUAWl?%GNXqZ! zk#fddHZdAO-u|eX_<$mDq+~t7^|xHksH6BkbH$e9xlt$l-nc6BfdN>qvHF1t@9PZi zlm}+a3+>$02bh17he_EFto*o$=9^O`I zM`+JJ_0Y`kU-5Fmq7J7X!e45|khF*3e z@2_>Lo%l`GoM&7KYp?R@m!|juZd6Gu(Nhy#uG34 z-}*c03FgUbh1r_=H~8@nQ!x}3Uzz*24(FHubjsfb#NT{N^4})#)El4pcfRM4gN`I;=JU`<0<;qc+ zPr)y61u~vGfms8S2#Rm6O?&FbK5)jD{?w1_+=Pr=(vGrkOL>a(g=u~@`Dq0DtQz8H z6!N`%b?P$}`i-2I@r**;1HMfo_0pQDNl!zVM?FucJ@pnHr-1F7`^<^@QsdOm+*r@O ztVz#s{?eO10^5U$^SO*5aH;Fo=D`g1el93@ph$GFn1+vA~hZ%~4% zm08N5#P=073{c=#})|CGGi#kqYv< zWbg@witsvBaWhM+^64-Akcq8E8vC!LN~(`G6|R3Z55_z-(oXOnKkT5v9~Vg_7egc7 zxQHJAt*1lz^e1;5$O@ioM_mH&%M4Bz{tGDH9N$y(DvpQ41?T-V2Io>Rz89QrM2jT{9}w@a5tW^;jX|7mw%<#Q8H~ z=}WvAL+YcZtPszCMKc9Jd>^^B94B-Z{+tbE9jO%tdAo6cg!jMYu#4agtQLrIeN(~W z)QneC0$+=O2=T{7S!SbNWX3$ZxKb;!^5xVYk8?y$|Y0n znR!RdAwdKkOri7^jp@|LXfIa z%_wza{eSsg4CC$MD4qG0O`6Ysy!>^@7>XNZ|G@vceo|LdFZ08{OTAfH5cxU&oRJ}Z z$&m3;Sp@!8I>pK;|>GrVV%NBDe--de>d zR5+*lr-v0PzJJ^fQ*I%v0I%eSFBydyaU5OhQdlwHmo(GI^x5S-3e111^`ET5jd}6z zn?U>yt$Z)1@Z$4JUrDsFa&x9pf%BL4mh>q?_+EzJG@e*_zn}C<72>|RK&#YX{XRTx zQ4l|mwG9)L_ikWQf}b8)BdRoGUz46^mGFap@&%_vyuwvmJW4Zo=AQz>&fndmN+-^_ zHcO&PoKu2Cl~D;h(l+Z|M5iozP8q>G{5;AMlpf`LN-Og3=@?a#`P@Ixlc0lr^*AJYRj1I1MEyVQx8F4HyTiXjh*yMNk>QNV}SZ3-*+ zdMk2@AwI_Qvx}fIu@o^dV-R%2cs${-(LLdLai#u>v22u=#P!~wF!z2%=48{VV+cO zWh+6I!Ta|J%K3c7+e@~$(Uvg7fBPH05>|}!v&NPZ;G@*PGbO-BYrAtL+{k}#x0ck$ zMd19|QsN)@MdjOaxGSb4bt9gVDm+I@cCjTj{P`d6Ula-*hixV8cuzdDP7DPtt}!LS zFCLenFX_d3J?>l#>8xKZCCPjkU*Sdh_zz5~Clp*aUWvX%|z0fDLV@v56 zO0oGZt|aEW;*8NzGJ^Rw;|^O2;}aLz?#EmyJ0EAfoT(V#O2H0Qu_s%~4>UP};Li(l zrH}{a$I?-P((O~Uq+V90ysNYd_?3qx<#OA6EzzmZH)u;6fX><;f=snWmeMBVtKKtL zX)|!v-~d5tRx7qN?(^whx3s05@PAYXuCyELNjrln?MJ(L9~nzqF+Pt6I!cG2_X+w+ zM^HaR<5N@6*Ur(F4gwzw0;Rq1qj-HSu}j~6H>@_`I<{LmPHh6ubQ7yKf zXKW0`<$WGj1D?|hSXPJkSV`e1YasOjORQbw8beUf!RlhIBu|W%wPRdLG+@-wMJro* zSU2+O_{>L8`O#qy;ZbI_)2mg$pRWd3tS8D)gJUD$X>rCyknXgFErZ{mmJBH$)0KP6 zuxeE?DnTfTSH={l`9iMp36>-p{$)JhH*18+X$v?zWF6wbB!x&D7+5i?Ui*O`^q9d(YgMCvQEUa zVtTkN_~>WTS%TurWr6sA#z8H^W#M;05eLp`%Ta~P3$_yusBI~S_~XKSxrHr<=RR=} z7zSy}fnRX_J0n55LWC{n1rFcnDCfmKHsrFW9Oi#qq=&MMKV&}m#M~B$_Mk= z>-?9ke1zBIyn@CN?hOs*oBP`^!9udAB=?4yFBg^hJo<*6-wy<a`uf7^u-n+u1Eg1`rf4AcZp_>SouprNsZOqn>u_SSMN*gn+CM+JLd&X z8ubFFREwcJ?V9#Y9rlHgQTrz17R!(6-*lsWMkLZ&A=kFO9Vm>$}Bt@j8i(*pY3RVR_4d`8)n>j7M>6A$a+Cm3?=x zZ`pBftu{N}0>9{3J%clDhK zKwOtk^aF7oy|I~n+sU6Bl8#Q>+g_}9^}7~=blXO@w}a#yUYt^N z11&v(LWVJ*tHcYw9h;1A^b{qPFQ0H?yB$6VBHoa^o5W06|MMv zfXGHiMYN~QdbT3=eMV9-ToHaqmLKp`#5xe~2t_OUu^#fF><^n&N_ zRoaS}mvNCjO7v9H@c9%B|AnoDcxClx>MI#g-flcw$y}MD7M%dX|7wfEm8`I5roxrL z%e3=bD!Jj0H=CmeQ1Dl0Uu8c( zFPT+c*vcW)_wg~6Bk(_S7h8n_4j*T!qQboJ8a!1rygzZiqL9XVr~)3k>vygy}i@tm>ZplUx1)cZHJ<8DU=tM=!+~G1 z)x8*p<55?2JLb`mik9j@%=@zEnCc-sPhD46OZ0*wbBxixqbXd@+-Mhg$AtcEORxl$ z2`BXgDYK1z2mEy4B+!BXzfW_#W2 z_y>Nf{hO{D;1jNQ1ZtRZZhxEvME_O_rUv*El79);u=4ig6$PFeUS2O4XF*-@2hG(~ zVPEPvhOMdLpU=N)*Qy3n6Z{25VwYQL+Vjnmt9QaR5r0u4xOml5GgJxxf7UWwGa|zG zISpWIM#@uykJvyh3jJDjWNK-!ZWcZF)r?@CwA>V~rQ_|%K392anNk1!_iQaI>bI^A z)Urz{;f0P}_-dzunGJ z8}Z9K$@I0oH7HTF)6v>~J!Jh}3j ztBwZqE4gW)4pn%43*U^gbuj(~Me1D=tpoo5RTTcdIXV^m@Mp!4N}kK=bXY%YMsYer z6-x1QnOM1CWF4Q*jJ)?QqbDdIKS!&xqaQnn)mi0~C^gNab3^}m!V7ypUwmP&)0bLZ z5Z4Wp*X8I!sNXaFMfppI>FVNeUF^Stdg)wUydRH?XrRMa*HAbv(a?81b*+WVtg>?v^lM>3qOhy`Qu;Nx)Jzct`M$AAs)$2Pd)G_BxXnJArD1~{K`64Ju}W*yI5Nf z{PGo|7%Em>h>~(Dxg=W;yu!#gKwS6hs&MtZ*dL;OZS{hvAGpU?F9hCIe>+Hf;ezCF zeG0hko0qsRhRmN!xcVCS_0E=@`tVCy@t&5nlMP*}t#3dcrSsYPIRB|@<+%EG%o}=$ zk<=@$%Phn%WyOb<`oMxBF4a_9KZNt@!xQ@Y5!km(%^^r_-Idcoh55O&yNw`Iw$Ui(&{ffacW4AC~g{Fmv=bELg|RY?!AuaKQ*8+frV zHSk0mm~j79`m(-35PF9-z6J*5xnui40}al@_os156yn)-A&{g3|JgdWBn|kBqnzN_ zK8_>$;;~n+Y6^1=8_`(I-&>vtko0#jII_v z;dLGH5G+dQL6lE#WvGPqi9mke5zTTs^lt3W_jbGVZsei#1-;&j{{v5mu=;=SNBry= z+mHh9_A17P;8#{{5@<;A-%}!c_Ls4tp=duOE8DXTk$=Uyd0ay$?A$NyXb9f82<#c* zhW=ud_|XUYhC#$df9h-K$Nt%+uC`$W^YW?4(FpwFE|a1}mwa27BPbObjij8qQpV8; z^G!DMT`lP+E4d@k$c%BO&$ErJ@b|5?fksqSiYa?Q-^fYk-Misfxp|qd5$3Hjt)Zi# zANe?;W*Y@jpVkvPf4(p+CNPb`qkLByZL9)cayhoK27Yb7$~D&U?c(uB1xvJz&A2Xp z+&HH(_+`@w*agTJ6i@7{7W_G7+JKg=`+Kh>m~t8obNR+SowF4flMn&4Xs z6_IbEO(^j03r3r0kcT^Ev`uud`_1NP4A-`|5v1m=WSW@a@0bsAnozjENS+dHVn?}d zJ=equyU7_2qSL{No+fzzE1t12+Qbc>Qngu9E^XK_)=oa?mmE?q|E!NbhLgK$-&LW0 zbKmg08k8@Z8>?4n$M~9f@j0_(p|1(@sLXB^XoB^k{N;h3_$yQ`WZt#o^Gx6Ou)GWV z%EO^>th|ES@-FH3#|&ev{U6KVFTMw2mMaRs-_$Sb4pnzNxP8 zb7iqn>1m4m$3@yM-PaVnuMBc=3lDr9c+ZJ^9N1!ffu|iW@a_vd$i~X)T6c2Z3t>MxsDG)K zV4IQaUq=hB8Rn}e!w-YY?oof|@-R0|mc+ZhNFxo1D`LO!7 zt2OwA7w-e{KJexgTWj!2Zl@Sq>rlU7k)yQ%c6)ZrX>CHj_Kr2SHe(&sa|B2^Wyxk+ zBmeXn8`s*2dG=;meQPJ`x0hlF3d@vmwDzOjCA*__5dEhf3=ou0`ZcGu3hn+{rB9~N zPB_<>3|(~VEf+!grLUu{Lf9AD&h;c4uwF-X0b+gjo5&@bG2gZdSQ3w7YgGq9$>R^S z$xi4e1sw59pj+Td_ChaK-I(kzP0?Fggp-5V=Wgv}h(C%upJ-$K?_>lBDkl#?9Pl&w zYu2bCaoqqSuJZmIBe6G|i;{BMT;6BIc#FQPn`1O1p3I>fsh3T5+K5gUJ8Cn!p(i!> z7zzLJAzaMf%K?)V&-55WXs2UXV+5azqI2K+BYKDni~jRAIcRgIx? zIqPeKJQNgJL$j?7;*X1@QmH^2@Kb}^ux zYbWizmTl+6{2G5q+s=z|?cc-Lo}d~vdS5NJy^h4yF+g<1`7W;Z zI?R*c7lHN$U}&qp9riQnRK2Uco%dJt*L_EOH?POzWdytR?SqIf`BxXg1eG<=K7#v$ zI^Ea~6xPj+CgBbg=Kl((wu1)#elgcbP~qOlbijBkc25j+!1HFsf$I7Wro#5AkLvk4 zIN|>sv9<&FMT;Kj3CbGS^c}p2r|&#{2k^?))^d^Z*NLL%24hDZ-%hR=6YU6Irgx67 zqZ#u)FyGkG%Gby3i7wp;cZ7ZU%2Eu$SF-E~(-HiV^u7*)1x3){Q(q@l;c|M=(Lg6d z;c{`$M79$duV(LZo$T;uSW{ysXW@4A*H;6b{K$8sY)7Yjy!2PuOs7cU_67YC_pHfw zM*gLPz72FXy}o_H{=$~ijh+34*K53;aQ3&+E)?ePoKzs5=VpA$b(Rz+XeB{ZyvLCaq|AjzjcMXcv0TDhouYRkBhix z6ShkT@0m-ibaV;vnKF|MHJN(06q!@OwQh*A;&JTcP(Z=enti zKF4W273gM?QZgs2?*@L^!htM7`NbTr8}`4rD5U3I-SY8@8(E^={1~Uk)r~K(t>Xn= zbrBRMx*XjpV86~rf>iP8Io&m|XQ9~c8uV-OZceOy)8R3ctQ`|;C!Vs7>yG%P+dtNl zcCx(!mgsU@j6n?u3Kb`;rH#sFVM>o6eaaG_OxRjX#2-7-mgd; z6wvkz<>PzVFrniUS1;@{qC4}sUK;rSXR!c5YDFzaF9YV`n9jyt2HvlN_668|5b|Z6_n$?++}HM|ps&2bkb3(3T4QhI zU$9|>ueS#G_r>a4dcz;dvaM`yjhYfw+2QGJChZ@^+Dm=iJ-y+FcvyCa1r>eM%U|d8?l9_%cUXPbcR<$zr!+NJH zoU-+EV*KjXjrPMjq%6O({k*vD)mPy9`GLcK*OPMbjA1#Xon+NVwtnzi+F+c6Ak%5B zufGaZr@x8U6<3v>{#J}fW<$0=`pdLuZT+2mz4AykuD=)K zfAcF~(d$O`=SJfIiqE_7!C3784ZnX;I~p?s4Dj#fo6!N_7iS5y1I+OM;P))i6<2C& zNxkg!GIjvrw~TTOa3c?uhHwOhho5)`Abx3}x^{pc@deHVUf_clxW6Pjz>j$@uHi7N zV83_EC_(85^;ok8xW8MhUe@MxtX`R3EMPYC{wmMc$uZmcxW&hutQoxWO?`6AUcNj& zUjJ7VXO!0tH1l?4&kh&|f}dV_GdhsO|5Ahxw|fR+eKW1TW(WFF-hTn9I^g!!$o2BG%QU@qaPRuE{b8iznp2#ePG4- zZmq?AU`HH(HV=G&JSeM0q8~VU9;s?4^8w;lJQO=V2%`Ot1mg!GzCLbGAm7G*sLEGf zeGdB}p1;!HjJAEK%eSA$JH)ZtS=)!;jSI88H}|2N*M;Mh`Valc@2?jFAA-M-B)i#E z>L1EqHe|*;v7{O>ZeuF}aXs0qttHi5xV`k@@6ptJaVzxeZK>XT?W!+lQ-fHC@92Rz zmn*DxrAF{ve&zx;HIlDgAqW4v0_JfWiv{rux*zjd^7H?9W?tXA`X+X;6?uK9T@2}s zQp;c`?(6RkcMJx9bdmwbyI;wO9rdAnlG4C9ap-;Syt zU_Vk}o{w6`eT2{7iuRkeA88QB^V%rK_)9j%Fm5-F;g-3@-{V3bDdYIa zTll(FqOHh&6ykZ6&N`N%6rM|JEw-WH5gmCD7z$p=!}7+VI=&rsHBCFzM0k?ep=MlP z3mY4Un)B7iiQ`!PEIZVTdefm8il29hAtQ0dP_{&C85%^sMfC#1s7~=-ltTSebQt*m zt8QN;eOPQI%6A-c$q5o95H?AY}fEeVLp2Ac6J1=zv9BY zy*)6(fPT;CT1FT!e|mhQ9RWV^#_1M78~vjsZpt3P8$Lm+K+Mn zD?X~>K87FS(_^Cq6~Eb-kG+NaOOGFjejJffia$nrK87DfiJ<8~&q(moOe5b&6ZVyd z#R4M{w{TAdj+D!mwegI!!~Q!eb|mUF!u0#5f*1~=iTC=jTiMYRevfSU+*rM6!3VC<8q^=Y zrziM2kuK{R9c{ajJv3AUE>(cKe|(A-xwAAkWcrG(O{k3Def7A_zMbiXPkD78F{$cH893X&hrz# zF?L+1oZXp2kg{B5$6)=@x2pp2o_=A==os)zE<`wj(({WsQjZ%|{g?=@)7qtk$6P7% zibniI&WzO*<`r|TnXx83r!4-1eyoYit5fV)EArX8t!Jzq^L^M%<5(xgZ(YbT){Xq> zK5@kK>UA7r{rLZ}clrbQbuE1Khh;4I|E(yt)OMwT_my-IxzfNN7uo6s;WY3UCBoIe zd(wjN^OTQG3nAY>y=_eU59^LTq;=SI|Nc3-^pl5Co0DJ1qV#%Uo42q(^ymo|8=k+@ zSKelAAzX)+usCd?!tLU5D36rn#u@l}`IH*^ac1&4p|&=H(i%0j<1p^Ry}f+n{vm!r zPHE3LKgNA_IW0j&@G(0Mc_=7!(jeb>73S5ii#!Cy^%uvG>R8G*9{jSjhT-uVJin{i z-$?M4e7%PqZ^t~Wkj0I6rcuI*#ckt}2Vun;FVP4@eZ_?@(Hld-RDWQ6gp?nBS$^{c zR%)ajkN;m4X5NX8hrhzWdme(KWy2j4Ou%E&=mZV?Z~U2lf)(}U)a(TCi(7ZoPSBL1 zM4c9RCb$uYN6b#}60E6zf!%Ecg_j3#6TEnzbop}^LAr0m_z6Yy?3hkx5$q@EFRl42OX8Bw=D1J1SXcd$qZ7d|U65}4 z1np!S9nlGHT%X+k1MRV1Q%(m+-13}0+F1OmtvM61|BB1b2u!rYKKFxuq7(ggYN8Xt zr;vRXAbyAj_2MQ5q1QPUCizq}sU6F&BE4r0u_JAA-Z)8x@=Hy%QeFv)~hTY0A# z`w4~T9c@m8iB2_Is-F}>o+M2jlS0VfZv%{za1JuYuZ@#c@VnGJ2SNJIL&sztKhH#C zc5#zUh)>hlLr}2Qub*tid|a8!O}65BjqT5z$@*D}R`@7)-7(J?uKyia;7FvVP$ z=hb?6%^%`(4Vft+#4)&{Zwl;DTjo1HCHyVlVm~GGuw*sQr|?6#e4&h1rDuV9Cly6m0r0(Lv%S@Y0h&&My{ z_kqjq<#{AjEtfsW>qVG*RV+Nb#5Yxk^|?mwm}=n9jd%l5`BTxUR*YBq8@3p}Azf8%>BL^fX>N>T^u6#j zl7AoVnHGdU>$5%6La5)n&N9sj-f7!i)0_-NAKlANSK7J!;JH1RW>uj41cKKxf$S(3w>>{XNDW& zW!lTm@FM<7UTy~B7hUjcXSmVs=}E_o5aL<)rEx~S_s}9oRZF^xw?my&7}GKSagjcm z;Y%m+sXN)y!CO!Sfp;wFPK0L%F-+?KZ(L;J zAmi}MsD$_TXdQl(zt`F02!XGw+UE%A@Z4@RkZ(^PY|YNpz|Oa`VyJ9e&oUG9U+JqD zovA@Qvma?^n)&w1$1S;;c3zj>yBnB^_ihD6T%wq7CgN92s1Ti*kB_P;v&^FS{_%da z>{H(?9ma3+5M~y}LHI1_n`OXtQxfp->&qIv_ixOc4w_~mq7nP>vaPu^Xr} zyKu-i&y2iQU7?)^enInN#(B8@5poMW^PI?U>LYfZ8|BFxUSOqb>^wi>YBL-<_$M~y z=6U&jPpCJt^C|eJpA$oo?R<2;2IDv7Z*D#XTwTLP^tdn=54h%=d7Vz3!_BwD?y#SX z^T98=9V&N4@DJY*Kwp??%+7Z7`k(GR+`{XKSp7y9Fk)W*l zVQ!%npF7C1>KFQPeK0B*{lffu{|fq>AkQ*>5&ZZ4=ntjbmpbt6cR0Q@AdeqjaS;?f z`&#?uf8b{tY!83w=6UEV{d`~g`8>b!D|ryJ@&(q>Q?w}E|gGN^xO z-`%OrFd;9y#Vo-F&=JG;N*W0Y zHG0McUgp!UW9>vI1B^>U^o=oH;=3J<>6O;|T;LV7`c3OHBM&_ng4y zVqH#LSB#&ao-b-yWXJbRdM-OiIZbUbE^;G})z5eqdEv)X7rV%h z^JK^k{UST+H|;kr3gP?6E_c-~3gxp~gagt(dvm@r;CC`cp7 zxF1$3e+ztt?=2J!uI2d({BaQ+Ne_JG$NEfqKZf!0IMUa`?AKJ$=iIAy&$*nhk^iDZ zP)DWz8hI^JjK|oo@&1E4Sl01%5aZG7MBwX4(d{Lrr&|{5imornBkIxBxETDh#*CI= zk@8hDb}{l!|9pX2jQKD4>rr4a{Gi(_Jxj3v3zTNt5*7NF_|UgR2YV%M>X#U>e-%HV zCFSxJ%X5~PQ9p0EWr-E*A<@k(v7`U9^_C@0-r2S#7=MAO7qcV? z{rY^%5`WSDC0N%wmTGW4@$DVYQoR3@r>L2wI@rD6fLn_FmtJ1nveb<4V=Fz-wUqb~ zm+DirOTj1J9L!nj27l9Q4x-EJUW%2=+lGO-9}$evE)5}`kbvtzx!F~ml&D3PCB?OPUvoy9HKW#E^e zJO>>-EjPKAWBxIn=K7Z7`Du}D!ConG8@qWhZ3!-Q>ZCp;`|L6%zuqa^` zssqb$?$C}r%W{mraQ>&^71-|-wY#t@sG|ExEvtPiOjy^0rA!Qm%nuM0%0_Ef*zsI` z#Jk~G`G}yNAYFMPv%(9UDYUFWo~0wMIb!u6-?R`ET$-g{5rMstzG$p{ay6G*1%331 z7d&I4FVNOFhO&9JqASd>_rvah8z}l?R}AI9xVRM3#m#qGpCbG%GUSA2DoSrNoI z<9^Le;r+nsu?{!B7gp&{WmlkGLT_o5*h%}DrszD-GizJE zF=KxI-j(~t%HQ9{^DTb-6Z4H5>te+t8^PBJ{iq+e66Y`F>FQdE_(hj8xRw8bKW>kn zGnrj!#s8zVs~=rye?1TNW13?n@wUzu%&i_FF??9>Ixbfp7Ek|GAg@)}60ieYxjbKlDavBn zE=%f}yS^|%VUOy@RhWOw-9NY&Jm0XZLbyM0miMfRV4N!R+RPUvL5iqg`U`m^#l_rCS#D^1OET3h^rX1tF62pS-BaW)rgNi z|A1ZX#<-Q-7GCWxL5aUU>R9bZ+)=xWpuFZuOAI3^vGTYdfJY>~{uIp6VgxGOd7H69M*| zZ2ZoOI8Rl}`OXfzpKo@2XUB6A_MDH{SF-nBpnSjaJ3q=lOAM2C%HZ1&-h27VQv`vCzE&P&{IOtd#0#<3mt&O1H>^_$7 zvHlgBccP@6das7@dkyBN>w<@1TqFmM=6nx+QC+q6d*nYZ(i#o4-`jB=JygYh??n3n zGSByJzMuTU9?$oFN7@;&&O8ELIn+ZrHPl!(H`13zfs*ZeurAHXmCdZgtC10OG4^9Sw+{NIOU z`ws30E6xwoFwYNW-k!*M(Ds9yZ(opyUb0I2LkM$&w_=o9-fvGN0nIqUuC zSA2fgg_o8|=IvifI+J8{E83jXt2=;D_C*?*<6Il5NWz8(@!aaVxqZ zg6qRgsTMEn%C4Pby%gV0u*2o>8hBma*RJ)NVXvn(?6o3)Eywr>#zmApO6zr_-rC;c z^}=5Dh|lZBzV55w^9K2L@%9B#{(OpSqo(Nb6A2cu8*#ru-Cv|?S48>8Q7F3FoI z`w_bl{Be;TG1@lzG2e^%0~_%kTF!0&LVsiG3#>gRhO)eXaTBgTs zm0ofby9MLTymiJ#FfR1=QOuSg-gjRpVcZgey&l6HTO#nYR2w5f(MQWYS>RWMt)47R zVLoNjI!~4faq2UCS!V3}KfS?bSv7brQs0qfRZ>DzbtcP+er2acv)sUP#bYQi-qdG# zF%H8;MpCaRJ~Sr_{K}*QEV1`*h5qRi&S%1P?%f}O;D7WL>px%f4i%)k6`1~jjPK^4zm{*5IsLz+5tyS0`Rk;3|c7^*1tcKAo|iJ$h15~S}eas24TIbA#l_1Gt?PVoKcFWT$Xd^`HHda0w8woob9Z!fYY6#jQrAJsMU$3r zKdBIxV}W*S1aVD~a|C6lC;5Id!0wC%(Vt8he@`;^6Zi$)C+7TQMSl0r)Bc3`#dj`o zKRGeKH#QFtlzfq5`RO0tgB0{nDwZ3!QAPW$c-O{kBm6Ig-uj5!W>!&xoW$@p@Qc5T z1h(11w{8bRQ2a=#-R4I7x!*C{ywDd<;W)z<8~9jFDep0)NcQW{=#Ruf$eTQ_o?Y*wi7?n25Gm0U!v!Lcn{WS zp>cZ<`Te4=h1Aonzu!S zMEHL6?~S>gD*pQ%K^@8iI?$IqN=lCv|&w~N~sjvDIOMPYq@d|SJV%2z+b8r`MKr^h>#9MA4DqdfTqO84~R zc3DOE{+mCHyX-)7v+yn_@+H&c?8@g?ygSozb6{7fuwBJFm0i14h0Ejp1nyau-57s~ zZZET&@UJQ6+l}9!XS^cqZY%i8J__sxpZM-`<8C*9{US0a>3924USSQhJBW4m_xI7= z|G@u>ClK=aHE3V+hbY0KgpnI^{NR;W&M^Azm|v~GVEj(l-}njRcmG4b6N6ZP5WjOX zJlE$BVx5kV0(n0r7it@SR{cZ2mk!V?e9@mx{Ck_C{G#tYWPc{{4?M#C>_r?Y<--J( zC0r~)LG^LkpF{k-i`$Wv?8xo`KYi?H;~rf9G1r@Mdo)Ruyw>>W9v$LLuB#n*3Bw}VS~(o&;T+5NCScph7D69 zqnDu)L>d`F7&d~4kriZy)vyi2MwwBdVF{7ZunDU{W)x`HL`I{`-{+)UZhx(P@%w$> z=bulXbDr~jp68tBoO^R~+otSu^W#Mymq^{`haRprc^~*?;=a&vZguOCP1=RBuP0|y zc>hQglw>1+`R<{4*%apW?w2XqI^IuVUPdz^GutYl=pJJevys1O#FOl7@D~=*p^Mqs zg#U#w7eC9)4#WS&nMnktbV3}t{#PMWJvlXCCfAdxc?6Zy^D+Zg-oH@sS6aZ0b7IF* zNx+MGU9%%I;KzMny@iPZH|(plNG9#YiFl?UZ@&inBnH6u(JeavZh;hkBQ}%}u$I!#c`@{G34nz^p=bvXCq%a=utshijU39f_3Cfxb zNh7HEe15!N*{p3G8MZ~%K{M=n{~kxG`>vFO_A!+BZ13EIh(ok-ZQ?;U{7v7Pd(aEJ zG21doyY!p6X#}Yzo0AWQ;XmnU60ws^zL0hZ&mU#6l+1%c@O@ul@)%Tb!7q(JzJJIGEVDeFpltQm>4)H7w&p+@LF(DrK#VZE585`rS;10dda>o7IBj;K(#m2xu=M-jJnU-l71(&tWnM6BVOdCpP72ZkG#rm&phJi?;ALKh55tWqZG#1dYEz)d=h3`9zpv4 z^Yo)S#Ia*^GQor%P2+mP&;yf?ns`1zEGy$E_?hqL|GG(8 zN5e(?=`V&PA5#@=FXE?AgQ$PYlw;thlGh|31Fy7mzeIwHsk^d|d7-P*Q;zx3e`ZwL zu^{G6`Y`8MkhD*Xw^L-N``>zR#;g=LI#djz{pBGB=2I7kpM1i03l> z_e~Chzp%(A_DK&0`Txr(Suipwh;@G{rDrA{S0&&*`2N76<2gHF#YpyXGvaTMo=Nak zq6`g9K2Gxgmm=>lG55qj&`qL%x1o9Ri-<(2p z+7L-R;XR7?B2T29Am_2SMb-&&{+$0k_e2=+H{X*=?BpFUVLa~R5*nwSMBbtW+Y?V} za9%YXFCqP}l+r&Xp0vM730&!EC+%uVq<$^)B-TT8dP43=H~fummUYq(zJ2@hPWthG zqRxCB@0U+om~;~H(xn!ppQ2DN<>sZF3>LVKPhF66N>_kCt#jfj6Y6)`xb#!z0_}wY zR0Njho&xWGEoBlDPiyf1J&rkm|KKNdHR-e&^TY^c9KK%XTV1%Y)m`@e$lFDX=ls@?0;H5`HUU&`cs)Sg2Kc)NoU*` zcdkap8RRWJ*Ex@1VUhTMO*|8YpUiLa@ZaYt@w!oozo`oNEj-{~>Y@PyGk*g=C*p~V zvw!pRI@ivj@Rl&?ELr~nZ)BfUi7DZ&*Wl@#1G!dI~&CO?Czd=Hq3ty$k~amugN%9fG43!rQCDi zmnpZUpEIGJZaz;vXD*&ce12ZyIXCwCl$%NCyohV+lF8@%h=0b}G=h?^uBM#}11Btv zBUQO>_IXm*XC|hdr|=vpl9PO%!a80XmU$lgKs4i7%6Sd=OGI->J12C%BZ=p&r6~!1 zpZ~la_0g0`JCFQDLodXUv-{s7{l><`3kJ;B_&rG%kbhy3cS%jY0RER!xl;B8H}cus zCFz2@K>JIB{2vm`ujgDSc>O8VFEAd;yr?UFyeM&@r7$CFLcp>O)0=Uhi}%ObzX~Oj z`)B=O=KUx$dr$tu&g+H8O9zz6`~&=)Cdr8t$M>dZ^KO7Z>F;x<`VHNE)$LO%)rYBTw& z8Seqy?w@dd-o$A0*vZrW8lzGtf9OC)+>5e;shdG&v>{?dNC(sE6BZXozH zBiGFPmrj!B<$_N%c5_y)6X#~jQj%PpKhkSMQ*+(8E~Z?_BD&J}&I>#kM=n05lyY)} z;{7S}#HkStuXA=Bihn+w6fxsGeq%;X#9F)^XD=&%Ff-z(DSFY<+(?1^r5$=^Mxuzb zgEc!6#rqW<4oD(VyyySNy5wsbw09em7KvhByUj_8MDc!6_pO<6z58*rE#Gre8x`GTrM* z*Q_`vlNTmm3j;g1%^-I2y$v(Tc=_Hjaa3&mEs^vqm-Uid!}TqJew1=uRh|;XQZlaF zao<%=lT1+3X-qD`gijWMho2wODk|kV>Rz;_amsblzVm+e^(f*K{E&M+jJla3PQ0PQ zc~#~2l|r$#wYt^6sMk3X4GUW8Pgq>h#Msxde+7Wx}UnSxf~2UmA|>eGJ1=U-b*um2IMVk@=0s6PGDBig z6!C~A?#zpVSK94CMihBV+5K^(M~#t0qo}9Ix4C~(#mB{5?3eqeq3G{36_JD%j_Sa_(u6&wF!{@9D_;nc_(OHYnwu z3H$R-Hz3wa+%}H#MMG1FeL}?*X=J=W&^+Z{0bcp$etGx&MdMIR{v`Wev}k+bc?t2k`-I=NP z!-#)P<;nNMc>daQY~p=4;!jP>ypMfcoQV4GO?!a6UnQcePm>?OpXmC&RD!~;HM1W0 zasAsmBJY78^CK3gJ_w^e^s^Elko*stavxHNM?OF6p$a%^sf6f)@sE=qYEU2gH95pi zarcmfpt9b~xUSsHCO$Oq@yI;mCO>pSUpO}Lp&RzgS0=^v7Xd4C%OpMw;v6_XBjsV3 zA6GaZx~DWZ54?2Gaw!CbwmLxUuVw?|?Lv2AW}X?J&vUP5=UI`*r^lg#Z*i%_Jn+kx z)J)8CW1O_vG& zlk{KD6aPZ~f?dLtzp(FxTg5AH9pAtJBqq* zHYMKA+5c<&=y~QNE6>NcPvtxUzpPna>LcVYPqrr$U2GVT{m2jArf((@T_V~kc?AB# zLNl9k9;;Ayx2mTrQ^I!Sl)X^V6Rp zPD#guiE;c@mz9ryrVv!rZk+U72fXx4&a)`+{FC(O&Z2oJmvzc~?#F&KkIs7@1b@FD zQ@0V^r*GL&I$_fi%nsNz`&2=#!K6#1O&)m+O|(VHtrV_VBh1# zCPv_f{h;USI1X+YNAc`E5u!`fzJMSMT&(j5z%R*^`Uq0)je4O9`!?;Kjp)+G%d`R~ z@jo)|U(xethUkiol!G8;-mex~5wCs(E3~8T1y$5S(jQi^go^!5$Q-C+tnfi!8`dlxN02f3w>iE z@Cz#U42jIBE2?%JnbIN;X=g5_MMPfkmY3xFnW+kig3#|Tu@HMkzttv+g8%GOqsWf; zI4fP&im592f4LzK;T2RK7ZL-7RL3}qmpIj86VAIeQjZw%DgV}Kg?7~M<1viTjdQ${ znH6b@)``e+$|&}O=lHiVaS(ZwzN;38|NZ?Wx8B8}Fn5n$g80RQR;ndVRrB1&aH<<&x_7I5=~0%11`2 z8Ta+Wn_8q+)NeU)L}~_pl;@HXK2=k#)QsoIvljZKUgY!08j<>OpHzimr9s#oHU^}~ zUtV!7?0_xr=Htk+7?1l`@uL_SM;|q?G9A9hm%Ae}1ICqI;gRY1c;ulBwam)vl3pJg zWlmlf)SRrA!H+=qg_a;E^r?0pSr~QFVXj9O<=eUb{}vTz=S1WM_+RCRZu7oF9xZxZ z+F!=xyh;u`Kb%Fu) z8%?wjom$?5NdUj#&DVjYDB;nzmIS;9&53AMc~647C=b_P1P9(ym!M!jXkk7M9uP-C z`w46b73#2#&R4>qL_Kb2OW?j&{QGEi3B)5wvW7}nF%L&HaXaaawSf{ Q%w8$m_3 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

    # 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

    DTlrP`eZFurrn=>%O$|0@JxW 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%0A+{ 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 literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/symbols0.pbxsymbols b/wolf3d/code/iphone/build/wolf3d.build/wolf3d.pbxindex/symbols0.pbxsymbols new file mode 100644 index 0000000000000000000000000000000000000000..035283005b2d5be6505f58b94f41cb2b2f0e19d8 GIT binary patch literal 1613736 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 z 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

    qr!gL4 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 z ziO47ZwMYAU{k+iL;oMXG-9z~BqrW@&Nxus?!)pyf_`~z$z7Ji^?}!(`lkfwdxDP)A zPWx8l{E(jWrS1Izw|JbNmcPI+n&+qffYZKQJYU{IKk+`OzUf(zt=a`zo|ftt$X}2b z>ZJ@g^(b5I!0TKff201Cm}kJLN7?FLpz&YoT_B$)FSeV&?R~o-dEYYNfd<8IYUwa|2FY3UqW2pf8dwl)%XzCaDZz#S6M*Bt)5B4$$-mF{VRa`{#pi{yjC9UMiA>9^Gm;dE+J_;7&h`VioLUjq4Bu7Ue@Bm++SRyX+T)nxo(tL3PG z{uZ2X5${za&&p3NS;tM>-kUZ4fzw}W5d05oveWyAuKr{D2%h=}o~%CxuKt1h_|vcT zOKR!+0i5BqYCH7zU8?U0^D^Om1+F!{ zcst za?1OGo>PzgI`GsF@T4CBoOZ22h|h4RRIgbrx5RC|5T3jB1H`QyrT&QXJ4yjR|Mm>d z&r-|t3^@I^@(|8wr(EX40j~K4+^?q~U&8_J<4s({0iJ{doPJxf%YM)5F8Ng-4scBm z@FYFJH5}kcIKVX=;7K^Z>9Lz9N-!b@FX1I^xMLD)cRiIeCl1-x^fL% z(*r#DeSm8?z>{!*YdFA@aDdZqtBZ53F|I3nb$J5AiQ_NenjYXudIG-y?$__pkA@F? zHGGaoLioUw@PRYDRzHNlSeM`R;RDxn0#DKz_yzDJeBc^B@FaZTR&LgW51ip0YF?z@ zx7z)SG`xKAB6&CP{ASb3`o;3sjMonK8jzma#bLexxbB+?^8vu^y}3B;?*ONLzjLwr zJ+%mX^>2DPx>&yN{pZ0CaNlog0oQf|xZlT;0jGUg-7V7(ckz_n7EjRl>tgPyz60( zY*sTp%CdR6{1^Sk{(i&sEXY>-a?RhebGiJ8y!g8Sr=A5__AZx+N8ovQe+uZ@-wX3C zS=XMIigOxcdMoe?@O{0N0oQfUwcxLQMY`@8xYonKlX^Jt z3*gDRXW(4-+-if5eqq_ULf2WwaztF?2i(`I8E{>X*$sBRD|DUZiXCuk57KyKz_}i? z)i=AP#Ve%E{5oOfmbkr7Yr+FgUTYBShF8e%c{|`59&n%T3^;i$xzf^Cy;9!p>Q!@2IS<&iqeSGybb(_tNz)}XHm`{^KU-A&j}2VM8mLF#_GLD)|>T(h4J zxbCM5lKXP?Jsef!CZ;RC7XdGTzscd;hesaw;pzUG>X`KPdDw>ooO%`{_uVnx+;{g8 z;M{jd-S4~ml-k>OJDy`gJxagN?hB3=&nx0SyJWp;J|^UGpPhc+tB%WmIy>&CqaG#q z)iJ-zIxzno1h{?&39{7)yyiH@<;*8qahz>>l&yB)b^ibFqtkx#BG$+4MSNqwxj(M? z&wX^0#ACY*oIKuNslV%Re9itU)46|+`>wbz&c2_H%jN3Fe!qwpqj6b$FUP5?ILjIF zN8Cl+>R;}oqkY_`Tvn@V+N-dy7PxN@BEJBhwpV7){c@WAdUZ{Eh4Y>8UKPN7y&d_) z)Aq{jxt>td+o{Sg`}6|0eM{A_FDmX^G9J%=c^>((f8MoyZrlf#>@#$@aT}=Pu^d^d9GBNKI0Sj>7yTQCx9pG#evf=_hV@|ixYC(hZAt_ z)B3W*xlfBc?z>XE;e`C$Jtxlkhx@VgezaKrfs@B`aMW&u{brBk`#}xkD&YM63*gCm zWrzFno)L$A+=s<|TYJ2}+UowSB%d6fOo8F2FAz4uGiDfxGACsS5$0QdDq z2An+J@1*gs<9s0WH&@CHa19T55*~2v&o+Wxb1Lo60@r#9coH6P-Cxwh{x+1?woGe& z=hbOF$1I;Po#zVuknxZ8PQ&(FabH-{o&zV3`@v=&<@oKu2kzU~xPPnwp7;Tu_WebR z$Ene@oC`faX?lr$QV;R|Ycp0(fctWi0Vl6)&ZPTq8m4DK^8BEud4Fx&S5*N2RpN2~ z9dPo>-i&0P-wojdPr?UI-l5@)#{X1xoxBQqKCw>om;0-{_R zz{zX1&5rx8lJ)+;)ed-K2VB?tFIxD%pV`2?f?w~?^BjIUDRT4y*3Z=a0HGhsex~+I z!}|WVg#Ki;B7dvt3jN86(4U0Vb=;7;jvMcg_K%vCbloU${XP*S&xzrCUv?_;8O;}J zm=^_Z=?mw_#CZ(hI(`M;=6}NY6*%qtix$6Aql%njJWrY)&xI-Lc8<%+xV~n379`Ju z(f1Mk&+(@JoyP2a1pe6Xu)SpJ5Kr*!_p@_jqF>?~Pw?2X6BdYr+T4@YoO6epnUzIT(KI zhXQ9#@w|&$iJ!21W51ldR%1N;emGm$e?J7yU#tL!hf&4fkNt1`Zrcua9h`TlenWbJ zs~vD}$NoBVz5xC|m2ba82AuZs91ET=^%H#_{B=Y8fq!4|5P#t09U5ZHgY@ydD1B0` z%GT>xkC@JL8j^Y2MmSf2xSzKLZt1Ni@#Z;FwCA}E_krI^tmoU+kRF^bsPPKr3b>WW z)PDw?_WebR->Fem9>sW`G@a)daK4%6jy{{=oY2{4e3vvm%CdufG)X+d{(9g)-7PD> zlkac-Ezd=b^=JDRpMOKYJon~J-hVgr?(>o793vxki-+X zy;p1e0H=L9nvkLQlLtO-VasK(h^eo6j)hR89zTJB&_&cUn=U3S7or}usgAcst{7O3)+pmOk>0SW4 z{G{opFGhRBa97S@t;lP<{+x=u)$6aV$mr{6Cjx&7?NPFCJGc20&Xf3llFpN$AINqp z;n%EPDu5?^;JVMdHzx05_~Cu#`OMU#?2pDYJw9I!;`!Qqc|YczK7TLy63^+QWX(Xy z`h}9;q1x@xKj>8C!|==VZ+V_mt8eW%&%u4) zdit)4{EOn&ka6CK=NR&w>dzTY75!(+m(v%I$ydFfM!>HhlW#cu^mE4Kr0O;iclx#X zM(A|T4>A5r$giIgKcT6?cL&p>Wc#GND&|8Ty~-o5^)B$F-wvES&Koh^oHsg4?LxZ% zTM~xP}M(4}N#GKg08s z$m4tt$4^T`oP(%#)G)6AoO+aT-iGJyKFRZP(>YH=JkFEwT-_f`GM;SR1?_?9QF6XS z+kLc8&!WG`15Tao4y8XY=mnnFtqOI{e^BzA9_vS-opC(k_WgJw{eBCaJhoqISI7QN zZwFlMfG6L5fs@C13Fa%?oj&d2d>?S?Y)>dTKcT!u%#(N?aO#|opya%R@`e-g3C{yg zo#(+&vb|8=27(AnpHXYk46JcHWRC*_;YE(1ID~ zUO;)BN!f6NOFwYxS&$spE3Y>xHO~W1o#)0-@|<7g4JYLRo(G&d>wQX&zxA9`)c;NL z!h1lR_66`~Y;f@bP9D$wRlDYtJi*yzz^O;cb7AObX%XXZ@?!r#;5aTpO*gn$z+%4d3c3;`;jo zPr`9{@;d;heLUBO^Bal3cJK#0@#kstJHF0=d+%TI_OaE%}E#Gk{xKc0^h z`AI$ir(d3rqrdlXS{|g~P{TMi;5^sa=4J1RTfh3A_#fTq@*95Wm*?WJA5d0jcCj-fuToxU7lAWIoS*UW&VZB0{pifea)|rE z)z0!Y15Q0k-XE^K(Tv>UdBCY>LB@UTJZER1Jj;))W_px7--iB{dh6sn&R@g};Q#LM z41Drul zUcO8na+&&p_44?~LWg__B=41G4&Dj*CFm>lrr3VhJ0ZX0aNj@uDexUQjwGHV&3^kA za16l(54L{0KZls}RnyPJ8PVw1Kk|n-YeMi3^QBginaA?tA-@3qaJWxp;YdZU242~!Zg5|?`KyHf^?Z(RQsD2Yj45wnFV3wdKb)6Qp#S+~ zr}I4FxfkL*VMyY84j6yo$e27$dGTYOJ9!f5E{>5SD8}&!d{%WrgkBHjj1$!?J4PL zJPqG-!1xPCrsP{beS>Hhf4?dDa}6)pRi>4{uyGP=nKBe&tc9nI?U)Z}& z9}u}%a_mgoXoz6@1Nm&4j6v{_1b%U`UcT1{(f_^i*|Xi ztE^Z4!rt}rcRqcM^)a5|_rv)|v>O<{r?Nr$yf^L(K79?lw?6)!^X(1tFpX!p&;Ee% zhxrEedpl(1KA69}W}8N^R~mi{_+9iH&bc3o-Lr8!WZ-Lo>1{In81NrDeyg!j?H6zl z+r;DH=On#he+h8SM_iZAzxnn?*@5S+zVVy6>GP1}HL*W`H=ggQY*If9dpF5t^cU>8 zPoAC&Nc9`SnQw0je(iY^`_&oFJf!*EBv1S(z6Ic3Gx}>aHf#JB_HLHz>Hj2C!}xAC zzne6=i0@{37WsYSH*?eHA54>x{A%D&_KOuhewR1!M7`|t(*)1G6S2jPv=gYYvU!r{|C;f9nz6ARt zX4jJQLVlblm(tHleqbLZ>&2D)z`jf7XU*_EdyU`fo)_}rJb9$r$9xF(EBSCp4P;6}L-9@lSiz1I^Mua)nDRr3%0 z-5JNL!M_-f=bSU2mYUVH901pH5agj=ReyipuksA|=lv@5#Q8#wNSCS;a_8^Uzl~3M z&NuZa<2l(}SM}SPZ($tUzjt~t8av?R`E^eJ?(8_9NIgo{bH+nnrwY&jO$|-Q#`*lb+dVk&E5A%{Y5RdTy zPTnERL$X}>`t50mx3AwgPJI`?qx|4r>Nk#4^_)ZuC*wUCT0c7dxi7{z7V9oJj=cl* z+shFyCHLV|zCP$2SKp0#jDNSunEVOwdC1<&Fs`lPoa}sXo;u{i zp&!=Lj_);XyT{=ej`^btMVq#15P~)lJx?4{I32{$0N@C<^6oOC{7LEKY)|R?+-+{PV)=?IdJOy z{yO?K!@L3S7tr$*fG6iE04I<244?B}f#f-G>a1rd%jSf9+xuUZgjyd7}zSf8lh`lK}dbKunZU4oMDF~7H$cwcW+9yOFR z;4EJ}kNyoPf0dKeP~QS4kLw22ZV~eV-VV6h0Z;6JlgIUeYB!pco4g%xwFCZY#VtJY zBmRapxYkeLTYD1PEAZ);-z_x#)hYRi+EGKgfU7^?NjMHq!U3+~fS-f|oPPQJL%(x1 zr{v2T4mE@WT*CqG^MSbf1O6rQt)0z@Tm6l5N%i~=YPtG}{3Lwv86MB?=ku~RCF4(8 z@uxWJJ)Z0TGYy9t$}{-n@p}vr-phEl+Szk|e*Y%E2P^BKLcGCG;sHOj=l2bb$7o9K z=i>of;{n{qBl7t@#QP)8UyAq@^b_9);PlJ${59V7X~{I45O3gW2Rw;4aLqs9PxbL~ z__NpG(N7XS_zbV#nb!LC?moU3;P1A}D|d1JIG!KA)%135 z_X_4X7gb|^()6Q{T2Di2zgy;n_lWSE)Xy+};XV?cdrCb@&POW`^U+J}w?!Us>YR_J z*ecw9_!zBI0qcK&JV?W2TmT(-M-87yMYfp;R7d+=WBn@ z^ZS7hJmCW;kLPRu*z*U04?N)mC$AgeoV>ESLDqS`Y|wlvfG2$5 z-h_560=15fzC$t!ys+qLf zWO`hmd-^#zznk%l>w3C2-ah@>ioC>d9q4c!5dCo-(AyNZ4oE!Lo9lqyWw>^EZ`qe%iz_q^#+>d|Bk9e{l9XRddI^Ct=m`py!<;!4ooo?dK z;oe{L!+Yzj-)ZAk&Qs7Y*ELyxdR(q>;c(q8^(b47u)e7|E)R7);;g5*{xLf z3w`>5>+cBM+i|`m;{NyGya?^NzDma@qj7no_Xk|E?QLPnkkoI1x-lw9wny!wQco(G&d*DF(Uen)vt ztWWkl;M6(ZqU3l>d7TNFc&dvZaOxayQF8u9c|F{#?s>qebG;ZP*NZ7{aY8QeJmA#1 zUW}6CG35;>aTx1;t`lyOcS2hM#c5vvPu^$n zBkucY^b>L4FY~y)&tzfz;rRAG-xIg@*>D{XB7S8D_r^1xu^hESxWHddT+0c@B@TbZ zFTlIM0Dtu_z+d|d@aKLm_D?Ka=3s&N*to&+lk4IbZ;ng(hHxFUf3LaznR=9dT^#Sz zTv=B!u>EVra58<*f$P1SdGJ4)lz(D;<2ts0bAMa%z5ypMuA?ifQ*zAPNm%Cw+}n}Q zdW-AslKKWX?fcCsEmx<8Q!@7Js1ZJG<1eoBvUX-#&IZ2H&I8x_t~xErIV-@)^Y@x1 z^>riIH8K7{{>AiWz_q^aPFwlzP0MZ#FO+ZK8XoW@UBI<{2cEPWz-b@XS(U?S&F>gq zytj<&uaf*27?10z^mnh$$PF3~YA7!OFMucU0Iu->?&A^fDEr>uT$#{uR!Jj_Z0jfBNWg@GGnHr)%d^{XVukns)EZ-CY>q@3wwL zzK-w?FPYw!F`IX+j_LW;`Go05A$2?pY5UqRe~R+s`=NKkPb{D8-%*c}`@6IpcgAGX z(;N>tb?)b)^!>rzp4S}{>Ri81$?r|-Z*fd+@I2tu`Q3>!_T$(e+~;`%)7hUR9?wDG zI``l4yxeqtcOvfleQ)(VluqjG_ff|0Q%iNMH}|}n=~ZHqKW(Xp{ZyXUH9ZS5-VeOAh;{fky5FO3I{RD1V?T-W%NKZFZaU|e ziN|?keowl_^BSgeo|t&NpLPlTn8$lw-*on8i2LtL&vHECoNp|u6UjL~?6;7|ev9T) zeL{ZE+X2`53wTmr0w>RZr+SaKYpmYG>d)C^zlJ>jo$B-6t{uYbV1JV0R)4XdLteZe zmGjF#Gi=^PQ9OAo5~7fX{EiK8hyhpB1NucmOAl^T}%0o0P|TJKzk7^UUvf z2c2cYg1M))u-geu+J|t{V1f? zPmrvi%FdL$hW=OjJy@T{as%9-|HS)L$>V(MyF9-e_`nlBaPm0M`gfk+UtQmxlrP}q zmBT6dg69tcA9%tCPF^`ef5G!}ODE@1PZE#$3YM;eX>uegQ-{2Pi>Lw|A*!U2AA4X)t;|E}WHte&M`?jxlK ze#i6i=Ka#tqvW_vdG*O89UPxAT~V?gW(eF*nxqRjb=JF-tatgI@cZ7G&tUnYhIj#| z9wqmM{`1c;&Wi8%z;x~pBHph~X?Zx+oRa&%F2Bxn-Y5My`VDsc9;NvP+^5syz8}u- zQMBj2pc}oP{%ZZ0_;I-R!|zslE;jt!bT#4=&+`UOzlTN^@BLUe{M*p?LH+^c{(aN( z8tRa5rG8*q{*gN5QR)Y$*V>6`ygLV9qWMqVjtr_ zE4M)I$9mcCJrg?Qk0JLT{J(^~3!J1!Rrg;r(=)Sk*_qwVCfRHP=}l$>BnbI?!3znr zp|f}eQ3#5SZv&HnL8S?zBD~N*C!kTmcqgC@Ou`}{AWBpMG_ex`L>XYc{fXpZnO#?H zq~#r8!6@(Vd#Y;Y)DZsv`FxVI=hx>_Pd!!j)b*6+!Jj2w^rfQLO)Q81fEPUt|BU7E z^i}bq&lbJzL(Abq@S-1sKeQ(tyjr~Ig`(HJaZh+Qyy%PIwZHVU@S-F5XY38nxkkL` z3q-H`(B7~CFZu=eL;J#0o-JOqEqdL{_l5Vti{1tQ*?r-x=ZF`ri(dDPGs4yIqQ4~C z)_zQDuQtxG{HRVue)FRJ<@|Sdzx}@6+aEqFy@})G9`zvdnT~bO%;Zn&_gtO_`(vCb z;bZhp#5hyjOG8V+y);GqCgE28g@4ujz|n5(56rY6|Jrt*&rmz(F}U%z>#<(L1SU!w1p|DLlR@@aLto^#m) zf6wjvueO|VDRK2ksgJiu`_)z++WXTu^ZD{yT^afH-bCp6=kCVeN5bPggh{J?n~3Lk zg%{^{g`>Z|HWA+9>~#8(&y@8OEUgbG!iSMNp6m*@bHTz3yTXyHc%DB_ydQ;`|3b*G?G|%sk*R)Pz=}XVskNp?+Ll(~~9J!+#iZ>$4ygVAm zL|^FieYt*<@IzXj&+{kjuRTM@0{;4&lGVJz40mL1ABEk2Zy7X8!@fs5Xq z=qD4U{O5jbyPfL6>O}aQey`m5f7%(={l>z#&iShx8m@J}`#oMIT!% zKJRF0J2q{VL%nYvGi~L!8H;-~Ba*)8CH$>SVVY`@@{CxA&C$!@}WNFM-m} zrGBofKRf?3N@s45gu^p$0Ht3`d0nrmpJ{SddaXYTPrnwL_pPq0zj}$uk(+wXM(po0 zZ&38}9Ddciw!d@qYthg9S=U!*!c)AxcCshDu;*}Z4?EOH))Ss!cHq=65RP5?&(!Pn z-b{G4{SH?dPP@XqMd3&C8TWqZXQR)2hS^)23AcHB!c9+jVb9^-p6$OQ-I6cTEqUzv zIDB6=KPkVfbZLUWz+Z7JqNtAh)o4nmBJ)iJ>YTt8yaLymOygtMHi`D;> zUmeY}z-P*O4CRD)f^WqB@mTIycY)88^YCx;{<|rDpzy-KaO7J3`1^QmSNuL?|HAoR zbP^qJ>ZkaKYxALvy<884)BhL=xBkO%IJI96xBf%IJHpX#RmtAQeCRoQ z9pUhqa$h|4nS11a-^qcSU*UychZlZ@qu**oy>W9P_G@ywgd^WcwAD^>tEK&paQtOD zURwz7C0)53^&{U&v^7|W?_szQ?m;e>N8#|DMA?V=@6HbQ($k;gzWUFBABWR-LpXB8 z2l$GYuP1rog}iX&#;c2A=6Noi?Z~s=5}bXM)?Z#*3}+&j%cF33_EAFFM`?0HoxAmN z!r|FR3GLT*+jpCL(kXApL@zaYIKFQQ7d_(eQ`#?hwfO3U;ulQIpZ43ua=a8?gIq5E z!s!W&v_J3VrXTwS$Y=Zphj)ad&%NAcZ(}LE)!P$pdcwUP@)`GjxW^lP?%B5WkCo-{ zkLE9~e}I!uBjJBzIGo;}aO6188|(FQ_$t5W=Mrvu%~B6}ERTeL>_7N^Mn4_l=(oC> zXQ7_-mczjg?=O8Pg5uwHSN55GKOWrue2oWpoVR@OVhGni=7Hxq{Q9|{ z=OB(S{4YL2=ZyLjbnC+%gNbmK?B7vMgbPJ)-@~d^P#ls-Ialk+m2cu`wl7q#{EZrra&+|1(s2jTFn=Rz4z$NL`QxPbLr_)Pm6KjZJzN-Z>$ zp6YPTc;bsu@`!&~><1AJPkb>b=X#zfz5Ko{?)oQ#_{yG_eQW&AzO|q5a^j17ar=s! zA%7#`#q$V9Z#-0-cCRnK&>y7uo5G9uio(%jA6#s2YT=i$vsIqr^NuzYw_bU_Ri7n~ z9P1q959f@21-*Pvvhcj#T=)}?oR5pf{VrSn>SF7lBe7w z|8~nCxT<1&iCw>*z3%<=Q@Yo7q+56_2Z~qk{RlTdk}v!S$L`VEjFsP0&6)6T;;SoX zVma=nIORR9t57a;KUg?C<25MbELybnHN|JcZ<1r&0^9{Tpr)8*LH=^ zc)hT_|IX(h<2~d!*MvXT+3$CHBk@H!lbq#)aQ|Leheyxvm zM>u-KNwf6yc7;cHJK~G-D!KSxN;~LVIg@-*&V*yHRVDiyyTVhQeQq%dD(GL-h+_FW#eYp_XwhxQp)!_L&r*P~Y-B`5ubZTXH7>KV9@3!~XYVVHa zZFP63(97c`;bu?x-+Oz)kz?Fy<+Qgue9`L(kLlQ5zF*@q?(18wPQGc08O2kFn>V712C^aPo5` z{0l$KJUpEG3&N3O9Tb1#nqqaC9-Q=qo1Sp52Tr<1!hQUB)=SZ69Td;w=4AL)pAO+> zPq??ox+rq&1Lk`(?kR2qdbuAj-1LNR>nVN0V>_vHV0xlFU+D1|pV;z2{nlug{lVsE zI2r!U`w?#Tgn!bf+u_wVUSTK87k-3emvve5v!b)bzu=xnxakSM06flfR><2u5yHRC z5%5ziq>M3398-Qm& z0Kap7@-Ck1^5d`-`vf2Q%Zh)lb<|H9egf9YH}#bBlm8rXSmj$RH^h-IhPk2%8gxmWN{;-$mJ$=$H6sfQu`!|X!;_n|9jz8AX zvB!9S@fWwsgW-1WUARAA&-foX*46F2{+ia$O%JXz+|no9r;m97eJx~@S;Bh-_X8ec+pqEx2MA^;YHsJ-<=MxhZlXn_}ky5 z0;E6ICwWo#ivGEN&)*f+BjMR+H%XkK6L5@gBA+Seu|A4k>JPB*4oS{qZM@Lw2}h1~ zLbJO%6BfN);qa^%LfL2ckKS%K*%e;c6^Efmxzx$ z8@>}->70`2?R#SU1I9DCx?N-UI@WQTetIUTSdK* z@Ip^Ga>Q$nrSia<@FWe@T@yQ$EyqBdHkO3wxixi_#2LeZ9U=0wff2Kn)?6fWxK-RS%-o$ zzPOR!v)w_mE4;8P968pXEWNeG@Ot#JUE%PI3!sb({)FGN-Fnm;2`}slM~?U(W_NWl z4AIMWg~PKR1!X+&DSpp(yUDKb!me=S{JPXh^s?Q-Vt{8|3Oe3c3}55-Y`02wg%@^( zBS-uW`~I!$4*Px?yKrhhg~Mk$Ztf1}@_V-1hkj2-EQPNi85aJ zf4tp(vMao>D;&92eJSSe%2IfY*(JA0Z{#y2KE@AwyN#$f5?fOpZa3K#Uf30m9P50R-r=6`c5hcWJnMW=*7rWj?>T>~WLJ1$S2%L5`rc@l zbvyKOJ_v_r{SG>A?hQ*XadsO~ZzR01D;&92H`(p&4d0GlwksUIljwMDZ+M)y+fR0d z7j}gs$NHb;!^YllmA5M#o^?RzxVA4`%kMcK!ama*2`}slM~=A0X1BR7yaK(PUg7Ya zM8~W9!p+`pJJ}Up*cFaktDo$y?F)b5?FxtQBsw1M3xDtJ4w7BrgofAtI-f1O%8BU~W9x+U_&OJ@8t-Z&#X z7JGUAM!1bHg!_Hx$kPuQ2`}!c6^?!@?2rAF+Wzny?B)KfaQIH5N1OXC9e#ZJQvL4t ztusD-!AuB`y&{fBpZ?VeJ7<>9o%wqa7;iFPaep_i#}e1^S7ncQj=u-hIPA?(eRbX; zdi$mHW;H%(#C6zvMQ<0L`@i>hqzEpJBh~uSu+SB3H;wLUU%i^Bj)13}C z8GlaX`_tido*(G`0MA#7^TB;=DQ@~bLHiiv?`Php=j~mp4AtMg^_lQK@DxX#aTD+L zm!2^b?gY={W8uh+L_ZCF=?U2C$=%2|HC`fpo+o|ZrF#mnb2=zqg6MXAosIT{e;z!V zQ@Pp3zw}d@=ShA}H)g|Ey}o!$k0^1{xAeQS7LWI|=={sDOLShnU-2d{dM+y#; z{B$)Nz8yZdFXByK^qA%zw){EV(vj^7w{sk#@3Dy)H)ngJfUy1>U}Rvm;tOm&1$va=6bg#&hOZwD4P> zi_az6^?t>hU(v#^!wbI-FZ>EOzoLcTZt^R7llLn==GzXx4ln#VyznbL=JO7}Rq`vk z=KYE{zoNzSI=t}f@WQWf^DA0BZ+kxGv*@3Bzv9iWXyMo4MY$DDyEPL1YqJBVawy*X ziWYwR$*<@~ykGI=SG4f!aPM~{-2BDsIrLpk{zMCZRoriRTJ$9T()fXKX3SsR&p|t} zRS)C7$dP{c@j3kWW>;6=n~Cjt{I~0S^EoxcyC3(B^Y}h)94Fu5ZQj0~=IvJ|!hYE! zZXEmV?iOXVe5`NF^Q$OmB zgug)hg|_sBBgZjWSA4)QUb;}?z`@#C-Z^3_E8-cRiK-bXps6N_xaAc0doE3q~+78p5l@+{66K_}@xbrrovmC zJUA^q@#0M{#b4?OM~-=1(_5PgeKqy_>`9yZ}NMRyyW=Z-&1+q%dhDEW#R{%ljPOE;dkPInEj^CwRm~)CLfcp ze2TyO`z`PH@~cTcr(gXfe)soW&c58`PcO;m^ml84-#K?<=^56-8BQMD`mMtKxZdNI z-n1Umkv#f-f7!*}UZwsT^<_ix*j#-CFU!B)bU1i;JHOfY1)nMN_clHlPM7zL z3y=9cUF0+8jjsD1@-ynKZ|GiW(z`XTNP5Ek^AooOIo1X6$2q0G*As63gco|kkvrN{ z91)cx-@boY--$!#Z@2G^CqAwHp&v=@`^z+5$n8JtUH*FjZ{v{^ugUm^|G z;MRXRzHNtpfm{D2;k1MJd-aCyX%lU?YoR+Y&#N^{Pjz+VIbUbvpUdO;XY;OF9RFM% z$3Mieu<=jkXVUm5^B1M@Pv(y(o)FKI`D=6^tmki-j^m@t&$01QF1N(j`FrG2x#eEj zzk$#9k%@ohU+R0C`zAea^j`c39e=9R( z{S$8WLHO=hlFnFeh&y5RuaWecI@f2vV@3Tr;if0t>*aHQobM~X+mc70^L6O4Zg#`M zwm)zzbH1+76OJ6~W;`EpD=sA+`T2yyvu*}u{71RreA?y6rE)`Dy&~Vm7x^wd%Xi^L zz6-|=>uY9rWj6ebvkPwdF1*Nh;m8r^-SnEX;RdfKJm%kQk$>EuiyZqeO>b5A$9g^C zrYF3}cj1C)+F9~HFYH}O1;chP{ z9G?A=Q1(ZfTy0nQXD=rlp8b$e)(=f?Wmov3mlF=pen%+x%p%8n;)2?S{C+b&68_&_ zU-HN?J~qAHu5f|ZOE~L{UN7&5+**IM`nz$}%jKKDj`Xm@xYg_qMZMjG6Ti^gWnB_E z_BWc|#;)*8ua|Jn-Fdyde-hl*EqA6zde~{z=c3(}xp1SmoA8lvZ?_{HIrcMJdYX!7 z;`I_f67Kc#{zvc!Opo-i)9NO>J&jwv-Gq;Xd%K+XLymommY%h_@CC1zaP}>Fy}Zv6 z`~lM=J?s!~G3NVRIQx26euOh_V%^lnk$K;maO5~2XnM8z@F=e*-1LNdJ>;!E3V*=# z=y&XJo-pS7e0Zj_%Q~ys%imwg@jK&alV6<=zvAV^dwJwyd+<&C>v#0IFW2l1=fnG* zJ#f<({($M%@5poRj~Oz~19C6b)_j?8zRM%w@jcmBTJ<=}t@jqfzv3^CKfCc<;Yj!c z`qS^ovk#MWtq*0_(hKM6rG5wJ93OPNwiu48e>QRHa%J_lA9>Etfsboi-y_}W-ZbtB zfX}qQs`GHF^X)30f2%fjhut@*zmd+v-7QK#1j@d;&5M@8ihiHS{f;9`;S%H3;nUyd zHA~^UJ%7Ve_(9L#x)fTTziTP{oaaw2g;#ohW;wj}2>#;!%gu|Hcf`So=g`)B%i%`! zQa_~AjeMruGf7U4n|s3FI5}{ew-Nq0*Iyio_x(fU?E5MFE$HWYUx&Zro8a&LCiuYN z9oZpWt!_-`dT&p7F^?*4lmN_@FJbUNmqZk$I8j6 z=HBo|@zs@ktv;~sW&N1m-m)Jf-1;$z9@Y94dZ$(t9|`@#`vUVqt@b`kKkH1N626ts z!mS@7e7he~XKV|1aRd$GGDuh!1nC7So861TQF!*f%rmEVJuKH+l{;4yv`^IpjH_iJtIRpt1$67S0a z|izN_rt{NNGf6F%6EgLA&OQ%!`YDk3QNV8nPWCt&s6 zp0v23n=_LszDo=o%6?BGh;Cjq87_)`Eubjxm-4!KWHMY@*q@AXJT@l7<=`nk1LJAr zN5cPUUGrV3e1nre;N^MRsPE?$f5Plxh4jWazN4Dr^?G~4&7SbWo^bS;f3!FwP0b(r z^a;202`}skH+#Yhd&1Gr@r1bt^EEzw?PO1QVNbZ(6JFR8jy~s4--?}F|N2u_j)>>< za?0s(N|oxhaO9YW#2)use!%?0>38Aqnf6y|_T0W*`-FZ!r0{upU%jpWDs#X7P1-e9 z#wouRmrUjNg!J?LJNLDG1^?;$N;}2xv{U~Le%z$3{jzbH@Zubf+$I2 z_nr0!3orCSl%qUSvuTGGenonDo?19O?GBW7=L~*N`Ad5PpDFFmLH~O<^0YhP`F_^% z+GJQkF7LDJN1pZvyuYFQTJ=0Wzn>`F=l9#xewbI-OS#wf3VQ=eJn5@NqKue!yp%zay+y_&9xhFW@ufyTQ5(>l8&iP2m<#Gg0oj zC0*Qe`#eiu zn_uBR|A{k>KJ)cgdpq@HM|fdJxY-fz?J)0e?@@U19))9zAvxo@cT1^TOS zYA^Ate^D^r=$FWkzh?D%$+dTHY<;rE%}*gvIS;_v>p1{nI|yhls? z9evGvi{8E-apt$*;L{bh*KLY)IlM@ha7&l$6zLKk=WBG|vE91~r~D9(Kjx+X&in1g z{Y=bDe+)c-e}yAQ+%@|?Z|wM8IP#rDId@UCe~mO>E4+N~v+2FhmhGS9<9pXWDBu1$ zJl4xpE`?kB*PAWdvu?5@ys+c&!j5oj&(;)Ije3~NZ9mx&Uf6NCx5NB%EGOEpW$A}g ze@?iyXG6u!_x1-Ve}otLBi!;qc;VOK-Y@gj);`sCS-tk{)93Vl4(;CVCvyIBLB+56 z_y_2>ti=98j^F9m=RQxl$ls$7zt_h^!>>DB?Gx!fCVGa)8wnSEn8*7G7k#wHWy9=< z{)orx2^YQAeY|GaYG#6N%DiZmzNqIUj*yilrZAVe^by=sLJH{I;)-6d_H`pea)Lw4o_{&hc61RPKeih2Iu)7`x=#x+}>5X zw^wo_;qF|f(!G7oe-Zh#ZUAomI>}Ez*O#+}*uD#|n|z#~!S1)2ze=ejozXw%bL{)F zx)^@lQYLbNY7hJ;DzuT5ldN(+>WZw)dWRfOe31 z!Jr)X`yGmSSZXJE-?Wp&OK7*Z$9H$gPafaVe)2oxxsUT)IewaOc*b*3#%U(Eq4T<4 zPB=XCdr-#LCRdvb|LNqwar6@MY5kt@ zGkm6upU?Hb_ao2v8JvA-m+*V?$M|iXctqLWApXvNv&+4l_(D#3%i$ge)t!;gago<+weSk`^SDm!JbWk794C2wr566s z%c7&K?HQ}PG z9v>uJ^hS?Y2^W38$MrqH;xW-v9&aREbm=CZH~DQRT=bD1?ukM_& z^1{7_ujBVzZ^CRkKQkMy`&)e{^Z6Lz$niaSzmw;C0-q`IeE-4y&i)5lcJ5;;>we6pKMc^~#KBbG@@9b+Zd%_EQ!jU7c?@u^+_AkI^N}Q&bx!>8ZVD^L;_Jkux z9N)J(dE)oNXL_`^%kuNoa98-K@aoQ8majg3(HQ+y@3^1vOYc*@+UX6(wK1+P_`e{R z$0fqiV;=zJmGjJJ|F*Lu-rHgQpWnyLx$sEjl6~S8!Do83H)rW=4-^+k-^Xe=7apVE zt2-mldN=I|@pG@l&T(t))lNh{Q_dfo+{%1-nwJv}&-r6$UcVme`#hy}k(>{mcH}eV z+_BZm-h6mZQ|)MOr-Z|E?iku1&Rcr@ckg-fix= z!V7!C&7SbWo^bSiKmDy{FOEOJV}6%$?!aSy&zAOtqtAXW>-Vc2{IItt-0TT2(kDFT z-wu1i(I@V>^;_3=g)d<*mlNS;Pk3R^;Un{p6yL`b?@jVWJ_yGy;{hazzwof%5F~^CP_QnhZJrN%BXQ8wwoctu-LlLiDIQr~Uvix3I2w(K+ z6K?H;@Uq=XeuVq-!~P}oef)^!-y?n0Zk5+Y(rfO}6OJ5l%&nfSE`*1gUaGgk?YV>( z{)8jf>c-#4y@k*;J*4F?;q03#^n@cvJPLd6HN~euFPCTG=1;iSLq6kIJ3qv&K;Oqt z{~d2{ko1N->+KHD_IkoiPq^31@+0A| zc@pa#Xls5*^5_%y&+M)34%d5o!p)v=Z?7X9IpY4A-f(xg+3N{6J>i9(aO7H5(%aY_ z-tF~-o1XAOPdIX|kmBOkmcmE8o^aC>Ug!x&j<_H(zm~$t>j^i#-cqQ*^LNtWCml}w z5cFGN+4P9_G4}^fFX1EMWjdmqkIQkM>819uAMK6ScIXL5j(vpmkJ*R#U8V;|yBg!( zv+uC*CmcB+|KbO{zd_Q|e!N0YIC8DV-Z*cheR@wbJ!X;cw>RdO@Ip^Ga;NC#-q;&{2R!XxCB8*0H>G{zS|G>% zKz?U`;B96PPWMiVfBbvYUS>Ozi}Qs0!slPFaZ}#!EF8VQ_6styIJKhq4dScA@t(z2 zBgSnQH_r&uuXE2W9Ql#()8;phOOUtc6aHU@r{@!n{&@9_a4~lBJVHC!5nk949`p5# zB40bg(LdUY={%))5sw#NP4AEU5_PX)theIvli!nYOYd-hcrJJvNBR31i++*h&A;S* zzleJqvD@mNnd;q{q3`_&H$S~IOFzP`|0CS>f6R{g5nlM0e8vm^!tvK?oE7~y&kCRM z{)NZ)a#rbIxY?6@;m6^HAK}<-g|nld+Sy_DW|yDB&5!URKZVEs>DlFT3OE0fFZ?^a z@Gl&HtwHiXJUcYKf8p_c?(i?%{7Am=xXdkTj5}OZwJH2y*=Ua zy&Wv=36JmXVEH`4<9j<;`Vo%Zqs@a>|Js9t;aZy~I%w^Ab!X&T)xp^R-8dL#Ur)VD z?SXLkPNJ=FZj`H?8_x1_!r?oKj#thN7xQ~+KRWfuXWDO`YyMl+xt8u@qTgfocnY=i z;k<~8Ug`0A!bN|=E#T=+Ya=|CA5ygo_^bcsJpqmwCLOaM2(4_#ok;&+~YdaM4$IJUlq1 z|H0u8JYG+@=sP{$NVw?GVDyK+JJK9hr!oN)L| zTa6^wydeCfmlF=(Nwn2XetQ>$=bBvdD;&O)Xse&()-DJy_Hx4EJBhXi7sU5FydeA< za(Vx*aQIH5t?B}sZys-45Z+*N%s#6e2#3$K6)uc&wF|?$yqs|OPNGMf7g{;=^Xhl& zcYj{~U7A<_*hC2L{K0RWS8uoDy~Ne(WcX+4Rad8bimS9Ac0+k?{u#Y0zlFnR+G?bD z6`I$c=u;k2J_?6tejCa;^(E1*??gB9okZE6{u4j0{_!C>!H;C&Gxc#a&caUiGnfkS z#Ls|^Yqd}p-LexR&w45NSo7VN`rqr3XWko}dz6~)ckWR-$hvjhj;nGJe`nub+slbB zH*&4{gUO6IA(vS zf8Wulh4(|-weVSJw-&-1MfD1_ZMK2eg+n;t{^XBwB)@H&}g;%#k{%%o=qf@2x>>D%TTJ+L95&QVC zLwx19FA$FM7UeisP6^~(`HQ`taMKfB=m|%TbxhKEdUZDZK6=(pYCIZg0N;g8K86KmKU-&(h-%)*6@q3ONeOh>tt{rlxo4dl-qMeFzHfrpO z^JqE$#M|?U7Iwt@^l)DeIfnlHn|U9xy~yhoU)DOqnGWaP)Q7{Tc3~u*zpTgaUY_&d zSp4#ES9rX)BYxG}5ntHZA>XgfS^4$#@x`h~zCN;E`D41r{At?1#rmYLukcUN`eKeV zvbBDh;*R8fjL_?qF6fP-_t)dT={p*VcPO6y)bA91vZ&SP?qs+JUX=Pse8kVdi&B4Y zUyu5nW8!_V?|M>g>sI}2Y~OE(KlWWyU+)&p_uFya1O5q`QD@&Z^^W%YFm`f%6>jxT zxUYA}EztOdx=Y(pIbP5 zCsFoA+VeMcf12}~apM2Pebn(eI+90@{VR;;ICpUHVdNWJrF2F8+?;^?JfhPk5mx9692Qm|k->{EOEUZhFECJ>kf)kLG^l^ZV*1dEte; zaOBwUx#t!q-%s+w3whzlu@9&2bmqt7H3V#B4if4MdJs18Le9j;7mY<@} z13w<$-|6mLc%hdQZ*rnujyM&(r_-W0AfL;Hc#{`>owJL4#^31iLBvms9(@3OB)sq| zo_-*>?+2c)bl(^H>HEz3xA_zG`Xli_{i(3kUpXD-!$(cevS06QKI(}Udg2Sc`h55Y zuP5I8i57a|3%$mC_<~QTc+(Rt^u!l>?fFo<)xW=_C%n)T@AcSML^(Jux)=Qua4Kiw z&9A7}Ki!`X7nz^RGKBb(Xb_k3v0M68I6asTKj70N-sD8RT)y{=IF+lWPwAF_@$vnX z{#h@l2X{Kx&yRu98wuxctDhUv`r+hacq4uU5 zcUdgJtiQ(e@314>+ZkW67=Fp?HIkmFf9{cZ)64avoz_X8xftGR>5m!Ber)qATIh@S zetS1X{@(6l_*3+A+~h&jKP~!UdmmWS{G@o~Mxsw&VLcO0Z=nr^&kZ{qq$E$>kzS84iDf$)tBahb;F8Tq7`~LJNg!{M$^rt_kydC~<>`(i+ z;Pjt&?(d_%<#Rx%``Y)8pIq<6Gea~I{V(tnalVNC==|%n=)%zw$KFWzVeo9H9nS%s z7X9`Iz(>NH4)@RZB;o%2Tu#XtevIuo6phfIkC51n+(rK?zmak_dW8N5~soBRL1|e zlLNQ>67J6fa!(g>oSQejrp6^+Pq^s`|G__1dQv`fjvl%7waM^$@t4^pQ*q9?Vp?-aGqndqI0I;IiG|hN1O(phkctx zJ_v_r-zJoC5$}a@l)bOKKU+9F^I%Zsxy;^hs>~nZQLXJ#?$+s$>9up^8 zD5tbzl+%T6T=|i3l~aq0ALT9Hh@Cr2=ihVO2FmGP^z(QzY@aJ>XwUT4cuP2Plut$k z>np0yUQf8StHRqCQ(oZI&O5v~ry?BvRy*1w&chYno^Z1#yhw*|H~6=bBk}b zF;&Jl6VCIDguf4a$74QF?umm&xd-v({=<^nS?)hJ8^TQwQ11EO_;Xcl*|m91`Mc#I zDlsS0yospIn~47Q3~|V&tUe4i&%ht&ZphDjM30fqJT7V{T=btk-c7jZ=RMv}xae0M z-dm4;h_8C!k7fTcu|u;_MSK|aAf%%{ZTB7CBl-~JF0=a%L+?l8@AovO!y^oj`ong@ zyVK#LzpeU}`giyA^Su;l+?LLZ-!ss;O{c#$j{2J?r^63gx(=MQbTs0)eZ4soo&uig zb4NIQrpzN){au|2Kjq}|yz@x7#Y4{JQ1Zy-IHv2pnecqC*PV&?Jqq{t=W;$1Ip!Ix zo(^Zq^A5r}|3G|GDD%`Nx1n?GyocN#3Ag$uyhxXDYX?G{zvkS|ulsZfw|gjs7wHm? z9P<(8Z$TN4 z5hv92db`4xym{5xo{!(c^*wUhsZ`_Ny2Egd^wotG~zV zHRfaa)V}nhdgc5gctsVBggq8%6(hoYO5(L+9xf%Ivn}UBMb4o zd+K*^fB6{u`8(B*awFkIx`ZRgeS-IU`9YEwUdRhaj`Ph6Z{N1hd1LrYxu5(z_dDZr z-YfT!m+v9Uaqr+oUcR2>g%|R|k>ft{Z}akvbicUpBL9RVH(p%~N4$JH$qO&!g(Jtk zf-Ns!rSu5*{S(H;>>wBkzv(3X3OKbR!qM-qXn(Hq%YVmTBHYJ~U|jWFDc$(QZ|uMF z9e?4IgRR?e-xT*t5lOJEKAC;bn-dm?ko%0`iGz0|>CW*yZ&m-)@j1TL=3NuvX2atL zfOFEc)5O2K)#G71{@uF`|Hk-tG0uYF_t9T`oYKMhvJWDE98T?laMC>z{sH>C$74K1 z&YK}ezYv6e;b%-Q{Vp7yaS)Vq&Husgsa$h^27IP|9P~fPjmp9xAQR!GAoT&$tIZQ{vK{>+M!4?!E9rPdIX{ z`#;jjkHkOJ_)4XX?^gVs_&|^Ka^efQM*N+90&OoR{)x^W_h4AL7QT3x_B)kp;pnk{ z;Dugae4*b@`oar+;pnj*^{Y;wbtw2uiKF$K?)O$m>pH@Vd>4*fzp4EIDnGuSy;r!e zXYWuwyKz2*)8C|?`SY3n{&02}!ZWUIcT>IV#dXi>`pDlcYW-+Y>qm>)I;5zrLk{A2 zk+^cj`kHX-mn53&A#vr3^|dP2&ynzAT}!yFuZ78QE%m3Sczh32xy$Qo!r_?@fpYH+ zD??e&BsNqbP}2}jP~xAU)Fub=eRcIXL5j`m^y z#Y#v1eplP=gO6*+co8}F4Slzl4=Mhaa4(@ihLfwNFII0dpr;A$Z67>@*&4x zAP!jZ-XxD4>(QpSS_=z*;`9Ql zto)u*d+<2%)%3L4$?MSTY7gQ)G?WIlkB!J@%6c@vtglXoCz;9 zuh&g_!o42y)OX^x74x>j(f8~B^OxlJ%{V2V(;lrU9vu59^1P;SRaZxz_3?85LyBW2yeN+v$Hx5+vpe=bB>CYE`9YNH*LIn|Q%&7hkKZdJKkn@c zdmpan$n8xx#itNnJcn@P*tc|&e9ZFwxbDulvuFo}BR3xI3Y%VjkmQ9I^1_iLjuZPb zvVGz=!Dl+I&4vH*_QG6z|H2DGF5K5Q?w_}M+KA&U#&Vf2u zYjqc6|EITD_J4$1|0hxIb13UqvMao>+mCXbXD#;^C3)e6{2GeoFn0p?L1~VtkzAe5`NO!rvj6$A?wq8GnHLdD1VLJxa6M_bSEP zP&@v%w`;tg*Z+hgN4qrnZrRQ4qS_xciL+z#7`fgH=RJTIc7&tf8l*T9YJV=qUhby~ zH+#a*05^N;X9zcY!p}7vF5-3$OZXwf;i{@5dF&EzfOXn&b0HkD-{GVu-0TT2(kC3b zR%5rdKjY@^@V`vYS|`J!-tHZGQI2!Tv0YdSFEzcCufk1F=aPTH@Rj!~7tbjixmL9l^L1k>{JZI;d=+kb!V5j&$h8LXo|f@&In4ZN zE*C1V!c9+j@g9XE$2sZqkl)JJcs~l~q|1EWK0jU9(fMig$2uSVC~wD|n=a&qBggq@ z#?|BI-thhC<@g-Jt=}(v?T@HmsoyUgx$$ssxUTS%&OZyk#@Xo%qTJEuKCAzyhLKix z#(VEMS8U}_=ZcH^E!^@;c#&@5R=x% z`u&z4t#D?lA7_^75^nZtXO`&_PP&dZ&rHu5X?5qB;VP@wXO-#IIb18}I=5S-*PYuf zpF8Rw?VT0vH_tX&U3s>B$2m`H`Ka@;MLxRov4uV1mXFN?JJNL^rR%_sbfxpJk}vEu zqW;m|ftaq^IpHR~|7!Z2*v@z3`PcQ{IpH0Yi`>o&hwmiX>Yo$SzjjXepp_q)xYd8NDBU;C@}vkLyj? zI?g9W$&dR(Joj)%cQU+Db~zXE0cczENYF|$qPKU_x_mdTr{61j?w{$oQ$P9s5ZA3a zAN45VoR4|}w5|Jjq21}w6}|mkQI2^8`v3QezFzp2o$ickK~Oq0-bHUP6YhqppYu6r zm<^ME&Uva?lVkt5*%3Wgc(%iSY@Y9!=y!nU?`J*XqCf2MM#4o`J>E{Z=!-qxO}Oaq zI-IzO?-x&8MEZSWjhp_F-*frYc*@G5a9SF|Fv{1golXVPDjK?8w)8;Ia2C>X&e>Px3D993--Q| zkLOl+`#R4gzD!5-!#dm(y}zKizw*F3T#SpJ{0TRI!hL=)E<^ulbJ3pTR4>x%`o%b3 ztntpZh5dNX-AH(8e|KCL6>j@vj>q->R!DJdgnPf>JQ;S1=M-N&r{wTIUXgvDj(SRm z@FE?;ZU2DqA|1l*`Gxy*bdbmX+V1kb^^<+!g?-^>N4U2`+#q`%;l=ZaFP=wol#lUn zclq81$)E7TpK$Xh-23YYxA#_CO7AVw>iQ-7ZWE8ED2HJ=m5b%lzVKKsmJ9pD^@;Ci zxqKekEuKem_B<=g<@3~&KjFpm2#@cf^w$w?&$GH5pJ!t^{GIZtIuY%RH}-^0|Ng7g zUlm?_H-sZMuI&vAx4C*4Qd}J2g}iX&#`Uc*Us=9{ z$9&wk!+x|oUfCC(=@j?wP8xj+1=x8F$ig%|dPV{s(BurEB$$L+8$9J@z{ z`|W+7Qvdga_-b15Z`6*px@Vc*y85Rxf1&q~*DHiuehByeJHnA`HDVl?b@gYz1-(2D z6mELL3q9e;jn&V67V_ykG7|q|##hQEtuv^9%kSfj9e5S_PNGLw4%l;?T2Uq{T4up3)`>pCg>c<=?`Z3^^PRYLs`K@_~sDE@t{b1p~zp^PlpXbz9dy4xSb@f1a z-H$!+zJtr&UB;s&{uJ?M@$2u=nf^=8Z%%}%4^FC|FcBUEFM1w)H4!d{hl;;_PweO9 z{i^rYC&M-RJ@*&xZ*TX5Za`1{p?w3{>FfR}c+pGY_1^$q^a=X!f$r<6oZWU~``qZ4 zgy(ako7ZT*i+$yfIb`=!<#YP$!>O?MuUxqpq;*B%uam#6ez9=;jD+9!si5b8qZ~wi z_J5LZ>srsd6niO7J$USA?64=?>`C6+Lq5LmsW4DJruSX3{)gSXu1CD}XPTeXZx6K? zH%xdDH%vJB&N|>v*>l3te$}FX;oJVz9}#Z;g%|#XDl5E+&AW7ur^l;=pPUSJk1Ne4KQk3B@pwJq%7aIHypixDI#2BJcEYdG zxnz%b<9_AM8>T|r@HlYTyjA;-jgK8!>H+m%Fw#C>kB_54M(aKiIP z6gS`T#Mig_u%`Q2^d7hBgK(=4!auMC9?LKHJt0SYeb(cMyB}8cdv33Vo1Sp5_x}}- zAN{}hq zIOm>UNZ4+F6;<5JCZN#2uDB9udi>+ zgnPXID(ML?^n@eFd1=zk{^UYWxcL)a=m|%Td$k_B$K|`muU4Lfe-C(`{}3MYWp+ou zAnJ4fz>~e5cCsV9up`{;2rv2d;WbGa98c7zvpgrjfk$j;7a zP5ZIoHDAGBzJCY2(C=$q8U3N+kvM(sKL|H#oGIMwoPd)Z;g$~Jg&pDOb1%YQcsrHm z2e2bN+JTcD;bup8VMjRnoag?evojKZ54^r7rXS)w0C=G<96k1VpY;0TO+Ve+&VF$7 zFTBtfjvn_h%iZ0e0}o}A0y7b_@v-F$OK=e{|Qk=Lm& znhys|KYe!^asFlV$b9)7Z72Mi`SLs3)%_4W{|)nD#q7iv@$xE_i@x?-^ZTvy;S&4( z1gy$!vUk^fxYVV8^W=Q_z0!IY?ZJ9;AzW}+&$-neXdkrtA0y$uU)7O3a>VI2z14;A zXs;*S%9(H<-?bwgIpSxd$2$F_*As63gctsVBgguDabH6f?JzG?e0PM~eGQt|F+ZB` zDSj6Y&%BR)mo)G5o#am{_nk)MGhNqw&=L1L>+sgz3is_TxIMRU|2^mkN1t{1!cITg z5nk94Zgzwhc7&tfs_!=c>npp%(@9tQPJzezt#wJtaUL%TM~?MO(#?8ip(ot*gco|k zO|QEhU-|;8@AOhszJ$l;-LVcT9691aTmEa_<~z~LQeY^oF6;Y z*zX8OZoIlbyv)nDle}=Bo{n(jn3p4;nU}js{MNi&`^?y$uAUk0z+P^Lh10JY34c5I zaqH!%KBV<+;r<*txa|iJew)ds{Q$zT%lx0cSIzU?Z@0pi2uE(b zb|5^}%lDJK@IqcVaz|@g2iJ3)YMv8*MtpVU_IkK|-+JeS-@slTzjY(edN_EipVoi1 zKD&lot|!8+TnaDBfpFwnjq~h1tvAmLA2z+bZzJ*@{SJO~c%G%}RP90Gr1)z3L9u=| z9u&XZ%?E|~54!XThwmhMw5B+`()0677wC5%FO+$vPia2sJFfc1c}*X;jukw3+LLxa zo$FYe2rpxY)Gg^;hp3(F5Vbe~RXm5m`HY(yE`Jiv`Ha{u#d65~lE^XNiJ$SxWcU`I zFORE*TX_-g^^niFUq2^41^WHfNlWLcwaIWqe059YIiF#EHYUTPzI$t)Q0tPB&-AF; z3iM8`YJLd)tEbFfj&HZVHWi*DJimY9n8Ihu{1EA5p7e!YPB=XCpU^zd$^7Rly<8P} z<}bl>96ZiBy}`+W$M(J!{zd+BzH#0OxudI!ZzpagjaaIgmWIC@FyI(qpRB2Pd*Kz{xQ+F6#8)< z;8G5vDMR$G3)wh1aMbGv4AmO5q^mvtU(I4`7Nc#>%pYHK` z!bM-?@kYW$Z}NCM;i7N%csJpqcY3^^aMAlbK1jIempxvO`$CV2F5Kbrp^*rpNmU7k!Gy2MHH_w#Tc4i@wz1zCHg<;fK^I_4{gQ&%f|M?fFKqxYc*7 z9edGtcJ@Cha-6&-Y#6Tk*G}9Oqu|a?i#2 zI;+>hFR^nbvEFhH7CFwrf)EGA_oq1jYH@uM?XOM+o{w12wi9G+DtuggbxVp5B1*n) zo}4P5w-M*vIVbk7`aORqI45T3Mup!8p3jX6M=qZ$<@{;!dpGjLrv~SI>HX;E{&j!* zJZYgP9J#zcFdph$na}@0`A^TH^R{$_omBo z(@oz4;YGO-Zsn#Qe`h_SC^y2b+$7rHn6`4#R=aNHM(zEN%U^Xk#mg48a&yg0S#H$c z+w%=)cD$#^6Q{)LNtNU_X3BaZ+@4o>@w~#xKkf-G>PbDe-^3Xyo>#a%ZzKNBIzaKf z!tHqz?e}Kw`Pu{BTRE-g9L|R4@Vs|M{%%ow-kDv+^Nv>)clvk3R=MH6diYF<|6%!| z`QM-S?_0P%r|{xAg(JuLt0(`8v)hk+CsEE@y%Kx59UMfylPKpDihK&OUFJMOkx#-c zpX%{YS~mA5Qb6!r?RJJgv#~W_Fy-BXF&+~5kz15+ zDZUwe8Q(eDxmS1}zd62hU+pt|em~;zI}&{!_KsU?p}4)f!Uw&ac#{+La;++U4^E4I z9QoXD5O4BOXBYX5$N0|CAM1tu>$K=`?4)#Ld?dW^EB;wiO1Eec_qCqlO^bfjr$@Z` z74>#T;%y!y-KzjUeHZytRchuG7dV}ROZ@4^T-Y0b=V#TYWLLDXE8g2BuJ%FGGc~m* zNl&!U6Yup#;%z=9rH{DV7kNA4?YTq?JK_sF;tM(Gnflc z^63$8c0>z1;=LW>Zc{Fa$NhBlPrxZZ#hbpU*U#~?h{OGSlcyIVdGTnDL}NT@xXO6* zm*1m)w{++CSl9k|pKkGHN7UOPZWiszY0)>CUpU^o?t!M>h!*K=$9?*zMgJ7}<8hqR z5^wUNg?xA3`Uj^)KWy^!7Am#BNnW&&?u2tWV=X+U zE61^hQ~n9(Z!3;(Bt?2N0v@@REUFJvF9n&RRq)WU{*Z6|n zWq#C?o@k*b-t=;QG~)W}_=??Seh9bx5H0k@d%wNwB7bjtcX*YaBR@aq2GBn(+6T|= zxOnnuB)a(s_G7`R9*IXEeBzPda1pouo$w+aw|Hy!MT>TSko=1NrS~h|{E8NS#hYKz z!moJqD_Zz%FPWWVq94WnrSSncH;esaqM!44KjEUayPf+Pse&YU3$U8&8QoO?KH|drhJ* zO!W6f+k>=DGMotS5ntUIdEy-No;PQ9?3b-8=Ck~6UNjm0TJqXQ3#;}%?SIug+TR#% z1DE^QZyV#u#frsz8U1zU%ZOi^$2Y`-i*ZdOWj@U0YEwJ*vqYYGG273wGF9%AsYgBH z0vG#Wgxfxuw&G_ieZ^fpqwCE=fF zIz8dYF%C1k8izH|%XWpsGY*3?Z}(&Tp6&LNUEzgY;m9!`M}c5I?ppL>@v!w7c-Cp4 z%)h;g-?QB?ZF=m}ebmp>&RMat^%~^zIt=@DkD`~;+lV~lGH~|g-tO(T<9ZA6pZ?tI z2}h3ov2lKGCj1S*r~Wx{f8jG_KkPs9drB|kAoxs)6J&PQv<~9!2#4qXAgI4TXyoMv zGXb9YGAR3I&ECdLIPK+x!*dTEl=-pAkGXW!BTw92aOT1G`rjLo?!z7O!lW=reytyLxJEF8qf0>Xtd1 zZ=@d|^K&k|-TM)a{Agn?+-kVB%1Zy7wcp?|A85^$kHXQ<`!UD0`Eb(P3+mTnPk3QZ zxIK^X;(3IVF68fZb~?hbd$c)k&%u2*=pPe3a1Z4n<;Ni5qE~vnO1S8C9uKkKc}%qL z@kYW$@AP;-;i8)!A0%9K@87ueR0$XTHix&>FSU8!l|{?f>Tu+_w}t25yhi6_kO;IB_2vF_hp=yj&R1G znQ|W0+NIiZIbS8*=BpCzH<#`C+TD0=wCXJf`Zd+{k zl>KV)`S+IXvT$pc6K&PgKDd>=WxFgqwo7|=v`bO0)sAsl#;beFc3HT!%Zc{a_F8`W ze(Ehs=g#<7H>;6+>(jompW3cMtY=!+wFtl`BENajM0y{wU$}W>BIkQNx7Uwxk=NHI z!e3fG#rVM^@#nIC^U`HmR(X*ezY}NG@@qr!RFTi$G2!s++kp~K^>h55^m9LVB)n+9 zLzJUmYj&HuSH{~F4$nO?P~sum_qsP3X8#uda7v$W_)O{d?&0^G{z2sF|AMpMCq9SH zYMLE5>P6%;?XOH(e){+F?UFyVyuHr;Htm~wu7;uaKEQic(S3+Pt=QoAlQCGhl+Mfy^HeUOKjIV{s zkMsLb;^J;dy=f{`PG2GnfspH2KIAzk(dSSM>EJ zAM>}}k8vd`^&{RTyt*aw^c(DZa8mInkk9R9NarPHzVZBq$zL>=%5&@}5zouoz2RK= z2zGM+Nw|G4gg^R;+wG>0|MlgEgzbEF@_yZJB>lJkp7hgxaN>dChj}vd+nW!kykFtw zS9syq;e}s^d%qpw*v;oJ#>4q?+%<@NCsE>dl;;{!e?xdNUaO+qcvW%e*Ogy+oX}nf zl)sViN$}%v>W2xp=MjFE-#;N7{c&$0T;%O^lO5rO9pN!wcGwY)K5-EFoj4pm-#A|Z zpJ_fHG43q}pO2i6fX_6?%NVOaP~>Zfd?!)PAK3R_-*@g&+WKw?hwmiHK7Z;1`~0mu z1AM0J)Bb+uk=dW`2aUO6LN^{(xD*AWh%>3Hpo@K@;P^4C8jj#GvI?5*toPvcbK$Prh;z5^@! z!@r=H*L#H1juMCAZ^4hlRTc8ItKk2y;c$xQCmj7&KiON`AC^Di>|fY}e0D z{pqvA6C__9j(n>f_fKzLb9Q(pc5?ff_Em4*aCUM2ZS&T%b3dS>0dIvEM{Ha>P|g<# zxA~$(Ta6^Aeb+@hA{?Im*U<5*;*S07_Vc#dDNdR2LQgnyjy~h9EjeI9j;$;1$ z`@N-jSkd3PMLXs3wg*C*Aw%J}AlyFXV+IH*P*ST;k;$503J}y?jf! zwGYDYI7R)3Q@bJ@{qgX@;Yx33kn9Neb~?h58#m7nEid0VKlwesloyWNczAwzk(VDN zdEwrEOSq*|c#%%w=#QKA@LS$aqn`ZM3p*X*$c<}+7TY>$4c<^pe3Akek40B z?BxEwaO{qIE8&m4{cf@^yiDgx%zxp(h5YeY{#%ka`@#$R!m&H99S-++`{8g(|KZZU z@R}fw9-Aa!Fxc!3X~NhcI6%i3!j{m$*d#!R2|Ed-fx*@V93U*$H;B-Pu`ys^Vhaph z0Uz?n2xy=QVvPd-_jjslrb;N!{m=90d3E0J)T#Qa>#My^4Q9@;D|nvT<;EG|J;gsJ z4<{bI-E(JnJckwnRyUvF`8Ak3)2_|zv^zmgxO?GD50{U#-X{I2&E+`j4h?Jmw)xxR zU+zt9{jJ7J!p}yeA9tiaMDu2Q8$3MQBAqMA`Bvnw7_nF7d?)hPj@avSz8m@Lbx&i?TinN0tJw|kaeUMkkDM^wTfutA zXEHr_@|XK8KH@wQ^?A@^fARo6m6uMSU)T}vcEsm)*w@DI(HFlFJ87ORA5vOK?D?|j!W%5$q)na_E(!c}oT=T@Qbn-u!F zs=Ds2((}b>otF|09dK>+JA<6CI~(-!^t|~P>3Pr&v!BNFOg~TQ)#t%^0_HKE@s7-| zRV|$N;(j0eIfIWoMeCf6A^RPLt7debi*#QYWbS?CIrnVc@_eQ9+yjUeeuzFQyWCTJ zyYmMTeZGVI<-VB(P1kq7*0OWQAFEv5egLt0nSMw9SVtvZ&WX`Z z4CY7d6JO!?LelpjzB5U=9I?lIfO3gMxeR)&d&02p`6Uk*p2K5-eXe;rSqDY$NU!Gc z?^U_{w&cr%2bIBlZPb2+Ec^|!=6|-`DOtGdpCva&?S9C@^N?Gk_E==$Q;<8lPX$@{ zQpv~ii~2@AU;gfF%#iV`^M2=%$d@1|WZ&dXJWusUJ%r<2)Y9{m-v?tj@#wLSl5=aU z8-{y}{1l?E7b3H62y%bPH!scXc0xGrDJjBfcN9yC@_h^jU5y^Wse|F+mX^+P3LBc&B4A0Yg;r`yZJyHBh zK2ErdUzb2$gBf`i*vgF zgy+d_C)yQX*cFc+`zF1-*H+nczp8Mtytl<8CuD#8%Xyyc)>qa6-H%fWCmucaEz<8C z%&xLGy4^Ug5RcrBIG9^ypU&-eLb$&8kLKaTqnG9b2Meq0JN`U;pUm?iCmbxTvY+uh zrMHUd6{1=amzg}=qTWv4ld9rJ9 zUQc{cABjh=srfyhx6ypy>j<};-XOR293DR|H|BP`AsqK`7T=Y4^p^M4Ev>dM5NZfGMS8`f z*X+jm&3WCkNw}0=@yP9n+@o?~ZnqcLJ;fL46^~x>*MeW)C+BwSLB=mHJpNj)$n7?w z9~AM0UGeBKFY4u2^P|<@VfeD}?KdFVZU>J^Y(^ zdgpb2gxihvgLq{8oPey)9^rY)hh9vt_#(aH(PJIf)2nsZ4gZ&Xi0KuN+>Xe6@;N+D zb~T@jW?y`fUh(K9e<}D^x!CQ-^tOVG-xPTKrp)GcJ1hQCiu8&{kM&+p@4`BJsoRa| z6_4DGh~JZU=60)?UhzeG#iPgkx96|szdz%4V|v9SGY<}O|He0Yp7Nm){hNp{(kmW4 z){Q;AbL;JwgiHA=9+~xHa4^5#cJ9yYc0;(n_#(aH(PRDC(_7nM=MyfKU-8KJJpl*P z8|)IEr}WmN-(>Mcdc~v1y0P2UeE!o3m+Xp1WIs!PD*=Qf*d9vGx z{+GoUcEzLD>_oeB8|{I+)&EO&#Ur;P4z&L8+1ze7+7(~e6^~xCiguSa+Sdt}?21Qj zM;z4TS0=Y>@qQBVgT1|!SnRH)mQvr z7k0&?*K9?*vzzP%giGlakBlE2a4@&YUe5Dmw-fD(FYJm(ui1-s7dF{-giChCBex?C zmNwa2bGucvE55KR9zE7^Liycn*XMS{BeRYJ4rVsnM|qyo+lc;m#20qOqu1Sn*e0 z{%%3HV9XAP?rY*@kby^Hk$G@yH4BXEeq0l;7PDt}lM!X^b;tIPvHmsY1Ma zwVw5Rk}ng!=z68EzTGZG7QPj^vE817Ec_U9YrDM)S$I2gXS=-{S=dMJZnwS2!Zn^B z+wI%Pz3p}n-gmG)yszyD?<@SZo-e;|Bgov}bHPjDd8+pnkDQQuc}}RZ_icr6eeu3t zm%@oh5C2O(KQh0=p5pC9nm-A0ThHOSC+D2pZZCxEi!aKpc=TAG<9A~{?*hW5aw{IW z9dR(d)1JWd^!wC9xW4$J+=@r9*@|{&bx%%iS3Gh%BI|$G=5{;LuK2>Pc=VdRXm??! z{c~j)G`CwtyW$JG;?Zl?PYC%ieS&={w<{jG9dV#_$b-4vMhMpzU)U9o zUbA~b{M}Bl-w-ah=)v)#Y{Po85YdcfM{<#cs-f@yP9ngN3?X&GYoT_CmP6 z_+oxWJbKNl9?IcT-Cj$$)b5E#ZbxJt`o`R@)|Dx-eevBqoOtw_jj1@_F=e0Tc}lN% z-FGZ{$zVqZnqoliZASnN3U6( z?B#E;bh5pla0e)j$_Met3E2nmAGuvS#l!W*ep#W0wt8IenI10J zd&K*CPsG8j)@yH4d5OPEyA|YwgE=iSEv@`+>>EZ-nERU=MK65^yY4nM7_BYJ0sT>r}m(T`8IMs#k+HYBzv&`B?%Rqjr~YPkS`D`7XS>ubHp*ZXggzo(2peD_#!4+!@G`aWWvCwn@2Y5#KM z`{KX0Xa)Z~_Q#07ML2X2N$;QOe`|){5vzKC@z`y)Vm!0jx1Gl${(@1p58@wpG4Ug* z9ubco_aDG;Pr_T;*>my8?TGm~w&FZlHSXuCIJXAh)p`{9$NCdB`##~DC8v5GKTpmJ zdl}!V;y&`F2|FadIvDqn*W-S1?F%pJk&Dtk@u^DLp!CZx2lmqM-dz>Sz4)RWi${-h zVP1~4zB7I|>5KaY#3OS)3}l@r>_@i{zeGb7yplEW#Po5 zcch~O%KF>eowP?v-m@5F)?dE-n#_*HbrSJKe?>fc&3asanORS9Nrhdw&}mI|%EHm!At&VgjHhF6*gCnMcx2i?ko`=qH$QCe z$n+B57hj}9`sn3;bpJgIM|+5zFzv4x)U)+wid8S5?*>?p`JL~0D?d&(ui{-U1 z`A+0;jLY?S5BRI!Py2?Xc0u6@w|lFM8T{lIuz4Z&}ZRAKYIEFV6KO z7kc%mCwxk#m;CVd#b2DAOJF~V$1l7()9*_z>~^D`@NaWH$+_N9t8sf6Sf8*KsCMvb=O^sdpsliZ`14ivL4Ur= zz6kbK*m#YZBAM{;w>gg#c>j*X z-|0M(75nP$5TJkPnW@b}R(?KhNt>Y2ixcz>?%+WqX!*6bhi_{1ag-Gl76e1hx^O;yTW z<$HH!|71gF-O}&MK1uZOEAb51cXh=-YJaA2dH@lk(x{4=BWwLE_D9>4e^e(|Zk zxg)cO9Z#3^i*$+ibcrw0mDwrMC7yKPzjNY;dXMFP(3pQWeeo~zaSUIP-n*xLr@XiL z;`b5nzmNFh_Ysd>_Nktk+pnU1@r8ZyZeM(1U%cBFU)UFq-LC2*-usa1okvNo4hH|u z>_fdgk5~N|>H+qlzT%+j!2?K|Ul5Pp?)eE1->R>2d)4$Rdja-N4Kn*a`92O`anyP6 zj{M@QoFBe+`942HwPW#~zw1}oD@ez=2g5yoy{LannimKKmi`g%u{b?xZ$dxT5AX!+ zi~l?LU`FWkiOX+mD6I{jApN zkS>kOH~uI~mw30&cwPD_U7XYQaw~r9K6yVsgr~pd>783`_i%eLz2e=T_`;rewE+?rcZr;EFukU%x9V#`c@tlhH}PKH#24jFyw_VZYsz}75$%XC?1*xKF0o0Tl*JzzI!QzYiZvf z<)+fUz~^G;JwZNvx9(}fPP*^F)`jvrwyrpj+nrtK;aavn*r~~n9d<^8eE6dE_J+*P z;VahLJ97Ej_4eLezJ7hYFES(;e<=LIhi{SpllPOJ&|o&J$ltxbNKd-Q>+skH`;gm> z`t{)N>wuX4+S22B)55)BgW5)0%Jn6G16h4p{`!*LUqB{5^k3C(Mj1QdT;@i5 zID9(yEgrk?gyI=mi8)WqxU~%hitE>EA)SucSKIec`4VM8?w*mdg76}cLijglK2PnL-y`Am4w$w!yVD^)JPAIoJv&p|m%<&l1EDwiPr zR?27a%QocwG0G=0<&$uSuh4jobe$Ut2IbNDYjsX9=euFN=j*o5aeeQgbDoy|0O$Aa ze5>lU*zY=gx6bo<_|Pul_jG;>&tp5K-^KGwzt@k^OZg>!`FB_PmdjDbf5-LFQa@RI z`rV6l0P)ym9-HUfJ5)RukIcP8Amd3a;!i5?&oiDxPRP8s>n*8VX6a+T8#y84Pyen} zo_74F-Xo41;eGree&35}Z;gzrFJmQr&0ese9Y|rv%ftLKzX9wN#!jsSGViE^Kyl}C>swW zeFyxh*LTR&dm#0h=i~g4J>B)ceFy($Mfzli@YHv1Z)VuunA;QY=@Vas z6OUeZZrI4F7I{p5)>Jo$ryfF1^~>Vii2XZud~w_Ym*l#OLW|-ZJq;zKZvJZLO?R6!|J1%dAUyzb1{l#JfH5c|6QphI|d< zZRQQXkf%@MY7ZyA2qzxB?wtJC3R^Z7^Ht+p$<=6(xp#wlXmM`rsC*4F_im8CjK@R1 zjvbY+E93DZe(8sNjo~z&F7tI|oSlcmPi@H8v9i31Cw#Z2b#mUPF%jNpM)xK0J{JbL z*$e*F78fSU_Yv>qBqHZE{e5b>*Fxc!>sj$0zxX^|oZs~KsmE{{uNUtl-ouH{!{vTn zi*h3UP)@@A8JzDd%Sni*FTN}%F&^=GJe&jda?*|V=5;=l_e$Thcu$}BBAj^i(tN-` z<#87?bUg@#UpdR6zncc zdU?y+ksHM4?a2Gpj$Eq2&Cun)-Hsfo^s@TfYeV+G6>e``{R~jw;19sokc}M{c82T( zuq(d;U~kC&P`GC>hJhL zHrjpq2ZwJ_eXqJ$JYtpBw-4Vv9L8DahK3`pXCEGm^D^StD>5O>%)YmU0z5|{b zucwizuR-c-Kd-hh64I5g&#KY?uRWR zemPuku4dQB{&Kr09+`P#koy8($MZN|=Kd$-gv#TD3bfBX)1}4kD?XiAPSz z`un*&PxVY^#PgYP^)0WXJd^9>XY7}XFXn;86CS@RkIn7$Lcf>&K#zh?{Za9x7{0J0 zp77i|aYb&Yigv^ocEr0K@r51ngy%jAMu6#)I%4PJ9tgJbKjcugT+YM1AqO zKJ9^zH__LOG&+~FL zX1=dh{Hh_+75CM4!ngpxF~^~w<|oACp%i`_eDqgJyTNx3U-+96Pke)U?LW%n?Z$Y; z7x9Ycd+m!a;uY`liqGSvox$$ng8b0r_IuHe_^aVl`o;VEiZ9~L^z(RWr?9(N8@G?< z_ATry?u*aubH5;ZyJyEe-w(}?+czaw?-}=cgZ&CW%I#>sf~QA(ksk4$58{h`&>5fa zcV<5X?J@Uej4ux9cR^CWTD<=*;)~x!Jn6u{&I!Lz{-k=vCPI3|7wHl2=@DO~C*$+< z;GYM(gP94tAh+L$cEsm)+Tzh;U6lOF+o#LLPwBX2ny0x@{ejhbxo2Gw`q%mX*;Xgc z_sz*qxWZM}1o>7W`JbLUa#SZ&Q-JbT9GEq!> z(ZWvp&eSgWcPYNO-$^`r>?b9B{vAAD^3mVH`_%vXV*C#BelY#APpUpn{bc;s5nsOV z=vvuJ`;I7o5`rTX(^Y4eRsM)mRf2kMzNA|_%_u?|{^ZiRzc#a>% z!q2mK-@gk!%Zb!t3+($ajJeoO9G`mCn| zN##O3`rNM+{Qr6>bKcV@{s#2Z`$|9YMLvk9pke2uZXc;~J6^Ae|D^LsjLSkgxW9>l z#r@}N|BHCMm?__4y2Kah5+Cwy;;4LE;q!EH{}XlxOB42B?5FR!iuT19_Qkt>@x||w z@r8Zy*u_uW({lUuRUu!+7xu-wees3;j4$kq$8NI|&-u))vR4vM$|v#u`-v~&5%2yW z#ou_6zBhLVN&Ot-7oVS7&G{mJ=@TFKOL_UJP1-)eq?qci~>ZqTeJQJ?8Vg-kuw^FZuh2dJCR(vQPWYeT?Ig_^zTo@r6C{glGSDu`jl# z`9Ri{#25bm#e2HM=i^KEdHepdrO|SKSrzSwFYJhSJK_sF;!o3W%)W2R3;V(E^7lj1 z?5eP(s<;IAp4@%It$_QYrQD)il+ z_!WDV+My60zou?)Vcd3Q_PGBLIU(y=eBZ6kL@57r6aHOS*94h%i#MY^ySLkk?{)evh(wFiAQFg3+&FU@^lY7!azQy@f zb~WKryVqUi^;BPcSO=okQhtjkrSQI?tH=rS{jaBGdhlL;w9hpw*Q$3`_P@S)nsz>ZC*ld;?8bQK zSKA-u_QZR>iO=5yeaajDOwUDsd0ZR9v!B-Ub7{3bJ+sF?TI7V>ljM3e?PJaK;Qc+s z7w;k7zXS2bdx$4|vmWhD>v?WZyuXL|;yuLsdx$UILp*F=ETb^-@eqpxXh<+^lj(mN$9_P2z|GS6mE$=&0 zf6nWJnc;GuvH09SJo88QC4H$p_EzSP^777l2YUGZcxbL)#r=rM0}Nv^Nb zNxJbn|BL6+zd=$vDIPuMg<83OBd!;SFVZ6(J=QN?n(O!C{E+w;!pC}?bz}5cr+7=Q zUqyZKugmqtqsRL4`*MAiUGkN4hwkq_*%yx<^Ffr`!EDVw;r5W|2Lw4`em{1RZ=JY) z9g*{heqStkW{aTM^4DR zLnuF^_LW>uJTmJJV6(N-|2>%NiAQcnq<{Jop2u=Ve-k+&^A5ktpIeZbcYvoKSsTg1 z*Mm$y5}xzR-j7i~aV>hOT@jCrKYWmN3D=v`d7fNPJTmLqAm@gPb^a>I+=~rQ|IzK# z67-X6z>v+7O9Od=aKZ`%Q z-ulOJv#0#oZ`WH#uMekr$8>K7$a-8$rO;QvXNK&(vd{e)$gBrb4!J)g_iMs_N!oe# z-%jsQc|X_tyWe6zBHnM0k*Rk<&TXz!owJ-? z)hfP@DgNkvv*;~OkJw4MeqD8d^0_bm_phcO7w;7mkKW>}@U6CNpL3kZ2^SaSHwk;| zRasD9^n#p_@jTxH=eTFki|^Z)?EZvOIO*{`)qjg~HQW5h&w3HA=e z@+=;i`V(Y7kJs0=v9i4v@9lj=#^tUzt^Jq>SITYTIj3EebLso~koe-eh<4B~%D?#F zXKAHA#?ROC`?bb`|F4L7eT=`aWxdW=@c$Jtzn7%+OEwn$k_DvRF8z`PnR*+3Fg;%S zN2>?99dR(Lii~tD*ONhJ91q`J8u#C$Sr7H_KH)3i zV}ALWk0gZHvb)_lmqUx8IBQ#TWL)Q^L7#_{HeQ@}BND zhA-lkzQ-#*j~9J^U-8BJiYFc1V{%iTo+_qCe32gUo*wZ!iW-_PT%PsZ;{_o3v!ulSJ9lZAcu%@Th1+@zPAyj?zCYh1aXDaI2Y*1oMvp85Z; zU8V%*?KAz()INhgFD>Mzp}f6*)nnAdjqUZV!r&()`YY&!`RT!2c@BYdTwWhXq&@fZ zZS%SpE1#bckIZ>4kn>qS|Ftxv{cI{9X&yIU`c(~Bs!h1OJML6;3aejyA z__Ml>aLFG)+$fcyStsa5&Lm&M?7*n;^MsO&hZsHth*DA`@R0xfj(Hvsc-RTI6ezk$rS3Z&oRZ<05Knl{n}qjTWe0P6;`yCuuTTC9#sf&IXT_tJ{7o#* zt}Qun*k*eu~fidcu1U-^tS@-qR(%NSAm|m-r%G z;yqpBi*#lBMY_a$x};yEOFZeIz4q^Cdf4tYnU!1dslCp}%jkQ0rC+2s+F>95vl!>4 zd=VeUL&Fxve@KicL%ispaa6pXUh!wcr*b5H(#JXMAACgXN~zuL1ey5(c;*MZKd>-t zoj36NAgP`akDQQs)+@1}#;N+6{e8vf@5?+ZdiZhTy*W4g0#6r`zJKw^3Gw4J^lbf0 z>FWlW{c`Y}*Wvw`hb{a;iFbcc5jn5pze}xV`R~a&9pr@FnVOfYyq>s5>B;@veL(fZ zr5cXC?-=#O?Q>yY+wJqA-+9F1K83o@mCDYZOM=|$#B))~|C_{D*Ti#CRrnn_=X8ts z<$Z6qvXAXQa=yN@k8OY8y<^gBjClQe_@WW}p7WuCWnUYA>}xv=pZ2YFwRaqJ`(M+#&lJ7o z_9w{9>%wzh=$67xklBX~Pk-W@`E&ITkQwiT`8@4U(M#W-jT$n>3i?Q@viub;Fssqf*$Md6ioa-7th5bw<9t>oz3hr-b7BweVTukKko*) z9TC6G&(5D)klPViPxks^PV36(E$4HPxd#(ItrO#K`Py8s8)W<~!?WJ&_G)YFwYi>n zVxW4$`$-{|9k9!G;aiDt%ACW&7 zkIcP5x8p&A3iGnBQR6<>4aV7hi-E zk6w3XqqiIBp1ysZjrPGjd_CMhw@?{1H^g;HmgMSc_aR>4TPY>%f z{GR(dL-xHaUiy*F3&+-F@70UEa60F!$O|8q^J>T4j_}HyZ$w`Bs+@0yb>n@)cjbI1 z^1?ki-;KQRYdPPGyzofDhjoU1y_#)Zzw%y3T5-JG8MSl7@9mD-LqWBBPX?<|d!BI5 z`Z!)zJ4bu4U-)YAsXe%LcFf)`ne$m6fKT65N9~&OmvdENKP*zE?`bTK1IO%|-=Uuv z$D`s2&v~n_<#xK!j`-XT=cmx4-TkjzzZdnz7y9DSqaEJ0Axmc!^~D$Z;?ZND-ubz{ z>0A`=B|g`u{pNRv|L9ZI=S=mKc*6h9^tk6!s}=k%R4#mV_7euu+%kK6NI{~)5;nXvEf@YqB+UvOUNuyAkqKjiPx znsEO}>{I`1_~ai+JbH}RAFci}_ldtZdk)Wc)E9r9)2uH$Y4SDL3lV% zmiqrePS~u%JOTUBKZ9P%FY(Cjh|Krz=Xoku^_6-3FMBw0XX))PVYv`6qf^#giAZbuwUueN6PockrboQf~X zsd)4TGwS!``i<4$dljF5ulN=B{-pSuo~81h`bY2zpZZ0M^Q-MG*o)8Mz5IwT%8z*T znmz5q)AzNwu-bML?m(chx}S&U-$GNsl1E#{n3pWZbtW!`*W=5I~4EX#24Yjqt|T3e%|aF?YUS<4?GsQ zm;6!gCpg*@@AkwO_QVsu*@^b%bl>@PE58Rk<*YBhSg#O|Ub7dTbC3B}(vixcc;t3O z`kQC)Je9L5$n-bi2esquy!^QZxgD`PbDaOKdHa5=e&@V>XI|}i&9lAkS-;)Bvp>W8 z1IpawKf&)KiRUY6-#e3`o#%a#nNiQr=|6__#d;<`r|&h`&0${dR-vD_6#Dv*koGOD z%W#hJPq1@dFvNTc;W@OEklCO1SJF@ZO8SzYpQSJ73qLhg z-1jE^d|wUc_p!(P%GAWO^)Mg7y3R?mv;4l|{e8vf z_E_gZk8}Kd!HY9ByJsFwyoVE?heO}fA-+h5c*5uYUmouE;(K;#hRl8xkaZ)TupjS9 zxt@4r){Q{cjfju^D@Ap!3MH^n25m{rk~= zA(`?y=+W==_n4cob(@Jdh7<4M#24YjqsM+h;yWk0y*+)W-ur&cEl4tol9Z9uIP7l^#@ zr2eY-kbeqS6}0P ztjgnyzh|}5f4bB8kRSA)(4*gjCjFp)Xi%@FasA3ge4UeDBOcDjc{QoS$U;}c(m z6OUfnPlKPO`+B&T&iYEfs|Y6^J^E3;ZZo6xBf`aX8~Bj_N5v-|JgcFY*{u*9_ekxy8 zc)z}QFJI~X#Je5wg&pyP=iKn$XLh(3%EPDkwRm1ud=Xwe;n?TX&BIIf@ag^QF}(O9 zym-RVFZ|ameDX7a--z%YW%PS&`(58NI%fOyIGyz zzL_6Z$ zj`+fkc)~NU`lq>_Uep&~=!-{>{-eKFZQSMvm)=V}GW|!eSs#!2G;VKmy_g>Ho}TIP z(!O}~IG^%i^wWDaf*tPFE#6DK+Yw)+Q#|3>H@%qKX+?eUg}!+7(z+?@sXroI{9d`& z3ppY4uKr!uChWg5y?j4caUNd!=+W=>aMKgEVf%{x)K8{AoQKQ#@ZRzFmmR`)=O?_K zP4lb!DxIIkZt5?$;(jOLWjWu8yzozRz8iVrOLM*#dEs?AUqxPcea>6-Lm~V>IbV;w z@V1<9L|%AT&bJ~j{7uexA}?IOBYWR&~zne*M)j}`tf=X;SCPMnbCPZfFL*%{xe$Ne|c!*;3o>eL`FF6iD~^iqAKekafS z;;-=VuI>F*uaCs%exTV8MR@wDXyTXi@AGitJ)HO=oOtw@$0L6@Z?)UQA*uZmkDQQs zH($q@)w~^g%j-NrX8#mC^KaBc%)jk(z0eM~#Um%Af9U<=1@!^ZOa0@><9E~B@yK)T z3O)LV9&TyGhEL4GMV|9lML6;3b*F2dKY2O&9r3xJ8txOt&+ZdqIeO@?f?rq0QAc_; z@5k*`|K~!5<9_-lfvr)y66}oHE5Yul&4ayB`vh1Yv#)>+`4{%*V>Yx)vW?qTQ0>Dx zU}xMO3RYUT^XC)xccALy8^MOwv%uDbeH-jd*e}5Dgl#%W*qg93!D_-DDZI>9dAdMP zS6%Z4@QqcTKG4(G(tHGbN6%&NvhFI6_p+Y+93fY$Jl@M}(&N3Xu6xPd&SbFHn)GyB z)|vElT-KfRbnF>~`_A(GK27g`bbdcwZUe48#&^p+z5hP?J;;CVm-O#gNK23Geu9LQ zZ)9d#xOehxN*{QGFy9aNQOWrIxdm(u+gHKPuzeTo>i!O}H*D+b!fM#=3Ci|E!1{O=A9<$f`q zorkN3cBwzTrU-|=*RSHA>H0`Yhj_v_tLSG#>t3(O?TPnr;`4N%pZMIL80%w%XWtaR z!=m<6b#r^-J)HQ$o_M|+?zNk^gY}3|zhfuyd+{Hb`q|>K+iZpXREx7~?dCil@g9%( zBA$$It!CVUmhwS7;n{!X>DKBh_J~;73eB#mL9yL$@(nkC1Je>HD9~%q5b=<3lUQ_$5_^t;_ z#~0sqTRh)+!omEe^1O04?8oYh&-0}%-p?zyHha8-+0Es1@#wcB4yL!*8%S^J7uC1; zd-TN@?YnsNnpJo{SlVLq*?YFdBPSfpZ?zBRcDq|cK8P>AH}U8VX17@{*Kci$ztgrt zzbT%cPG9;@SycH?<2&($Z`QYm_nzK<)bAAJwx09*HS0UP-W*KtDDJUti*LxMLc(Sh z^_F(n-`ru#?Mquca>8bJr?-QH`JHxv_c%bSsP9rda>8co1aFT9vnTjjx}ng#==TV6 z!e;%%n7$M3N7zgIdBr2QBQ~oOy?z-iomkX6ZSmAY37g$rA>R32_A5`HH*5Otc7^ss zJny|6k9hQ&t&?JUPqK+qc&`wyEgm^xvtAE+({xoBhM{HJ6Z>et6xt@6BcEo0P zDyDbJ?vv|@M{Y+P%${ryGkp*WtH zUhzBX>s%T?%*bxbhTU#e8@5MFu115*IcCzyew-(f{&XKuEAm$iTPx=~k-v7>o|*IA zc;C?V@+%#9{{dN#;&*RX=QTz<1b@E#HZlwP$oqtdDKIf>rK|FTT zIUm+hzCKMkCRUAuI$^ztb(DM^7v8^5@kKo1Js$BzJmRs-y2HCD{mwzs8|zK+AwMR{_EtRM*#~=SZl@8?--s{972-p^x2m)wp74X(q@A1FvB{t> zzG&ygqsP9~N9X#z=+{_$9xwY;(HqRIwx{O$9j%+!HBJPIGv1jD^jp#Q~ ze4ZZmVY(ghANcl4zO}^@9>0Xt9|P@AycT;0kSgc>cNAZ=N76^HX=_8cn*0jp;lz75 z@kKcC=rwyW+`?MhlZO)@%FR*X#G}{jtPAnYt+TuGaN<3j_&h%J6Mv`cBdMPvp75M& z;Y}Ck*4vuXviBAr!j5a<8#NTzmIhJx=r&n zL-r7b!_V{MKpVC{2kXN&2R4T7?O;d#u)yxHeID#-ogS=)?H8clYQyQmy6#~B8>-L1 zmhN!_J0tcYuq!`#V5NCR&}#NoP-X0wV54T+&Jeb0_5k6Y>%zPt>$Q9r`-M&Msb1q= zO8)|D^6yKD84WV~!O%N=(U?68{qqhYsy`O$g~L~jg?1?IAMHf`+A({+>mTqRD(&w& zeEnExpOStr>fbUJ+NZ>K!@LpeRCCx#^{9CNJ;j&fq@c&S|2Lzb`jxE-Pe11Z!n}|t zU;V|P$2ol%_T|5uaN+gT?+tQ7_QBKMun+!yu7||*a{-;~t^hr}wI_%=Z-avUv2;{0;k@i|194naA;ZS@SU;%kxX~E+K!9 zvq`UC{O8knBIq$612fRPOYvMhGV?58cRth$`FHgh#gqFT;JezX{n5Xt$!_LZkJ&F$ ze~9n%NL>niXKK&xlpW@~`(S6(M$Qy=b&rQ|&tlMH|D>05;l0E!mvfajFXw8{d<3fb zPULjnh561uKtGkkdMIzqcRnWP8{?iX<~yGpc<-h$-$_U6@D;j`Na>cH(68!*^Qwoh z)jX;5vA@!d{Pp8D>vmEqMbM#X^(Tnwj_+1al`i0`rOa6)nbH~|n zXOR!_d+!9f9dR(T)-Ih;zdYG(#P(hMJI!4dvxqm@ z?X3&rPVpzfhtEO#Sb`qyyw}5O=O2(i7mrN44i08E*hM@~b{iYKT=&I?cEF3Z))j(Y z(>D6^L2aWw)$PXT;*r}C2MZhR#kt*HoWB%*6@1DE@#r->;k@WzPUl7Q=i-su5eGAy ztjqJ|^ltL{r7!+(Je*fAN^j6>+Gc+~sBO00`E&8e?TCYg&G!D>Zf|qwKZ<|*C-~jG zHdOuwy=G^Nm&?K27Te=?<9dd8=_-)x)^_8HEcV7L135%w9j z#Um$d+KF*L;)%AH>A{Ek@x*feM?88>+ZF5EUG`lM7sspOy&kOXvZcb_t~l?q%Yy&p zH1D!2*0;OLdQf(-+w8@77IxXXv-wV9JmS6m5Fg?R^$7YtzazegM|`MnkBUb;cAK4( z!u!mfWEbS|i1+qG{DYj2<9zWRkNDtEGro^_k4Jn_uZzcS)9Rrfs@3h;*o*ZPd}w#- zWjOKZb!Y0{@5uW_*NV^mtk5rdxW*q(xcb=rB2vgcl5{Tonex}0&lmX@JNiG&7o~np zOY=d@&s?E(Xy#ke`P@$Aua(~x-YfClqvnfJzovK8e9?Ka|56<_UzGYU>SXW>GhbBp zQ=;D%^_|}7@rDhc?57R=fm-R$OT3qx+EM;y#k)VRUJSQTvwy+fa(Rp4#24dB>4$Qt zd*U>oyi$*c@acXS_G$KVd+L9BIPrzOjL-W;_@N~{<0^lz8TCJNd*a=m_&i*?uca@( zD38)7JnQdtG}%}96SwExPUnNY@gjYkYeA2Gqlc?aSnVFXcMK=q!->!5`%^!&FTThp z=@TA5s=Kh0+A-5TB6ZDsi2u<~viS<}=y4w89=U!m_9w;X`N=vwdYsdk$@M#N9!7kz zek>k6&i`JT>o-=1?_GS*58r!RJbLu6LVm0%?TJSpza}8(OnEQ*ThGRRn!gh7`6j+h zf6$}9<>A!d>g3_XdpPk$erJ4<-{J{Bm|JVtV<+WzXKl!D@&B0FZ;MB7Ftg4+lIu6( zyo&fDz2eau)YjYAa(!DL+DY+Wgiq`B;?ZmN!t=qxQP0Jr-;RiXkdO}>?2y|*(ma*; zkPjQm^oU2V+1MDu&1|$Ic{uSNPJHCgOWk)7HO@M#>-33}ayZQf7K+tI6~H+5V&Z}*C|X6HZe z*!wZ*-=uTZAnkVAp9#`KXtm-wq1hpOx$IY$2O0nOuO(gQPF2iH;Fpj3oO^7GdpoO@ z^F#+P@^uaG_;CK(^~dB#Hs|Y+KW*5q$@x~`@lX5Wvt=i>XX3qIBR(G&bN&cD{NZ~$ zGdJw_EiH!=@BKUR`8bzzNq#R=6~iqJm-nxU5BF*Y#C4{Z7;uKM9}gi$^c_qgTY= z3+Z9MCp`N-!~EY-@roxMoXZC3uehH2B}IJVk@2?&a&E`wIiLKGF&J&S-lAlvjf9M+06VLI`??Fz8UtHIlAGPapJ@Lr+vje$5o%C|=>Dz_r z-c#mzKPfro3-eZdpUm@qvr;XWT1)uNbfRBHmVvS9}p~#uxEsd>$|7fj#}QQ_kmx zba1}+6?uBPF+Jjo^oVym;=iEsvfRFAe7uXuki@%cU`#s`Vd<7HfcUGACNe4p(1?MD0J3;W_jzLoa5XO8gr zpSe$N$Bv8XJg&4OKBVWkV!Vi-8p01|kFzJ`c3RPn_#!>x-H!M_L_d9Z;t4-kIL=<2 z+v!C+;tM^qP?B4Erdx7}9z4i7wuv%|7g0{gv57sx>cfrO6TYFz& zYlHnB*wMaXu)D$Lz}^OX4_Ixm&w#ek`e1#dZTMZG#&!1vTN~{$U}vLU4R$x$o50>i z`zTmxTnK91HvD_S`tf!as6oh+z}E404cIx}J_vS?x37S`<8A2og_Xv8pvG(GgY`}J zCtzcf&4H~=HV<|-*=ND-Ci@=P+hmjX6IPq-UZCdPF9GYD?JBUb+5QP^ZMGiR*=z^F z?q*wce_?O4-2<#P+ap2SVt)bFwVxQ&xNHGzZLyz%oh`QQ0mAMUdobABVzXei#r_V| zxa=mdzSWk%##Y<#Kw)dEJp}A*wWopItu_btw%UilYO8$ zZT3R2v(4TKcDLCl!QM9eHdt+w4`iX{*LQ*1M|>{W*lte*TifmBU}w9%9qewmo50?7 z`zly%x1WKw!?v6&tnaYj1sgl;GO)G7UI2D>*gV+XVGCeyhy4JocG%YQgtpTj1lD)j zlR?d|zW{9Qw0DA?o%VUKyVJf4_IBFDLxj~%I|Z~8>>*(N1beJ-&m|`?yi@=81n;lz z7rsb*>euGu&sU3|I%#G6`M)%e`-(BM4S#v;@h4x@@_8bSFMa>tobDU{tbATt@R!a0 zk++eahWurNEu9wvJHz&4usdw48baAR8LW@kgTTg!JppX#9&oUu`#yxnIu|rAetCVo z9`60FrnOH^e5J8D=Y(z*x*sti=YtMkQA_?XD$k!z&9H-iYxbUK-yNdr(O_qBNoS$p z54ct58JBY2|3??oU-V(I#!*3!`#R8EtZ~obN;vN6Ku*Yg9j-S$YOBv*(S!H;SbRQ@ z%KaVaG4AnjGoyBL9!|W66aV}VG0sL(|4lr4jDtMf?5JIkhZFDN#259yc;*wikNp0w zALdu_2Ss?!Cx!Q1WzWs+iT7}|RW_T46OSI_i16O4?A3X=$aBBM6Bp@MqowvY~A4F>-BDLM(gmoy~y{)7xpr~uqU4Ij4RyUtj_J__9Bm8qQYLr7xu&xzS)WP=Hw?R zw-@=o_`8nc{r3?6L+8Wqh#fC?;_vy3tlWvmF5?nU_q?7zG%HV$=U(j4uZj68-s2Hp z{O;oY_Y+_I?&7hV?{jE+JfZx<^WpSs+8=bfe!uV;sk~1bdiXKoIpc_{374LWN2b3I z;-?6U%$L6cz4U#FM{Y+<{ddL(MS1TAnR9IL+?&mNvJdk0GugOFJTm(p!DbcpmK1-M z?``qO3Gr)04&v|Vb)LSEpZF_BPKbXa@)5tEVI44jKjM+w5%YZ(Z!O+;wIQ?562xC8 z^(*6#@cSd_`xcL!5Wk(CzJ=8`@AhK)#3Q#O;)m1qmR8$`b3O6M+?x$1KbV8rHTG%O zi@$ek#XshM{9vU#qECB(-^^1^BENlGwSM0azB?!Xm&(7q{kdCqr?iJB`CEFw+MiEL z{`N82ANE_B@^xw`=p%pZ#ud5Mjq{%Kp*>3ek#3crByR_V-VWR%Z?&A;J8vqq1Nu$K zQSSMyT|l`D`J48wbD!s7fB*PBO5eW|@x|{ep77ku<@RQW?eyH9c>nIi=k}QQM2~q- z4>vb#56;7h_i*C#aOh8MHto+HwttX+#i4^p+TSOh@a&6sdke$%H;kiGA^dFj2zd&+zO}ICV`APqN=WF(J z4;Q{)c=Y??%kMDg?Oq6W4%J43z0px$uf|``rWw6wnm?}V{5y8U7k0#>w|gdpKQtfh zyhrnp@1{Nrh##G^uy+8KacZUE-n8z`;yq6tvxR@*cN;6yrFB_Pm-xbt zcu&`C2%mqy7s~#WzQgqW-k|UIed;j z?ub1f?8(nNSdG}HK&#nZV7+F;7YQ3R+Xc32)&M&-Yk}RGy$G~X>w@)B>k0R?shHGn z?8N<>!f%OB>AGFN%g-g>uHS+Buhk0qTq!?SKTN;JthnzCJBRNcv)>IoV#R(?=f`wEbk4WN{dZlQ9k)lpr}|Ai`hD@|Iqzmvf35Hj zJ&Gs4(Z2}(Ad=o&`n)fEX#bG{@9To%i*sDkCmo!_pu8>4joUwXJV+|f;yqpBi*#jt zkuLFmABObvduKVvf!*Z4eXuZYU-WolJJyTwh%e&F_#z(h{{GT0-e0`Gzxd+)#fNp# zquyUU>A-)y_ji`YZOtF>yTo*f_xBfHq$}f#bcy%(mwxg7;<1arBGQMy&kKm>VEBFT z>xrBY{|3C@U}nOe=z8Jz#g74ULe?!vAL|)KKSR9tGa}+I)b-{j%6^7;?`K5h9vjln zddKrTUL>_+@WdMtzxL!Oe(j6$Bpw;R_F%WR%D=0;o|==Ld>{92)l+9Hk{=$Uo?;!9 z8b3cL@iv9uTMgNbplQ8PxaZ!nK5E4JNO-&W^xboBl$U6=&)*Zzy-~=VQ!BpnDum}A zsb3TR+;A{B`IlkeQSA@mXxxd1~PA}MH-4Pytf&N`j%Wn+!Qhg(ynET?3@Z!;9ebK|I z3|^Io6Yt@~7vaRC$N4r7H(Rso@^F#wi!a(U@#uBuYW}%G;hy!O-8iE5!ozh(t>b#5_Ey&$wGV)%_8P2f-xSywvjNx|v$2bXoiW=9cE{}Z z!QPlXT)1a2=5~*?^d|blPtGj-2ZMa1GZFaiguTGSP1x&%m+3n~4}Unj(O<6v5BkIJ z&4T2Gh>VxNvwqla6Z(GY2OmUK{T+GXSEWCc_@3qgHcDUk!@wh|9*n&3*Ew&KL0`Dx zk!~mG*CQ{S%K290g}^mues8tb?g!dBy9BJSvp)wL>+D*vwa&U=XPtcv?5?xVfjymz z1FLm*1hn|41*+>sRaTQl8red#3Aap5FC0*gt`-4fYAJ zv%$Uwb~o71gnJe@c)E|&gX2x+?bkmV{f%}e*x6|3f!&SvSmB<O;%VF_jBsaFYojq;I`a9AK$UOOKJ!hVLBUs;NJB52L*%tIP zug%|H&1+BbT=Uuwbp0LnIM?4{ZP(us^fe#t`kIe^4bL?nJ^@r@L&hNxbm>@7KJ; zgAXFA9G?{Qg|Ym*{#@fEPsdCv;Qojz|0GZTyiT&8kj{wB?n(9=>!IEio*-WDOTGK8W-r3f298`L~M4Z z!utxJ66}Qh??(H=m`=Cf>`leraq6gaPKEcXrjAPI$uXVs15%{(WKYLTBjEmsN+-#a z|Fu)>&q-&*rcKB8WZJF@c4B)H`TDfIFy|Z7A)Ufk1U}?vYdXBI@YR8j?>ilT7x@bb zyyx>=Z`#u_Qw7`~QRyUkO6RHecKv4|V$)6wc7*epon}4q!W&okZ#5gI+1L3Ug*OEr zQT?LG3qO_fooGk+xfMI=2c8!4S-3Cop*-|X^YqPB0ry8#`boC>3#Z#R^`C`^_$Bf0 zMYt5~gzv@92>B`ee&9oX*3Ss}Df~&`Lw>f-2>BrVb>KsOcFyqlX1W3QM^t)9hWzlI zX``1ZJrVI+g2CH_Ys4?t57n9BeTAC?AIhhl74lO!75I>!^~ej)%K64wA)Uhe20naW zt+RrC;klXpxz1UhzL{>o{SlRZl3mP?K1_tq@n!wdr>om`&5J^R^wE0$KlMkidYSgo z@mx47yy~4bdoi-`<;b6^*;|o???wK0%|3-JydC-cG5a2}@aM=c)4fTLl`Q;;@TzyN zu}zPYESwTv_3btGP-Nl7$V123i;#t{LRQE6W5~h<_icK7sxWlKTFg_4Z(7pH2P$=(_I!D~hdM_)n=InIUH=K;nQ5K_pYa5G4!} zg#n5nA{a(6i&Byl&rvZPvseZ&fI7zab-^YfSkXd zl-sV9ljX(z{5#SImp6@&pY*d4W+v-niLdWQAz!SNAIW)lc>_2g-yh~D`N`8-J|`Qe z?KiHRZ<;3Y1GXua=5CLax#V6kw4b&k-xHGUm+uKHa`UCkp6wMwe%epdBJF<*tjz7d ze2+--#Y*`;jf=k|`yp*duKx=Ay%pBxuGfV4Ua``CuxVTj?Qm&+ZnqBok?#xt%Iy!@ zg#L(?`lHjhSgAiwhjzTiRk`g*IoU3;QaflD@^w4hl$$T*P7`bBG^6XFSa1!`Ey1z0)~tkC?kX2V56q za`U8|Y=>B>UvbyaFXSVe)33c!PVx?}$94$>5kBrhEIy;9E2JK%cYb=Ie^&tl&L z6?~qG$$8F#JuJq>Q5qM2nJcfygK_ju@(<|V_%K;dk}mHDA--2k+6m3b>nx3nmD=%r zLpxDle3siz9O8S$O6}n2&`+^aJ5m48PTU{+Dzy{hdnI0}op?~l$6)-Ko396l_Qgv1 zW^j7^2cz09zAvT6UmJYS_X%TAMMlVTg;3KbG&E|Fho0w4a5Q`{~9c`3L+M9GTlrG$!PW{TV-a9OIC`R~(+3kFn`` z$6`}kzK^m$vAq9{5B8eA1LKF@W#){#Yzd+F^i=KgFDkTrS&;|FyGkXG<6TeD=rFt@X7+{p z|G5u_t%7pKH>TrWQ9AC0s`y3XQ^lmdplZ@?g$r_AtNtvuTNQ0+Tov6ZrD;hQ(FT)sFS}d zN_`C+O`{qZC?32YH0KrYi)gtxRN`t+^0idP9c!k?p(e(0Iad?YsjrDeG^&Xb8rQ_R z6f!TndQ_{HDl*{d5 zcsHg-b#R1~x2KlHbI5 z<54CqOyYZ3l-Fq*7nkM6<1{XwkrOXN9xlvnSLcOx#SJ-m{Jxs3PrNE8US{)fV_1H7 zvYjpux96699_|U{upgp4Jdj(C^N`6c%Q)H#xn*4sJ9EoMu7k`i+j{ssx9sFTy}4yy z4+nC}#ZkSm9pWK#_&f;vtt_sGT1h!PFV>=day$!lusl_s2RzL3IhDr6#$0X>!?Ao` zhjO{tCW*5)mT?pr*OUKkPc8QK5jEiPtB<;;$$XGOdsvillr%0@%Z)flpIi0~aC~k#YJd}S%dw0{=9XnV z^0cI!zRq+*oEOST`)f_ZWPcReV0o(SU+yLu$4}$pS}wPTVcEYvl*`3SlQ?T-|Hch* zt^99$D)0BfCCbE~-b=>il6K2NzFP9P>n5OOM#hV8 z%H5w$aBFBUy#8H!o$H{qeIJ%9jDqE<(mtD$?@ei3+{$+LFf7jlG)>Co;*&|7wXyuJ zZ;IFCfAhs(lm5y5Mx^|?4sJJL9J$Ok$1!j6d6B+9yXKgfQ(jw|=6ShaGk-S^YVt+$ z{uVV4zoXOV#~pEKw-7Co^^~WoreAWkGG5sd`{X~{Q_EaSJj>rZ2cKWQWwKnEm|W)} z3LmjT7`DS+;)p?tE4|=Vzqh6^DSww z*rjo?Zf@MCaj{8mJWAtY`S zFf6ZU*BV2lygjwdx0VZ&c^ty)mcOI&>KbaZXOW%(lUjoc4IXlw^5vc}^b3>65s)GB+NjadCZaJWk`{mAP@~ z(2nSH<2sFt_vgk<8W*3)joUOXKA#g`>vXbT3w^LWRgMRDw|sv{Ja&bixXRSP6;v=w1{`e68z{tgp}q%TuNQ z?1p@A?|`S}KigA_<1mg@ChiFBBm-Gx=!kcdaq`@S@J=~^B`=H=Rv** z%dxn7t?ih!U+9A6sj_~q7E`^P_mKZ=Pc4f&qWb)t;}Lg6!`w1Dp-paCcS5(^vgw5W zIpwvsQ__B+3znzK`ng)!{!SPz`8NrHfQ-V8F!nLQ!dtW|Muklvon?^@$f^i z*rajs?A*9bWl{xV;-x)V0<%93@XJyi9jA$SD`w?pV}Fz9)z}iSJ=i-tW@5SdbH6>$@lWt1t?dr^^21Zme`(?OYje z`rqST`E7uG=ZA5xHBz5D?v;#_sW49VKl8q1+$_xdO2@Hed~2xmhxd1#NPQK|6%XFu zwL-?D_~3ZdGS%bv=i%Sf$oLDjdAOUpJUm2w9-gI9 z9?EE(hxaJteo<7{!#-;2p@Q0asJ2*i_0Wj=dgwr-dN`8C_0W%^K8A^zf^sFyE^pPUn5075-tpZiVVgxm+tWq_!0_b*<2q`c~*mqgEJB<5rkJ(Hb+T zZjA-hw8p8_w#F*zT4N*it#PxM*(twEKia+BVouT^qbhz03!r zQ5#gyxD5_pCPMzM5!D)iW8o789J_tH!*C%=;xQ?x?~ z)$QP@X@`GP+YZ-J*A82#Z-)nH)DBP6xE)@hXpgt4Zjas6w8wX1rlfu7kM0oGYdhdi z*1HZ+CyBlTYSO3!8q>G~+ER2xSE@UrKQ$duNNq<(6}ScrRapU zRCmH<)O5nN)ONxh)OEsr)OW(;H0p%yH134gDLUhQsypLzYC7XPYCGdM>N-Q6EZbMw zIc#4X%%ThGNj$5&paV5sa1^y&P)J=DOrgFD7SpH;&Jr{Gx}^K5YuHbwD>ks+cEz>S zb;X_3cf}Jl>WY^s^6??n`S^mGeEdpnJ`O!abor=FeLkAfC?D-F+f?_&C)D)BchvR7KQ!)% zY9%6ip#?R)(2?3+=tW&G45q#p#)+Aoy~1{*ci3*-8`D^CdSd~V^Y+WA>y5Li?~OGy z>Wz&w?v0x%`rt0A``|%p`p9cdw0*Ec%xvrv)?@pI^|-$HkoCSVzNJxL{7&P(IP^48 z&hyu!`e+3V}%JqQ;i z`Gas}l0OJHCHaG}nfgKaFO3G_DKWEeP*`5(JMfXUgYim|KN#;N`GfI!l0O(fB>5q) zLJvvvhoBpb89Ys6gEuIK;R~vV;TLL#q1x%99fsD_4MRTl!_b#T!!VL! zIHpoP91Ex!juJ6bGCcIt2eZ*|T)_HxI4(`{M_^NuKLXpR9f2pP8-bUoAAz@NGyH#$IYh;{dgzaoCxn8;v|MQ#v}d7YDO?3|g|@ zj6oM_$KdEBe+)*@XbdLPcns!InNM;u)njq4m?;{Y9{*t0kHtl-kH+F^8jr>86ys1z z%{V+u?Kr$f{WyF`qjC6=;uuspOVr1prI;x?CT%~MjgCPt)?+*dC3)j9hT8F%M%{QU zpng0~rO|ktN8|Chh++b+qIv>urDg)|6*DCh!g_o#8&AMfN&ZBXvA$qpsJFqapNMkS zM-#D^#uM=;)ss;3Y_>ZI&8VG(PSj08f9fY;9E~QSn8uTE8buM-Q(c4`sVTw()E41I z>WWYGlS*ehL;Oc~kJ)QA+wf1tm%TRGd%sR9sHYRNO}GRNPD5R6IugRAgy1 z6|d2FD#|IQ;cKd=;TLMA;jnW>I}Ht}n}$}@PeVS9rr{_WPs31(>6l3MbQDuF9gC@* zjuPsoV-@w&v4KX@aTSfH<7SE(*hcjXJVMP3WT~BjSE-wUx2T_i4`?(4pVN2-_EOBm zFI3OOU)0P*_47nK6M150qT@on3ugUs=*If!IP|CSaVVsi zg~?RU!aQnbVJWqtE)0$5V!W8i zn-}_Pf>}Ec#jJPpu$20FIEO~_a0!j);Tj5yTdB6#MvcW|)LOhmoyGgqTYOC;i$7>A ze~Ie?5%W=>>iK9(&3qh5?R@m7Za&6PKOZw_G#?Aa%)a@dzj{Gp)-1qDthWnrE_DmA zn)(I!H;oqHS{g6FW{QOg%h5q9B&|iH#RJ;|;#1v;cv;HZQ;U7bD-+*h-k?2f0L9UXxLsyEmWkWv zC-X*Fl=C7d;)qTxHw^v8QhdbuJ7RfQo<+HSX=$>aLK7@cm2qIMUiz2D#c#RX9)@E~ zbxZM^{BL_|v0obcAtv)+2ki;{h?e4z3)$baA90!|)=lDR9+sh5PF|T_h7LL9VzVr? zFBar3XP04MPF|T?hA}ziV!sU6@;X{^YFLg%*>7oFoRb@m)3~@eH;$7+JK`C+aeY#9 zoXfe+<`ZJAJ~=slg(g^@D#x9NRgQZa7hh*Pdl-)8I?0oh=TkO586QbJi&LQnHmm?=6XsjrBF+4vM3vYL6Pq7K!kq6IalqARthVu+a8cxqTK4rb-fInyORRZQv& zNrcb&N&acLH_1N@k0kla5mCJyuTZlb z?^3%QpHa6Qd#PWJUum=)f75t5YOWEn0u8BNfi~2vKo@FPpbvE`FqHZgm_VZym?dWR ztw{QJK(E9}QdZ&RfxS{r?n`m-eIvR656S^N5MO|G%-h3~oLj-FN_l(rD)iqe^K{a7 zDxy_M``LIEHgUah*h;m-V`8SrCG{1!Fy!eA@jUCzg?N+N3$dHJ3-K-W7veV>U5LZi zit&YLNU<7isa}ol)U3uZYFFbJ>Q>`8F;luatk13q>vL;xJnQ`$oI#^CSWDwIxSC=u zZliiF?x$ugo~Cv!UZZX;KBj&xzN67vRM2=Ws;?8V4vnc^ha;$2hhEgK!wBlup@{l* zurykSlWDvT=TfZ4#Z<4yf2diH&D5^P1Jtj_Gc;O{T{K>guPH9VKU80Y2J1z05js(O z5e89r5sJi2=|y3G_>05-h%UxL*2fp)G>Q#aP4xzBq-Fy)QM&>6QMUn4Q@;VP(P#r= zF|%(&(%u1gCH6`A;PYXxzY>RBB<1vZwKtObC32m?!RML1COpsFHK@+KgU>U6&Hq~N zno7&6@^=Wypl#}`SX+I9=TQD$pc`5U8F#mwL z4Wn}FrChmwGbUH6-;B9Ap`OisLjcK9&>Ti~GX$69Kl{|)Vkx%;J9Ka%wKfO!P(=k`m=U$cDhc)Q2&1Iq`W4^pml zJfkO2_2U0iUmQOX)+gq!Z!exi3+5esKIc)_qqdi2YMvS@mn504|gP=gL}n6Nt~aGmCuvUlX%OO`n`tcfTcxOiC#bH1EHzcIgW4*1le#MSh_1*dQpkFH zI3`ecIF6%U?w>*UfRn>Uf))>iCG->exeFb?l|SI`)hIx9dqNSZ`{e$|YQ`25M7R1C6P#fz~vV>rQA~ z14mNS#6YTRVgxlcF^Srmm`R;nKSF&?oJ^ydID^JDv5KM=Hc(v)S5i|8H&QFtk5E?& z4~Uu4|NnXXr&zCRV+S?0@fNkUv75Tu_=fu0I6x!$yT1PttGR$>fj6-*TEW!y11I^y11R1x_FSS&%-%1l6e9&&cjU<_3!}I_3#okG9Q52diaI9ddRy} z^!3n*M)fe5#`Q3VqCS>UT_0ysQy*)ot&c0HtB+f$ua9jss*k5>Tpuq}G{Do@+d`=p>LerCOHiVD^ryg!Ny_etUT{i>Hsebf|r zG;WIK6wT0)>SpLkO*0Iowi(7z*9=p|Olh;Qf8!v}>(5Q{o8!bJzd6oG@|$B7mGk#(V5gKAeuKTF!A&(9#w-#1`a+Trf7>PRJX-!YT9BUwQX@Sb!~Aj^=)wxjoRV{8n?w=6z%XB)$Q;a zHSO?;m?>!&`WXdz9)Dkw*B<{QdF@gAO3AnF(VDvUD4<^E1=FZKX4AMmj;E0Ol2CmF zE*CRJN2L29n2nFXZ4&3a-sJNY9dIwpV)8kwJKz~EZ)83#wH>gFx(?V)eFuC^qYn6+ z#vM@WDiIyglIYvqOKzrQr{70(WoOXp>aoSqUeMNsqTaqsOf|csO^OB zsq2Klsqch3SBp_6G^cSVMmGE zO&456Z5M2&t_vO%Go@X^{zE!1KzBuy8}9a(C-<5lXq<3sAZ;~O!vGd=&0Bh&R9i36;cc>q(LD2(~sP2I|)bzmd)b_yXVrFBHr2UFG$aw&3lKcW(mgE=U#w5Q0cTrb>N2xEs z3p6UgE*cl$Gm4)0p6Z_XgPNYGeywPGq6u|9(T@6_=t-lV7(&qtW2x?i8PxQ`0&08V zWa@h1Z0dVqz4(8dCvX+(O>f*pZExH|U2i;2eQ&%#quzLv#=TKa(Fb2s-3Px>(+7uN zC)z$}LR}wpq`nXO(5MfF(YOzaD2_rg)kk3|HAmrWF;j9>*soDAi@sQ!&{joL4>yO7N2H*{<2jDYm2H;0(2cYT= zqLXt+7HG%E84Eb}&|^9G_c4})+f>t+7Hnk0V^E=%$U z;d<(1{s8rZ@F~f_>Bs#vwP#dP>sy0zREz5D!KRiDx160;nE> zk<2R!^9d?^If)Z^5k0AGntB(lic})MvH9eO%5MJWH)X z8FdDqQ*ZDijpV)!H;J)9Lot&#ENwr?`2ww2FY^TkP?;|C( z56k-?=L?*l0xf7X0!N9NeIr7kYMCcM%}88N?MU23-AFt{{YX4dqmkG}(azNCIEex{MkBe+G3$D%gHI5ekv9FCx79Qsl_ z4u#Z>!?Dzl!$KO3!|600ht*W(6Kte1pI{R;$KYOSkHOQ_9fMb?KL#Jr=osvw@iF+3 zVm$t$dOT{#Z}qGhkJi+VM>jFEaeUa`ILP@0Ls_pUU|Nzt0VgN<6R?W93Al;+33x!v z>`dn!Kn4=zk<~KafbpVGu5fAGPsE2@E}DohXgm@7DJJ0`swbh=t)iKPredaKQs|ct za=t-3*2j}jKv9IDR2N|aHAR?3Z4nkzSA^54FT!dX72#4E7vVZFlb6mfkog8lzwKn) z%6c~$TdALnM`<(}&(U}?UZpq|?@@g$KB4AV?4|Zt{6^ieIOH~Izx3G9e@qGOn<=O* z@vNPKCe%$qJL;z(pGH&Am&Q{tg333(NmNh8JTX%=HMFOvrR`0_$*i~2u!_2AxPtm= zxQ#~B@Gy<1VLQciyiN6Vd`Zo8{6Xz>)V*DF)6tIl={TB3(=nFD(=nZ522Q4W2G&zE z1J_bJ1NT!m1KX*ef%j=N1K-kk25^UnnP^1yOypBD6GNz-iHX$Bgr$BameXh^*3oz- zZl*X64^e#_UZdtXd`|6g_?x=pP;ay7k3%OK9f!d*J`TrG%)*IO&%!D(Q#32=PZ#98 zgR58{&BA6H&%(nLv+*+3vr$gXYABc6>pEQ?A1 zWu)?K=ILT=6f;HXd<2!5>MUMZLS2XVHOTKKfBD^987xkD1iY$BER<$Jx}+$9fvg$5k|*4^OcG z_fow85j6|&I<*V%F?9>@J@pIl2aOh>-rZun0Iet%q9@f0F_M~vm?usZld@filNoml zv6A|Q_z#U1VhfFB9sMd(H2MHohLJSI|o zJdUU4c$`7)@wkw><8dYR$Ky5{9goLpd^}#ESd7o9UX0(US&W)nMY|a7sauSrs9%gx zG+Kz5zEk#>SY*Ajhttvb{UpYw+tJo zUxpiKvco|-&I0>IoeG-16<|Nd-U;0~eQs}P_W}}nPM&jA{B=n{@8AVi|jCs_Y zjI*dc85^iO88=XWG9C~!JHvVF3OQfR2hUfRvEH15kEuNc-%)o84lU(!r=SUqPC-u^ zp8`X1DrQoBDwa`mDppZ@DlVh$RNP4Ysn|xNQ}GOqPsL7(66~hB1pBEeLDm0?wgio- zD?w-KOVFQ2B^X2F63nD>etR+1r{P>`PQzu?o`yTAI}O{ZKMmzHIt{XyS%za0Oe(Q-UM=875Iai6{z>1XjdSgx)m5n{R&tb zt-v`nUV$4ZPRBN?PsdZ#oQ}7sJsqEjnT@B1;~odII0L^V`DfsehnRl`YEyd#noxHJ zx=?=x2GQsYjHmG#m`QOa=8KtvGef&Rn2pZFX-VFhSeN9Tg=?uk3wKd-7M`T`EbOH2 zEPO%zS@?%WXQ9c%Vtf{QQJjtORG*DS)SQj8s688(Q+GD*q5f<dwRAkBa_0w4u>?=uhMGFrH#1=2MxUu!5SESVQefY@%)@9;SXJ zcF<@gcGGwzzN0uF|4@BCYCR^J^U;#p^U;yI^HE6s`It+i^Kk)<&&MrP{+dOW>I?9x zm?^p-J)Xg=%#Zk+@w`l<7MD=Q1 zC}xUQr`r|GMyqjklD`^TlKeGzhd$zW2#I2`(S4 z#oshui+WFT{W3p->U9`E%{m-I?K&)@ZXMQAzYf>YXdND+@j8@Itj8WPQ?NetM_(NJ zV=l(85}zt2-oKDRKtf6)TuAy!Nwun>3M!NxHu;P51Yun8JE@DNdpOQd~l#OK~@iFU9i|mti;6m*E#NQ*>Eq zCkkfc%TViS=3S1~R9}t)YA(k}YA?rh>Mq9;>MzH+G`bvD()e=RO|cOfsyE_wYBu6? zYB%BlbsJIj8PRVC54agu*M z&Q0>K$K_P!v23RC^>{|iNjCFjW%H^jW^*8 zid(RT%KV(`sJR8VQ+o?ask;TwQGW~GpwTVZP2*ee1BJ&S+ePiskQ$G!)Oz%z&SMny z9y4j=aXgJZR#M!GOQ^mTH&Sye?xglsJVM>A*iQYec#B52;v*X0imxbc!_QRThQF!I zBdYqmXm3Lvb+@58^|zq|jc!8$jc>z1irX=Y>f2F7&Fz>??d@1h-R(Gy`rEORMz>=< zjc>;l6nEfOs_($P)ZBq5sJ#O(Qg;X5qy7%;q0t@qnZ|eEuopyZMpLRcqZ>7wF_7BL z7)RY^6jQ$$C(>v$&Y|&UTtu-2*HOI%cT%$j4^q1Y&rr7oWz=uM2Q=D(Z)v;*zf;_a z8ZV0aPBf+FPIRI6PV}MfP7I;`PK=?^otR4FJ7KBJw^~MJp4C}Y=2cxp?OnKny1Q@_ z^>^Vx8r_BGX?zzxptu`9QhhgSy(F5up~Xze-Qjf+2eY^beOa&X!H6X99?YTk9-K|x zJ-A%Vl-?7TGh4&!$!^8wq<$+N5vRJe?6=}2#-pv+P2;WDPq7V$>=5-fG^1u4x=_0f z{ixf9iPUeyTrsnATUejHH>}Uyi<6T2dvOts?!^sM=5=kQGN0>7D)YGBrZRu)TWasa zKh)ia7B7qbKJ=#1eHcgM`>>eeew;(~{kV*p`>~nY`|&V!_v2;i@5g5}x*vbh_9VQz7)66s1y&QvV><)969mK;s9ojp89Z zMfF2?huVkm6Lk;akXJ?j5b|jB5W3L#Aq=K?7!#;|7;~t37^hPEFfO9*VO&f7!`LQf zc0L@oN9Mork(K#w*(CoFyp`lXf^U-iNANd|9zlcG#P|_(qIeVo#7x1Xp&cL0Mvr1V zll^}(^xp-u(UWK(@ofAg z+EZlEo9YY(QYm1M>Yqjtjh@Cl8b6H{6whES)z9EM zYM#MXYM;U5)IEcjsDB3U)94v|LE~reD@BBwZ;CoXGioAqpf*Bp>LQG!KEiYwMOZ-N z2qhHHVl~yz;woyN#TM$H#bY#j7O&FyS$st0-+nPukPXMh2D4sf628TJnQ=s8Ia5#Z z90rS-g6Bd$wuk4D-j4CCH`}q4+U>ZCy6uRl-;S6@+i}P)G2V`j6whNM)z4!AHP6FQ z`#f%dG{qy*aM$eJPrS2tMNBv7ErO`{s z()cC3N3jE6QN06I-WAObG@^C~+Ecd!y{X@Uku=(YxngGDj&%E84(oR>0?}AzX3f@ifUcskH-YfWt%9S5g-V=2h8c7v@P(kf$sPn$)UPD{z zUqcTXy@pX@X5VXJJ?8avJ+EVClJ`26CV8)8HH}}#b5-98oi0fX#6JLq<9P8QT-OGe<+%_(2m--FqFEtV5xr#%W3o$E~D{VxQAjFUZ8px zc2lzp`>EZ9>gA%_h3?ev!YCT;!U8d~Z&&EQeLM8uy^Zr3FAe1i{Z5FRcd(Jm*>`Xk zb?+de{vCWsqj&HZjo*R(i2M27(5?$+{k!Nd@oe-iCe!#`ETec2YnWf~UdZ>sZ1f(k zV|-s4H}9wYdmndkx#)d7K;!rE62%Ajgz69Q3pF3$kdH<80UA>O0ou~&1N5Wu2be+e zAx@_HL#(9cL)<{^hj@g#5AnK~Dg7|?&z7hCD94Aa_vQG3M&&qcw-}eB6~#yBP4!18 zq~;^cr1m2$rS2oFr2ZrPhejV^8;w80a}*!r9jZUZx72)$Lu1i?jAqn*j80;v^yAPk zxfYO*tlo`*tT($cGRfbKq9k9g6-@F&UWNN4qc2eHQ!)Mm zttq}lAF98^IBLFxrS?mlDP}f)8QPD7S$u_mC;4CD<|O|s+?V8kg(s=|3U5;X6~3m? zSNMy@U!m@2BECjPs=vlj)O?Kz)P9Wx)P0T9ss9=qX!JF1pz+tZo8lWhMfEp$otkg( zDYf6=2kO4TA)kx>8|2aG8)zDTgWeS1Vj|VwVi7gp;uLDX#Tx3q#kJIbi+gDFEuIlG z`@RkP!S4=GUVA8SSY18Ant9 zGse*9XDp=g&p4an7yOIrUvRUSDf%VsPxouspZ-^DP4a%j^VI%^4`}oo_EUWTRlX73 z0W_!fcl1rlzhfMYe#a7uKd_FPKX5CJ|G*>E{)y+Q{}Z1i@jvk!)fK4rE$b_A1oagd zPU8y9q2@0v7c(V)h5q`#Lx1DHv5xil2e(rF4<1YM|G^v7{)0W#{ewTK{|B}AiqSvl zK;wTfn93zUv#FNbfKdZ=0ku$9PzQAn^-#~z2x=FNp}wbDsVd)zMyXcRD%F#ErN+}p zsd+S3>NJW&)EcS}QP)y)h`N{BL)4Sh9im>Q{t#78qeIjWG(JRC`Ci1Ksu|UXsw2fr z(V>bvq#_Dt<3rWhB=0aaE6F=dElu(c3wfxLDAx-q$9h{u-AsKI^%O-_^*S|G)n4kV zsyaW2QB~DelQQQIs5hyrp?;vghN|_W7}ZeiX}N^KqWF?Ds+H`Lcr2WV7B z9lBqP>!>`6x=K@BSM{W(t}3Lqu9`$$U3CKWb=7$^s;k!0xURaEB2V2hn~!pT#IoHKcK#YDZB|6;NGI8EWdOsnpg}OR1};R#IP2T|uLI>UJ8} zQ;$;AS1(arUwuGLef1Ny^;Pv>L|0$6qrSfCL!Ez~to z+o*4#o~2O(^)8JYs2?aAD*P(yhN_;JDUvc@mp&-h^{95Nj~l9^C>p6zNq!?WmzqZE zbZQ%^OQ~z5?xwzxdW1%e)N3?uq&}x;tPW7!Sk?GVG>uhzY8$Ij)HPP~#7t@9&<`{T zuUFkftxWQpsDCHPVyJsuzu$t05FE)Oe~}s9DssP$y8^Lam^#g>uxlP?yuFg}Q~t zE!2G!E!9(0w^XlE(^8dF+fwbNuBAFaeM?pC4>4+~n$WnV>O|2>^`W|z8c9tnHHF$% z>Uio}sTI_>Qfp|`N?k$YR?1VfR;5(8R?kq=TD?qdYxOpDt<~q$w^sXU)LK>0xV5VH zr-(MHHPvlYJ~eIBAZpvF@zk|Zv#4*QPN7j7bsmk|sEaAIx}IvS?x04ihpE--Me4MA zpL(r+ppjOn5M!R zR%+X+$EjN}`SVrFNDu)OXVp0}o>+M48dRIeoY z9o2V9en(aNZ&@zts5;ZQqZ&%lNiCqdlUh$rCw0A;Dd`m2je~N1k9s`G>#W{M@;a+u zsO_xk{Uf^0>PYH4t1&d{tSpT?tFy#RUYF3G3(EaJ)xVOwE@}(w_oel=YuFCgRXxsn z-&H-IVCuW6$u#Pw7SXtyT1C-aT}O3yRZ2~F^)j{H)fd!tSASC9 zUF97jM%`5>8h2NNDUMVV#Z1AGVZZpGT;HRLle{CUSCqP&KQG@c`9| zVxa0l^*}Y8nt`f_+JR~=bpuri^#j$v#mvruq5l|^u6K~SiSeRPuJCC*8l)cMa`7Pb z4#i;g9o2(Xt?Hr~th!M>M1{V}^wF*dgk&ByWh?lH?6h&(dg! zdY8sS)IN%#szwb_4^_>n8LE0wJ5-GmGaHA7cC`uZ8l&bW^+ugdol%!FuQb$G=wWHz zFtsho8>TWz-Z1qB^~2O28cAMFF&?IxPz+c3R1a4}M7eG!tk(szez=-0@u?!)%j`_+ z&4{o*J3^hp<=qH%0rex)r8F9$JdH=F$HYutVcKpm>kHK@NnWA)GRZ4cs+Qzqq-sU= zNY$O1k!mQlBh_r`Myk`OAE`FbXr#KC#v|236r=dkym6{d zUCGzuRC{X1seaUsQ$^H`Q;Vq|r&iKvoZ3j^aq12+lXpyL-v;G69`#U?e~fxL$v;NL zN&YeFSBmkfZl0*etM1f{SEH#NujW!WUY$k#c(sv6eLgXiK-2aC#pUalhjzMC#hm;CaIIDounLflhozZPf}ZG zG)X;1<4I~KMUnc7>LT?!HASj=ebE-F7St7~9@H19LK+pR88j|Zr%+5*YpI^B{zJ`V zbuaz@=z0?{D~j`r`;;5VIta2aJs^t;X4Ig_qK)E;%cujQT(L(bC&Q9-bfP)LU;=SNHAP zx0mYpSo5@)9BbYY(__uoVs@iQRICF%JJKjvSamSkm zF+AQ}B1XrXJH_~T^N5%nZ=M&^MGuM&DEp>i-nB>+|JjvW+<0hGsjhkee#B7rJM#N;(X=gH+YzB$pWHVZfCYwoO zJlUK}7S~U9d6N@--YMqSw){kMr;R_!6fLKke^|d@J{FUc&G*)yW;%DL4o)$7lqYOh2-?ivVmQm3Ek?7<3NfB#ZWNPQrYNSf%sRK;`}WPjDi0dWNh+^xaOJ5Z@6R`LRgSaGVjFk1xkwDpHdlzz z*=C&>pKX38CTE+6#Pn>FirLxbIT7>BYhp0Zyeo$D%*SFh&wM4u^UU{RGS9T@L#Fdg zH!+)M`ieNm3=@NMObuDAJ;(JkcI18eW|Yd)b4(~^=a|Dp%r~`SFyBlO!}%r>qxojG z7|%D0#ALo%CZ_Yv8Zn!1t`)Js+%5(S%pb*Yfq6=d7MNGWc!7CGOct1bi|GRMjhHPk zZTpfq*YqHHpT6sF`!Kk%+4Yfn_*(G*z7Hai%lp- zi_NiOyx7!>$zpSkm@YP#ki{*F{r1O~kMocB>6;r>jwR+^F<4@r62m3tH8EOZJ`v+3 zX4?T|vcz-}vn8enSx0Jp6s!1BC!N0v9eIDg2~VzA77B!_RhF#0s-a3|5%`6T=neb}?FE{v^gL%wNQ0g?Up1uPOn5{PVin!Q3B?cFpH^uN`vqg+9Hrov* z$XfeCk93|os6N$kkW}z5fV%Cb$CFU+MzQk-0lS|CYVtR?$EM}LO zuSHyH+72OuOHDs9ywuc)(WT}fF}~DH5tB>JSz>yriN)+vbESwi=58@qV^T3(V_p=a zHRgRWUSqxzlQpL8P%>R(`iR*YQzPOsbC4KZW+sc_WoCvLU1k=E@nz;xF}ciKPZk?5 zv!9=q@N)A9YE!LGIp?aQu6u>=qutr*{d+lHuq|-t>h1nt^Vw~?9dO^JZa%x?Se~EH z&dz_w`ps>&!S~w(c78i*-62p8Y4A_;(>B$0kqCZ>#1|NW4#erhJ=aXDFmjH<1`7 zU!|PyINJd`QE&7tppEZmo2~lU#`m+$R{iwxVVkY`*~aFb5IZ(`vY%>>{q#N=*#5{? zKb>wO_q4uB=|}DGh~|rp`5rp!ODRt~+plJFs`c&gF^~7jGk)}yr=!o)5$9Co>FD!x z%*8W*>V5L3{LI7o-E4n2zuU$6Je=oEBi>BjBEQD1fI?Pf$D^6N&&K=Zjl23hUGaED zo~|yQ^RL7@w%W%R}b#3}=Mv;#JXSqHo& zq9eW%1HON8I2m@tFfrAd59!ZCp8a z)cX}@%Ww34(9PuuyJ4B?Mcr_N7<9lL@jpuxddn&#s0x|80eZ{ON zjuz1i(?#xgE)cn&xl)XJ;eIjhh3CYi7v2-oUNC!+SugYy(HlP#gWfn)3_0JT81=?E zV%!^R#H2Uw7SrA+iCJ&FEus&;5d-eG_9nwV7$HV|aD*85!Rcbs2TR4Y53UunK6p^% ze2XuOL0^1M7Hj*u@kktbofSL%T=9J|OhiA75rcl1B!>MkSB(1MVlnQATg0Rv9v9Po z_=lMF!#5)OqsvG#=#Rl-*dL+D{o#pX%=s9_q(6Qurv32;vbd$c>lf!))Sup$_=1fe zfPdNe0oZmQ#ScJ#F&lvWL4;)Oyv#EFQ>jd+Xd}Mu^fDlB3Y~%Z0i*g_r7zz&wL;H zKknZ%SFZUJkFfDWTz_Im&6oHKl9Zt)Wt=Pnji52l_z|EqK)Ugi8g*H zI_{_VVLskb?@!#7zUD_fOw5Mi7b14WDlz0dh+@R|bCbojySn=L2#8K}z4Cw3qhNDE(;CRK=)VR3VQS%s{rSh}}D{OoX)+w%P zPZ!5|3-zaY3m;WE=Pi8B#_x#_ZTy}v2tRqf;QgpQgg@HLgk``}wK*#~|1XI!I?3-)#S!hI3a*Lw-4 zseG;T%b737C@fTYFbY?wympjpC)m%|-w(gH_4mUDTi^L*&hw`~&GYw)$~n*9M=Ecf z=Pw!K$~li;S>@RnbUlE?SPUbJHDhgg8RJ}BFb?BY9*#qu7>&bBF&>8{ieK;I%Glq> z?~luD{QkJx#_x~6+W7tPFEQC4Z9+2LA4AFF7FVwv9^mRn2jCEubDqBGD*ykOr!Q7{ z7~&c+3h|JQ5Am{?g#0Z^rXkvoC$kXMBE};WgYk&Oa6Do$8IPO9bUYri`am>VeIPy+ zvjfrLKoSRGSF%`hknLxI^X}Q>O!6T5KkkPTSI+Bsm~87!z}aFj0V~CD0DsUx~?~xK&IK#p7ggi;JrZ55ud}8$AorVQ9l&E}KX@|NYp_lKg#k zm~DR(xta0&{jBa_MdIpDNFAFz`MXqU`TNKFVm`3 zk9wnLAw1mmhpgyNbhw@0e-pXQMVz;Ptb5VIirCekkT^DZvOh}8-=E$mcUQZcWwSq- z_sOyHYg|DAN8lCx-XM>&@luQryicCw;%z}8Is()9!lWj0hK-kEeC&PlJQr^Z3c*Ah z*F>(d@v4=fiSq~EB;Cs$$Ch!VTd%>9_yc{-ANaHw9f>Bgb^gFQ&KtOedZT9{ILe)W zAm4czKc4p}gx)7x7~gt6q!1ltx2sL$wg+3^oj-}aPxj6GiTBA-c|Sc059mEoP1^R-$>@71 zHEG+;CSyNo(zcHiFj<fK+$UR827!*J6T_47Z!tOoQ503Xd3Pp z<7xP_m`uYPVmb}~6|-rmnn>al3>Je^Fj@>x!SP~r3eF;nYfrJuUCta!h_KwoMYz_+ zMYvZ?B9z25!r#R#!dD{d(d|ewsK@SNRF8>bT#wVmv>r>vtR7d0!Kt`g3{SA0A_abFMoyiK>~X`0FF zt*^5-{CuXIL>oie)2az=BFRc@#8QDiS^ZM`Z0a(S)0lA&e!gj{h8~} zdp6(+>-*(JgWc~olYg$~?U6*y1baT*8m2kT3* zUCeX+Cp#ab_2S1Tn1^kv5 zTwj>)`bpN>c=eOZ70h@2B&WIj&JX8f9lsEp$vM`SQhyfv?PM{Qt4$&WtsWZoyg&->vDKW;0~wN~rB_4BpD z9*;H0D==7o&1QGpm8`%DjXycU#!GSh(-rpnteG5TeSN#p&sNy)r)F}z_4RF)Vcxn` zm`Ghu{_YBX|M9(T`s4LXOrp>0nP?ERi*T`s)wqQ$)~vR1h45ng9<7DrFUDi^&1U}| zE&A$cGx?hJrC{eNlh%A?%0FtIt5--aae3BVf-IkhzRg2cq<)UqGoy(uUjxd$w)jSQX>w;~- z$4#G(4jt4E7itxg%Ww34z!nrAw!uyE z8=Tg4vLdzV)q0-S$Du7=qOa=`ABbUFd?rS`E^!^&9kJc<8vl;iiJZ5r zBX*T0L$b{43i{J^g&EYku5gaX>k3Q7v=c5Bvrf251m6=S2Ay%A7PWh;e7U zEGC`tj+l1F$70qQUyG>1wsmAsh0bDFg+5|bh26!t3S-2i3KPY&3RB7A7I*!jDd>V( z)IYB0h#Q{z&+8Jgt=9!>Y`reHM$Ee4cCuLIu1_@a`osg&t-sHjc%5Q{)qcB4U7W64 zyrlZPZqcmzt=BCgf8B!DFLs!ues)D~^2h5J@YgSbZrDrZVKlSu-c->;I%Hy5!Ta~YG-L8E(y5nJ$2i@_a%4@sZdUbJk{EK>{XCdis zmvHj#agx4*-+IdXs5-EQBT$RAw1Hg|qM_psx%iQIOw&7)!C z_hb*;#BYjCWR>$J`F+^K{T?OX`fOXZ>wb?$-Y4z*DZRfU?qT~qA#rT-|EIVU=oo*s)tglk~yuM<8|C1A}FU8MI3_sK_H9_ORC|GnKC&*b|P^tR)-iG0QR8lZPpguU(ZOo$wtJUOmfOdh{^pL}2S zHp}MtB~CYyE!J15?vv<^suMUqo(1%A%S8^R|KoZNyiX3#`=R&Az4LzLeR6cpUlI4Q z?M+A=n>^Wnbp!Lp2N=)))RU9RdG!I-NRzjbW%%nUVKwfiE=ARNN{p-VrkGUYb1|*P zwo~{$N7}fo8r`V*+!}TfgMrvj<)q3*TQ3}lqg5Ua#HnID5K9$D+Bnk2B?EE2%F}^( zK;@(@Csi(O>t_S8NpTp2_r-wk$r8gs=yM|DNUNhk7)7o3Wla*3L71m<(&i=Iat*@e z@>B1Vu03Bb8-%-5AG_cw#gVG7_iMdH{p0(!;$5J>QnCyFE5Fg{G6p+89E@#GV!dcE zdW!L2>>(zDaiEwE#uPCdjCmr4;9@c0`?17u2p$rnA$VSlhu|YI8G`MmlIali60;%L zL&Q)VMiy&^+V&Y49yk*1jiZq!?Zy15z1!{6Ha^Co#;rG(y3)1UqaP-O4 zAf(LocHd&7;p+TIg*@LKL$&s$zMq?8-r`5Nvqe5!SAI> ztKU5Uk4uxUD&FutHqvC#50~lk?Vv zh^5J^q&I~4k2JZ%snqX=_yt){E|oUp@sTuXPNS|Kj|F5sxkh^Ycyu_OnjAvTs~?X) zNRykSmyO5i)2Ydr%pV_)GULY+M_>VB^~0Um}kyx0%6s ze_UCPc${e4Yl{K&b)2}j$m7IAMII+k6|p1ciouS!Pz-q=ix};QyTy1%JSiqS;$<=2 z5&smk9Z?p+`&rH)gLW7qhV3v$jM|}AjN4(ln6$(BV%iSB6*C?`ifE5Ni$Qz5C5G+s zl^C^0$1};eJqC+OdyEs)_LwAQ?J-A02V5iu9gv7&2RtH19q=+)T-(8oA3D162s+|J z`gNoom#`!LCr#S%i8`WcCN*itDej2D(xe@)q$5U4lXl$FjyOh|wBwg`#Oczc9Y=J+ zB5Bf&XV3}1k|yoAhMjPWG-<~->V$`-NjuJQC;UyCwBwz0!Uxi%9rv^ozLh5J_-CC^ zHH(_G>j9lHM4GhgBj}8=(xhE4VP{N|Chhu(I%AGBY1dQS85c>Dc6}wCkw}wvy``P; zh%{-}U)C8fNt1Rxq6!~NlXiUuRoLzpQ8! zOli`t_p}Ntq)EH}vnt#uP1@}MUGRuBX}5hfU!tzg>~<$zHJkaoF2p_` z*+ag4uQ~Hkt3S=;h~s&Dwpohp`*`_j7asTe_n;RN*B|{J*vsZo?--xDyiMex)>kX^ zv#vI-1>G>s`l>~rS~Z)=bFJ_5@VH*}TX%irwUYYBQH&BswIb2I7UTHER6-~ZkVZ`=C*z2iwQH|}J`xTn1;$DPNa72}TH zcKMshe18gIAHRNizfiuNxQ|~Syl*JKJ`xw-OjfLqw2xa3GQS-2s`*}3=B+2Y&(Zf% zKRcfF-uPks!>*X>-wR#+Z$Q2d_10$--1EtH20@`1!@~lR>bo-OP_-l9%uEp@$ULe zf!fBC74g9kcm6CKf}h)XfBuZx#*-EC=};G+4aLFvcxoF@R>brEn7#SQZHafq2{vAe z+by+?CoAH4KaBhq-Vf7Y-f8KwNfi|x7^Zs++@1IxpgYV^3%gtm(Klq+bwa`pf^aCUPc#X{U zBjbK&r0YlP{+ajLsO6S)AN)Muk8B^;53*uBu&?U}S<#PRU)LU4(T`-5&p!%>SL7e% z^N-pp|9(FIep}_=&*$H-GJoiOvSNFQyiZnaFWG3R z8;x=OAuE=>e`ivZB4r`{YmUal1oU zx!uL%U3728pKuR!IkZ12mAgXT-h!T@!R_$x$TSFMR16VCx6<$ z=!f1X^W$5HyiZnaN7g2P-t$%=6f5A)mmVY&WjJ38F#G^HTYVmm_1n|2_;tP?>9MXKWJN!+WBs@sTiFjB=lVfb^ds;-S-CxV zKRhnCU21&2Pv-kwh`mqdx3iX@4)>_vt>5oqo$EJQ(eJ3v^^dIhoWem-w-nvHJ>Ps4KSs}+5YPs2ZT97O(~^`+O=kH0%8bf((;2Q^vZCE=hHICsXqWGs)DpJDXX3SdyUCfZU9w_% z(=&bkGjpGR_CGt*=Rb3+{Ih)iS@>^7{#ic%tgZ6T^7&_Nm4BAcKWnS}vwi;A*y$X7 zu3A4Yvwi;ATjiha$A30?f(JlR0bGac|ZX|hSW zx&ubfSH2E7jGSk><92ECLFsBf2W88>9^W0WNRzg_zB}HRCaqr99iK~+RNvll{>>*8BUEKrYq)DsC_rQ_Tq}BC3Fjbm#@x3wA#`ne|a^Cpf zxXQ-&#_iJey|Gc6d|7%~Z+s?A;#}%=z0senCr3zc=#7cesCK1U@@p04uxez;Vcw0c=TTq{l9rSf(C z@VYc<^@e`dTRo`-SzSni7TIwIyQN-zN)eP z0CQ~nj+;>3+P+P&BB-|I6GF!(Pu5p8wqK2vwtdG!T#dfmPi`XJIBb^WefO?>Lh9J$ z$vmpgepKTM+YiSA24b}Gi1c}VRT3+Lfi`YJ=-A}RJgUzA@cN?icoyP;IEQC$HjzG$ zB>UsyCZvu{p3I}_yk0(p-!{75G6av&(Dk?`ve@YSLbkgJL#|>+t}!y)Tm7!`AorMN;dRhvN6OzWW^_eQ3Tu z&*#|t19{%&XdCCxm!&nXzhq^9y`R;fqQBVFE^jkA!{*V_bKf28xm9~3eS3UPsiM7+ zzP*uKwdZ|4$5h$gKEAzua_#YVZ?I2mdzsc#As*w~8-ryP?Tzv6joGR_?`LDSYHzGN z-oe<)^%0D%I4@iX$GY`FUSZqw>mwTL)(4qiANlXQ>lt6&r}F!5Dj)Cq!GGV~&hr1i z@4G^(XndB}=9L3i7aX7YO*uU@HL?~|Q=sn3&q z_8)?nwd({yq2F@HJV9x z-NM(8N4kC_Bk^RuAL&o~fr@_c^KZ9TvSNF}J}y6*&p*%XYx`SI{)74FRqt#2RZrUM z9^?15?beg+mgv41_uQhMV?30)6pli@81eZ=F&>3AWO2QVD`!3)`yo+zupjQX@%!O< z8^0gk6%(Ep71RCD{(Lgq57i<@V_z{CjfrA78uel{8VkgDG%gjB(O4&@qwyyZWALgN zjKP1za17dBKt|kOk;S#{xyf?opP$57?4$BvERGPvv8cE4W3gI{$Kv;5G8Ro@Iu>n~ zlG#`c7cmYK#b6wMK^ANMbCijH?lK*Ri){Qj++gGP$AgNi@y|;J{&~sp0K6!_!Rd11 z{qz9*+txn-->JMRwA)QNbSy=@k0YkP*88dVvk?2x*YlD`iNScxP+aYJS3h>tbCau8 zo{q;=D&OMEg9B|`DLfE&$!~DFoOnMy5Rcn<@AG`3{x}~gUX@>Sh}C7D|FeF42>wZ* z^N^zLGPQRIhKm`WcO;8dhr0OCk@Jt@9QkX#pL#z#6sv6fVLslG^Nr$q<%ABV$TKZ3*2EWg(2a_s%&aG2%l*WsuVv%@h^#1R-J21npXvRHeBYnRXW>5ub` z;&l0q-p54e2NSW}#yee(y`N0Pjmno!#Gk}$A{rG}<(~U1^Lam;m(TlsqVo7iw7ZZ@ zjzm8(JrXryb|fZuKIbFFK4N?fjuDe%FpI1srHhUJxjLR#w96CJVzuJJ zT3jbawYXo5Yw?_z)M7JPY;^Hu9P8_mD^>4U^d^f9&MzmvJmq;vm1oCdyvnPNv-Qg9 zBv(J1gp*W`$(Sqh{M{-soQx|)o}as2j3?tEG2!!hVmcYGi5Z{I6LA7Q7Xv;|w~7o; zKxZ*J0RzPN1dI@q6EIdxPr#94b^=Z$i&axxze2}SGzBwN9#6q9#bgTBi0KquFJ@El zI}s=1QL?9l{Vk#zy!Bosve64#fuN*s;lBrlJztQ_VlF*-?%S&v$)8*LvNdbSf@!rSD zKK^9RU3avGM1>1nu$EN(f?wG*7~@`b1436)2u<3%w(9sd-Q z)3ME^s&_j2h}r4bPsDVbL>6nNyF8I2=bOa>`Rl!(c^|*PS{wfh7oRznFoW~OF<&qP zC6(9C@clZ&_v;M2A-}=ta^ihH=l7B7@p--bmoGRAA^lQ#7N&^NS(vN1wXVFJ`nc>YT%vN!#`R*r^NEV9o$cC5968@DUQ~HD z8~?KLbFj^?)So%NKaQN|7K7?xl z6VthPPR!=wpCX^*GnbP=1FFTa0b|6d0jG#@1D1+O18x`72E0HPw=}r+g0n3-|1Ew{ zd2}{*UaNX%V-GRm^M7J`HqH^VvvG}xd3b~@*39$E>BxC+@eldyy^nKT{@@&Zt9s!% z==f`vH#onX`114|RMY1?x2O>@ALB$mw|9id=k!h>iw*N#dx<0Gx5W&VXY;W@!~*M%HFW2$aukvUima2TM z^UJ9(&lchi`BjTte?mvjUyDanFJ6RAVzLPDiRmJID`tz(?F!Xf?CUvl-dYT!&v|Px zR!kP-1TkHVxr*Q7rHB^UJ9(&wh!=RgNWiQ4E$K6T>C=RE(D3 zJ275@_P-^QCFm`tOR%SyEx|z|&c`G%I3H(`#oF^-zhlQzaz0k5JUt&*iP`zMN5lnq zS`040J7lr;0$>|3=}Il1FAtXbk>#`|P(ZS2}j9ZOk^HdoQFTIPL6&TotU^f|vR_7a2T2*q$YjuoTjI8BU~ zW2u-d$67I6j&)+T91n=N5YLFgg?Lj8FT|%}bRm8a;|sCV)nsxZhKlKhI6%xU#1s)L zaJCq%z$Ie10=I|}pXU_g6?j2RR$#N3u0V^Jtw5)1NUX#zVz3gU#c(C+#AqdEi}6aV z5|fpp}%vNEEh>P%R zvRHGG8{gPb&wt)-<1fMn8-EerR9w|+7Z*Bm9$S2+@_02mUPmUYv5T0l#uzbMjam^G z<8-oEbFr(RIdXnlEVTY5&W{{9FD)*Szux+q_WT!)Xu^g4VeX4j#^jU=weAThWe zBgOD~97WcVR!7$(k{@4>`SMAtlk2fsnzTB-9@i@_yB_Q1lUCyfY?L3|fS1Ma2E3Wm8VPQaA0+sreA4PL!87us1aHbGt&S6XDoxtBB*FKJOA~Zmr~C=tZ$3*$(uaVz>$mx5cdw|vs-@KzixKe`n&qx89JMa(r*&X;aV({GVsH9&q+4HiVuEybr~5qN zE=-ap?RpIE!Y`yryZ;F9!g0J}lEJ+gFNXKx3^BeJmymU&tA8(Ul}_&UdG5sq>GWQo?_PW&o!#s6-iOY2QR6^`hyd9iA}^CQPnydF2nU+?|Q`?w!}pkE5^ zM@bCt$D4|4xZl-}|LDdo`6IT-Z*;nh2b>=~fVRI=y$8@wj2^&9F@6Ati^&6s#Pk7N zKo+;Sdgb6jS3i6ZH^^^rx}11FeGreTUiKhfP>*ye7v z^AI|U*+b|p;!oI34E}`CWU=;7E>G-O!oxUJe$B(qj~q+!!E@qYRk<|tqG7%mb~#1)FGDf;DcEX76Ks`8|WN5!;=zlm89ABcDy zxJUI!{*@!gQv5gq`Rl!(c^^+;6#Y{01P&3yCvdVDJ%RaR`~-d_CQslNF?|A$h}jc( zLBx~TECx^FYcYHhUG62LCo!BXu6@$=BXulgPvQjmRjKoX4VI;F1AbxaZNM@y-heyB zWCLDMe4~pivqk-tf)c)yU+Z)^e9HOJQy6fc>OY0iV)7IUV)_)$7qh2uvxtq@C`BP0XIb(;}Y5dt&e` zz7xY|(f1Epj%RIu%Bf>1dlsYVm+%)HCI)}OX=3;nTp&h&!F6PD?O%L7$5QqeJS@NJ zug(u0OVMAk$;Nv>^?vqOysvzC4xfv`bLj9#weuVTF?tR)WO40tz8%L>_8bnCU$x2k z@$;6YB9Ox%>vF%Zc~Xzu|7x%l?L<%Bx;*c|*ri^a2`H z9>0JO#N-A1S4>~Pjt{8b3+O4L5xa^(BMu^qwT-@ij-{j#bL2OAKYh{lD|->kZT**U zwXOdW?ia(Cut|(w!av3MC2aE`nY@HPV)_ye5VMyMiFg?+$YRaQu3fz1@&~WrHkF63 z;Ll?83O*L&SJ3GpGI<62i0LahLCjvkFGakHtHt0|JS2v%;$<;<6-d}MWv?SsdDTB${_qV~FM0#ts62iHT^?3D zZ(xv^zJWc(>-o&wD@Fq?b!#8n`7`=%VWO41AE^q2s%HG5kD(91-iOOr5TzT}C zYd3xif0V!8>2l_Myp4^j7rc$P#PDtWM~vRawvUkU+vp=EZ)0yUeH%xT#Vv2U{J}de zfA|ijt2}xKi^cdItQC`YaGT;AU0fNNiw`n9qVh1q3u2VvJu%MkjhJNU^(dKU*h9=R z93kReoIw_A-gWKAj-}*Xtd!sAeZ1$}c@MX%UicoKPf-@^+k&)&noR9^MI z%NshDqW7`GWAxX0KlOh0K8DG!`oPCKmZA@EIQ>%m0UE^Q1N=%%Kfr@x_5t1$u^FaF z2Ai>)7;eV#WU*nh%a=Ho(#`m#%CpV*m52{4*4E{+3q% zU$(rI{tH!)%XhjQeB}J_BMg<_;B-0he)2l)z^xv3ahq zOBT1ddgbs_pZ`-_A%CsY<<$Gxr?^9Y)fV3$$5ONfk11cg1uv+4y)VyvIX=Uu@@qbG z^&-bo{2AJ$iuZozeSD7I^h?3#7$SzBV_z})97l=q=cp%(>pyq-GRG3WzWU(d0GFM$o}AIZORNPOW9Z0pmO{dZ>qfJzrH=kQcRZAKksMW$JgjVzZ86p zpNM!Cr003lo)@5qr~JJ)Qjmim@nd6Tp|YF;x;k-7LSs}hHqVe630^d zEnZf6_ANdX@jrCjsCxfHwHW>nlf~$NSV0!o{?FA<9ZT8&@UZ- zg_xAl_0NoJ^l|vk#+QQcFj9W4)8*Lv$#T?7_r4v+QuICURC)Y8 zQZe}+uZijR_*TrmN1vxj{DA$*V$Bb(e&kq+f52HPPkz9KV)_GqC1yY12C`TMqYCBF zu@u4lPX1c&V>?@33br$UR=sdL^M)90XTB8U?M$a<7{A`dl`|iY?ai+8Yqod!BS+4E zV#d+u{3oVPOt&|uh}rgLridNP0x{UZ#3biGarI+I&Z}oGmEY)nwDJ9GW3E)au#LG@ zjM|vT#kh@mLrmJ3ugPMgi!Y}E&CkhVZD(K4k@NAHW9f6g5gT7@^yR4X z%U5O2RQ<5ZoG(UIW{ntEnd`))%KVNjHoEvSy7+os%p)ofyO_UTP^CGvCJVY%aI)JDZ!u zaA)(N80~DH72}=Fn_{xF`9w^2Hs){4yJcsWH|XxhC+u#z(Jw{a%`h?UZVnQY?xrB7 z-OWNV>u#^5X`UB@p5`kt z>}h&7l2K1HT8w*|6U3yanJcC}%^ET5Y3>)%%e*cIy$oI?!(L{X81*tok;S$2wVz8J z`FX076Cd%L*Uk?$2Ux5#hwKKi)v3Hq1^RWIygHmbbA`Q^lyr+rK& ze~b5nzJ6T$nk_co>2l)zlzfT#vc9I1h<;{(81yp-h+#i7nJhN+bNx#k`Tii&VB`Cn zvzfmtk~+T0)p)#guPSZ!VrqiXYs7+0J2uaHT#86u|D=3p_aHj#*d zW~mqsGznQp+IFIWrYKF?cH)61lO}CD$w2eHG-=yO2b#XGQj@m5Y@it>P1<%b$V`zY zZTrC>Ghdpt{Rjt{E2K&Fr`RyakGo?j9b_J2c_|xYUQrw=U98&0#bu5q3^rdVE*NZf zcumVS*z^#i!Dg5k4>qI3WUx70Ob45j#B8vcC1QwKA_hauWnwtQ+$csv%z7~%Vm64$ z5c9H_4ly5y*%0%U7z{OS{!WHNO;0fzYIYanp=PX@3^m7y=}>dJm<=`aMGP~m#9)}Y zN(_gYyToXic~p#tnN4Cc%ruGVF!LX>xMi5%o_2NHO|q-`&X(_LdcV%NY*#Z}#BOH1 z80=>1#Bet=U5s`!=Zf)e<{~lK&0H;}yP1c?Y&Y|ah~3RU$YKpAvDD`}axBHWn~znV z>~6OChwANa`it4_W}JxOW(rxX8Sd*j@;ydovHbPk&%BQj=GUqhj4=0$;Ry4p7>zKW zi}484^$ju^VfH19jhqZc{R#GP%OCDxPEvWahdEb__b`_$ZoMndKUeY){pvoI&z1D) z4jgf2S z)c5j9nr8At`J1JHmZUvCm9F-2)b_b#vTWnrbFnRHd+gZsQ(QB3kDM-KuDvF*TK;CW z&gUjL|D5tSkt3`xML+0Z^EHwCSYO%sd|TK7A^*40vk-N_E$rzg@?gb{-7JYh?0s@# z-cP(w*5&+7X$PEabvL%c`dJ6t&rRfX7pHFXdAyD|%j%tN+@_!-Fy63TufvX5kS~uq zVo6@doaZj53rR;epDcN)^*6iuWK-{xSLFOnSw~!#tG@}IaBE%%op7JkemTNUc3d}+ zkGMPt0&Y1WI&Ra9qZFrlK&Uok*Q2XaXQx`uW zb8PZt`%1&_B|ev>e4d4%%I4ohc6iHfCpJ#cb?HBw$ZkLR@2rSi{Ry#SlPB{lEt*o! zyQg?J9B9g_Ff^xmoNTv`QqTqa(=XOKT^D!3DbyQ13rQD@<8y19NI##jBnoL4`yAdT z@;v1oyV*V%S;)HB=j%3+E1Yj1cr0KiH=i(hiSymO!NE>$o?ddT^X>e@E25ojKPJSE zO`cpnbq|^sPyf-pc-N}lW+|>e&Tpp=LQBvM4_e=TEVy2~+5Jf~>7JAFpKs1@rwy(p z-WeNhyxsix`Q&qP{G>ONF5Z9c)9&{3-ja1kqm9?6pZ%fUk^gHZUAz?cPhn5IrMPN4 z+|c~b>QOW4o|AI@YvDY1Tk>(#>Pa){;#|L4z%P)ubNQ&%gJ#mjx&E|7ebGg6?qkN~ z>Ff8OeJl2#g`}_R4_VP4^v9rlJ3)W9UnTSVRlVoe_LHpWXEFeLZz(q^C?-+IzMPgXt9j$=LPo-Z3{ z$E$w4*YyMKxYUymtNyZqb~)?Gccs@2wEeCpcY25O?xn;0^M1oHj=FVThGxFEQGcd& zy#_zCpNE$4XE?;h`R9bG^KmW7UN}zWt@Wtw^Tp&JdFjNsj}f=0eeHO+U=*g=e13ih zYWqD%o?(6WJy_s#VTx!8$6;PRp4!Hf74bOG#RmssSw5axJKAQl_ZWU}xUVa2KZjVq zB{>9_+jzS>=I8Jbm!GW2A53)d;Y3`SkEeG1nOG6u!smc)R-E5no2e_tEv?1f`Eu%f zd4YRWyZk{N99e-*?Hj@t@ujO_1TB2!qE+0p2a<`PoCpN%8)+i?N6xpv5WI|bb3mMgdmkLTJiP}@9YK2J-;`?K=x#rL{6 zG9On+?se^v`TbA}?}KW}*Qa*N^*}}a7T&k?uY4S}jU)5zwD7*8&+>89ZuuXsh%4}Z z867CM@P3(Z74Ht4xnF9+>wVsq@ELT< z)o-TmDedRolpbKqGrQdusO{&1tQfEOSq#nRp{~e7U6F^{<{>Ncq<_K4d>-nGJk%9= zsNLuEFO_+~`%3b8s4MbNSLC6#dB}?Xgqv`3J`Z(8J!&@|n=0$^K9(8zdejy5sNM2E zUs10RzU+=0qL;Bq^;_q2qITOK?+dZM6pveZABCL{fcH_X$;CHkf3H~H0$z9Z$*X>> z&vOdF>u#Rp*5f_!J_haAgST)~K417&WxnVw-=DW~`7$2&zEzoz*YRyWe1N-h`3k`Y zu0Hu-u0Ms)`{ZMJKlsSy2|vPyT%P9WBlO>uzo%N~iH$#UdC7eJ=7jZL79;uT{4MpW^jgd4XC#Fq+AaZTt4;2G1jWhA;AQ>1VEeGXME6WS`moHdmcYN=spHB;xuqrmH#c0KZX<`5ev#qB38yWg|^JW6v`cE4x+`(g{h53XML1NO|?*4W?At?dQd8vFaXwY_KuSC7{PkImQP^}&jI=?<0k(9YEh z+L_bx^}=?Q^`dr_^?2RO_LJAW7Uk>l`d3AJ=u}yc*QN9cZsB#QmA0M~$CJ8p+;=ki z-frP_q|0rbJAQ7a&d0T6-OQCLZ#^EOw)+>d; z-0POOkNKn3YK{G)7F*kC;dO+k^5xX|@&eC9>W6$wP;FjUoS#p%nYtn_9^~SZLFU7J z9Cc;fU>`Twe4dLd@I1NQKav&OJJ^e2moKd`yXNyzt6ppU7VK^I&F7=G`N({} z{CVMn8DG6E`_{(2r|$J6nf;xbwnCvpj!ZI6uE$A=&|*v|YtJ;6&RmDXrff z)U6-;HLtpjEw3jd#ub7cUA=He{4!sUx}x5@uDqUHu6khyS1;;--{$J+e5P7%CQoc+ zyPI7<3W@j0X*qx1_>Q)IJ$b$I^8A@y4xTrAKA)H8&1_z>A}^|(PgdkzS7qzhlmAd& zbai=yu4wmxwj19sYMYmI>&5x=Hn_NYvK!+IX)jkl>xG}?>+}5rwmwj&RYIewtctMe(3+V*zw?d^i;{|{eh9w0|i{{3eN zN%p=syPIrwdvYfbNC<=k0?fc9ksu_%hC?PWO%RZq5#*3#1{OKw6j2U=nQ+LV2*OVh zg3Q2*iX%ToP?3T3C>s!01OZ(n===RXRkK^o>-)|>pZPvj^>lT0cU5(DRrjz{zA0lL z0mIv~_ROr%_R`VWn%)ObfuCe%uJN0jEBCv8q4oVkpgC^l{Z8rlJdNjr4>Nsgfk~fP zAkVw$p|$-7O?uP*r=vS)JRj8bG4tN0(bPhDQPbP^NI~my2SevgWG9X1gRgM=-Xin< z>DVH9U(=iSz9mzOZ2Cpv^Cn~MVCcMwF4puu_%Hg6EirymOJv8bPCb}eV*G-k^D$@b zV90NLS55DOyTDH}wbb~{ES2M2zqzHxFBtM$uy!!y*WX>!`{2p+n^|uB;{8ichWswK zewT;KF}{b!^TB5{y?KxOXl^grqUr5%DC}j@gQ0u{)(*P)O5*)Sdc6gB&yo7E*OkPK zA28&{vv$z+!|zowy$_Buf5E=Suk0uD-*nD@Z$IM~4Ec>&I~ej?G3kA9Df}d5mGSGX zk`r9NF=HPALw-}%4u-7t|{?bJg&j-JN_{r2^CO?_Ogp3ZL2^gcL5zlCFr-{2Ve(Df@RwU2-yzn-;&A-_d@4<6}#F!E>kjcqi3 zQyXO$=*Y0mSH{>!z>wdZwSytQ@#8eT5AIFBnd5Ca951K4ehbDv0-E-uS`OBZ_r93+ zt6B~xXnH?;f_zE+o@D)=B#(yt8v6*|!xHvu?RYPX>oj{GRCi$krQ3Nv5fHxhWw_i9Sr%6WHr4H zo=(5srN(dUQh7S$_fqTk(r`IeOgtZaPSanm$9pt(x%^4fSNkWIoAjy6!}-csJLu+% z-wW6CDRrg1qkhbBOJovU(o=3mAuNl9EugL=; zzs5cSySXmxdF|h*@qF-c&DTvfUpL9iq4dT+Qn)FUJ{jC(t~W5$E@r=>>3#4|ny;H} zzHXN8zdGd@82bq5<|`?;7{6f1Z~hid?}M}9XVm+ae2)Ic+Qn~~@`K&=moA!kKB(;? z-s7O>i`*%vI{6ua)^yc&F>k_s(9}DdY`;@JI`i9Z1Q zOV33laomG)(2Ehw12OSj`vL#OzRYeXnKAy)%|0j(y88_~b1(w_K%YC>{Mh&d)}9!& z+l6L6Xs?p#7_Qs5_GNZE$-;vYK@EIv@j-c9w@Zcnh22~y56Umya?Ou$c$AEimNwUk}pw4RVymZ;(?oeuG>{<{IQWvd|!Rk|?+Dfty=!BH*_zX8261 zQ8qI?(PuWY8#ENNJL{NUurWCu2?WZ!*;+4ex@PCYeg+nq)p%Xp%+X z=66xh_;DT?pVM(3*$UXJ&;Pc?aA5FzCe(xcKH&SX_w2%T)SLP7TRSK8DKmP+}vUw@RVa6@+@?99$PYHbQ%0D?ZXVke7a1B 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%0A>JI$DvV)9vkE_C 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≪DaY`1Y1e`A)Lt|uU-sd_^T2m!ZcMHr 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 literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/default.png b/wolf3d/code/iphone/default.png new file mode 100644 index 0000000000000000000000000000000000000000..93416659df4ad4043ab89b05973802025dacb255 GIT binary patch literal 182887 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

    KQ91xDT$j0&pejd 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

    KQ91xDT$j0&pejd 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 + + + + get-task-allow + + + diff --git a/wolf3d/code/iphone/gles_glue.c b/wolf3d/code/iphone/gles_glue.c new file mode 100644 index 0000000..08ac8f7 --- /dev/null +++ b/wolf3d/code/iphone/gles_glue.c @@ -0,0 +1,134 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + + +#include "wolfiphone.h" + +//int registration_sequence; + +#include "iphone_qgl.h" + + +#ifdef QGL_LOG_GL_CALLS +unsigned int QGLLogGLCalls = 1; +FILE *QGLDebugFile(void) { + return stdout; +} +#endif + +void QGLCheckError(const char *message) { + GLint err = qglGetError(); + if ( err != GL_NO_ERROR ) { + printf( "GL ERROR %d from %s\n", err, message ); + } +} + +unsigned int QGLBeginStarted = 0; + + + + +struct Vertex { + float xyz[3]; + float st[2]; + GLubyte c[4]; +}; + +#define MAX_VERTS 16384 + +typedef struct Vertex Vertex; +Vertex immediate[ MAX_VERTS ]; +Vertex vab; +short quad_indexes[MAX_VERTS * 3 / 2 ]; +int curr_vertex; +GLenum curr_prim; + +void InitImmediateModeGL() { + for ( int i = 0; i < MAX_VERTS * 3 / 2; i+=6 ) { + int q = i / 6 * 4; + quad_indexes[ i + 0 ] = q + 0; + quad_indexes[ i + 1 ] = q + 1; + quad_indexes[ i + 2 ] = q + 2; + + quad_indexes[ i + 3 ] = q + 0; + quad_indexes[ i + 4 ] = q + 2; + quad_indexes[ i + 5 ] = q + 3; + } + + qglVertexPointer( 3, GL_FLOAT, sizeof( Vertex ), immediate[ 0 ].xyz ); + qglTexCoordPointer( 2, GL_FLOAT, sizeof( Vertex ), immediate[ 0 ].st ); + qglColorPointer( 4, GL_UNSIGNED_BYTE, sizeof( Vertex ), immediate[ 0 ].c ); + qglEnableClientState( GL_VERTEX_ARRAY ); + qglEnableClientState( GL_TEXTURE_COORD_ARRAY ); + qglEnableClientState( GL_COLOR_ARRAY ); +} + +void pfglBegin( GLenum prim ) { + curr_vertex = 0; + curr_prim = prim; +} + +void pfglVertex3f( float x, float y, float z ) { + assert( curr_vertex < MAX_VERTS ); + vab.xyz[ 0 ] = x; + vab.xyz[ 1 ] = y; + vab.xyz[ 2 ] = z; + immediate[ curr_vertex ] = vab; + curr_vertex++; +} +void pfglVertex2i( GLint x, GLint y ) { + assert( curr_vertex < MAX_VERTS ); + vab.xyz[ 0 ] = (float)x; + vab.xyz[ 1 ] = (float)y; + vab.xyz[ 2 ] = 0.0f; + immediate[ curr_vertex ] = vab; + curr_vertex++; +} +void pfglColor4ub( GLubyte r, GLubyte g, GLubyte b, GLubyte a ) { + vab.c[ 0 ] = r; + vab.c[ 1 ] = g; + vab.c[ 2 ] = b; + vab.c[ 3 ] = a; +} +void pfglColor4f( GLfloat r, GLfloat g, GLfloat b, GLfloat a ) { + vab.c[ 0 ] = (GLubyte) ( r * 255 ); + vab.c[ 1 ] = (GLubyte) ( g * 255 ); + vab.c[ 2 ] = (GLubyte) ( b * 255 ); + vab.c[ 3 ] = (GLubyte) ( a * 255 ); +} +void pfglTexCoord2i( GLint s, GLint t ) { + vab.st[ 0 ] = (float)s; + vab.st[ 1 ] = (float)t; +} +void pfglTexCoord2f( GLfloat s, GLfloat t ) { + vab.st[ 0 ] = s; + vab.st[ 1 ] = t; +} + +void pfglEnd() { + if ( curr_prim == GL_QUADS ) { + qglDrawElements( GL_TRIANGLES, curr_vertex / 4 * 6, GL_UNSIGNED_SHORT, quad_indexes ); + } else { + qglDrawArrays( curr_prim, 0, curr_vertex ); + } + curr_vertex = 0; + curr_prim = 0; +} + diff --git a/wolf3d/code/iphone/gles_glue.h b/wolf3d/code/iphone/gles_glue.h new file mode 100644 index 0000000..7942186 --- /dev/null +++ b/wolf3d/code/iphone/gles_glue.h @@ -0,0 +1,69 @@ + + +#ifndef __GLES_GLUE_H__ +#define __GLES_GLUE_H__ + +#include "iphone_qgl.h" + +typedef GLfloat GLdouble; + +#define pfglEnable qglEnable +#define pfglDisable qglDisable +#define pfglActiveTextureARB qglActiveTexture +#define pfglGenTextures qglGenTextures +#define pfglDeleteTextures qglDeleteTextures +#define pfglDepthRange qglDepthRangef +#define pfglDepthFunc qglDepthFunc +#define pfglCullFace qglCullFace +#define pfglColor3f(r,g,b) pfglColor4f(r,g,b,1.0f) +#define pfglColor3ubv(c) pfglColor4ub( (c)[0], (c)[1], (c)[2], 255 ) +#define pfglColor4ubv(c) pfglColor4ub( (c)[0], (c)[1], (c)[2], (c)[3] ) +#define pfglBlendFunc qglBlendFunc +#define pfglClearColor qglClearColor +#define pfglClear qglClear +#define pfglDrawBuffer(buffer) +#define pfglLineWidth qglLineWidth +#define pfglBindTexture qglBindTexture +#define pfglTexParameteri qglTexParameteri +#define pfglTexParameterf qglTexParameterf +#define pfglTexImage2D qglTexImage2D +#define pfglTexSubImage2D qglTexSubImage2D +#define pfglFrustum qglFrustumf +#define pfglOrtho qglOrthof +#define pfglLoadIdentity qglLoadIdentity +#define pfglMatrixMode qglMatrixMode +#define pfglShadeModel qglShadeModel +#define pfglRotatef qglRotatef +#define pfglTranslatef qglTranslatef +#define pfglReadPixels qglReadPixels +#define pfglAlphaFunc qglAlphaFunc +#define pfglViewport qglViewport +#define pfglTexEnvi qglTexEnvi +#define pfglClientActiveTextureARB qglClientActiveTexture + +#define pfglGetIntegerv qglGetIntegerv +#define pfglGetString qglGetString +#define pfglGetError qglGetError + + +#define GL_QUADS 888 + +#ifdef __cplusplus +extern "C" { +#endif + +void pfglBegin( GLenum prim ); +void pfglVertex3f( float x, float y, float z ); +void pfglVertex2i( GLint x, GLint y ); +void pfglColor4ub( GLubyte r, GLubyte g, GLubyte b, GLubyte a ); +void pfglColor4f( GLfloat r, GLfloat g, GLfloat b, GLfloat a ); +void pfglTexCoord2i( GLint s, GLint t ); +void pfglTexCoord2f( GLfloat s, GLfloat t ); + +void pfglEnd(); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/wolf3d/code/iphone/hud.c b/wolf3d/code/iphone/hud.c new file mode 100644 index 0000000..674e964 --- /dev/null +++ b/wolf3d/code/iphone/hud.c @@ -0,0 +1,249 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +#include "../wolfiphone.h" + +hud_t huds; + +void HudDraw(); + +void HudWrite(); + +void HudRead(); + +hudPic_t *dragHud; +int dragX, dragY; + +void SetHudPic( hudPic_t *hp, const char *image ) { + texture_t *gl; + gl = TM_FindTexture( image, TT_Pic ); + assert( gl ); + hp->glTexNum = gl->texnum; +} + +void SetHudSpot( hudPic_t *hp, int x, int y, int w, int h, int flags ) { + hp->x = x; + hp->y = y; + hp->width = w; + hp->height = h; + hp->hudFlags = flags; +} + +void HudSetTexnums() { + SetHudPic( &huds.forwardStick, "iphone/up_down.tga" ); + SetHudPic( &huds.sideStick, "iphone/side_2_side.tga" ); + SetHudPic( &huds.turnStick, "iphone/diractional_03.tga" ); + SetHudPic( &huds.fire, "iphone/shoot.tga" ); + SetHudPic( &huds.menu, "iphone/menu.tga" ); + SetHudPic( &huds.map, "iphone/map.tga" ); + SetHudPic( &huds.ammo, "iphone/9.tga" ); + +#ifdef ALLOW_MAP_VIEW_HUD + // Special setup for mapView texture since it's a scratch texture. + texture_t *gl = TM_AllocateTexture( "_mapView" ); + huds.mapView.glTexNum = gl->texnum; + R_Bind( huds.mapView.glTexNum ); + pfglTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL ); + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); + pfglTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST ); + GLubyte *yellow = malloc( 64 * 4 ); + for( int i = 0; i < 64; i++ ) { + yellow[ i * 4 + 0 ] = 255; + yellow[ i * 4 + 1 ] = 255; + yellow[ i * 4 + 2 ] = 0; + yellow[ i * 4 + 3 ] = 128; + } + for( int i = 0; i < 64; i++ ) { + pfglTexSubImage2D( GL_TEXTURE_2D, 0, 0, i, 64, 1, GL_RGBA, GL_UNSIGNED_BYTE, yellow ); + } +#endif +} + +void HudSetForScheme( int schemeNum ) { + switch ( schemeNum ) { + default: + case 0: + SetHudSpot( &huds.forwardStick, 0, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.sideStick, 0, 320-100, 100, 100, HF_DISABLED ); + SetHudSpot( &huds.turnStick, 0, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.fire, 480-80, 320-80, 80, 80, 0 ); + SetHudSpot( &huds.menu, 480-64, 0, 64, 32, 0 ); + SetHudSpot( &huds.map, 0, 0, 64, 32, 0 ); + SetHudSpot( &huds.ammo, 480-80, 320-100-44, 80, 44, 0 ); + break; + case 1: + SetHudSpot( &huds.forwardStick, 480-100, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.sideStick, 0, 320-100, 100, 100, HF_DISABLED ); + SetHudSpot( &huds.turnStick, 480-100, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.fire, 0, 320-80, 80, 80, 0 ); + SetHudSpot( &huds.menu, 480-64, 0, 64, 32, 0 ); + SetHudSpot( &huds.map, 0, 0, 64, 32, 0 ); + SetHudSpot( &huds.ammo, 480-80, 320-100-44, 80, 44, 0 ); + break; + case 2: + SetHudSpot( &huds.forwardStick, 0, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.sideStick, 0, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.turnStick, 480-100, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.fire, 480-80, 0, 80, 80, 0 ); + SetHudSpot( &huds.menu, 0, 32, 64, 32, 0 ); + SetHudSpot( &huds.map, 0, 0, 64, 32, 0 ); + SetHudSpot( &huds.ammo, 480-80, 80, 80, 44, 0 ); + break; + case 3: + SetHudSpot( &huds.forwardStick, 480-100, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.sideStick, 480-100, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.turnStick, 0, 320-100, 100, 100, 0 ); + SetHudSpot( &huds.fire, 480-80, 0, 80, 80, 0 ); + SetHudSpot( &huds.menu, 0, 32, 64, 32, 0 ); + SetHudSpot( &huds.map, 0, 0, 64, 32, 0 ); + SetHudSpot( &huds.ammo, 480-80, 80, 80, 44, 0 ); + break; + } + +#ifdef ALLOW_MAP_VIEW_HUD + SetHudSpot( &huds.mapView, 240-64, 0, 128, 128, 0 ); + huds.mapView.hudFlags |= HF_DISABLED; +#endif +} + +void SnapSticks( hudPic_t *test, const hudPic_t *to ) { + if ( test->x < to->x + to->width && test->x + test->width > to->x + && test->y < to->y + to->height && test->y + test->height > to->y ) { + test->x = to->x; + test->y = to->y; + } +} + +/* + ================== + HudEditFrame + + ================== + */ +void HudEditFrame() { + int w; + int x; + colour3_t gray = { 32, 32, 32 }; + + iphoneSetNotifyText( "Drag the controls" ); + + if ( numTouches == 0 && numPrevTouches == 1 && dragHud ) { + // if it was released near the center, make it inactive + int x = prevTouches[0][0]; + int y = prevTouches[0][1]; + if ( x > 120 && x < 360 && y > 80 && y < 240 ) { + dragHud->hudFlags |= HF_DISABLED; + } else { + // magnet pull a matchable axis if it is close enough + if ( dragHud == &huds.forwardStick ) { + SnapSticks( &huds.sideStick, dragHud ); + SnapSticks( &huds.turnStick, dragHud ); + } + if ( dragHud == &huds.sideStick ) { + SnapSticks( &huds.forwardStick, dragHud ); + } + if ( dragHud == &huds.turnStick ) { + SnapSticks( &huds.forwardStick, dragHud ); + } + } + Sound_StartLocalSound( "iphone/baction_01.wav" ); + dragHud = NULL; + } + + if ( numTouches == 1 && numPrevTouches == 0 ) { + // identify the hud being touched for drag + int x = touches[0][0]; + int y = touches[0][1]; + dragHud = NULL; + for ( hudPic_t *hud = (hudPic_t *)&huds ; hud != (hudPic_t *)(&huds+1) ; hud++ ) { + if ( x >= hud->x && x - hud->x < hud->width && + y >= hud->y && y - hud->y < hud->height ) { + dragHud = hud; + dragX = dragHud->x - x; + dragY = dragHud->y - y; + Sound_StartLocalSound( "iphone/bdown_01.wav" ); + dragHud->hudFlags &= ~HF_DISABLED; + break; + } + } + } + + if ( numTouches == 1 && numPrevTouches == 1 && dragHud ) { + // adjust the position of the dragHud + dragHud->x = touches[0][0] + dragX; + dragHud->y = touches[0][1] + dragY; + if ( dragHud->x < 0 ) { + dragHud->x = 0; + } + if ( dragHud->x > 480 - dragHud->width ) { + dragHud->x = 480 - dragHud->width; + } + if ( dragHud->y < 0 ) { + dragHud->y = 0; + } + if ( dragHud->y > 320 - dragHud->height ) { + dragHud->y = 320 - dragHud->height; + } + } + + // layout the disabled items in the center + w = 0; + for ( hudPic_t *hud = (hudPic_t *)&huds ; hud != (hudPic_t *)(&huds+1) ; hud++ ) { + if ( hud->hudFlags & HF_DISABLED ) { + w += hud->width; + } + } + x = 240 - w / 2; + + for ( hudPic_t *hud = (hudPic_t *)&huds ; hud != (hudPic_t *)(&huds+1) ; hud++ ) { + if ( hud->hudFlags & HF_DISABLED ) { + hud->x = x; + hud->y = 160-hud->height/2; + x += hud->width; + } + } + + // decide where the menu button, map button, and ammo will draw + + // solid background color and some UI elements for context + R_Draw_Fill( 0, 0, 480, 320, gray ); + iphoneDrawFace(); + iphoneDrawNotifyText(); + + // draw the active items at their current locations + for ( hudPic_t *hud = (hudPic_t *)&huds ; hud != (hudPic_t *)(&huds+1) ; hud++ ) { + if ( hud->hudFlags & HF_DISABLED ) { + pfglColor3f( 0.5, 0.5, 0.5 ); + } + if ( hud == &huds.ammo ) { + iphoneDrawNumber( huds.ammo.x + huds.ammo.width / 2, huds.ammo.y, 99, 48, 48 ); + } else { + iphoneDrawPicNum( hud->x, hud->y, hud->width, hud->height, hud->glTexNum ); + } + pfglColor3f( 1, 1, 1 ); + } + + // draw the done button + if ( iphoneDrawPicWithTouch( 240-32, 320-80-32, 64, 32, "iphone/button_back.tga" ) ) { + menuState = IPM_CONTROLS; + iphoneSetNotifyText( "" ); + } + } + diff --git a/wolf3d/code/iphone/iphone_loop.c b/wolf3d/code/iphone/iphone_loop.c new file mode 100644 index 0000000..fd75703 --- /dev/null +++ b/wolf3d/code/iphone/iphone_loop.c @@ -0,0 +1,1192 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +/* +mac wolf wall mapping: +cp 000.5551 ../../../base/walls/000.5551 +cp 001.5551 ../../../base/walls/010.5551 +cp 002.5551 ../../../base/walls/004.5551 +cp 003.5551 ../../../base/walls/006.5551 +cp 004.5551 ../../../base/walls/022.5551 +cp 005.5551 ../../../base/walls/018.5551 +cp 006.5551 ../../../base/walls/020.5551 +cp 007.5551 ../../../base/walls/044.5551 +cp 008.5551 ../../../base/walls/014.5551 +cp 009.5551 ../../../base/walls/008.5551 +cp 010.5551 ../../../base/walls/032.5551 +cp 011.5551 ../../../base/walls/038.5551 +cp 014.5551 ../../../base/walls/040.5551 +cp 015.5551 ../../../base/walls/041.5551 +cp 016.5551 ../../../base/walls/030.5551 +cp 017.5551 ../../../base/walls/028.5551 +cp 018.5551 ../../../base/walls/026.5551 +cp 019.5551 ../../../base/walls/046.5551 +cp 020.5551 ../../../base/walls/050.5551 +cp 021.5551 ../../../base/walls/078.5551 +cp 022.5551 ../../../base/walls/066.5551 +cp 025.5551 ../../../base/walls/056.5551 +cp 026.5551 ../../../base/walls/058.5551 +cp 027.5551 ../../../base/walls/086.5551 +cp 028.5551 ../../../base/walls/090.5551 +cp 029.5551 ../../../base/walls/068.5551 +cp 030.5551 ../../../base/walls/126.5551 +cp 031.5551 ../../../base/walls/132.5551 +cp 032.5551 ../../../base/walls/133.5551 +cp 033.5551 ../../../base/walls/130.5551 +cp 034.5551 ../../../base/walls/128.5551 + + // SOD? cp 012.5551 ../../../base/walls/000.5551 + // SOD? cp 013.5551 ../../../base/walls/000.5551 + // SOD? cp 023.5551 ../../../base/walls/000.5551 + // SOD? cp 024.5551 ../../../base/walls/000.5551 + + All odd numbers except 31, 41, 43, and 133 can be just darkened down + + +cp 000.tga ../../newWalls/000.tga +cp 001.tga ../../newWalls/010.tga +cp 002.tga ../../newWalls/004.tga +cp 003.tga ../../newWalls/006.tga +cp 004.tga ../../newWalls/022.tga +cp 005.tga ../../newWalls/018.tga +cp 006.tga ../../newWalls/020.tga +cp 007.tga ../../newWalls/044.tga +cp 008.tga ../../newWalls/014.tga +cp 009.tga ../../newWalls/008.tga +cp 010.tga ../../newWalls/032.tga +cp 011.tga ../../newWalls/038.tga +cp 014.tga ../../newWalls/040.tga +cp 015.tga ../../newWalls/041.tga +cp 016.tga ../../newWalls/030.tga +cp 017.tga ../../newWalls/028.tga +cp 018.tga ../../newWalls/026.tga +cp 019.tga ../../newWalls/046.tga +cp 020.tga ../../newWalls/050.tga +cp 021.tga ../../newWalls/078.tga +cp 022.tga ../../newWalls/066.tga +cp 025.tga ../../newWalls/056.tga +cp 026.tga ../../newWalls/058.tga +cp 027.tga ../../newWalls/086.tga +cp 028.tga ../../newWalls/090.tga +cp 029.tga ../../newWalls/068.tga +cp 030.tga ../../newWalls/126.tga +cp 031.tga ../../newWalls/132.tga +cp 032.tga ../../newWalls/133.tga +cp 033.tga ../../newWalls/130.tga +cp 034.tga ../../newWalls/128.tga + + mac wolf weapon mapping: +cp weapon00.5551 ../../../base/sprites/514.5551 +cp weapon01.5551 ../../../base/sprites/515.5551 +cp weapon02.5551 ../../../base/sprites/516.5551 +cp weapon03.5551 ../../../base/sprites/517.5551 +cp weapon04.5551 ../../../base/sprites/518.5551 +cp weapon05.5551 ../../../base/sprites/519.5551 +cp weapon06.5551 ../../../base/sprites/520.5551 +cp weapon07.5551 ../../../base/sprites/521.5551 +cp weapon08.5551 ../../../base/sprites/522.5551 +cp weapon09.5551 ../../../base/sprites/523.5551 +cp weapon10.5551 ../../../base/sprites/524.5551 +cp weapon11.5551 ../../../base/sprites/525.5551 +cp weapon12.5551 ../../../base/sprites/526.5551 +cp weapon13.5551 ../../../base/sprites/527.5551 +cp weapon14.5551 ../../../base/sprites/528.5551 +cp weapon15.5551 ../../../base/sprites/529.5551 + + +mac wolf sprite mapping + +brown shirt corpse +cp 039.5551 ~/dev/iphone/wolf3d/base/sprites/099.5551 + +brown plant +cp 136.5551 ~/dev/iphone/wolf3d/base/sprites/013.5551 + + */ + +#include "../wolfiphone.h" + +currentMap_t currentMap; + +vec3_t vnull = { 0, 0, 0 }; + +int iphoneFrameNum; +int intermissionTriggerFrame; +int slowAIFrame; + +// console mode +int consoleActive; + +// the native iPhone code should set the following each frame: +int numTouches; +int touches[5][2]; // [0] = x, [1] = y in landscape mode, raster order with y = 0 at top +float tilt; // -1.0 to 1.0 +float tiltPitch; + +#define MAX_TILT_HISTORY 64 +float tiltHistory[MAX_TILT_HISTORY][4]; +int tiltHistoryNum; + +// so we can detect button releases +int numPrevTouches; +int prevTouches[5][2]; + +texture_t *numberPics[10]; + +char *mugshotnames[ NUM_MUGSHOTS ] = +{ +"iphone/FACE1APIC.tga", +"iphone/FACE1BPIC.tga", +"iphone/FACE1CPIC.tga", + +"iphone/FACE2APIC.tga", +"iphone/FACE2BPIC.tga", +"iphone/FACE2CPIC.tga", + +"iphone/FACE3APIC.tga", +"iphone/FACE3BPIC.tga", +"iphone/FACE3CPIC.tga", + +"iphone/FACE4APIC.tga", +"iphone/FACE4BPIC.tga", +"iphone/FACE4CPIC.tga", + +"iphone/FACE5APIC.tga", +"iphone/FACE5BPIC.tga", +"iphone/FACE5CPIC.tga", + +"iphone/FACE6APIC.tga", +"iphone/FACE6BPIC.tga", +"iphone/FACE6CPIC.tga", + +"iphone/FACE7APIC.tga", +"iphone/FACE7BPIC.tga", +"iphone/FACE7CPIC.tga", + +"iphone/FACE8APIC.tga", +"iphone/GOTGATLINGPIC.tga" +}; + +int damageflash; +int bonusFrameNum; +int attackDirTime[2]; + +logTime_t loggedTimes[MAX_LOGGED_TIMES]; // indexed by iphoneFrameNum + +/* + ================== + iphoneActivateConsole + + ================== + */ +void iphoneActivateConsole() { + extern float scr_conlines; + scr_conlines = 0.5f; + consoleActive = 1; + + // draw a frame immediately, because the UIKit takes + // a long time to bring up the keyboard + iphoneFrame(); +} + +/* + ================== + iphoneDeactivateConsole + + ================== + */ +void iphoneDeactivateConsole() { + extern float scr_conlines; + scr_conlines = 0.0f; + consoleActive = 0; +} + +/* + ================== + iphoneExecuteConsoleCommand + + ================== + */ +void iphoneExecuteCommandLine() { + char buf[256]; + strcpy( buf, SysIPhoneGetConsoleTextField() ); + + Com_Printf( "%s\n", buf ); + Cmd_ExecuteString( buf ); + SysIPhoneSetConsoleTextField( "" ); +} + + + +/* + ================== + iphoneSavePrevTouches + + ================== + */ +void iphoneSavePrevTouches() { + numPrevTouches = numTouches; + memcpy( prevTouches, touches, sizeof( prevTouches ) ); +#if 0 + // display the touch locations + for ( int i = 0 ; i < numTouches ; i++ ) { + int w = 32; + iphoneDrawPic( touches[i][0] - w/2, touches[i][1] - w/2, w, w, "iphone/diractional_02.tga" ); + } +#endif +} + +/* + ================== + iphoneCenterText + + Returns the width in pixels + ================== + */ +extern font_t *myfonts[ 1 ]; +int iphoneCenterText( int x, int y, const char *str ) { + int l = strlen( str ); + int i; + font_t *myfont = myfonts[0]; + int scale; + int step = 10; + + scale = 16; + + x -= l * step / 2; + + R_Bind( myfont->texfont->texnum ); + pfglBegin( GL_QUADS ); + + for ( i = 0 ; i < l ; i++, x += step ) { + int row, col; + float frow, fcol; + int num = str[i]; + + if ( num == ' ' ) { + continue; + } + + row = (num >> 4) - 2; + col = num & 15; + + frow = row * myfont->hFrac; + fcol = col * myfont->wFrac; + + pfglTexCoord2f( fcol, frow ); + pfglVertex2i( x, y ); + + pfglTexCoord2f( fcol+myfont->wFrac, frow ); + pfglVertex2i( x+scale, y ); + + pfglTexCoord2f( fcol+myfont->wFrac, frow+myfont->hFrac ); + pfglVertex2i( x+scale, y+scale ); + + pfglTexCoord2f( fcol, frow+myfont->hFrac ); + pfglVertex2i( x, y+scale ); + } + + pfglEnd(); + + return l * step; +} + + +/* + ================== + TouchDown + + Checks all touches against a square + ================== + */ +int TouchDown( int x, int y, int w, int h ) { + int i; + for ( i = 0 ; i < numTouches ; i++ ) { + if ( touches[i][0] >= x && touches[i][1] >= y + && touches[i][0] < x + w && touches[i][1] < y + h ) { + return 1; + } + } + return 0; +} + +/* + ================== + TouchReleased + + Perform an action when released in the box. + If not down this frame, but down the previous frame, it is released + ================== + */ +int TouchReleased( int x, int y, int w, int h ) { + int i; + int downPrev = 0; + int downNow = 0; + + for ( i = 0 ; i < numPrevTouches ; i++ ) { + if ( prevTouches[i][0] >= x && prevTouches[i][1] >= y + && prevTouches[i][0] < x + w && prevTouches[i][1] < y + h ) { + downPrev = 1; + break; + } + } + + // see if not down this frame + for ( i = 0 ; i < numTouches ; i++ ) { + if ( touches[i][0] >= x && touches[i][1] >= y + && touches[i][0] < x + w && touches[i][1] < y + h ) { + downNow = 1; + break; + } + } + + if ( !downPrev ) { + if ( downNow ) { + Sound_StartLocalSound( "iphone/bdown_01.wav" ); + } + // wasn't down the previous frame + return 0; + } + + if ( downNow ) { + // still down + return 0; + } + + if ( numTouches == numPrevTouches ) { + // finger dragged off + Sound_StartLocalSound( "iphone/baborted_01.wav" ); + return 0; + } + + // released + Sound_StartLocalSound( "iphone/baction_01.wav" ); + return 1; +} + +/* + ================== + iphoneRotateForLandscape + + ================== + */ +void iphoneRotateForLandscape() { + if ( revLand->value ) { + // reverse landscape mode + pfglRotatef( -90, 0, 0, 1 ); + } else { + pfglRotatef( 90, 0, 0, 1 ); + } +} + +/* + ================== + iphoneSet2D + + ================== + */ +void iphoneSet2D( void ) { + pfglViewport( 0,0, 480, 320 ); + pfglMatrixMode( GL_MODELVIEW ); + pfglLoadIdentity(); + pfglDisable( GL_DEPTH_TEST ); + pfglDisable( GL_CULL_FACE ); + pfglEnable( GL_BLEND ); + pfglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); + pfglDisable( GL_ALPHA_TEST ); + pfglColor4f( 1,1,1,1 ); + + pfglMatrixMode( GL_PROJECTION ); + pfglLoadIdentity(); + iphoneRotateForLandscape(); + pfglOrtho( 0, 480, 320, 0, -99999, 99999 ); +} + + +/* + ================== + DeadBandAdjust + + Compresses the 0.0 - 1.0 range into deadband - 1.0 + ================== + */ +float DeadBandAdjust( float f, float deadBand ) { + if ( f < 0 ) { + return -DeadBandAdjust( -f, deadBand ); + } + if ( f > 1.0 ) { + return 1.0; + } + if ( f < deadBand ) { + return 0; + } + return (f-deadBand) / (1.0 - deadBand); +} + +/* +================== +AxisHit + +Returns a -1 to 1 range + +If activeFraction is less than 1.0, the range will clamp +to the limits before the edge of the box is hit. +================== +*/ +float AxisHit( hudPic_t *hud ) { + int x = hud->x; + int y = hud->y; + int width = hud->width; + int height = hud->width; + float activeFraction = 0.8f; + int i; + int isXaxis = ( hud != &huds.forwardStick ); + + if ( hud->hudFlags & HF_DISABLED ) { + return 0; + } + + // allow the touches to go outside the indicated bounds with clamping + x += width / 2; + y += height / 2; + width *= 2; + activeFraction *= 0.5f; + + // if the axis is not paired with another, leave it skinnier along the axis + if ( hud == &huds.sideStick && huds.forwardStick.x == hud->x && huds.forwardStick.y == hud->y ) { + height *= 2; + } + if ( hud == &huds.turnStick && huds.forwardStick.x == hud->x && huds.forwardStick.y == hud->y ) { + height *= 2; + } + if ( hud == &huds.forwardStick ) { + // don't bother checking for a skinny forwardStick + height *= 2; + } + + x -= width / 2; + y -= height / 2; + + for ( i = 0 ; i < numTouches ; i++ ) { + if ( touches[i][0] >= x && touches[i][1] >= y + && touches[i][0] < x + width && touches[i][1] < y + height ) { + float f; + if ( isXaxis ) { + f = (float)( touches[i][0] - x ) / width * 2.0f - 1.0f; + } else { + f = (float)( touches[i][1] - y ) / height * 2.0f - 1.0f; + } + f /= activeFraction; + if ( f > 1.0f ) { + f = 1.0f; + } else if ( f < -1.0f ) { + f = -1.0f; + } + if ( f > -stickDeadBand->value && f < stickDeadBand->value ) { + f = 0; + } + return f; + } + } + return 0; +} + +void iphoneTouchEvent( int _numTouches, int _touches[16] ) { + numTouches = _numTouches; + for ( int i = 0 ; i < numTouches ; i++ ) { + if ( revLand->value ) { + touches[i][0] = _touches[i*2+1]; + touches[i][1] = 319 - _touches[i*2+0]; + } else { + touches[i][0] = 479 - _touches[i*2+1]; + touches[i][1] = _touches[i*2+0]; + } + } +} + +void iphoneCheckForLandscapeReverse() { + static int reverseCount; + + // if we stay significantly negative for half a second, flip orientation + if ( tiltPitch < -0.35 ) { + if ( ++reverseCount > 10 ) { + Cvar_SetValue( revLand->name, !revLand->value ); + SysIPhoneSetUIKitOrientation( revLand->value ); + } + } else { + reverseCount = 0; + } +} + +void iphoneTiltEvent( float *tilts ) { + int i; + int j; + int c; + float sum[3]; + static float prevTime; + + if ( revLand->value ) { + tilts[1] = -tilts[1]; + tilts[0] = -tilts[0]; + } + + c = tiltAverages->value; + if ( c < 1 ) { + c = 1; + } else if ( c > MAX_TILT_HISTORY ) { + c = MAX_TILT_HISTORY; + } + + // acc[0] - [2] are accelerometer values, ax[3] is the timestamp + for ( i = 0 ; i < 3 ; i++ ) { + tiltHistory[tiltHistoryNum&(MAX_TILT_HISTORY-1)][i] = tilts[i]; + sum[i] = 0; + for ( j = 0 ; j < c ; j++ ) { + sum[i] += tiltHistory[(tiltHistoryNum-j)&(MAX_TILT_HISTORY-1)][i]; + } + sum[i] /= c; + } + // save the timestamp for analysis + tiltHistory[tiltHistoryNum&(MAX_TILT_HISTORY-1)][3] = tilts[3] - prevTime; + prevTime = tilts[3]; + tiltHistoryNum++; + + tilt = sum[1]; + tiltPitch = sum[0]; +// Com_Printf( "%4.2f %4.2f %4.2f\n", tilts[0], tilts[1], tilts[2] ); +} + +void ShowTilt() { + int i; + int axis = (int)showTilt->value; + colour4_t fillColor = { 255, 0, 0, 255 }; + colour4_t whiteColor = { 255, 255, 255, 255 }; + colour4_t nowColor = { 0, 255, 0, 255 }; + float x; + + if ( axis < 0 || axis > 2 ) { + return; + } + for ( i = 0 ; i < MAX_TILT_HISTORY ; i++ ) { + x = tiltHistory[(tiltHistoryNum-1-i)&(MAX_TILT_HISTORY-1)][axis] * ( 10 / 0.018168604 ); + if ( x < 0 ) { + R_Draw_Fill( 240 + x, i*4, -x, 4, fillColor ); + } else if ( x > 0 ) { + R_Draw_Fill( 240, i*4, x, 4, fillColor ); + } + } + x = tilt * ( 10 / 0.018168604 ); + if ( x < 0 ) { + R_Draw_Fill( 240 + x, i*4, -x, 4, nowColor ); + } else if ( x > 0 ) { + R_Draw_Fill( 240, i*4, x, 4, nowColor ); + } + R_Draw_Fill( 240, 0, 1, MAX_TILT_HISTORY*4, whiteColor ); +} + +void ShowTime() { + int i; + if ( !showTime->value ) { + return; + } + colour4_t frameColor = { 0, 0, 255, 255 }; + colour4_t swapColor = { 255, 0, 0, 255 }; + colour4_t activeColor = { 0, 255, 0, 255 }; + + for ( i = 1 ; i < 30 ; i++ ) { + logTime_t *lt = &loggedTimes[(iphoneFrameNum - i ) & (MAX_LOGGED_TIMES-1)]; + logTime_t *ltp = &loggedTimes[(iphoneFrameNum - i - 1 ) & (MAX_LOGGED_TIMES-1)]; + int frameTime = lt->enterFrame - ltp->enterFrame; + int swapTime = lt->afterSwap - lt->beforeSwap; + int activeTime = lt->beforeSwap - lt->enterFrame; + R_Draw_Fill( 0, i * 4, frameTime * 8, 2, frameColor ); + R_Draw_Fill( frameTime * 8 - swapTime * 8, i * 4, swapTime * 8, 2, swapColor ); + R_Draw_Fill( 0, i * 4, activeTime * 8, 2, activeColor ); + } +} + + +/* +================== +CreateIphoneUserCmd + +Build the movement, angles, and buttons for a frame of action: + +Player.position.angle +Player.cmd.buttons +Player.cmd.forwardMove +Player.cmd.sideMove +================== +*/ +PRIVATE void CreateIphoneUserCmd() +{ + float stickTurnValue; + float stickMoveValue; + + stickTurnValue = stickTurnBase->value + stickTurnScale->value * sensitivity->value; + stickMoveValue = stickMoveBase->value + stickMoveScale->value * sensitivity->value; + + usercmd_t *cmd = &Player.cmd; + memset( cmd, 0, sizeof( *cmd ) ); + + if ( TouchDown( huds.fire.x, huds.fire.y, huds.fire.width, huds.fire.height ) ) { + cmd->buttons |= BUTTON_ATTACK; + } + if ( tiltFire->value > 0 && tiltPitch < tiltFire->value ) { + cmd->buttons |= BUTTON_ATTACK; + } + + // tapping the weapon issues the nextWeapon impulse + if ( TouchReleased( 240 - 40, 320 - 80 - 64, 80, 64 ) ) { + cmd->buttons |= BUTTON_CHANGE_WEAPON; + } + + cmd->forwardmove = -stickMoveValue * AxisHit( &huds.forwardStick ); + cmd->sidemove = stickMoveValue * AxisHit( &huds.sideStick ); + Player.position.angle += -stickTurnValue * AxisHit( &huds.turnStick ); + + // accelerometer tilting + cmd->sidemove += tiltMove->value * DeadBandAdjust( tilt, tiltDeadBand->value ); + Player.position.angle -= tiltTurn->value * DeadBandAdjust( tilt, tiltDeadBand->value ); + + // always use + if ( iphoneFrameNum & 1 ) { + cmd->buttons |= BUTTON_USE; + } +} + + +/* +================== +iphoneHighlightPicWhenTouched + +Draw transparent except when touched +================= +*/ +void iphoneHighlightPicNumWhenTouched( int x, int y, int w, int h, int glTexNum ) { + if ( TouchDown( x, y, w, h ) ) { + pfglColor4f(1,1,1,1); + } else { + pfglColor4f(1,1,1,0.5); + } + iphoneDrawPicNum( x, y, w, h, glTexNum ); + pfglColor4f(1,1,1,1); +} + +/* + ================== + iphoneDrawWeapon + + ================== + */ +void iphoneDrawWeapon( void ) { + char name[ 32 ]; + texture_t *tex; + static int w = 128; + static int h = 128; + int x = (viddef.width - w ) >> 1; + int y = viddef.height - 80 - h; + int frame; + + if ( gunFrame->value ) { + // screenshots look better with the muzzle flash + frame = Player.weapon * 4 + gunFrame->value + SPR_KNIFEREADY; + } else { + frame = Player.weapon * 4 + Player.weaponframe + SPR_KNIFEREADY; + } + + my_snprintf( name, sizeof( name ), "%s/%d.tga", spritelocation, frame); + tex = TM_FindTexture( name, TT_Pic ); + + R_Bind( tex->texnum ); + + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( 0.01f, 0.01f ); pfglVertex2i( x, y ); + pfglTexCoord2f( 0.99f, 0.01f ); pfglVertex2i( x + w, y ); + pfglTexCoord2f( 0.99f, 0.99f ); pfglVertex2i( x + w, y + h ); + pfglTexCoord2f( 0.01f, 0.99f ); pfglVertex2i( x, y + h ); + + pfglEnd(); +} + +/* + ================== + iphoneDrawNumber + + x is the midpoint, y is the top + ================== + */ +void iphoneDrawNumber( int x, int y, int number, int charWidth, int charHeight ) { + texture_t *tex; + int i; + char string[ 20 ]; + W32 length; + float charStep = charWidth * 0.8; // trim off extra width + + if ( number < 0 ) { + number = 0; + } + my_snprintf( string, sizeof( string ), "%d", number ); + length = strlen( string ); + + x -= length * charStep / 2; + + for( i = 0 ; i < length ; i++ ) { + int digit = string[i] - '0'; + tex = numberPics[digit]; + R_Bind( tex->texnum ); + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( 0, 0 ); pfglVertex2i( x, y ); + pfglTexCoord2f( 1, 0 ); pfglVertex2i( x+charWidth, y ); + pfglTexCoord2f( 1, 1 ); pfglVertex2i( x+charWidth, y+charHeight ); + pfglTexCoord2f( 0, 1 ); pfglVertex2i( x, y+charHeight ); + + pfglEnd(); + x += charStep; + } +} + + +/* + ================== + iphoneDrawFace + + ================== + */ +void iphoneDrawFace() { + int i; + int w = 64; + int h = 80; + int x = (viddef.width - w ) >> 1; + int y = viddef.height - h; + const char *pic; + + // solid background + iphoneDrawPic( 240 - 64, 320 - 80, 128, 80, "iphone/status_hud.tga" ); + + // keys on the side + if( Player.items & ITEM_KEY_1 ) { + iphoneDrawPic( 240-64, 320-72, 32, 64, "iphone/gold_key.tga" ); + } + + if( Player.items & ITEM_KEY_2 ) { + iphoneDrawPic( 240+32, 320-72, 32, 64, "iphone/silver_key.tga" ); + } + + + // decide on the face + Player.facecount += tics; + if ( Player.face_gotgun && Player.facecount > 0 ) { + // gotgun will set facecount to a negative number initially, go back + // to normal face with random look after expired. + Player.face_gotgun = false; + } + if( Player.facecount > US_RndT() ) + { + Player.face_gotgun = Player.face_ouch = false; + Player.faceframe = US_RndT() >> 6; + if( Player.faceframe == 3 ) + { + Player.faceframe = 0; + } + + Player.facecount = 0; + } + + if( Player.health ) + { + if( Player.face_gotgun ) + { + pic = mugshotnames[ 22 ]; + } + else + { + int h = Player.health; + if ( h > 100 ) { + h = 100; + } + if ( h < 0 ) { + h = 0; + } + pic = mugshotnames[ 3*((100-h)/16)+Player.faceframe ]; + } + } + else + { + pic = mugshotnames[ 21 ]; + } + + iphoneDrawPic( x, y, w, h, pic ); + + // blend the right / left damage indicators on the side + for ( i = 0 ; i < 2 ; i++ ) { + float f; + if ( attackDirTime[i] == 0 ) { + continue; + } + f = iphoneFrameNum - attackDirTime[i]; + if ( f > 30 ) { + attackDirTime[i] = 0; + continue; + } + if ( f < 20 ) { + f = 1.0; + } else { + f = ( 30 - f ) * 0.1; + } + pfglColor4f( 1, 1, 1, f ); + if ( i == 0 ) { + iphoneDrawPic( 240 - 64, 320 - 80, 40, 80, "iphone/L_damage.tga" ); + } else { + iphoneDrawPic( 240 + 64 - 40, 320 - 80, 40, 80, "iphone/R_damage.tga" ); + } + pfglColor4f( 1, 1, 1, 1 ); + } + + // draw the tiny health numbers on top of the face + iphoneDrawNumber( 240, 304, Player.health, 16, 16 ); +} + +/* + ================== + iphoneSetNotifyText + + Notify text is a single centered line for "got a key", "found a secret", etc + ================== + */ +char notifyText[128]; +int notifyFrameNum; +void iphoneSetNotifyText( const char *str, ... ) { + va_list argptr; + + va_start( argptr, str ); + (void)vsnprintf( notifyText, sizeof( notifyText )-1, str, argptr ); + va_end( argptr ); + + notifyFrameNum = iphoneFrameNum; +} + +void iphoneDrawNotifyText() { + if ( notifyFrameNum == 0 ) { + return; + } + // display for three seconds, then fade over 0.3 + float f = iphoneFrameNum - notifyFrameNum - 80; + if ( f < 0 ) { + f = 1.0; + } else { + f = 1.0 - f * 0.1f; + if ( f < 0 ) { + notifyFrameNum = 0; + return; + } + } + + pfglColor4f( 1, 1, 1, f ); + iphoneCenterText( 240, 5, notifyText ); + pfglColor4f( 1, 1, 1, 1 ); +} + +void iphoneStartBonusFlash() { + bonusFrameNum = iphoneFrameNum; +} + +void iphoneStartDamageFlash( int damage ) { + damageflash += damage; + if ( damageflash > 64 ) { + damageflash = 64; + } + if ( damageflash < 10 ) { + damageflash = 10; + } +} + +/* + ================== + iphoneSetAttackDirection + + +1 = attacked from the left + -1 = attacked from the right + ================== + */ +void iphoneSetAttackDirection( int dir ) { + if ( dir > 0 ) { + attackDirTime[0] = iphoneFrameNum; + } + if ( dir < 0 ) { + attackDirTime[1] = iphoneFrameNum; + } +} + +void iphoneDrawHudControl( hudPic_t *hud ) { + if ( hud->hudFlags & HF_DISABLED ) { + return; + } + iphoneHighlightPicNumWhenTouched( hud->x, hud->y, hud->width, hud->height, hud->glTexNum ); +} + +int iphoneDrawHudButton( hudPic_t *hud ) { + if ( hud->hudFlags & HF_DISABLED ) { + return 0; + } + iphoneDrawHudControl( hud ); + return TouchReleased( hud->x, hud->y, hud->width, hud->height ); +} + +void iphoneUpdateMapView() { +#ifdef ALLOW_MAP_VIEW_HUD + if ( huds.mapView.hudFlags & HF_DISABLED ) { + return; + } + R_Bind( huds.mapView.glTexNum ); + int playerx = Player.position.origin[0] / (float)TILEGLOBAL; + int playery = Player.position.origin[1] / (float)TILEGLOBAL; + + for ( int j = 0; j < 16; j++ ) { + int y = ( ( iphoneFrameNum << 4 ) + j ) & 63; + int disty = playery - y; + GLubyte row[ 64 * 4 ]; + for( int x = 0 ; x < 64; ++x ) { + int distx = playerx - x; + if ( distx >= -1 && distx <= 1 && disty == 0 ) { + row[ x * 4 + 0 ] = 255; + row[ x * 4 + 1 ] = 255; + row[ x * 4 + 2 ] = 255; + row[ x * 4 + 3 ] = 255; + } else if ( disty >= -1 && disty <= 1 && distx == 0 ) { + row[ x * 4 + 0 ] = 255; + row[ x * 4 + 1 ] = 255; + row[ x * 4 + 2 ] = 255; + row[ x * 4 + 3 ] = 255; + } else if ( r_world->tilemap[ x ][ y ] & ( WALL_TILE | PUSHWALL_TILE ) || ! r_world->tileEverVisible[ x ][ y ] ) { + row[ x * 4 + 0 ] = 0; + row[ x * 4 + 1 ] = 0; + row[ x * 4 + 2 ] = 0; + row[ x * 4 + 3 ] = 0; + } else { + row[ x * 4 + 0 ] = 0; + row[ x * 4 + 1 ] = 0; + row[ x * 4 + 2 ] = 0; + row[ x * 4 + 3 ] = 255; + } + } + pfglTexSubImage2D(GL_TEXTURE_2D, 0, 0, 63 - y, 64, 1, GL_RGBA, GL_UNSIGNED_BYTE, row ); + } +#endif +} + +void iphoneDrawMapView() { +#ifdef ALLOW_MAP_VIEW_HUD + iphoneDrawHudControl( &huds.mapView ); +#endif +} + +/* +================== +iphoneFrame + +================== +*/ +void iphoneFrame() { + unsigned char blendColor[4]; + + iphoneFrameNum++; + loggedTimes[iphoneFrameNum&(MAX_LOGGED_TIMES-1)].enterFrame = Sys_Milliseconds(); + + // check for delayed intermission trigger after boss kill + if ( intermissionTriggerFrame > 0 && iphoneFrameNum >= intermissionTriggerFrame ) { + iphoneStartIntermission( 0 ); + } + + iphoneUpdateMapView(); + + // toggle / scroll down the console + Client_Screen_RunConsole(); + + // check for flipping the phone orientation + iphoneCheckForLandscapeReverse(); + + // fixed frame timing, assume we go 30hz + tics = 2; // wolf's global rate counter + + Sound_Update( vnull, vnull, vnull, vnull ); + + if ( consoleActive ) { + iphoneSet2D(); + + Client_Screen_DrawConsole(); + + iphoneSavePrevTouches(); + SysIPhoneSwapBuffers(); + return; + } + if ( menuState != IPM_GAME ) { + iphoneSet2D(); + + iphoneDrawMenus(); + + iphoneSavePrevTouches(); + SysIPhoneSwapBuffers(); + return; + } + + //------------------ + // normal gameplay + //------------------ + + if( Player.playstate != ex_dead ) + { + CreateIphoneUserCmd(); + Player.position.angle = NormalizeAngle( Player.position.angle ); + + PL_Process( &Player, r_world ); // Player processing + if ( !slowAI->value || --slowAIFrame < 0 ) { + // slowAIframe is for slow-motion screenshot capture + slowAIFrame += slowAI->value; + ProcessGuards(); + } + PushWall_Process(); + Door_ProcessDoors_e( &r_world->Doors, tics ); + + levelstate.time += tics; + } + + // clear depth buffer + qglDepthMask( GL_TRUE ); + pfglClear( GL_DEPTH_BUFFER_BIT ); + + // fill the floor and ceiling + pfglDisable( GL_BLEND ); + pfglDisable( GL_DEPTH_TEST ); + pfglMatrixMode( GL_MODELVIEW ); + pfglLoadIdentity(); + pfglMatrixMode( GL_PROJECTION ); + pfglLoadIdentity(); + iphoneRotateForLandscape(); + pfglOrtho( 0, 480, 320, 0, -99999, 99999 ); + R_Draw_Fill( 0, 0, viddef.width, viddef.height >> 1, r_world->ceilingColour ); + R_Draw_Fill( 0, viddef.height >> 1, viddef.width, viddef.height, r_world->floorColour ); + + // setup to draw the 3D world + float cur_x_fov, cur_y_fov; // x & y field of view (in degrees) + float ratio; // viewport width/height + ratio = (float) viddef.width / (float)viddef.height; // FIXME: move somewhere + cur_x_fov = 75; + cur_y_fov = CalcFov( cur_x_fov, (float)viddef.width, (float)viddef.height ); + + pfglMatrixMode( GL_PROJECTION ); + pfglLoadIdentity(); + iphoneRotateForLandscape(); + MYgluPerspective( cur_y_fov - 2.0f, ratio, 0.2f, 64.0f ); // tweak fov in to avoid edge tile clips + pfglMatrixMode( GL_MODELVIEW ); + pfglLoadIdentity(); + + pfglRotatef( (float)(90 - FINE2DEG( Player.position.angle )), 0, 1, 0 ); + pfglTranslatef( -Player.position.origin[ 0 ] / FLOATTILE, 0, Player.position.origin[ 1 ] / FLOATTILE ); + + pfglCullFace( GL_BACK ); + + pfglEnable( GL_DEPTH_TEST ); + pfglEnable( GL_CULL_FACE ); + pfglDisable( GL_BLEND ); + pfglDisable( GL_ALPHA_TEST ); + + // find and draw all the walls + R_RayCast( Player.position, r_world ); + + // blend in the sprites + R_DrawSprites(); + + // draw 2D overlays + iphoneSet2D(); + + // do a full screen blend for damage, death, and bonus pickup + if( Player.playstate == ex_dead ) { + static int deathFadeIntensity; + blendColor[0] = 255; + blendColor[1] = 0; + blendColor[2] = 0; + blendColor[3] = deathFadeIntensity; + deathFadeIntensity += 2; + if( deathFadeIntensity >= 240 ) { + deathFadeIntensity = 0; + PL_NewGame( &Player ); + iphoneStartMap( currentMap.episode, currentMap.map, currentMap.skill ); + } + } else { + iphoneDrawWeapon(); + if( damageflash ) { + blendColor[0] = 255; + blendColor[1] = 0; + blendColor[2] = 0; + blendColor[3] = damageflash >= 64 ? 255 : damageflash * 4; + + if( (damageflash -= 1) < 0 ) { + damageflash = 0; + } + } else if ( bonusFrameNum ) { + float f = ( iphoneFrameNum - bonusFrameNum ) * 0.1; + if ( f > 1.0 ) { + bonusFrameNum = 0; + } else { + blendColor[0] = 255; + blendColor[1] = 255; + blendColor[2] = 128; + blendColor[3] = ( 1.0 - f ) * 64; + } + } + } + if ( blendColor[3] != 0 && blends->value != 0 ) { + R_DrawBox( 0, 0, viddef.width, viddef.height, *(int *)blendColor ); + } + + iphoneDrawNotifyText(); + + iphoneDrawMapView(); + + iphoneDrawFace(); + + iphoneDrawNumber( huds.ammo.x + huds.ammo.width / 2, huds.ammo.y, Player.ammo[AMMO_BULLETS], 48, 48 ); + + if ( hideControls->value != 1 ) { + iphoneDrawHudControl( &huds.forwardStick ); + iphoneDrawHudControl( &huds.sideStick ); + iphoneDrawHudControl( &huds.turnStick ); + iphoneDrawHudControl( &huds.fire ); + } + + if ( iphoneDrawHudButton( &huds.menu ) ) { + menuState = IPM_MAIN; + } + if ( iphoneDrawHudButton( &huds.map ) ) { + iphoneOpenAutomap(); + } + + Client_Screen_DrawConsole(); + + ShowTilt(); // debug tool + ShowTime(); // debug tool + + iphoneSavePrevTouches(); + + SysIPhoneSwapBuffers(); // do the swapbuffers +} diff --git a/wolf3d/code/iphone/iphone_main.c b/wolf3d/code/iphone/iphone_main.c new file mode 100644 index 0000000..e4e7461 --- /dev/null +++ b/wolf3d/code/iphone/iphone_main.c @@ -0,0 +1,339 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + + does clearing color and depth at the same time offer any beneft? + should we use the depth sense reversing trick to avoid depth clears? + + */ + +#include "../wolfiphone.h" + + +cvar_t *controlScheme; +cvar_t *sensitivity; +cvar_t *stickTurnBase; +cvar_t *stickTurnScale; +cvar_t *stickMoveBase; +cvar_t *stickMoveScale; +cvar_t *stickDeadBand; +cvar_t *tiltTurn; +cvar_t *tiltMove; +cvar_t *tiltDeadBand; +cvar_t *tiltAverages; +cvar_t *tiltFire; +cvar_t *music; +cvar_t *showTilt; +cvar_t *showTime; +cvar_t *cropSprites; +cvar_t *blends; +cvar_t *gunFrame; +cvar_t *slowAI; +cvar_t *revLand; +cvar_t *mapScale; +cvar_t *hideControls; +cvar_t *autoFire; + +W32 sys_frame_time; + +void Sys_Error( const char *format, ... ) +{ + va_list argptr; + char string[ 1024 ]; + + va_start( argptr, format ); + (void)vsnprintf( string, sizeof( string ), format, argptr ); + va_end( argptr ); + + fprintf( stderr, "Error: %s\n", string ); + + _exit( 1 ); + +} + +void Sys_Quit (void) +{ + _exit( 0 ); +} + +void Sys_SendKeyEvents (void) +{ +} + +char *Sys_GetClipboardData( void ) +{ + return NULL; +} + +void Reset_f() { + memset( ¤tMap, 0, sizeof( currentMap ) ); + currentMap.skill = 1; + cvar_vars = NULL; // don't write any cvars to the config file + iphoneShutdown(); +} + +/* + ================== + iphoneStartup + + ================== + */ +void iphoneStartup() { + char *s; + int start = Sys_Milliseconds(); + + // temporary + const char *systemVersion = SysIPhoneGetOSVersion(); + printf( "systemVersion = %s\n", systemVersion ); + + z_chain.next = z_chain.prev = &z_chain; + + InitImmediateModeGL(); + + // Prepare enough of the subsystems to handle + // cvar and command buffer management. + COM_InitArgv( 0, NULL ); // FIXME: get args... + + Cmd_Init(); + Cvar_Init(); + Con_Init(); + FS_InitFilesystem(); + + // We need to add the early commands twice, because + // a basedir or cddir needs to be set before execing + // config files, but we want other parms to override + // the settings of the config files. + Cbuf_AddEarlyCommands( false ); + Cbuf_Execute(); + + R_Init(); + + Cmd_AddCommand( "reset", Reset_f ); + + developer = Cvar_Get( "developer", "0", CVAR_INIT ); + logfile_active = Cvar_Get( "logfile", "0", CVAR_INIT ); + + s = va( "%s %s %s %s %s %s", APP_VERSION, RELEASENAME, CPUSTRING, __DATE__, __TIME__, BUILDSTRING ); + Cvar_Get( "version", s, CVAR_SERVERINFO | CVAR_NOSET ); + + Con_Init(); + + Sound_Init(); + + Game_Init(); // game and player init + + Cbuf_AddText( "exec config.cfg\n" ); + Cbuf_AddEarlyCommands( true ); + Cbuf_Execute(); + + // add + commands from command line + Cbuf_AddLateCommands(); + Cbuf_Execute(); + + Com_Printf( "\n====== Application Initialized ======\n\n" ); + + Sound_Activate( true ); + consoleActive = 0; + + controlScheme = Cvar_Get( "controlScheme", "0", CVAR_ARCHIVE ); + sensitivity = Cvar_Get( "sensitivity", "0.3", CVAR_ARCHIVE ); + stickTurnBase = Cvar_Get( "stickTurnBase", "300", CVAR_ARCHIVE ); + stickTurnScale = Cvar_Get( "stickTurnScale", "500", CVAR_ARCHIVE ); + stickMoveBase = Cvar_Get( "stickMoveBase", "3000", CVAR_ARCHIVE ); + stickMoveScale = Cvar_Get( "stickMoveScale", "5000", CVAR_ARCHIVE ); + stickDeadBand = Cvar_Get( "stickDeadBand", "0.2", CVAR_ARCHIVE ); + tiltTurn = Cvar_Get( "tiltTurn", "0", CVAR_ARCHIVE ); + tiltMove = Cvar_Get( "tiltMove", "0", CVAR_ARCHIVE ); + tiltFire = Cvar_Get( "tiltFire", "0", CVAR_ARCHIVE ); + music = Cvar_Get( "music", "1", CVAR_ARCHIVE ); + tiltDeadBand = Cvar_Get( "tiltDeadBand", "0.08", CVAR_ARCHIVE ); + tiltAverages = Cvar_Get( "tiltAverages", "3", CVAR_ARCHIVE ); + cropSprites = Cvar_Get( "cropSprites", "1", 0 ); + showTilt = Cvar_Get( "showTilt", "-1", 0 ); + showTime = Cvar_Get( "showTime", "0", 0 ); + blends = Cvar_Get( "blends", "1", 0 ); + gunFrame = Cvar_Get( "gunFrame", "0", 0 ); + slowAI = Cvar_Get( "slowAI", "0", 0 ); + revLand = Cvar_Get( "revLand", "0", CVAR_ARCHIVE ); + mapScale = Cvar_Get( "mapScale", "10", CVAR_ARCHIVE ); + hideControls = Cvar_Get( "hideControls", "0", CVAR_ARCHIVE ); + autoFire = Cvar_Get( "autoFire", "0", 0 ); + + // make sure volume changes and incoming calls draw the right orientation + SysIPhoneSetUIKitOrientation( revLand->value ); + + // preload all the ogg FM synth sounds + Com_Printf( "before ogg preload: %i msec\n", Sys_Milliseconds() - start ); + + Sound_RegisterSound( "lsfx/001.wav" ); + Sound_RegisterSound( "lsfx/003.wav" ); + Sound_RegisterSound( "lsfx/008.wav" ); + Sound_RegisterSound( "lsfx/009.wav" ); + Sound_RegisterSound( "lsfx/012.wav" ); + Sound_RegisterSound( "lsfx/023.wav" ); + Sound_RegisterSound( "lsfx/028.wav" ); + Sound_RegisterSound( "lsfx/030.wav" ); + Sound_RegisterSound( "lsfx/031.wav" ); + Sound_RegisterSound( "lsfx/033.wav" ); + Sound_RegisterSound( "lsfx/034.wav" ); + Sound_RegisterSound( "lsfx/035.wav" ); + Sound_RegisterSound( "lsfx/036.wav" ); + Sound_RegisterSound( "lsfx/037.wav" ); + Sound_RegisterSound( "lsfx/038.wav" ); + Sound_RegisterSound( "lsfx/040.wav" ); + Sound_RegisterSound( "lsfx/045.wav" ); + Sound_RegisterSound( "lsfx/061.wav" ); + Sound_RegisterSound( "lsfx/062.wav" ); + Sound_RegisterSound( "lsfx/064.wav" ); + Sound_RegisterSound( "lsfx/069.wav" ); + Sound_RegisterSound( "lsfx/076.wav" ); + Sound_RegisterSound( "lsfx/078.wav" ); + Sound_RegisterSound( "lsfx/080.wav" ); + Sound_RegisterSound( "lsfx/085.wav" ); + Sound_RegisterSound( "lsfx/086.wav" ); + + // these should get overwritten by LoadTheGame + memset( ¤tMap, 0, sizeof( currentMap ) ); + currentMap.skill = 1; + currentMap.episode = 0; + HudSetForScheme( 0 ); + + Com_Printf( "before LoadTheGame: %i msec\n", Sys_Milliseconds() - start ); + + if ( !LoadTheGame() ) { + PL_NewGame( &Player ); + iphoneStartMap( currentMap.episode, currentMap.map, currentMap.skill ); + } + + + // always start at main menu + menuState = IPM_MAIN; + + Com_Printf( "startup time: %i msec\n", Sys_Milliseconds() - start ); +} + +/* + =================== + iphonePreloadBeforePlay + + This couold all be done at startup, but moving a bit of the delay + to after pressing the resume button works a little better. + =================== +*/ +void iphonePreloadBeforePlay() { + int start = Sys_Milliseconds(); + + // the texnums might have been different in the savegame + HudSetTexnums(); + + // preload all the other game gui textures that might pop up + TM_FindTexture( "iphone/gold_key.tga", TT_Pic ); + TM_FindTexture( "iphone/silver_key.tga", TT_Pic ); + TM_FindTexture( "iphone/L_damage.tga", TT_Pic ); + TM_FindTexture( "iphone/R_damage.tga", TT_Pic ); + + for ( int i = 0 ; i < 10 ; i++ ) { + char name[64]; + sprintf( name, "iphone/%i.tga", i ); + numberPics[i] = TM_FindTexture( name, TT_Pic ); + } + + for ( int i = 0 ; i < NUM_MUGSHOTS ; i++ ) { + TM_FindTexture( mugshotnames[ i ], TT_Pic ); + } + + Sound_RegisterSound( "sfx/001.wav" ); + Sound_RegisterSound( "sfx/002.wav" ); + Sound_RegisterSound( "sfx/007.wav" ); + Sound_RegisterSound( "sfx/010.wav" ); + Sound_RegisterSound( "sfx/011.wav" ); + Sound_RegisterSound( "sfx/012.wav" ); + Sound_RegisterSound( "sfx/013.wav" ); + Sound_RegisterSound( "sfx/015.wav" ); + Sound_RegisterSound( "sfx/022.wav" ); + Sound_RegisterSound( "sfx/024.wav" ); + Sound_RegisterSound( "sfx/025.wav" ); + Sound_RegisterSound( "sfx/026.wav" ); + Sound_RegisterSound( "sfx/027.wav" ); + Sound_RegisterSound( "sfx/035.wav" ); + Sound_RegisterSound( "sfx/037.wav" ); + Sound_RegisterSound( "sfx/046.wav" ); + Sound_RegisterSound( "sfx/049.wav" ); + Sound_RegisterSound( "sfx/071.wav" ); + Sound_RegisterSound( "sfx/074.wav" ); + Sound_RegisterSound( "sfx/076.wav" ); + Sound_RegisterSound( "sfx/086.wav" ); + Sound_RegisterSound( "sfx/088.wav" ); + Sound_RegisterSound( "sfx/105.wav" ); + Sound_RegisterSound( "sfx/107.wav" ); + + Com_Printf( "preloadBeforePlay(): %i msec\n", Sys_Milliseconds() - start ); +} + +/* + ================== + iphoneWriteConfig + + ================== + */ +void iphoneWriteConfig( void ) { + FILE *fp; + char path[ MAX_OSPATH]; + cvar_t *var; + char buffer[1024]; + + my_snprintf( path, sizeof( path ), "%s/config.cfg", iphoneDocDirectory ); + fp = fopen( path, "w" ); + if( ! fp ) { + Com_Printf( "Could not write config.cfg.\n" ); + return; + } + + // write out commands to set the archived cvars + for( var = cvar_vars ; var ; var = var->next ) { + if( var->flags & CVAR_ARCHIVE ) { + my_snprintf( buffer, sizeof( buffer ), "set %s \"%s\"\n", var->name, var->string ); + fprintf( fp, "%s", buffer ); + Com_Printf( "%s", buffer ); + } + } + + fclose( fp ); +} + + +/* + ================== + iphoneShutdown + + Save the game at this position + ================== + */ +void iphoneShutdown() { + Sound_StopAllSounds(); + Sound_StopBGTrack(); + iphoneWriteConfig(); + SaveTheGame(); + exit( 0 ); +} + diff --git a/wolf3d/code/iphone/iphone_menus.c b/wolf3d/code/iphone/iphone_menus.c new file mode 100644 index 0000000..daf99fa --- /dev/null +++ b/wolf3d/code/iphone/iphone_menus.c @@ -0,0 +1,1190 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +#include "../wolfiphone.h" + +int intermissionStartFrameNum; +int hasReleased; + +menuState_t menuState; +colour4_t highlightColor = { 128, 128, 128, 255 }; +colour4_t colorPressed = { 128, 128, 0, 255 }; + +/* + ================== + iphoneDrawPicNum + + ================== + */ +void iphoneDrawPicNum( int x, int y, int w, int h, int glTexNum ) { + R_Bind( glTexNum ); + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( 0.0f, 0.0f ); pfglVertex2i( x, y ); + pfglTexCoord2f( 1.0f, 0.0f ); pfglVertex2i( x+w, y ); + pfglTexCoord2f( 1.0f, 1.0f ); pfglVertex2i( x+w, y+h ); + pfglTexCoord2f( 0.0f, 1.0f ); pfglVertex2i( x, y+h ); + + pfglEnd(); +} + +/* + ================== + iphoneDrawPic + + ================== + */ +void iphoneDrawPic( int x, int y, int w, int h, const char *pic ) { + texture_t *gl; + + gl = TM_FindTexture( pic, TT_Pic ); + if( ! gl ) { + Com_Printf( "Can't find pic: %s\n", pic ); + return; + } + + R_Bind( gl->texnum ); + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( 0.0f, 0.0f ); pfglVertex2i( x, y ); + pfglTexCoord2f( gl->maxS, 0.0f ); pfglVertex2i( x+w, y ); + pfglTexCoord2f( gl->maxS, gl->maxT ); pfglVertex2i( x+w, y+h ); + pfglTexCoord2f( 0.0f, gl->maxT ); pfglVertex2i( x, y+h ); + + pfglEnd(); +} + +/* + ================== + iphoneDrawPicWithTouch + + ================== + */ +int iphoneDrawPicWithTouch( int x, int y, int w, int h, const char *pic ) { + int r = TouchReleased( x, y, w, h ); + + if ( r ) { + // make sure it is full intensity if it is touch-released, even if + // it wasn't active previously + pfglColor3f( 1, 1, 1 ); + } + iphoneDrawPic( x, y, w, h, pic ); + if ( TouchDown( x, y, w, h ) ) { + colour4_t color = { 255, 255, 255, 64 }; + R_Draw_Blend( x, y, w, h, color ); + } + return r; +} + + + +/* + ================== + iphoneSlider + + ================== + */ +void iphoneSlider( int x, int y, int w, int h, const char *title, cvar_t *cvar, + float min, float max ) { + float value = cvar->value; + char str[80]; + float f = ( value - min ) / ( max - min ); + + if ( f < 0 ) { + f = 0; + } + if ( f > 1 ) { + f = 1; + } + + // draw the background + iphoneDrawPic( x, y, w, h, "iphone/stat_bar_2.tga" ); + + // draw the current range + texture_t *gl; + + gl = TM_FindTexture( "iphone/stat_bar_1.tga", TT_Pic ); + assert( gl ); + R_Bind( gl->texnum ); + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( 0.0f, 0.0f ); pfglVertex2i( x, y ); + pfglTexCoord2f( f, 0.0f ); pfglVertex2i( x+w*f, y ); + pfglTexCoord2f( f, 1.0f ); pfglVertex2i( x+w*f, y+h ); + pfglTexCoord2f( 0.0f, 1.0f ); pfglVertex2i( x, y+h ); + + pfglEnd(); + + // draw the title and fraction + sprintf( str, "%s : %i%%", title, (int)(f*100) ); + iphoneCenterText( x+ w/2, y+h/2-8, str ); + + // check for touches + if ( numTouches > 0 && touches[0][0] >= x && touches[0][0] < x + w + && touches[0][1] >= y && touches[0][1] < y+ h ) { + float newValue; + float delta; + + f = (float)( touches[0][0] - x ) / w; + // round to tenths + f = (int)( ( f + 0.05 ) * 10 ) * 0.1f; + if ( f < 0 ) { + f = 0; + } + if ( f > 1.0 ) { + f = 1.0; + } + + newValue = min + f * ( max - min ); + delta = fabs( newValue - cvar->value ); + if ( f == 0 && cvar->value == 0 ) { + // special case of disable-at-0 + } else if ( delta > 0.01 ) { + Cvar_SetValue( cvar->name, newValue ); + Sound_StartLocalSound( "iphone/slide_01.wav" ); + } + } + +} + +/* + ================== + BackButton + + ================== + */ +int BackButton() { + if ( iphoneDrawPicWithTouch( 0, 0, 64, 32, "iphone/button_back.tga" ) ) { + return 1; + } + return 0; +} + +void GetMoreLevels( int x, int y ) { + if ( iphoneDrawPicWithTouch( x, y, 128, 64, "iphone/button_levels.tga" ) ) { + // directly to the app store for more levels + SysIPhoneOpenURL( "http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=309470478" ); + } +} + + +/* + ================== + SaveTheGame + + ================== + */ +extern W8 areaconnect[ NUMAREAS ][ NUMAREAS ]; +extern _boolean areabyplayer[ NUMAREAS ]; + +void SaveTheGame() { + FILE *f; + char path[1024]; + int version = SAVEGAME_VERSION; + int i; + + my_snprintf( path, sizeof( path ), "%s/savegame.bin", iphoneDocDirectory ); + f = fopen( path, "wb" ); + if( ! f ) { + Com_Printf( "Could not open savegame.bin.\n" ); + return; + } + + // turn the r_world->Doors.doors from pointers to indexes + // ok to be destructive, because we are quiting + for ( i = 0 ; i < r_world->Doors.doornum ; i++ ) { + int index = r_world->Doors.Doors[i] - &r_world->Doors.DoorMap[0][0]; + assert( index >= 0 && index < 4096 ); + r_world->Doors.Doors[i] = (void *)index; + } + + // this is only used for the mutant death face, so just + // clear it instead of fixing it up + Player.LastAttacker = NULL; + + currentMap.version = SAVEGAME_VERSION; + fwrite( ¤tMap, 1,sizeof(currentMap), f ); + + fwrite( &huds, 1,sizeof(huds), f); + + fwrite( &levelData, 1,sizeof(levelData), f ); + fwrite( &LevelRatios, 1,sizeof(LevelRatios), f ); + fwrite( &levelstate, 1,sizeof(levelstate), f ); + fwrite( Guards, 1,sizeof(Guards), f ); + fwrite( areaconnect, 1,sizeof(areaconnect), f ); + fwrite( areabyplayer, 1,sizeof(areabyplayer), f ); + fwrite( &PWall, 1,sizeof(PWall), f ); + fwrite( &Player, 1,sizeof(Player), f ); + fwrite( &version, 1,sizeof(version), f ); + + fclose( f ); +} + +/* + ================== + LoadTheGame + + ================== + */ +int LoadTheGame() { + FILE *f; + char path[1024]; + int version; + int i; + int oldCompleted; + + my_snprintf( path, sizeof( path ), "%s/savegame.bin", iphoneDocDirectory ); + f = fopen( path, "rb" ); + if( ! f ) { + Com_Printf( "Could not open savegame.bin.\n" ); + return 0; + } + + fread( ¤tMap, 1,sizeof(currentMap) , f); + + if ( currentMap.version != SAVEGAME_VERSION ) { + Com_Printf( "Savegame header version mismatch: %i != %i\n", currentMap.version, SAVEGAME_VERSION ); + fclose( f ); + return 0; + } + + // load the huds + fread( &huds, 1,sizeof(huds), f); + + // do a normal map start + Cvar_SetValue( skill->name, currentMap.skill ); + PL_NewGame( &Player ); + + oldCompleted = currentMap.levelCompleted; + iphoneStartMap( currentMap.episode, currentMap.map, currentMap.skill ); + currentMap.levelCompleted = oldCompleted; + + // load modifiactions on top + fread( &levelData, 1,sizeof(levelData), f); + fread( &LevelRatios, 1,sizeof(LRstruct), f ); + fread( &levelstate, 1,sizeof(levelstate), f ); + fread( Guards, 1,sizeof(Guards), f ); + fread( areaconnect, 1,sizeof(areaconnect), f ); + fread( areabyplayer, 1,sizeof(areabyplayer), f ); + fread( &PWall, 1,sizeof(PWall), f ); + fread( &Player, 1,sizeof(Player), f ); + fread( &version, 1,sizeof(version), f ); + + fclose( f ); + + if ( version != SAVEGAME_VERSION ) { + Com_Printf( "Savegame trailer version mismatch: %i != %i\n", version, SAVEGAME_VERSION ); + return 0; + } + + // turn the r_world->Doors.doors back to pointers + for ( i = 0 ; i < r_world->Doors.doornum ; i++ ) { + int index = (int)r_world->Doors.Doors[i]; + assert( index >= 0 && index < 4096 ); + r_world->Doors.Doors[i] = &r_world->Doors.DoorMap[0][0] + index; + } + return 1; +} + + +/* + ================== + iphoneStartMap + + This does not reset the player, so call PL_NewGame( &Player ) if it is a new start. + ================== + */ +void iphoneStartMap( int episodeNum, int mapNum, int skillLevel ) { + char command[128]; + int levelNum = episodeNum*10+mapNum; + + Com_Printf( "iphoneStartMap( %i, %i, %i )\n", episodeNum, mapNum, skillLevel ); + + // get the sound playing + Sound_Update( vnull, vnull, vnull, vnull ); + + // clean up game feedback + damageflash = 0; + bonusFrameNum = 0; + attackDirTime[0] = 0; + attackDirTime[1] = 0; + + // note that this has been tried now + currentMap.mapFlags[currentMap.skill][levelNum] |= MF_TRIED; + + // start the game + currentMap.episode = episodeNum; + currentMap.map = mapNum; + currentMap.skill = skillLevel; + currentMap.levelCompleted = 0; + + Cvar_SetValue( skill->name, skillLevel ); + Cvar_SetValue( episode->name, episodeNum ); + sprintf( command, "w%i%i", currentMap.episode, currentMap.map ); + Client_PrepRefresh( command ); + + menuState = IPM_GAME; +} + +/* + ================== + iphoneMainMenu + + ================== + */ +void iphoneMainMenu() { + char str[80]; + float scale = 40 / 32.0; + + iphoneDrawPic( 480-256, 0, 256, 128, "iphone/wolf_logo.tga" ); +#ifdef LITE + iphoneDrawPic( -20, 0, 256, 64, "iphone/ep_1.tga" ); + GetMoreLevels( 0, 96 ); +#else + iphoneDrawPic( -20, 0, 256, 64, "iphone/ep_1_6.tga" ); +#endif + + // we don't need the logo here now that we have a splash screen + // iphoneDrawPic( 0, 320 - 128, 128, 128, "iphone/id_logo.tga" ); + + if ( iphoneDrawPicWithTouch( 300 - 64*scale, 80, 128*scale, 64*scale, "iphone/button_resume.tga" ) ) { + iphonePreloadBeforePlay(); + + // if the game was saved at the intermission screen, immediately + // bring it back up when it is loaded + if ( currentMap.levelCompleted ) { + iphoneStartIntermission( 0 ); + } else { + menuState = IPM_GAME; + } + } + sprintf( str, "E%iM%i", currentMap.episode+1, currentMap.map+1 ); + iphoneCenterText( 300, 80+34*scale, str ); + + if ( iphoneDrawPicWithTouch( 300 - 64*scale, 170, 128*scale, 32*scale, "iphone/button_control.tga" ) ) { + menuState = IPM_CONTROLS; + } + if ( iphoneDrawPicWithTouch( 300 - 64*scale, 220, 128*scale, 32*scale, "iphone/button_new.tga" ) ) { + menuState = IPM_SKILL; + } + if ( iphoneDrawPicWithTouch( 300 - 64*scale, 270, 128*scale, 32*scale, "iphone/button_web.tga" ) ) { + SysIPhoneOpenURL( "http://www.idsoftware.com/wolfenstein3dclassic/" ); + } + + if ( SysIPhoneOtherAudioIsPlaying() ) { + iphoneDrawPic( 480 - 64, 220, 64, 64, "iphone/music_off.tga" ); + } else { + if ( music->value ) { + if ( iphoneDrawPicWithTouch( 480 - 64, 220, 64, 64, "iphone/music_on.tga" ) ) { + Cvar_SetValue( music->name, 0 ); + Sound_StopBGTrack(); + } + } else { + if ( iphoneDrawPicWithTouch( 480 - 64, 220, 64, 64, "iphone/music_off.tga" ) ) { + Cvar_SetValue( music->name, 1 ); + Sound_StartBGTrack( levelData.musicName, levelData.musicName ); + } + } + } + + sprintf( str, "v%3.1f", WOLF_IPHONE_VERSION ); + iphoneCenterText( 460, 300, str ); +} + + +/* + ================== + iphoneControlMenu + + ================== + */ +void iphoneControlMenu() { + int i; + + if ( BackButton() ) { + menuState = IPM_MAIN; + } + + if ( iphoneDrawPicWithTouch( 480-128, 0, 128, 32, "iphone/advanced_button.tga" ) ) { + Cvar_SetValue( controlScheme->name, -1 ); + iphonePreloadBeforePlay(); // make sure all the hud textures are loaded + menuState = IPM_HUDEDIT; + } + + for ( i = 0 ; i < 4 ; i++ ) { + char str[128]; + int remap[4] = { 3,4,1,2}; // artist named them differently than intended... + sprintf( str, "iphone/layout_%i.tga", remap[i] ); + if ( i != controlScheme->value ) { + pfglColor3f( 0.5, 0.5, 0.5 ); + } + if ( iphoneDrawPicWithTouch( 5 + 120 * i, 40, 110, 110, str ) ) { + Cvar_SetValue( controlScheme->name, i ); + HudSetForScheme( i ); + } + pfglColor3f( 1, 1, 1 ); + } + + iphoneSlider( 20, 170, 440, 40, "sensitivity", sensitivity, 0, 1 ); + + iphoneSlider( 20, 220, 440, 40, "tilt move speed", tiltMove, 5000, 30000 ); + if ( tiltMove->value == 5000 ) { + Cvar_SetValue( tiltMove->name, 0 ); + } + if ( tiltMove->value ) { + Cvar_SetValue( tiltTurn->name, 0 ); + } + iphoneSlider( 20, 270, 440, 40, "tilt turn speed", tiltTurn, 500, 3000 ); + if ( tiltTurn->value == 500 ) { + Cvar_SetValue( tiltTurn->name, 0 ); + } + if ( tiltTurn->value ) { + Cvar_SetValue( tiltMove->name, 0 ); + } + + //iphoneSlider( 20, 280, 440, 40, "tilt fire", tiltFire, 0, 1 ); + +} + +/* + ================== + iphoneSkillMenu + + ================== + */ +void iphoneSkillMenu() { + int s; + char str[64]; + + if ( BackButton() ) { + menuState = IPM_MAIN; + } + + // highlight the current skill selection + s = (int)skill->value; +// R_Draw_Fill( 80, 40+64*s, 320, 64, highlightColor ); + + for ( s = 0 ; s < 4 ; s++ ) { + my_snprintf( str, sizeof( str ), "iphone/button_skill%i.tga", s+1 ); + + if ( s != (int)skill->value ) { + pfglColor3f( 0.5, 0.5, 0.5 ); + } + if ( iphoneDrawPicWithTouch( 112, 40+64*s, 256, 64, str ) ) { + Cvar_SetValue( skill->name, s ); + menuState = IPM_EPISODE; + } + pfglColor3f( 1, 1, 1 ); + } +} + +/* + ================== + iphoneEpisodeMenu + + ================== + */ +void iphoneEpisodeMenu() { + int e; + char str[64]; +#ifdef LITE + int numE = 1; +#else + int numE = 6; +#endif + + if ( BackButton() ) { + menuState = IPM_SKILL; + } + + // 96 x 48 images + for ( e = 0 ; e < numE ; e++ ) { + my_snprintf( str, sizeof( str ), "iphone/button_ep%i.tga", e+1 ); + + if ( e != (int)episode->value ) { + pfglColor3f( 0.5, 0.5, 0.5 ); + } + if ( iphoneDrawPicWithTouch( 48, 32+48*e, 384, 48, str ) ) { + Cvar_SetValue( episode->name, e ); + menuState = IPM_MAPS; + } + pfglColor3f( 1, 1, 1 ); + } + +#ifdef LITE + // buy more episodes button + GetMoreLevels( 240 - 64, 200 ); +#endif +} + +/* + ================== + iphoneMapMenu + + ================== + */ +void iphoneMapMenu() { +#ifdef LITE +# define NUM_MAPS 3 +#else +# define NUM_MAPS 10 +#endif + int e, m, s; + char str[64]; + + if ( BackButton() ) { + menuState = IPM_EPISODE; + } + + // draw the level selection + e = episode->value; + if ( e < 0 ) { + e = 0; + } + if ( e > 5 ) { + e = 5; + } + s = skill->value; + if ( s < 0 ) { + s = 0; + } + if ( s > 3 ) { + s = 3; + } + + // draw the episode selection + my_snprintf( str, sizeof( str ), "iphone/button_ep%i.tga", e+1 ); + iphoneDrawPicWithTouch( 96, 0, 384, 48, str ); + + // draw the individual maps + for ( m = 0 ; m < NUM_MAPS; m++ ) { + int x; + int y; + colour4_t colorSecret = { 64, 0, 0, 255 }; + colour4_t colorNoTry = { 0, 0, 0, 255 }; + colour4_t colorTried = { 80, 80, 0, 255 }; + colour4_t colorCompleted = { 0, 80, 0, 255 }; + + if ( m == 9 ) { + sprintf( str, "SECRET" ); + x = 120; + y = 90 + 160; + } else if ( m == 8 ) { + sprintf( str, "BOSS" ); + x = 360; + y = 90 + 160; + } else { + sprintf( str, "LEVEL %i", m+1 ); + x = 60 + 120 * ( m % 4 ); + y = 90 + 80 * ( m / 4 ); + } + + unsigned char *color = colorNoTry; + // decide on the background color + int levelNum = e*10+m; + int ch = currentMap.mapFlags[s][levelNum]; + // bit1 = attempted + // bit2 = completed + // bit3 = 100% kills + // bit4 = 100% secrets + // bit5 = 100% treasure + if ( m == 9 && !( ch & MF_TRIED ) ) { + color = colorSecret; + } else if ( ch & MF_COMPLETED ) { + color = colorCompleted; + } else if ( ch & MF_TRIED ) { + color = colorTried; + } else { + color = colorNoTry; + } + + // blink the level you are currently on + if ( ( iphoneFrameNum & 8 ) && m == currentMap.map && e == currentMap.episode ) { + color = colorNoTry; + } + + // draw the level text and check for button hit + if ( TouchDown( x-46, y-9, 88, 32 ) ) { + color = colorPressed; + } + R_Draw_Fill( x-46, y-9, 88, 32, color ); + iphoneCenterText( x, y, str ); + + // draw awards + if ( ch & MF_KILLS ) { + iphoneDrawPic( x-46,y+23, 22, 22, "iphone/kills.tga" ); + } + if ( ch & MF_SECRETS ) { + iphoneDrawPic( x-24,y+23, 22, 22, "iphone/secrets.tga" ); + } + if ( ch & MF_TREASURE ) { + iphoneDrawPic( x-2,y+23, 22, 22, "iphone/treasure.tga" ); + } + if ( ch & MF_TIME ) { + iphoneDrawPic( x+20,y+23, 22, 22, "iphone/partime.tga" ); + } + + // don't let them go to the secret level unless they earned it + if ( m == 9 && !( ch & MF_TRIED ) ) { + continue; + } + + if ( TouchReleased( x - 46, y - 9, 88, 32 ) ) { + PL_NewGame( &Player ); + iphoneStartMap( e, m, s ); + iphonePreloadBeforePlay(); + } + } +} + +/* + ================== + iphoneStartIntermission + + The framesFromNow value allow boss death animations to be triggered + ================== + */ +void iphoneStartIntermission( int framesFromNow ) { + // this goes in the savegame if they save at the intermission point, + // which will cause it to come back up there on return + currentMap.levelCompleted = 1; + + // mark this level as having been completed for the level selection menu + int mapNum = currentMap.episode * 10 + currentMap.map; + + // note that this has been tried now + currentMap.mapFlags[currentMap.skill][mapNum] |= MF_COMPLETED; + + // mark the awards + if ( levelstate.time / 60.0f <= levelstate.fpartime * 60 ) { // fpartime is in minutes, time is in tics + currentMap.mapFlags[currentMap.skill][mapNum] |= MF_TIME; + } + if( levelstate.killed_monsters == levelstate.total_monsters ) { + currentMap.mapFlags[currentMap.skill][mapNum] |= MF_KILLS; + } + if( levelstate.found_secrets == levelstate.total_secrets ) { + currentMap.mapFlags[currentMap.skill][mapNum] |= MF_SECRETS; + } + if( levelstate.found_treasure == levelstate.total_treasure ) { + currentMap.mapFlags[currentMap.skill][mapNum] |= MF_TREASURE; + } + + intermissionStartFrameNum = iphoneFrameNum; + + if ( framesFromNow ) { + intermissionTriggerFrame = iphoneFrameNum + framesFromNow; + return; + } + + intermissionTriggerFrame = 0; + menuState = IPM_INTERMISSION; + hasReleased = 0; // ensure touch up before skipping intermission +} + +/* + ================== + DrawDigit + + ================== + */ +void DrawDigit( int x, int y, int digit ) { + R_Bind( numberPics[digit]->texnum ); + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( 0, 0 ); pfglVertex2i( x, y ); + pfglTexCoord2f( 1, 0 ); pfglVertex2i( x+32, y ); + pfglTexCoord2f( 1, 1 ); pfglVertex2i( x+32, y+32 ); + pfglTexCoord2f( 0, 1 ); pfglVertex2i( x, y+32 ); + + pfglEnd(); +} + +void DrawDoubleDigit( int x, int y, int number ) { + int step = 32; + if ( number >= 100 ) { + // cram three digits into the same space + DrawDigit( x-8, y, number / 100 ); + number %= 100; + x += 16; + step = 24; + } + if ( number >= 10 ) { + DrawDigit( x, y, number / 10 ); + number %= 10; + } + DrawDigit( x+step, y, number ); +} + +void DrawTime( int x, int y, int seconds ) { + int min = seconds / 60; + int sec = seconds % 60; + + DrawDoubleDigit( x, y, min ); +// DrawDoubleDigit( x+76, y, sec ); + // always print both digits of seconds, so 2:00 prints correctly + DrawDigit( x+76, y, sec / 10 ); + DrawDigit( x+76+32, y, sec % 10 ); +} + +void DrawRatio( int y, int got, int total, const char *bonusPic ) { + DrawDoubleDigit( 285, y, got ); + DrawDoubleDigit( 361, y, total ); + + // draw the award icon + if ( got == total ) { + iphoneDrawPic( 480 - 40, y, 32, 32, bonusPic ); + } +} + +/* + ================== + DrawIntermissionStats + + Used for both the intermission and the stats view + ================== + */ +void DrawIntermissionStats() { + char str[128]; + + iphoneDrawPic( 0, 0, 480, 320, "iphone/intermission_256.tga" ); + + // episode + my_snprintf( str, sizeof( str ), "iphone/button_ep%i.tga", currentMap.episode+1 ); + iphoneDrawPic( 0, 0, 384, 48, str ); + + // level + iphoneDrawNumber( 430, 0, currentMap.map + 1, 48, 48 ); + + // par / time + DrawTime( 51, 63, levelstate.fpartime * 60 ); // fpartime is in minutes + DrawTime( 285, 63, levelstate.time / 60 ); // levelstate.time is in tics + if ( levelstate.time/60 <= levelstate.fpartime * 60 ) { + iphoneDrawPic( 480 - 40, 63, 32, 32, "iphone/partime.tga" ); + } + + // ratios + DrawRatio( 124, levelstate.killed_monsters, levelstate.total_monsters, "iphone/kills.tga" ); + DrawRatio( 189, levelstate.found_secrets, levelstate.total_secrets, "iphone/secrets.tga" ); + DrawRatio( 255, levelstate.found_treasure, levelstate.total_treasure, "iphone/treasure.tga" ); +} + +/* + ================== + iphoneIntermission + + ================== + */ +void iphoneIntermission() { + int nextLevel = 0; + + DrawIntermissionStats(); + + // require all touches off before the intermission can exit + if ( numTouches == 0 && hasReleased == 0 ) { + hasReleased = 1; + return; // don't let the TouchReleased immediately fire + } + if ( !hasReleased ) { + return; + } + + //---------------------- + // tap for next level + //---------------------- + if ( !TouchReleased( 0, 0, 480, 320 ) ) { + return; + } + + menuState = IPM_GAME; + + PL_NextLevel( &Player ); + + if( g_version->value == SPEAROFDESTINY ) { + } + else + { + int currentLevel = currentMap.episode * 10 + currentMap.map; + +#ifdef LITE + switch ( currentLevel ) { + case 2: + // go back to the episode select screen + menuState = IPM_VICTORY; + Sound_StartBGTrack( "music/URAHERO.ogg", "music/URAHERO.ogg" ); + return; + default: nextLevel = currentLevel + 1; break; + } +#else + if( Player.playstate == ex_secretlevel ) { + switch( currentLevel ) { + case 0: nextLevel = 9; break; + case 10: nextLevel = 19; break; + case 26: nextLevel = 29; break; + case 32: nextLevel = 39; break; + case 44: nextLevel = 49; break; + case 52: nextLevel = 59; break; + } + } else { + switch ( currentLevel ) { + case 8: + case 18: + case 28: + case 38: + case 48: + case 58: + // go back to the episode select screen + menuState = IPM_VICTORY; + Sound_StartBGTrack( "music/URAHERO.ogg", "music/URAHERO.ogg" ); + return; + case 9: nextLevel = 1; break; + case 19: nextLevel = 11; break; + case 29: nextLevel = 27; break; + case 39: nextLevel = 33; break; + case 49: nextLevel = 44; break; + case 59: nextLevel = 53; break; + default: nextLevel = currentLevel + 1; break; + } + } +#endif + } + + iphoneStartMap( (nextLevel/10), (nextLevel%10), skill->value ); +} + +/* + ================== + iphoneVictory + + ================== + */ +void iphoneVictory() { + iphoneDrawPic( 0, 0, 480, 320, "iphone/victory_256.tga" ); + if ( !TouchReleased( 0, 0, 480, 320 ) ) { + return; + } + menuState = IPM_EPISODE; +} + +/* + ================== + iphoneAutomap + + ================== + */ +float mapOrigin[2]; + +typedef struct { + W8 x, y; + short texnum; +} mapTile_t; +#define MAPTILE_SPRITE_FLAG 1024 +#define MAX_MAP_TILES 5000 // 4096 tiles + sprites +mapTile_t mapTiles[MAX_MAP_TILES]; +int numMapTiles; + +int MapTileSort( const void *a, const void *b ) { + return ((mapTile_t *)a)->texnum - ((mapTile_t *)b)->texnum; +} + +void iphoneOpenAutomap() { + mapTile_t *mt = mapTiles; + numMapTiles = 0; + int x, y; + int xx, yy; + W32 tx, ty, n; + sprite_t* sprt; + + mapOrigin[0] = Player.position.origin[0] / (float)TILEGLOBAL; + mapOrigin[1] = Player.position.origin[1] / (float)TILEGLOBAL; + menuState = IPM_AUTOMAP; + + // identify all the tiles to fill in + for( x = 0 ; x < 64; ++x ) { + for( y = 0 ; y < 64; ++y ) { + if ( r_world->tilemap[ x ][ y ] & ( WALL_TILE | PUSHWALL_TILE ) ) { + int visible = 0; + // check all 8 surrounding tiles for visibility + for ( xx = -1 ; xx <= 1 ; xx++ ) { + if ( x + xx < 0 ) { + continue; + } + if ( x + xx > 63 ) { + continue; + } + for ( yy = -1 ; yy <= 1 ; yy++ ) { + if ( y + yy < 0 ) { + continue; + } + if ( y + yy > 63 ) { + continue; + } + if ( r_world->tileEverVisible[x+xx][y+yy] ) { + visible = 1; + break; + } + } + } + if ( !visible ) { + continue; + } + int tex = r_world->wall_tex_y[ x ][ y ]; + // special hack for the elevator switch tile, which is always + // facing east west for the switch, and north south for the railing + if ( tex == 40 && ( ( x>0 && r_world->tileEverVisible[x+1][y] ) + || ( x < 63 && r_world->tileEverVisible[x-1][y] ) ) ) { + tex = r_world->wall_tex_x[ x ][ y ]; + } + if ( tex < 0x6a ) { // skip pushwall destinations + assert( tex >= 0 && tex < 1000 ); + mt->x = x; + mt->y = y; + mt->texnum = tex; + if ( !wallTextures[mt->texnum] ) { + LoadWallTexture(mt->texnum); + } + mt++; + continue; + } + } + if ( !r_world->tileEverVisible[x][y] ) { + continue; + } + if( r_world->tilemap[ x ][ y ] & DOOR_TILE ) { + mt->x = x; + mt->y = y; + mt->texnum = r_world->Doors.DoorMap[ x ][ y ].texture; + LoadWallTexture(mt->texnum); + mt++; + continue; + } + // solid floor + mt->x = x; + mt->y = y; + mt->texnum = -1; + mt++; + } + } + + // add solid sprite objects + for( n = 0, sprt = levelData.sprites; n < levelData.numSprites; ++n, ++sprt ) { + if( sprt->flags & SPRT_REMOVE ) { + continue; + } + if ( sprt->tex[0] >= SPR_GRD_S_1 ) { + // don't draw enemies, only static sprites + continue; + } + + tx = sprt->tilex; + ty = sprt->tiley; + + if( tx > 63 ) { + continue; + } + if( ty > 63 ) { + continue; + } + if ( !r_world->tileEverVisible[tx][ty] ) { + continue; + } + mt->x = tx; + mt->y = ty; + mt->texnum = MAPTILE_SPRITE_FLAG | sprt->tex[0]; + mt++; + + if ( !spriteTextures[ sprt->tex[0] ] ) { + char name[1024]; + my_snprintf( name, sizeof( name ), "sprites/%.3d.tga", sprt->tex[0] ); + spriteTextures[sprt->tex[0]] = TM_FindTexture( name, TT_Sprite ); + } + + if ( mt == &mapTiles[MAX_MAP_TILES] ) { + break; // list is full, some items won't show (shouldn't happen) + } + } + + // sort the tiles to be drawn by texture + numMapTiles = mt - mapTiles; + + qsort( mapTiles, numMapTiles, sizeof( mapTiles[0] ), MapTileSort ); +} + +void iphoneAutomap() { + mapTile_t *mt; + float px, py; + float angle, c, s; + int texnum; + float scale; + + // do touch ops before drawing for minimum latency + + scale = mapScale->value; + if ( scale < 4 ) { // ensure we don't div by 0 from a console cvar change + scale = 4; + } + + // drag for scrolling + if ( numTouches == 1 ) { + if ( numPrevTouches == 1 ) { + mapOrigin[0] -= ( touches[0][0] - prevTouches[0][0] ) / scale; + mapOrigin[1] += ( touches[0][1] - prevTouches[0][1] ) / scale; + } + } + + // pinch for scaling + if ( numTouches == 2 ) { + if ( numPrevTouches == 2 ) { + float curDist = sqrt( + ( touches[0][0] - touches[1][0] ) * ( touches[0][0] - touches[1][0] ) + + ( touches[0][1] - touches[1][1] ) * ( touches[0][1] - touches[1][1] ) ); + float prevDist = sqrt( + ( prevTouches[0][0] - prevTouches[1][0] ) * ( prevTouches[0][0] - prevTouches[1][0] ) + + ( prevTouches[0][1] - prevTouches[1][1] ) * ( prevTouches[0][1] - prevTouches[1][1] ) ); + if ( prevDist == 0 ) { + prevDist = curDist; + } + scale *= curDist / prevDist; + if ( scale < 4 ) { + scale = 4; + } + if ( scale > 64 ) { + scale = 64; + } + Cvar_SetValue( mapScale->name, scale ); + } + + } + + // todo -- double tap for center on player? + + + // set up matrix for drawing in tile units + pfglMatrixMode( GL_PROJECTION ); + pfglLoadIdentity(); + iphoneRotateForLandscape(); + pfglOrtho( mapOrigin[0]-240.0 / scale, mapOrigin[0]+240.0 / scale, + mapOrigin[1]-160.0 / scale, mapOrigin[1]+160.0 / scale, -99999, 99999 ); + + mt = mapTiles; + texnum = 99999; + for ( int i = 0 ; i < numMapTiles ; i++, mt++ ) { + if ( texnum != mt->texnum ) { + texnum = mt->texnum; + if ( i != 0 ) { + pfglEnd(); + } + if ( mt->texnum == -1 ) { + qglDisable( GL_TEXTURE_2D ); + pfglColor3f( r_world->floorColour[0]/255.0, r_world->floorColour[1]/255.0, r_world->floorColour[2]/255.0 ); + } else if ( mt->texnum & MAPTILE_SPRITE_FLAG ) { + qglEnable( GL_TEXTURE_2D ); + pfglColor3f( 1, 1, 1 ); + R_Bind( spriteTextures[mt->texnum&~MAPTILE_SPRITE_FLAG]->texnum ); + } else { + qglEnable( GL_TEXTURE_2D ); + pfglColor3f( 1, 1, 1 ); + R_Bind( wallTextures[mt->texnum]->texnum ); + } + pfglBegin( GL_QUADS ); + } + pfglTexCoord2f( 0, 1 ); + pfglVertex2i( mt->x, mt->y ); + pfglTexCoord2f( 1, 1 ); + pfglVertex2i( mt->x+1, mt->y ); + pfglTexCoord2f( 1, 0 ); + pfglVertex2i( mt->x+1, mt->y+1 ); + pfglTexCoord2f( 0, 0 ); + pfglVertex2i( mt->x, mt->y+1 ); + } + pfglEnd(); + + // draw the yellow player triangle + qglDisable( GL_TEXTURE_2D ); + if ( iphoneFrameNum & 8 ) { // blink it + pfglColor3f( 1, 1, 0 ); + } else { + pfglColor3f( 0.5, 0.5, 0 ); + } + angle = M_PI * Player.position.angle / (float)ANG_180; + c = cos( angle ); + s = sin( angle ); + px = Player.position.origin[0] / (float)TILEGLOBAL; + py = Player.position.origin[1] / (float)TILEGLOBAL; + pfglBegin( GL_TRIANGLES ); + pfglVertex3f( px + c * 0.5, py + s * 0.5, 0 ); + pfglVertex3f( px - c * 0.5 - s * 0.3, py - s * 0.5 + c * 0.3, 0 ); + pfglVertex3f( px - c * 0.5 + s * 0.3, py - s * 0.5 - c * 0.3, 0 ); + pfglEnd(); + + qglEnable( GL_TEXTURE_2D ); + pfglColor3f( 1, 1, 1 ); + + // back button for returning to game + pfglMatrixMode( GL_PROJECTION ); + pfglLoadIdentity(); + iphoneRotateForLandscape(); + pfglOrtho( 0, 480, 320, 0, -99999, 99999 ); + if ( BackButton() ) { + menuState = IPM_GAME; + } + + // stats button for stats display + if ( iphoneDrawPicWithTouch( 480-64, 0, 64, 32, "iphone/stats.tga" ) ) { + menuState = IPM_STATS; + } +} + +void iphoneStats() { + DrawIntermissionStats(); + + // require all touches off before the intermission can exit + if ( numTouches == 0 && hasReleased == 0 ) { + hasReleased = 1; + return; // don't let the TouchReleased immediately fire + } + if ( !hasReleased ) { + return; + } + + if ( !TouchReleased( 0, 0, 480, 320 ) ) { + return; + } + + menuState = IPM_AUTOMAP; +} + +void iphoneDrawMenus() { + iphoneDrawPic( 0, 0, 480, 320, "iphone/background_1.tga" ); + + switch ( menuState ) { + case IPM_MAIN: iphoneMainMenu(); break; + case IPM_SKILL: iphoneSkillMenu(); break; + case IPM_EPISODE: iphoneEpisodeMenu(); break; + case IPM_MAPS: iphoneMapMenu(); break; + case IPM_CONTROLS: iphoneControlMenu(); break; + case IPM_INTERMISSION: iphoneIntermission(); break; + case IPM_VICTORY: iphoneVictory(); break; + case IPM_AUTOMAP: iphoneAutomap(); break; + case IPM_STATS: iphoneStats(); break; + case IPM_HUDEDIT: HudEditFrame(); break; + } +} + + diff --git a/wolf3d/code/iphone/iphone_qgl.h b/wolf3d/code/iphone/iphone_qgl.h new file mode 100644 index 0000000..793ec74 --- /dev/null +++ b/wolf3d/code/iphone/iphone_qgl.h @@ -0,0 +1,2392 @@ +/**** This file is autogenerated. Run GenerateQGL.pl to update it ****/ + +#ifndef _IPHONE_QGL_H_ +#define _IPHONE_QGL_H_ + +#ifdef QGL_LOG_GL_CALLS +extern unsigned int QGLLogGLCalls; +#ifdef __cplusplus +extern "C" { +#endif + FILE *QGLDebugFile(void); +#ifdef __cplusplus +} +#endif +#endif + +#include "iphone_qgl_enumerants.h" + + +#ifdef __cplusplus +extern "C" { +#endif + void QGLCheckError(const char *message); +#ifdef __cplusplus +} +#endif +extern unsigned int QGLBeginStarted; + +// This has to be done to avoid infinite recursion between our glGetError wrapper and QGLCheckError() +static inline GLenum _glGetError(void) { + return glGetError(); +} + +// void glAlphaFunc (GLenum func, GLclampf ref); +static inline void qglAlphaFunc(GLenum func, GLclampf ref) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glAlphaFunc(func=%s, ref=%f)\n", StringFromGLEnumerant( func ), ref); +#endif + glAlphaFunc(func, ref); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glAlphaFunc"); +#endif +} + +// void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +static inline void qglClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClearColor(red=%f, green=%f, blue=%f, alpha=%f)\n", red, green, blue, alpha); +#endif + glClearColor(red, green, blue, alpha); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClearColor"); +#endif +} + +// void glClearDepthf (GLclampf depth); +static inline void qglClearDepthf(GLclampf depth) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClearDepthf(depth=%f)\n", depth); +#endif + glClearDepthf(depth); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClearDepthf"); +#endif +} + +// void glClipPlanef (GLenum plane, const GLfloat *equation); +static inline void qglClipPlanef(GLenum plane, const GLfloat *equation) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClipPlanef(plane=%s, equation=%p)\n", StringFromGLEnumerant( plane ), equation); +#endif + glClipPlanef(plane, equation); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClipPlanef"); +#endif +} + +// void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +// void glDepthRangef (GLclampf zNear, GLclampf zFar); +static inline void qglDepthRangef(GLclampf zNear, GLclampf zFar) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDepthRangef(zNear=%f, zFar=%f)\n", zNear, zFar); +#endif + glDepthRangef(zNear, zFar); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDepthRangef"); +#endif +} + +// void glFogf (GLenum pname, GLfloat param); +static inline void qglFogf(GLenum pname, GLfloat param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFogf(pname=%s, param=%f)\n", StringFromGLEnumerant( pname ), param); +#endif + glFogf(pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFogf"); +#endif +} + +// void glFogfv (GLenum pname, const GLfloat *params); +static inline void qglFogfv(GLenum pname, const GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFogfv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glFogfv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFogfv"); +#endif +} + +// void glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +static inline void qglFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFrustumf(left=%f, right=%f, bottom=%f, top=%f, zNear=%f, zFar=%f)\n", left, right, bottom, top, zNear, zFar); +#endif + glFrustumf(left, right, bottom, top, zNear, zFar); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFrustumf"); +#endif +} + +// void glGetClipPlanef (GLenum pname, GLfloat *equation); +static inline void qglGetClipPlanef(GLenum pname, GLfloat *equation) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetClipPlanef(pname=%s, equation=%p)\n", StringFromGLEnumerant( pname ), equation); +#endif + glGetClipPlanef(pname, equation); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetClipPlanef"); +#endif +} + +// void glGetFloatv (GLenum pname, GLfloat *params); +static inline void qglGetFloatv(GLenum pname, GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetFloatv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glGetFloatv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetFloatv"); +#endif +} + +// void glGetLightfv (GLenum light, GLenum pname, GLfloat *params); +static inline void qglGetLightfv(GLenum light, GLenum pname, GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetLightfv(light=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( light ), StringFromGLEnumerant( pname ), params); +#endif + glGetLightfv(light, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetLightfv"); +#endif +} + +// void glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); +static inline void qglGetMaterialfv(GLenum face, GLenum pname, GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetMaterialfv(face=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( face ), StringFromGLEnumerant( pname ), params); +#endif + glGetMaterialfv(face, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetMaterialfv"); +#endif +} + +// void glGetTexEnvfv (GLenum env, GLenum pname, GLfloat *params); +static inline void qglGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetTexEnvfv(env=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( env ), StringFromGLEnumerant( pname ), params); +#endif + glGetTexEnvfv(env, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetTexEnvfv"); +#endif +} + +// void glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +static inline void qglGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetTexParameterfv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glGetTexParameterfv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetTexParameterfv"); +#endif +} + +// void glLightModelf (GLenum pname, GLfloat param); +static inline void qglLightModelf(GLenum pname, GLfloat param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLightModelf(pname=%s, param=%f)\n", StringFromGLEnumerant( pname ), param); +#endif + glLightModelf(pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLightModelf"); +#endif +} + +// void glLightModelfv (GLenum pname, const GLfloat *params); +static inline void qglLightModelfv(GLenum pname, const GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLightModelfv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glLightModelfv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLightModelfv"); +#endif +} + +// void glLightf (GLenum light, GLenum pname, GLfloat param); +static inline void qglLightf(GLenum light, GLenum pname, GLfloat param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLightf(light=%s, pname=%s, param=%f)\n", StringFromGLEnumerant( light ), StringFromGLEnumerant( pname ), param); +#endif + glLightf(light, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLightf"); +#endif +} + +// void glLightfv (GLenum light, GLenum pname, const GLfloat *params); +static inline void qglLightfv(GLenum light, GLenum pname, const GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLightfv(light=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( light ), StringFromGLEnumerant( pname ), params); +#endif + glLightfv(light, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLightfv"); +#endif +} + +// void glLineWidth (GLfloat width); +static inline void qglLineWidth(GLfloat width) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLineWidth(width=%f)\n", width); +#endif + glLineWidth(width); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLineWidth"); +#endif +} + +// void glLoadMatrixf (const GLfloat *m); +static inline void qglLoadMatrixf(const GLfloat *m) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLoadMatrixf(m=%p)\n", m); +#endif + glLoadMatrixf(m); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLoadMatrixf"); +#endif +} + +// void glMaterialf (GLenum face, GLenum pname, GLfloat param); +static inline void qglMaterialf(GLenum face, GLenum pname, GLfloat param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMaterialf(face=%s, pname=%s, param=%f)\n", StringFromGLEnumerant( face ), StringFromGLEnumerant( pname ), param); +#endif + glMaterialf(face, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMaterialf"); +#endif +} + +// void glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); +static inline void qglMaterialfv(GLenum face, GLenum pname, const GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMaterialfv(face=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( face ), StringFromGLEnumerant( pname ), params); +#endif + glMaterialfv(face, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMaterialfv"); +#endif +} + +// void glMultMatrixf (const GLfloat *m); +static inline void qglMultMatrixf(const GLfloat *m) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMultMatrixf(m=%p)\n", m); +#endif + glMultMatrixf(m); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMultMatrixf"); +#endif +} + +// void glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +static inline void qglMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMultiTexCoord4f(target=%s, s=%f, t=%f, r=%f, q=%f)\n", StringFromGLEnumerant( target ), s, t, r, q); +#endif + glMultiTexCoord4f(target, s, t, r, q); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMultiTexCoord4f"); +#endif +} + +// void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); +static inline void qglNormal3f(GLfloat nx, GLfloat ny, GLfloat nz) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glNormal3f(nx=%f, ny=%f, nz=%f)\n", nx, ny, nz); +#endif + glNormal3f(nx, ny, nz); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glNormal3f"); +#endif +} + +// void glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +static inline void qglOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glOrthof(left=%f, right=%f, bottom=%f, top=%f, zNear=%f, zFar=%f)\n", left, right, bottom, top, zNear, zFar); +#endif + glOrthof(left, right, bottom, top, zNear, zFar); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glOrthof"); +#endif +} + +// void glPointParameterf (GLenum pname, GLfloat param); +static inline void qglPointParameterf(GLenum pname, GLfloat param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPointParameterf(pname=%s, param=%f)\n", StringFromGLEnumerant( pname ), param); +#endif + glPointParameterf(pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPointParameterf"); +#endif +} + +// void glPointParameterfv (GLenum pname, const GLfloat *params); +static inline void qglPointParameterfv(GLenum pname, const GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPointParameterfv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glPointParameterfv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPointParameterfv"); +#endif +} + +// void glPointSize (GLfloat size); +static inline void qglPointSize(GLfloat size) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPointSize(size=%f)\n", size); +#endif + glPointSize(size); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPointSize"); +#endif +} + +// void glPolygonOffset (GLfloat factor, GLfloat units); +static inline void qglPolygonOffset(GLfloat factor, GLfloat units) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPolygonOffset(factor=%f, units=%f)\n", factor, units); +#endif + glPolygonOffset(factor, units); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPolygonOffset"); +#endif +} + +// void glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +static inline void qglRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glRotatef(angle=%f, x=%f, y=%f, z=%f)\n", angle, x, y, z); +#endif + glRotatef(angle, x, y, z); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glRotatef"); +#endif +} + +// void glScalef (GLfloat x, GLfloat y, GLfloat z); +static inline void qglScalef(GLfloat x, GLfloat y, GLfloat z) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glScalef(x=%f, y=%f, z=%f)\n", x, y, z); +#endif + glScalef(x, y, z); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glScalef"); +#endif +} + +// void glTexEnvf (GLenum target, GLenum pname, GLfloat param); +static inline void qglTexEnvf(GLenum target, GLenum pname, GLfloat param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexEnvf(target=%s, pname=%s, param=%f)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), param); +#endif + glTexEnvf(target, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexEnvf"); +#endif +} + +// void glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); +static inline void qglTexEnvfv(GLenum target, GLenum pname, const GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexEnvfv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glTexEnvfv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexEnvfv"); +#endif +} + +// void glTexParameterf (GLenum target, GLenum pname, GLfloat param); +static inline void qglTexParameterf(GLenum target, GLenum pname, GLfloat param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexParameterf(target=%s, pname=%s, param=%f)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), param); +#endif + glTexParameterf(target, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexParameterf"); +#endif +} + +// void glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +static inline void qglTexParameterfv(GLenum target, GLenum pname, const GLfloat *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexParameterfv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glTexParameterfv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexParameterfv"); +#endif +} + +// void glTranslatef (GLfloat x, GLfloat y, GLfloat z); +static inline void qglTranslatef(GLfloat x, GLfloat y, GLfloat z) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTranslatef(x=%f, y=%f, z=%f)\n", x, y, z); +#endif + glTranslatef(x, y, z); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTranslatef"); +#endif +} + +// void glActiveTexture (GLenum texture); +static inline void qglActiveTexture(GLenum texture) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glActiveTexture(texture=%s)\n", StringFromGLEnumerant( texture )); +#endif + glActiveTexture(texture); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glActiveTexture"); +#endif +} + +// void glAlphaFuncx (GLenum func, GLclampx ref); +static inline void qglAlphaFuncx(GLenum func, GLclampx ref) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glAlphaFuncx(func=%s, ref=%ld)\n", StringFromGLEnumerant( func ), ref); +#endif + glAlphaFuncx(func, ref); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glAlphaFuncx"); +#endif +} + +// void glBindBuffer (GLenum target, GLuint buffer); +static inline void qglBindBuffer(GLenum target, GLuint buffer) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glBindBuffer(target=%s, buffer=%lu)\n", StringFromGLEnumerant( target ), buffer); +#endif + glBindBuffer(target, buffer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glBindBuffer"); +#endif +} + +// void glBindTexture (GLenum target, GLuint texture); +static inline void qglBindTexture(GLenum target, GLuint texture) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glBindTexture(target=%s, texture=%lu)\n", StringFromGLEnumerant( target ), texture); +#endif + glBindTexture(target, texture); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glBindTexture"); +#endif +} + +// void glBlendFunc (GLenum sfactor, GLenum dfactor); +static inline void qglBlendFunc(GLenum sfactor, GLenum dfactor) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glBlendFunc(sfactor=%s, dfactor=%s)\n", StringFromGLEnumerant( sfactor ), StringFromGLEnumerant( dfactor )); +#endif + glBlendFunc(sfactor, dfactor); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glBlendFunc"); +#endif +} + +// void glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +static inline void qglBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glBufferData(target=%s, size=%ld, data=%p, usage=%s)\n", StringFromGLEnumerant( target ), size, data, StringFromGLEnumerant( usage )); +#endif + glBufferData(target, size, data, usage); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glBufferData"); +#endif +} + +// void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +static inline void qglBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glBufferSubData(target=%s, offset=%ld, size=%ld, data=%p)\n", StringFromGLEnumerant( target ), offset, size, data); +#endif + glBufferSubData(target, offset, size, data); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glBufferSubData"); +#endif +} + +// void glClear (GLbitfield mask); +static inline void qglClear(GLbitfield mask) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClear(mask=%lu)\n", mask); +#endif + glClear(mask); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClear"); +#endif +} + +// void glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); +static inline void qglClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClearColorx(red=%ld, green=%ld, blue=%ld, alpha=%ld)\n", red, green, blue, alpha); +#endif + glClearColorx(red, green, blue, alpha); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClearColorx"); +#endif +} + +// void glClearDepthx (GLclampx depth); +static inline void qglClearDepthx(GLclampx depth) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClearDepthx(depth=%ld)\n", depth); +#endif + glClearDepthx(depth); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClearDepthx"); +#endif +} + +// void glClearStencil (GLint s); +static inline void qglClearStencil(GLint s) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClearStencil(s=%ld)\n", s); +#endif + glClearStencil(s); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClearStencil"); +#endif +} + +// void glClientActiveTexture (GLenum texture); +static inline void qglClientActiveTexture(GLenum texture) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClientActiveTexture(texture=%s)\n", StringFromGLEnumerant( texture )); +#endif + glClientActiveTexture(texture); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClientActiveTexture"); +#endif +} + +// void glClipPlanex (GLenum plane, const GLfixed *equation); +static inline void qglClipPlanex(GLenum plane, const GLfixed *equation) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glClipPlanex(plane=%s, equation=%p)\n", StringFromGLEnumerant( plane ), equation); +#endif + glClipPlanex(plane, equation); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glClipPlanex"); +#endif +} + +// void glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +static inline void qglColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glColor4ub(red=%u, green=%u, blue=%u, alpha=%u)\n", red, green, blue, alpha); +#endif + glColor4ub(red, green, blue, alpha); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glColor4ub"); +#endif +} + +// void glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +static inline void qglColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glColor4x(red=%ld, green=%ld, blue=%ld, alpha=%ld)\n", red, green, blue, alpha); +#endif + glColor4x(red, green, blue, alpha); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glColor4x"); +#endif +} + +// void glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +static inline void qglColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glColorMask(red=%u, green=%u, blue=%u, alpha=%u)\n", red, green, blue, alpha); +#endif + glColorMask(red, green, blue, alpha); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glColorMask"); +#endif +} + +// void glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +static inline void qglColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glColorPointer(size=%ld, type=%s, stride=%ld, pointer=%p)\n", size, StringFromGLEnumerant( type ), stride, pointer); +#endif + glColorPointer(size, type, stride, pointer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glColorPointer"); +#endif +} + +// void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +static inline void qglCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glCompressedTexImage2D(target=%s, level=%ld, internalformat=%s, width=%ld, height=%ld, border=%ld, imageSize=%ld, data=%p)\n", StringFromGLEnumerant( target ), level, StringFromGLEnumerant( internalformat ), width, height, border, imageSize, data); +#endif + glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glCompressedTexImage2D"); +#endif +} + +// void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +static inline void qglCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glCompressedTexSubImage2D(target=%s, level=%ld, xoffset=%ld, yoffset=%ld, width=%ld, height=%ld, format=%s, imageSize=%ld, data=%p)\n", StringFromGLEnumerant( target ), level, xoffset, yoffset, width, height, StringFromGLEnumerant( format ), imageSize, data); +#endif + glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glCompressedTexSubImage2D"); +#endif +} + +// void glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +static inline void qglCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glCopyTexImage2D(target=%s, level=%ld, internalformat=%s, x=%ld, y=%ld, width=%ld, height=%ld, border=%ld)\n", StringFromGLEnumerant( target ), level, StringFromGLEnumerant( internalformat ), x, y, width, height, border); +#endif + glCopyTexImage2D(target, level, internalformat, x, y, width, height, border); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glCopyTexImage2D"); +#endif +} + +// void glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +static inline void qglCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glCopyTexSubImage2D(target=%s, level=%ld, xoffset=%ld, yoffset=%ld, x=%ld, y=%ld, width=%ld, height=%ld)\n", StringFromGLEnumerant( target ), level, xoffset, yoffset, x, y, width, height); +#endif + glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glCopyTexSubImage2D"); +#endif +} + +// void glCullFace (GLenum mode); +static inline void qglCullFace(GLenum mode) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glCullFace(mode=%s)\n", StringFromGLEnumerant( mode )); +#endif + glCullFace(mode); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glCullFace"); +#endif +} + +// void glDeleteBuffers (GLsizei n, const GLuint *buffers); +static inline void qglDeleteBuffers(GLsizei n, const GLuint *buffers) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDeleteBuffers(n=%ld, buffers=%p)\n", n, buffers); +#endif + glDeleteBuffers(n, buffers); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDeleteBuffers"); +#endif +} + +// void glDeleteTextures (GLsizei n, const GLuint *textures); +static inline void qglDeleteTextures(GLsizei n, const GLuint *textures) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDeleteTextures(n=%ld, textures=%p)\n", n, textures); +#endif + glDeleteTextures(n, textures); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDeleteTextures"); +#endif +} + +// void glDepthFunc (GLenum func); +static inline void qglDepthFunc(GLenum func) +{ + func = GL_ALWAYS; +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDepthFunc(func=%s)\n", StringFromGLEnumerant( func )); +#endif + glDepthFunc(func); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDepthFunc"); +#endif +} + +// void glDepthMask (GLboolean flag); +static inline void qglDepthMask(GLboolean flag) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDepthMask(flag=%u)\n", flag); +#endif + glDepthMask(flag); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDepthMask"); +#endif +} + +// void glDepthRangex (GLclampx zNear, GLclampx zFar); +static inline void qglDepthRangex(GLclampx zNear, GLclampx zFar) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDepthRangex(zNear=%ld, zFar=%ld)\n", zNear, zFar); +#endif + glDepthRangex(zNear, zFar); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDepthRangex"); +#endif +} + +// void glDisable (GLenum cap); +static inline void qglDisable(GLenum cap) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDisable(cap=%s)\n", StringFromGLEnumerant( cap )); +#endif + glDisable(cap); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDisable"); +#endif +} + +// void glDisableClientState (GLenum array); +static inline void qglDisableClientState(GLenum array) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDisableClientState(array=%s)\n", StringFromGLEnumerant( array )); +#endif + glDisableClientState(array); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDisableClientState"); +#endif +} + +// void glDrawArrays (GLenum mode, GLint first, GLsizei count); +static inline void qglDrawArrays(GLenum mode, GLint first, GLsizei count) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawArrays(mode=%s, first=%ld, count=%ld)\n", StringFromGLEnumerant( mode ), first, count); +#endif + glDrawArrays(mode, first, count); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawArrays"); +#endif +} + +// void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +static inline void qglDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawElements(mode=%s, count=%ld, type=%s, indices=%p)\n", StringFromGLEnumerant( mode ), count, StringFromGLEnumerant( type ), indices); +#endif + glDrawElements(mode, count, type, indices); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawElements"); +#endif +} + +// void glEnable (GLenum cap); +static inline void qglEnable(GLenum cap) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glEnable(cap=%s)\n", StringFromGLEnumerant( cap )); +#endif + glEnable(cap); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glEnable"); +#endif +} + +// void glEnableClientState (GLenum array); +static inline void qglEnableClientState(GLenum array) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glEnableClientState(array=%s)\n", StringFromGLEnumerant( array )); +#endif + glEnableClientState(array); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glEnableClientState"); +#endif +} + +// void glFinish (void); +static inline void qglFinish(void) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFinish(void)\n"); +#endif + glFinish(); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFinish"); +#endif +} + +// void glFlush (void); +static inline void qglFlush(void) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFlush(void)\n"); +#endif + glFlush(); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFlush"); +#endif +} + +// void glFogx (GLenum pname, GLfixed param); +static inline void qglFogx(GLenum pname, GLfixed param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFogx(pname=%s, param=%ld)\n", StringFromGLEnumerant( pname ), param); +#endif + glFogx(pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFogx"); +#endif +} + +// void glFogxv (GLenum pname, const GLfixed *params); +static inline void qglFogxv(GLenum pname, const GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFogxv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glFogxv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFogxv"); +#endif +} + +// void glFrontFace (GLenum mode); +static inline void qglFrontFace(GLenum mode) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFrontFace(mode=%s)\n", StringFromGLEnumerant( mode )); +#endif + glFrontFace(mode); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFrontFace"); +#endif +} + +// void glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +static inline void qglFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glFrustumx(left=%ld, right=%ld, bottom=%ld, top=%ld, zNear=%ld, zFar=%ld)\n", left, right, bottom, top, zNear, zFar); +#endif + glFrustumx(left, right, bottom, top, zNear, zFar); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glFrustumx"); +#endif +} + +// void glGetBooleanv (GLenum pname, GLboolean *params); +static inline void qglGetBooleanv(GLenum pname, GLboolean *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetBooleanv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glGetBooleanv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetBooleanv"); +#endif +} + +// void glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +static inline void qglGetBufferParameteriv(GLenum target, GLenum pname, GLint *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetBufferParameteriv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glGetBufferParameteriv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetBufferParameteriv"); +#endif +} + +// void glGetClipPlanex (GLenum pname, GLfixed eqn[4]); +static inline void qglGetClipPlanex(GLenum pname, GLfixed eqn[4]) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetClipPlanex(pname=%s, eqn=%ld)\n", StringFromGLEnumerant( pname ), eqn); +#endif + glGetClipPlanex(pname, eqn); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetClipPlanex"); +#endif +} + +// void glGenBuffers (GLsizei n, GLuint *buffers); +static inline void qglGenBuffers(GLsizei n, GLuint *buffers) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGenBuffers(n=%ld, buffers=%p)\n", n, buffers); +#endif + glGenBuffers(n, buffers); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGenBuffers"); +#endif +} + +// void glGenTextures (GLsizei n, GLuint *textures); +static inline void qglGenTextures(GLsizei n, GLuint *textures) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGenTextures(n=%ld, textures=%p)\n", n, textures); +#endif + glGenTextures(n, textures); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGenTextures"); +#endif +} + +// GLenum glGetError (void); +static inline GLenum qglGetError(void) +{ + GLenum returnValue; +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetError(void)\n"); +#endif + returnValue = glGetError(); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetError"); +#endif + return returnValue; +} + +// void glGetFixedv (GLenum pname, GLfixed *params); +static inline void qglGetFixedv(GLenum pname, GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetFixedv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glGetFixedv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetFixedv"); +#endif +} + +// void glGetIntegerv (GLenum pname, GLint *params); +static inline void qglGetIntegerv(GLenum pname, GLint *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetIntegerv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glGetIntegerv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetIntegerv"); +#endif +} + +// void glGetLightxv (GLenum light, GLenum pname, GLfixed *params); +static inline void qglGetLightxv(GLenum light, GLenum pname, GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetLightxv(light=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( light ), StringFromGLEnumerant( pname ), params); +#endif + glGetLightxv(light, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetLightxv"); +#endif +} + +// void glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params); +static inline void qglGetMaterialxv(GLenum face, GLenum pname, GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetMaterialxv(face=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( face ), StringFromGLEnumerant( pname ), params); +#endif + glGetMaterialxv(face, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetMaterialxv"); +#endif +} + +// void glGetPointerv (GLenum pname, void **params); +static inline void qglGetPointerv(GLenum pname, void **params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetPointerv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glGetPointerv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetPointerv"); +#endif +} + +// const GLubyte * glGetString (GLenum name); +static inline const GLubyte * qglGetString(GLenum name) +{ + const GLubyte * returnValue; +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetString(name=%s)\n", StringFromGLEnumerant( name )); +#endif + returnValue = glGetString(name); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetString"); +#endif + return returnValue; +} + +// void glGetTexEnviv (GLenum env, GLenum pname, GLint *params); +static inline void qglGetTexEnviv(GLenum env, GLenum pname, GLint *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetTexEnviv(env=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( env ), StringFromGLEnumerant( pname ), params); +#endif + glGetTexEnviv(env, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetTexEnviv"); +#endif +} + +// void glGetTexEnvxv (GLenum env, GLenum pname, GLfixed *params); +static inline void qglGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetTexEnvxv(env=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( env ), StringFromGLEnumerant( pname ), params); +#endif + glGetTexEnvxv(env, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetTexEnvxv"); +#endif +} + +// void glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +static inline void qglGetTexParameteriv(GLenum target, GLenum pname, GLint *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetTexParameteriv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glGetTexParameteriv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetTexParameteriv"); +#endif +} + +// void glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params); +static inline void qglGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glGetTexParameterxv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glGetTexParameterxv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glGetTexParameterxv"); +#endif +} + +// void glHint (GLenum target, GLenum mode); +static inline void qglHint(GLenum target, GLenum mode) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glHint(target=%s, mode=%s)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( mode )); +#endif + glHint(target, mode); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glHint"); +#endif +} + +// GLboolean glIsBuffer (GLuint buffer); +static inline GLboolean qglIsBuffer(GLuint buffer) +{ + GLboolean returnValue; +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glIsBuffer(buffer=%lu)\n", buffer); +#endif + returnValue = glIsBuffer(buffer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glIsBuffer"); +#endif + return returnValue; +} + +// GLboolean glIsEnabled (GLenum cap); +static inline GLboolean qglIsEnabled(GLenum cap) +{ + GLboolean returnValue; +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glIsEnabled(cap=%s)\n", StringFromGLEnumerant( cap )); +#endif + returnValue = glIsEnabled(cap); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glIsEnabled"); +#endif + return returnValue; +} + +// GLboolean glIsTexture (GLuint texture); +static inline GLboolean qglIsTexture(GLuint texture) +{ + GLboolean returnValue; +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glIsTexture(texture=%lu)\n", texture); +#endif + returnValue = glIsTexture(texture); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glIsTexture"); +#endif + return returnValue; +} + +// void glLightModelx (GLenum pname, GLfixed param); +static inline void qglLightModelx(GLenum pname, GLfixed param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLightModelx(pname=%s, param=%ld)\n", StringFromGLEnumerant( pname ), param); +#endif + glLightModelx(pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLightModelx"); +#endif +} + +// void glLightModelxv (GLenum pname, const GLfixed *params); +static inline void qglLightModelxv(GLenum pname, const GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLightModelxv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glLightModelxv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLightModelxv"); +#endif +} + +// void glLightx (GLenum light, GLenum pname, GLfixed param); +static inline void qglLightx(GLenum light, GLenum pname, GLfixed param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLightx(light=%s, pname=%s, param=%ld)\n", StringFromGLEnumerant( light ), StringFromGLEnumerant( pname ), param); +#endif + glLightx(light, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLightx"); +#endif +} + +// void glLightxv (GLenum light, GLenum pname, const GLfixed *params); +static inline void qglLightxv(GLenum light, GLenum pname, const GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLightxv(light=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( light ), StringFromGLEnumerant( pname ), params); +#endif + glLightxv(light, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLightxv"); +#endif +} + +// void glLineWidthx (GLfixed width); +static inline void qglLineWidthx(GLfixed width) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLineWidthx(width=%ld)\n", width); +#endif + glLineWidthx(width); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLineWidthx"); +#endif +} + +// void glLoadIdentity (void); +static inline void qglLoadIdentity(void) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLoadIdentity(void)\n"); +#endif + glLoadIdentity(); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLoadIdentity"); +#endif +} + +// void glLoadMatrixx (const GLfixed *m); +static inline void qglLoadMatrixx(const GLfixed *m) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLoadMatrixx(m=%p)\n", m); +#endif + glLoadMatrixx(m); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLoadMatrixx"); +#endif +} + +// void glLogicOp (GLenum opcode); +static inline void qglLogicOp(GLenum opcode) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLogicOp(opcode=%s)\n", StringFromGLEnumerant( opcode )); +#endif + glLogicOp(opcode); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLogicOp"); +#endif +} + +// void glMaterialx (GLenum face, GLenum pname, GLfixed param); +static inline void qglMaterialx(GLenum face, GLenum pname, GLfixed param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMaterialx(face=%s, pname=%s, param=%ld)\n", StringFromGLEnumerant( face ), StringFromGLEnumerant( pname ), param); +#endif + glMaterialx(face, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMaterialx"); +#endif +} + +// void glMaterialxv (GLenum face, GLenum pname, const GLfixed *params); +static inline void qglMaterialxv(GLenum face, GLenum pname, const GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMaterialxv(face=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( face ), StringFromGLEnumerant( pname ), params); +#endif + glMaterialxv(face, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMaterialxv"); +#endif +} + +// void glMatrixMode (GLenum mode); +static inline void qglMatrixMode(GLenum mode) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMatrixMode(mode=%s)\n", StringFromGLEnumerant( mode )); +#endif + glMatrixMode(mode); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMatrixMode"); +#endif +} + +// void glMultMatrixx (const GLfixed *m); +static inline void qglMultMatrixx(const GLfixed *m) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMultMatrixx(m=%p)\n", m); +#endif + glMultMatrixx(m); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMultMatrixx"); +#endif +} + +// void glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +static inline void qglMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMultiTexCoord4x(target=%s, s=%ld, t=%ld, r=%ld, q=%ld)\n", StringFromGLEnumerant( target ), s, t, r, q); +#endif + glMultiTexCoord4x(target, s, t, r, q); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMultiTexCoord4x"); +#endif +} + +// void glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz); +static inline void qglNormal3x(GLfixed nx, GLfixed ny, GLfixed nz) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glNormal3x(nx=%ld, ny=%ld, nz=%ld)\n", nx, ny, nz); +#endif + glNormal3x(nx, ny, nz); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glNormal3x"); +#endif +} + +// void glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +static inline void qglNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glNormalPointer(type=%s, stride=%ld, pointer=%p)\n", StringFromGLEnumerant( type ), stride, pointer); +#endif + glNormalPointer(type, stride, pointer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glNormalPointer"); +#endif +} + +// void glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +static inline void qglOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glOrthox(left=%ld, right=%ld, bottom=%ld, top=%ld, zNear=%ld, zFar=%ld)\n", left, right, bottom, top, zNear, zFar); +#endif + glOrthox(left, right, bottom, top, zNear, zFar); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glOrthox"); +#endif +} + +// void glPixelStorei (GLenum pname, GLint param); +static inline void qglPixelStorei(GLenum pname, GLint param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPixelStorei(pname=%s, param=%ld)\n", StringFromGLEnumerant( pname ), param); +#endif + glPixelStorei(pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPixelStorei"); +#endif +} + +// void glPointParameterx (GLenum pname, GLfixed param); +static inline void qglPointParameterx(GLenum pname, GLfixed param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPointParameterx(pname=%s, param=%ld)\n", StringFromGLEnumerant( pname ), param); +#endif + glPointParameterx(pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPointParameterx"); +#endif +} + +// void glPointParameterxv (GLenum pname, const GLfixed *params); +static inline void qglPointParameterxv(GLenum pname, const GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPointParameterxv(pname=%s, params=%p)\n", StringFromGLEnumerant( pname ), params); +#endif + glPointParameterxv(pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPointParameterxv"); +#endif +} + +// void glPointSizex (GLfixed size); +static inline void qglPointSizex(GLfixed size) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPointSizex(size=%ld)\n", size); +#endif + glPointSizex(size); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPointSizex"); +#endif +} + +// void glPolygonOffsetx (GLfixed factor, GLfixed units); +static inline void qglPolygonOffsetx(GLfixed factor, GLfixed units) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPolygonOffsetx(factor=%ld, units=%ld)\n", factor, units); +#endif + glPolygonOffsetx(factor, units); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPolygonOffsetx"); +#endif +} + +// void glPopMatrix (void); +static inline void qglPopMatrix(void) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPopMatrix(void)\n"); +#endif + glPopMatrix(); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPopMatrix"); +#endif +} + +// void glPushMatrix (void); +static inline void qglPushMatrix(void) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPushMatrix(void)\n"); +#endif + glPushMatrix(); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPushMatrix"); +#endif +} + +// void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +static inline void qglReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glReadPixels(x=%ld, y=%ld, width=%ld, height=%ld, format=%s, type=%s, pixels=%p)\n", x, y, width, height, StringFromGLEnumerant( format ), StringFromGLEnumerant( type ), pixels); +#endif + glReadPixels(x, y, width, height, format, type, pixels); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glReadPixels"); +#endif +} + +// void glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +static inline void qglRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glRotatex(angle=%ld, x=%ld, y=%ld, z=%ld)\n", angle, x, y, z); +#endif + glRotatex(angle, x, y, z); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glRotatex"); +#endif +} + +// void glSampleCoverage (GLclampf value, GLboolean invert); +static inline void qglSampleCoverage(GLclampf value, GLboolean invert) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glSampleCoverage(value=%f, invert=%u)\n", value, invert); +#endif + glSampleCoverage(value, invert); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glSampleCoverage"); +#endif +} + +// void glSampleCoveragex (GLclampx value, GLboolean invert); +static inline void qglSampleCoveragex(GLclampx value, GLboolean invert) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glSampleCoveragex(value=%ld, invert=%u)\n", value, invert); +#endif + glSampleCoveragex(value, invert); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glSampleCoveragex"); +#endif +} + +// void glScalex (GLfixed x, GLfixed y, GLfixed z); +static inline void qglScalex(GLfixed x, GLfixed y, GLfixed z) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glScalex(x=%ld, y=%ld, z=%ld)\n", x, y, z); +#endif + glScalex(x, y, z); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glScalex"); +#endif +} + +// void glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +static inline void qglScissor(GLint x, GLint y, GLsizei width, GLsizei height) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glScissor(x=%ld, y=%ld, width=%ld, height=%ld)\n", x, y, width, height); +#endif + // fixme + int vidHeight = 320; +glScissor(vidHeight - y - height, x, height, width); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glScissor"); +#endif +} + +// void glShadeModel (GLenum mode); +static inline void qglShadeModel(GLenum mode) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glShadeModel(mode=%s)\n", StringFromGLEnumerant( mode )); +#endif + glShadeModel(mode); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glShadeModel"); +#endif +} + +// void glStencilFunc (GLenum func, GLint ref, GLuint mask); +static inline void qglStencilFunc(GLenum func, GLint ref, GLuint mask) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glStencilFunc(func=%s, ref=%ld, mask=%lu)\n", StringFromGLEnumerant( func ), ref, mask); +#endif + glStencilFunc(func, ref, mask); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glStencilFunc"); +#endif +} + +// void glStencilMask (GLuint mask); +static inline void qglStencilMask(GLuint mask) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glStencilMask(mask=%lu)\n", mask); +#endif + glStencilMask(mask); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glStencilMask"); +#endif +} + +// void glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +static inline void qglStencilOp(GLenum fail, GLenum zfail, GLenum zpass) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glStencilOp(fail=%s, zfail=%s, zpass=%s)\n", StringFromGLEnumerant( fail ), StringFromGLEnumerant( zfail ), StringFromGLEnumerant( zpass )); +#endif + glStencilOp(fail, zfail, zpass); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glStencilOp"); +#endif +} + +// void glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +static inline void qglTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexCoordPointer(size=%ld, type=%s, stride=%ld, pointer=%p)\n", size, StringFromGLEnumerant( type ), stride, pointer); +#endif + glTexCoordPointer(size, type, stride, pointer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexCoordPointer"); +#endif +} + +// void glTexEnvi (GLenum target, GLenum pname, GLint param); +static inline void qglTexEnvi(GLenum target, GLenum pname, GLint param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexEnvi(target=%s, pname=%s, param=%ld)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), param); +#endif + glTexEnvi(target, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexEnvi"); +#endif +} + +// void glTexEnvx (GLenum target, GLenum pname, GLfixed param); +static inline void qglTexEnvx(GLenum target, GLenum pname, GLfixed param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexEnvx(target=%s, pname=%s, param=%ld)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), param); +#endif + glTexEnvx(target, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexEnvx"); +#endif +} + +// void glTexEnviv (GLenum target, GLenum pname, const GLint *params); +static inline void qglTexEnviv(GLenum target, GLenum pname, const GLint *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexEnviv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glTexEnviv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexEnviv"); +#endif +} + +// void glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params); +static inline void qglTexEnvxv(GLenum target, GLenum pname, const GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexEnvxv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glTexEnvxv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexEnvxv"); +#endif +} + +// void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +static inline void qglTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexImage2D(target=%s, level=%ld, internalformat=%ld, width=%ld, height=%ld, border=%ld, format=%s, type=%s, pixels=%p)\n", StringFromGLEnumerant( target ), level, internalformat, width, height, border, StringFromGLEnumerant( format ), StringFromGLEnumerant( type ), pixels); +#endif + glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexImage2D"); +#endif +} + +// void glTexParameteri (GLenum target, GLenum pname, GLint param); +static inline void qglTexParameteri(GLenum target, GLenum pname, GLint param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexParameteri(target=%s, pname=%s, param=%ld)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), param); +#endif + glTexParameteri(target, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexParameteri"); +#endif +} + +// void glTexParameterx (GLenum target, GLenum pname, GLfixed param); +static inline void qglTexParameterx(GLenum target, GLenum pname, GLfixed param) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexParameterx(target=%s, pname=%s, param=%ld)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), param); +#endif + glTexParameterx(target, pname, param); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexParameterx"); +#endif +} + +// void glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +static inline void qglTexParameteriv(GLenum target, GLenum pname, const GLint *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexParameteriv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glTexParameteriv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexParameteriv"); +#endif +} + +// void glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params); +static inline void qglTexParameterxv(GLenum target, GLenum pname, const GLfixed *params) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexParameterxv(target=%s, pname=%s, params=%p)\n", StringFromGLEnumerant( target ), StringFromGLEnumerant( pname ), params); +#endif + glTexParameterxv(target, pname, params); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexParameterxv"); +#endif +} + +// void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +static inline void qglTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTexSubImage2D(target=%s, level=%ld, xoffset=%ld, yoffset=%ld, width=%ld, height=%ld, format=%s, type=%s, pixels=%p)\n", StringFromGLEnumerant( target ), level, xoffset, yoffset, width, height, StringFromGLEnumerant( format ), StringFromGLEnumerant( type ), pixels); +#endif + glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTexSubImage2D"); +#endif +} + +// void glTranslatex (GLfixed x, GLfixed y, GLfixed z); +static inline void qglTranslatex(GLfixed x, GLfixed y, GLfixed z) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glTranslatex(x=%ld, y=%ld, z=%ld)\n", x, y, z); +#endif + glTranslatex(x, y, z); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glTranslatex"); +#endif +} + +// void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +static inline void qglVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glVertexPointer(size=%ld, type=%s, stride=%ld, pointer=%p)\n", size, StringFromGLEnumerant( type ), stride, pointer); +#endif + glVertexPointer(size, type, stride, pointer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glVertexPointer"); +#endif +} + +// void glViewport (GLint x, GLint y, GLsizei width, GLsizei height); +static inline void qglViewport(GLint x, GLint y, GLsizei width, GLsizei height) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glViewport(x=%ld, y=%ld, width=%ld, height=%ld)\n", x, y, width, height); +#endif +//extern glconfig_t glConfig; + int vidHeight = 320; + glViewport(vidHeight - y - height, x, height, width); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glViewport"); +#endif +} + +// void glCurrentPaletteMatrixOES (GLuint matrixpaletteindex); +static inline void qglCurrentPaletteMatrixOES(GLuint matrixpaletteindex) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glCurrentPaletteMatrixOES(matrixpaletteindex=%lu)\n", matrixpaletteindex); +#endif + glCurrentPaletteMatrixOES(matrixpaletteindex); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glCurrentPaletteMatrixOES"); +#endif +} + +// void glLoadPaletteFromModelViewMatrixOES (void); +static inline void qglLoadPaletteFromModelViewMatrixOES(void) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glLoadPaletteFromModelViewMatrixOES(void)\n"); +#endif + glLoadPaletteFromModelViewMatrixOES(); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glLoadPaletteFromModelViewMatrixOES"); +#endif +} + +// void glMatrixIndexPointerOES (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +static inline void qglMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glMatrixIndexPointerOES(size=%ld, type=%s, stride=%ld, pointer=%p)\n", size, StringFromGLEnumerant( type ), stride, pointer); +#endif + glMatrixIndexPointerOES(size, type, stride, pointer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glMatrixIndexPointerOES"); +#endif +} + +// void glWeightPointerOES (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +static inline void qglWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glWeightPointerOES(size=%ld, type=%s, stride=%ld, pointer=%p)\n", size, StringFromGLEnumerant( type ), stride, pointer); +#endif + glWeightPointerOES(size, type, stride, pointer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glWeightPointerOES"); +#endif +} + +// void glPointSizePointerOES (GLenum type, GLsizei stride, const GLvoid *pointer); +static inline void qglPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glPointSizePointerOES(type=%s, stride=%ld, pointer=%p)\n", StringFromGLEnumerant( type ), stride, pointer); +#endif + glPointSizePointerOES(type, stride, pointer); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glPointSizePointerOES"); +#endif +} + +// void glDrawTexsOES (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); +static inline void qglDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawTexsOES(x=%d, y=%d, z=%d, width=%d, height=%d)\n", x, y, z, width, height); +#endif + glDrawTexsOES(x, y, z, width, height); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawTexsOES"); +#endif +} + +// void glDrawTexiOES (GLint x, GLint y, GLint z, GLint width, GLint height); +static inline void qglDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawTexiOES(x=%ld, y=%ld, z=%ld, width=%ld, height=%ld)\n", x, y, z, width, height); +#endif + glDrawTexiOES(x, y, z, width, height); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawTexiOES"); +#endif +} + +// void glDrawTexxOES (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); +static inline void qglDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawTexxOES(x=%ld, y=%ld, z=%ld, width=%ld, height=%ld)\n", x, y, z, width, height); +#endif + glDrawTexxOES(x, y, z, width, height); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawTexxOES"); +#endif +} + +// void glDrawTexsvOES (const GLshort *coords); +static inline void qglDrawTexsvOES(const GLshort *coords) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawTexsvOES(coords=%p)\n", coords); +#endif + glDrawTexsvOES(coords); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawTexsvOES"); +#endif +} + +// void glDrawTexivOES (const GLint *coords); +static inline void qglDrawTexivOES(const GLint *coords) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawTexivOES(coords=%p)\n", coords); +#endif + glDrawTexivOES(coords); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawTexivOES"); +#endif +} + +// void glDrawTexxvOES (const GLfixed *coords); +static inline void qglDrawTexxvOES(const GLfixed *coords) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawTexxvOES(coords=%p)\n", coords); +#endif + glDrawTexxvOES(coords); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawTexxvOES"); +#endif +} + +// void glDrawTexfOES (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); +static inline void qglDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawTexfOES(x=%f, y=%f, z=%f, width=%f, height=%f)\n", x, y, z, width, height); +#endif + glDrawTexfOES(x, y, z, width, height); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawTexfOES"); +#endif +} + +// void glDrawTexfvOES (const GLfloat *coords); +static inline void qglDrawTexfvOES(const GLfloat *coords) +{ +#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS) + if (QGLLogGLCalls) + fprintf(QGLDebugFile(), "glDrawTexfvOES(coords=%p)\n", coords); +#endif + glDrawTexfvOES(coords); +#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS) + if (!QGLBeginStarted) + QGLCheckError("glDrawTexfvOES"); +#endif +} + +// Prevent calls to the 'normal' GL functions +#define glAlphaFunc CALL_THE_QGL_VERSION_OF_glAlphaFunc +#define glClearColor CALL_THE_QGL_VERSION_OF_glClearColor +#define glClearDepthf CALL_THE_QGL_VERSION_OF_glClearDepthf +#define glClipPlanef CALL_THE_QGL_VERSION_OF_glClipPlanef +#define glDepthRangef CALL_THE_QGL_VERSION_OF_glDepthRangef +#define glFogf CALL_THE_QGL_VERSION_OF_glFogf +#define glFogfv CALL_THE_QGL_VERSION_OF_glFogfv +#define glFrustumf CALL_THE_QGL_VERSION_OF_glFrustumf +#define glGetClipPlanef CALL_THE_QGL_VERSION_OF_glGetClipPlanef +#define glGetFloatv CALL_THE_QGL_VERSION_OF_glGetFloatv +#define glGetLightfv CALL_THE_QGL_VERSION_OF_glGetLightfv +#define glGetMaterialfv CALL_THE_QGL_VERSION_OF_glGetMaterialfv +#define glGetTexEnvfv CALL_THE_QGL_VERSION_OF_glGetTexEnvfv +#define glGetTexParameterfv CALL_THE_QGL_VERSION_OF_glGetTexParameterfv +#define glLightModelf CALL_THE_QGL_VERSION_OF_glLightModelf +#define glLightModelfv CALL_THE_QGL_VERSION_OF_glLightModelfv +#define glLightf CALL_THE_QGL_VERSION_OF_glLightf +#define glLightfv CALL_THE_QGL_VERSION_OF_glLightfv +#define glLineWidth CALL_THE_QGL_VERSION_OF_glLineWidth +#define glLoadMatrixf CALL_THE_QGL_VERSION_OF_glLoadMatrixf +#define glMaterialf CALL_THE_QGL_VERSION_OF_glMaterialf +#define glMaterialfv CALL_THE_QGL_VERSION_OF_glMaterialfv +#define glMultMatrixf CALL_THE_QGL_VERSION_OF_glMultMatrixf +#define glMultiTexCoord4f CALL_THE_QGL_VERSION_OF_glMultiTexCoord4f +#define glNormal3f CALL_THE_QGL_VERSION_OF_glNormal3f +#define glOrthof CALL_THE_QGL_VERSION_OF_glOrthof +#define glPointParameterf CALL_THE_QGL_VERSION_OF_glPointParameterf +#define glPointParameterfv CALL_THE_QGL_VERSION_OF_glPointParameterfv +#define glPointSize CALL_THE_QGL_VERSION_OF_glPointSize +#define glPolygonOffset CALL_THE_QGL_VERSION_OF_glPolygonOffset +#define glRotatef CALL_THE_QGL_VERSION_OF_glRotatef +#define glScalef CALL_THE_QGL_VERSION_OF_glScalef +#define glTexEnvf CALL_THE_QGL_VERSION_OF_glTexEnvf +#define glTexEnvfv CALL_THE_QGL_VERSION_OF_glTexEnvfv +#define glTexParameterf CALL_THE_QGL_VERSION_OF_glTexParameterf +#define glTexParameterfv CALL_THE_QGL_VERSION_OF_glTexParameterfv +#define glTranslatef CALL_THE_QGL_VERSION_OF_glTranslatef +#define glActiveTexture CALL_THE_QGL_VERSION_OF_glActiveTexture +#define glAlphaFuncx CALL_THE_QGL_VERSION_OF_glAlphaFuncx +#define glBindBuffer CALL_THE_QGL_VERSION_OF_glBindBuffer +#define glBindTexture CALL_THE_QGL_VERSION_OF_glBindTexture +#define glBlendFunc CALL_THE_QGL_VERSION_OF_glBlendFunc +#define glBufferData CALL_THE_QGL_VERSION_OF_glBufferData +#define glBufferSubData CALL_THE_QGL_VERSION_OF_glBufferSubData +#define glClear CALL_THE_QGL_VERSION_OF_glClear +#define glClearColorx CALL_THE_QGL_VERSION_OF_glClearColorx +#define glClearDepthx CALL_THE_QGL_VERSION_OF_glClearDepthx +#define glClearStencil CALL_THE_QGL_VERSION_OF_glClearStencil +#define glClientActiveTexture CALL_THE_QGL_VERSION_OF_glClientActiveTexture +#define glClipPlanex CALL_THE_QGL_VERSION_OF_glClipPlanex +#define glColor4ub CALL_THE_QGL_VERSION_OF_glColor4ub +#define glColor4x CALL_THE_QGL_VERSION_OF_glColor4x +#define glColorMask CALL_THE_QGL_VERSION_OF_glColorMask +#define glColorPointer CALL_THE_QGL_VERSION_OF_glColorPointer +#define glCompressedTexImage2D CALL_THE_QGL_VERSION_OF_glCompressedTexImage2D +#define glCompressedTexSubImage2D CALL_THE_QGL_VERSION_OF_glCompressedTexSubImage2D +#define glCopyTexImage2D CALL_THE_QGL_VERSION_OF_glCopyTexImage2D +#define glCopyTexSubImage2D CALL_THE_QGL_VERSION_OF_glCopyTexSubImage2D +#define glCullFace CALL_THE_QGL_VERSION_OF_glCullFace +#define glDeleteBuffers CALL_THE_QGL_VERSION_OF_glDeleteBuffers +#define glDeleteTextures CALL_THE_QGL_VERSION_OF_glDeleteTextures +#define glDepthFunc CALL_THE_QGL_VERSION_OF_glDepthFunc +#define glDepthMask CALL_THE_QGL_VERSION_OF_glDepthMask +#define glDepthRangex CALL_THE_QGL_VERSION_OF_glDepthRangex +#define glDisable CALL_THE_QGL_VERSION_OF_glDisable +#define glDisableClientState CALL_THE_QGL_VERSION_OF_glDisableClientState +#define glDrawArrays CALL_THE_QGL_VERSION_OF_glDrawArrays +#define glDrawElements CALL_THE_QGL_VERSION_OF_glDrawElements +#define glEnable CALL_THE_QGL_VERSION_OF_glEnable +#define glEnableClientState CALL_THE_QGL_VERSION_OF_glEnableClientState +#define glFinish CALL_THE_QGL_VERSION_OF_glFinish +#define glFlush CALL_THE_QGL_VERSION_OF_glFlush +#define glFogx CALL_THE_QGL_VERSION_OF_glFogx +#define glFogxv CALL_THE_QGL_VERSION_OF_glFogxv +#define glFrontFace CALL_THE_QGL_VERSION_OF_glFrontFace +#define glFrustumx CALL_THE_QGL_VERSION_OF_glFrustumx +#define glGetBooleanv CALL_THE_QGL_VERSION_OF_glGetBooleanv +#define glGetBufferParameteriv CALL_THE_QGL_VERSION_OF_glGetBufferParameteriv +#define glGetClipPlanex CALL_THE_QGL_VERSION_OF_glGetClipPlanex +#define glGenBuffers CALL_THE_QGL_VERSION_OF_glGenBuffers +#define glGenTextures CALL_THE_QGL_VERSION_OF_glGenTextures +#define glGetError CALL_THE_QGL_VERSION_OF_glGetError +#define glGetFixedv CALL_THE_QGL_VERSION_OF_glGetFixedv +#define glGetIntegerv CALL_THE_QGL_VERSION_OF_glGetIntegerv +#define glGetLightxv CALL_THE_QGL_VERSION_OF_glGetLightxv +#define glGetMaterialxv CALL_THE_QGL_VERSION_OF_glGetMaterialxv +#define glGetPointerv CALL_THE_QGL_VERSION_OF_glGetPointerv +#define glGetString CALL_THE_QGL_VERSION_OF_glGetString +#define glGetTexEnviv CALL_THE_QGL_VERSION_OF_glGetTexEnviv +#define glGetTexEnvxv CALL_THE_QGL_VERSION_OF_glGetTexEnvxv +#define glGetTexParameteriv CALL_THE_QGL_VERSION_OF_glGetTexParameteriv +#define glGetTexParameterxv CALL_THE_QGL_VERSION_OF_glGetTexParameterxv +#define glHint CALL_THE_QGL_VERSION_OF_glHint +#define glIsBuffer CALL_THE_QGL_VERSION_OF_glIsBuffer +#define glIsEnabled CALL_THE_QGL_VERSION_OF_glIsEnabled +#define glIsTexture CALL_THE_QGL_VERSION_OF_glIsTexture +#define glLightModelx CALL_THE_QGL_VERSION_OF_glLightModelx +#define glLightModelxv CALL_THE_QGL_VERSION_OF_glLightModelxv +#define glLightx CALL_THE_QGL_VERSION_OF_glLightx +#define glLightxv CALL_THE_QGL_VERSION_OF_glLightxv +#define glLineWidthx CALL_THE_QGL_VERSION_OF_glLineWidthx +#define glLoadIdentity CALL_THE_QGL_VERSION_OF_glLoadIdentity +#define glLoadMatrixx CALL_THE_QGL_VERSION_OF_glLoadMatrixx +#define glLogicOp CALL_THE_QGL_VERSION_OF_glLogicOp +#define glMaterialx CALL_THE_QGL_VERSION_OF_glMaterialx +#define glMaterialxv CALL_THE_QGL_VERSION_OF_glMaterialxv +#define glMatrixMode CALL_THE_QGL_VERSION_OF_glMatrixMode +#define glMultMatrixx CALL_THE_QGL_VERSION_OF_glMultMatrixx +#define glMultiTexCoord4x CALL_THE_QGL_VERSION_OF_glMultiTexCoord4x +#define glNormal3x CALL_THE_QGL_VERSION_OF_glNormal3x +#define glNormalPointer CALL_THE_QGL_VERSION_OF_glNormalPointer +#define glOrthox CALL_THE_QGL_VERSION_OF_glOrthox +#define glPixelStorei CALL_THE_QGL_VERSION_OF_glPixelStorei +#define glPointParameterx CALL_THE_QGL_VERSION_OF_glPointParameterx +#define glPointParameterxv CALL_THE_QGL_VERSION_OF_glPointParameterxv +#define glPointSizex CALL_THE_QGL_VERSION_OF_glPointSizex +#define glPolygonOffsetx CALL_THE_QGL_VERSION_OF_glPolygonOffsetx +#define glPopMatrix CALL_THE_QGL_VERSION_OF_glPopMatrix +#define glPushMatrix CALL_THE_QGL_VERSION_OF_glPushMatrix +#define glReadPixels CALL_THE_QGL_VERSION_OF_glReadPixels +#define glRotatex CALL_THE_QGL_VERSION_OF_glRotatex +#define glSampleCoverage CALL_THE_QGL_VERSION_OF_glSampleCoverage +#define glSampleCoveragex CALL_THE_QGL_VERSION_OF_glSampleCoveragex +#define glScalex CALL_THE_QGL_VERSION_OF_glScalex +#define glScissor CALL_THE_QGL_VERSION_OF_glScissor +#define glShadeModel CALL_THE_QGL_VERSION_OF_glShadeModel +#define glStencilFunc CALL_THE_QGL_VERSION_OF_glStencilFunc +#define glStencilMask CALL_THE_QGL_VERSION_OF_glStencilMask +#define glStencilOp CALL_THE_QGL_VERSION_OF_glStencilOp +#define glTexCoordPointer CALL_THE_QGL_VERSION_OF_glTexCoordPointer +#define glTexEnvi CALL_THE_QGL_VERSION_OF_glTexEnvi +#define glTexEnvx CALL_THE_QGL_VERSION_OF_glTexEnvx +#define glTexEnviv CALL_THE_QGL_VERSION_OF_glTexEnviv +#define glTexEnvxv CALL_THE_QGL_VERSION_OF_glTexEnvxv +#define glTexImage2D CALL_THE_QGL_VERSION_OF_glTexImage2D +#define glTexParameteri CALL_THE_QGL_VERSION_OF_glTexParameteri +#define glTexParameterx CALL_THE_QGL_VERSION_OF_glTexParameterx +#define glTexParameteriv CALL_THE_QGL_VERSION_OF_glTexParameteriv +#define glTexParameterxv CALL_THE_QGL_VERSION_OF_glTexParameterxv +#define glTexSubImage2D CALL_THE_QGL_VERSION_OF_glTexSubImage2D +#define glTranslatex CALL_THE_QGL_VERSION_OF_glTranslatex +#define glVertexPointer CALL_THE_QGL_VERSION_OF_glVertexPointer +#define glViewport CALL_THE_QGL_VERSION_OF_glViewport +#define glCurrentPaletteMatrixOES CALL_THE_QGL_VERSION_OF_glCurrentPaletteMatrixOES +#define glLoadPaletteFromModelViewMatrixOES CALL_THE_QGL_VERSION_OF_glLoadPaletteFromModelViewMatrixOES +#define glMatrixIndexPointerOES CALL_THE_QGL_VERSION_OF_glMatrixIndexPointerOES +#define glWeightPointerOES CALL_THE_QGL_VERSION_OF_glWeightPointerOES +#define glPointSizePointerOES CALL_THE_QGL_VERSION_OF_glPointSizePointerOES +#define glDrawTexsOES CALL_THE_QGL_VERSION_OF_glDrawTexsOES +#define glDrawTexiOES CALL_THE_QGL_VERSION_OF_glDrawTexiOES +#define glDrawTexxOES CALL_THE_QGL_VERSION_OF_glDrawTexxOES +#define glDrawTexsvOES CALL_THE_QGL_VERSION_OF_glDrawTexsvOES +#define glDrawTexivOES CALL_THE_QGL_VERSION_OF_glDrawTexivOES +#define glDrawTexxvOES CALL_THE_QGL_VERSION_OF_glDrawTexxvOES +#define glDrawTexfOES CALL_THE_QGL_VERSION_OF_glDrawTexfOES +#define glDrawTexfvOES CALL_THE_QGL_VERSION_OF_glDrawTexfvOES + +#endif // _IPHONE_QGL_H_ diff --git a/wolf3d/code/iphone/iphone_qgl_enumerants.h b/wolf3d/code/iphone/iphone_qgl_enumerants.h new file mode 100644 index 0000000..01892dd --- /dev/null +++ b/wolf3d/code/iphone/iphone_qgl_enumerants.h @@ -0,0 +1,40 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +#ifndef IPHONE_QGL_ENUMERANTS_H +#define IPHONE_QGL_ENUMERANTS_H + +#ifdef QGL_LOG_GL_CALLS + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + const char *StringFromGLEnumerant( GLenum enumerant ); + +#ifdef __cplusplus +} +#endif + +#endif // QGL_LOG_GL_CALLS + +#endif // IPHONE_QGL_ENUMERANTS_H \ No newline at end of file diff --git a/wolf3d/code/iphone/iphone_sys.m b/wolf3d/code/iphone/iphone_sys.m new file mode 100644 index 0000000..68d5186 --- /dev/null +++ b/wolf3d/code/iphone/iphone_sys.m @@ -0,0 +1,74 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +#include "../wolfiphone.h" + +#import +//#import + +void interruptionListener( void *inUserData, UInt32 inInterruption) +{ + printf("Session interrupted! --- %s ---", inInterruption == kAudioSessionBeginInterruption ? "Begin Interruption" : "End Interruption"); + + if ( inInterruption == kAudioSessionEndInterruption ) + { + // make sure we are again the active session + UInt32 audioCategory = kAudioSessionCategory_AmbientSound; + AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(audioCategory), &audioCategory); + AudioSessionSetActive( true ); + // do we need to re-initialize the sound subsystem in this case? + } +} + +int otherAudioIsPlaying; + +void SysIPhoneInitAudioSession() { + OSStatus status = 0; + status = AudioSessionInitialize(NULL, NULL, interruptionListener, NULL); // else "couldn't initialize audio session" + UInt32 audioCategory = kAudioSessionCategory_AmbientSound; + status = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(audioCategory), &audioCategory); + + UInt32 propOtherAudioIsPlaying = 'othr'; // kAudioSessionProperty_OtherAudioIsPlaying + UInt32 size = sizeof( otherAudioIsPlaying ); + AudioSessionGetProperty( propOtherAudioIsPlaying, &size, &otherAudioIsPlaying ); + + status = AudioSessionSetActive(true); // else "couldn't set audio session active\n" +} + +int SysIPhoneOtherAudioIsPlaying() { + static int called = 0; + if ( called == 0 ) { + Com_Printf("OtherAudioIsPlaying = %d\n", otherAudioIsPlaying ); + called = 1; + } + return otherAudioIsPlaying; +} + +char osVersion[32]; + +const char *SysIPhoneGetOSVersion() { + static int called = 0; + if ( called == 0 ) { + called = 1; + strcpy( osVersion, [ [ [ UIDevice currentDevice ] systemVersion ] UTF8String ] ); + } + + return osVersion; +} diff --git a/wolf3d/code/iphone/iphone_wolf.h b/wolf3d/code/iphone/iphone_wolf.h new file mode 100644 index 0000000..ef1d43e --- /dev/null +++ b/wolf3d/code/iphone/iphone_wolf.h @@ -0,0 +1,228 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +// define this to get only the first episode on selections, and the +// automatic sell screen at the end of episode 1 +//#define EPISODE_ONE_ONLY + +// this is the version number displayed on the menu screen +#define WOLF_IPHONE_VERSION 1.1 + +extern viddef_t viddef; + +typedef enum menuState { + IPM_GAME, + IPM_MAIN, + IPM_SKILL, + IPM_EPISODE, + IPM_MAPS, + IPM_CONTROLS, + IPM_INTERMISSION, + IPM_VICTORY, + IPM_AUTOMAP, + IPM_STATS, + IPM_HUDEDIT + +} menuState_t; + +extern menuState_t menuState; + +void iphoneDrawMenus(); + +// bumped to 107 on moving powerups structure into leveldata +// bumped to 108 with custom huds +#define SAVEGAME_VERSION 108 + +#define MAX_SKILLS 4 +#define MAX_MAPS 60 + +#define MF_TRIED 1 +#define MF_COMPLETED 2 +#define MF_KILLS 4 +#define MF_SECRETS 8 +#define MF_TREASURE 16 +#define MF_TIME 32 + +typedef struct { + int episode; + int map; + int skill; + int levelCompleted; // already at intermission when saved + int version; + int mapFlags[MAX_SKILLS][MAX_MAPS]; +} currentMap_t; + +extern currentMap_t currentMap; + +void iphoneStartMap( int episodeNum, int mapNum, int skillLevel ); + +extern char iphoneDocDirectory[1024]; +extern char iphoneAppDirectory[1024]; + +extern texture_t *numberPics[10]; +#define NUM_MUGSHOTS 23 +extern char *mugshotnames[ NUM_MUGSHOTS ]; + +extern vec3_t vnull; + +void Client_PrepRefresh( const char *r_mapname ); + +extern int iphoneFrameNum; +extern int intermissionTriggerFrame; +extern int consoleActive; + +extern cvar_t *controlScheme; +extern cvar_t *sensitivity; +extern cvar_t *stickTurnBase; +extern cvar_t *stickTurnScale; +extern cvar_t *stickMoveBase; +extern cvar_t *stickMoveScale; +extern cvar_t *stickDeadBand; +extern cvar_t *tiltTurn; +extern cvar_t *tiltMove; +extern cvar_t *tiltDeadBand; +extern cvar_t *tiltAverages; +extern cvar_t *tiltFire; +extern cvar_t *music; +extern cvar_t *showTilt; +extern cvar_t *showTime; +extern cvar_t *cropSprites; +extern cvar_t *blends; +extern cvar_t *gunFrame; +extern cvar_t *slowAI; +extern cvar_t *revLand; +extern cvar_t *mapScale; +extern cvar_t *hideControls; +extern cvar_t *autoFire; + +// the native iPhone code should set the following each frame: +extern int numTouches; +extern int touches[5][2]; // [0] = x, [1] = y in landscape mode, raster order with y = 0 at top +extern float tilt; // -1.0 to 1.0 +extern float tiltPitch; + +// so we can detect button releases +extern int numPrevTouches; +extern int prevTouches[5][2]; + +typedef struct { + int enterFrame; + int beforeSwap; + int afterSwap; +} logTime_t; +#define MAX_LOGGED_TIMES 512 +extern logTime_t loggedTimes[MAX_LOGGED_TIMES]; // indexed by iphoneFrameNum + +void LoadWallTexture( int wallPicNum ); + +int TouchDown( int x, int y, int w, int h ); +int TouchReleased( int x, int y, int w, int h ); +int iphoneCenterText( int x, int y, const char *str ); +void iphoneDrawNumber( int x, int y, int number, int charWidth, int charHeight ); +void iphoneDrawPic( int x, int y, int w, int h, const char *pic ); +int iphoneDrawPicWithTouch( int x, int y, int w, int h, const char *pic ); +void iphoneDrawPicNum( int x, int y, int w, int h, int glTexNum ); +void R_Draw_Blend( int x, int y, int w, int h, colour4_t c ); +void SaveTheGame(); +int LoadTheGame(); +void StartGame(); +void iphoneOpenAutomap(); +void iphoneDrawFace(); +void iphoneDrawNotifyText(); +void iphonePreloadBeforePlay(); + +void InitImmediateModeGL(); +void iphoneRotateForLandscape(); +void iphoneCheckForLandscapeReverse(); + +extern colour4_t colorPressed; + +extern int damageflash; +extern int bonusFrameNum; +extern int attackDirTime[2]; + + +#define HF_DISABLED 1 + +typedef struct { + int x, y; + int width, height; + int glTexNum; + int hudFlags; +} hudPic_t; + +//#define ALLOW_MAP_VIEW_HUD + +typedef struct { + hudPic_t forwardStick; + hudPic_t sideStick; + hudPic_t turnStick; + hudPic_t fire; + hudPic_t menu; + hudPic_t map; + hudPic_t ammo; +#ifdef ALLOW_MAP_VIEW_HUD + hudPic_t mapView; +#endif +} hud_t; + +extern hud_t huds; + +void HudSetForScheme( int schemeNum ); +void HudSetTexnums(); +void HudEditFrame(); + + + +//--------------------------------------- +// interfaces from the original game code +//--------------------------------------- +void iphoneStartBonusFlash(); +void iphoneStartDamageFlash( int points ); +void iphoneSetAttackDirection( int dir ); +void iphoneStartIntermission( int framesFromNow ); +void iphoneSetNotifyText( const char *str, ... ); + +//--------------------------------------- +// interfaces to Objective-C land +//--------------------------------------- +void SysIPhoneSwapBuffers(); +void SysIPhoneVibrate(); +void SysIPhoneOpenURL( const char *url ); +void SysIPhoneSetUIKitOrientation( int isLandscapeRight ); +void SysIPhoneLoadJPG( W8* jpegData, int jpegBytes, W8 **pic, W16 *width, W16 *height, W16 *bytes ); +const char * SysIPhoneGetConsoleTextField(); +void SysIPhoneSetConsoleTextField(const char *); +void SysIPhoneInitAudioSession(); +int SysIPhoneOtherAudioIsPlaying(); +const char *SysIPhoneGetOSVersion(); + +//--------------------------------------- +// interfaces from Objective-C land +//--------------------------------------- +void iphoneStartup(); +void iphoneShutdown(); +void iphoneFrame(); +void iphoneTiltEvent( float *tilts ); +void iphoneTouchEvent( int numTouches, int touches[16] ); +void iphoneActivateConsole(); +void iphoneDeactivateConsole(); +void iphoneExecuteCommandLine(); + diff --git a/wolf3d/code/iphone/main.m b/wolf3d/code/iphone/main.m new file mode 100644 index 0000000..bb5f5df --- /dev/null +++ b/wolf3d/code/iphone/main.m @@ -0,0 +1,46 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +#import +#include +#include + + +int main(int argc, char *argv[]) { + + { + char cwd[256]; + strcpy( cwd, argv[0] ); + int len = strlen( cwd ); + for( int i = len-1; i >= 0; i-- ) { + if ( cwd[i] == '/' ) { + cwd[i] = 0; + break; + } + cwd[i] = 0; + } + setenv( "CWD", cwd, 1 ); + } + + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + int retVal = UIApplicationMain(argc, argv, nil, nil); + [pool release]; + return retVal; +} diff --git a/wolf3d/code/iphone/victory_wolf3dlite.tga b/wolf3d/code/iphone/victory_wolf3dlite.tga new file mode 100644 index 0000000000000000000000000000000000000000..f58fc0f02c11340ac853fe6fc4a720785b4f157d GIT binary patch literal 262188 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 literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/wolf3d.xcodeproj/cass.pbxuser b/wolf3d/code/iphone/wolf3d.xcodeproj/cass.pbxuser new file mode 100644 index 0000000..0310ccf --- /dev/null +++ b/wolf3d/code/iphone/wolf3d.xcodeproj/cass.pbxuser @@ -0,0 +1,309 @@ +// !$*UTF8*$! +{ + 1D6058900D05DD3D006BFB54 /* wolf3d */ = { + activeExec = 0; + executables = ( + 4339B0150F9A27E100D3517B /* wolf3d */, + ); + }; + 29B97313FDCFA39411CA2CEA /* Project object */ = { + activeBuildConfigurationName = AdHocDistLite; + activeExecutable = 4339B0150F9A27E100D3517B /* wolf3d */; + activeSDKPreference = iphoneos2.0; + activeTarget = 1D6058900D05DD3D006BFB54 /* wolf3d */; + addToTargets = ( + 1D6058900D05DD3D006BFB54 /* wolf3d */, + ); + codeSenseManager = 4339B0380F9A27F600D3517B /* Code sense */; + executables = ( + 4339B0150F9A27E100D3517B /* wolf3d */, + ); + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 701, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID; + PBXFileTableDataSourceColumnWidthsKey = ( + 200, + 715, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFindDataSource_MessageID, + PBXFindDataSource_LocationID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 661, + 60, + 20, + 48, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 262020617; + PBXWorkspaceStateSaveDate = 262020617; + }; + perUserProjectItems = { + 439BD4810F9A49880078F31F /* PBXBookmark */ = 439BD4810F9A49880078F31F /* PBXBookmark */; + 43C41E770FA16AC40096E9EC /* PBXTextBookmark */ = 43C41E770FA16AC40096E9EC /* PBXTextBookmark */; + 43C41E780FA16AC40096E9EC /* PlistBookmark */ = 43C41E780FA16AC40096E9EC /* PlistBookmark */; + 43C41E790FA16AC40096E9EC /* PBXBookmark */ = 43C41E790FA16AC40096E9EC /* PBXBookmark */; + 43C41E7A0FA16AC40096E9EC /* PBXTextBookmark */ = 43C41E7A0FA16AC40096E9EC /* PBXTextBookmark */; + 43C41E7B0FA16AC40096E9EC /* PlistBookmark */ = 43C41E7B0FA16AC40096E9EC /* PlistBookmark */; + 43C41E7C0FA16AC40096E9EC /* PBXBookmark */ = 43C41E7C0FA16AC40096E9EC /* PBXBookmark */; + 43CE171E0F9BBFB900EE0AE2 /* PBXTextBookmark */ = 43CE171E0F9BBFB900EE0AE2 /* PBXTextBookmark */; + 43CE17200F9BBFB900EE0AE2 /* PlistBookmark */ = 43CE17200F9BBFB900EE0AE2 /* PlistBookmark */; + 43CE17220F9BBFB900EE0AE2 /* PBXTextBookmark */ = 43CE17220F9BBFB900EE0AE2 /* PBXTextBookmark */; + 43E3412D0F9BB6AB003C5D00 /* PBXBookmark */ = 43E3412D0F9BB6AB003C5D00 /* PBXBookmark */; + 43E3412E0F9BB6AB003C5D00 /* PBXTextBookmark */ = 43E3412E0F9BB6AB003C5D00 /* PBXTextBookmark */; + 43E3412F0F9BB6AB003C5D00 /* PBXTextBookmark */ = 43E3412F0F9BB6AB003C5D00 /* PBXTextBookmark */; + 43E341330F9BB6AB003C5D00 /* PBXTextBookmark */ = 43E341330F9BB6AB003C5D00 /* PBXTextBookmark */; + 43E341340F9BB6AB003C5D00 /* PBXTextBookmark */ = 43E341340F9BB6AB003C5D00 /* PBXTextBookmark */; + 43E341350F9BB6AB003C5D00 /* PBXTextBookmark */ = 43E341350F9BB6AB003C5D00 /* PBXTextBookmark */; + }; + sourceControlManager = 4339B0370F9A27F600D3517B /* Source Control */; + userBuildSettings = { + }; + }; + 4339B0150F9A27E100D3517B /* wolf3d */ = { + isa = PBXExecutable; + activeArgIndices = ( + ); + argumentStrings = ( + ); + autoAttachOnCrash = 1; + breakpointsEnabled = 0; + configStateDict = { + }; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + libgmallocEnabled = 0; + name = wolf3d; + savedGlobals = { + }; + sourceDirectories = ( + ); + variableFormatDictionary = { + }; + }; + 4339B0370F9A27F600D3517B /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + }; + }; + 4339B0380F9A27F600D3517B /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 439BD4810F9A49880078F31F /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 43CF02FE0F56974E00E4A23D /* Default.png */; + }; + 43C41E770FA16AC40096E9EC /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 183"; + rLen = 0; + rLoc = 4436; + rType = 0; + vrLen = 148; + vrLoc = 4029; + }; + 43C41E780FA16AC40096E9EC /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = /Users/cass/dev/id/iphone/wolf3d/code/iphone/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + 43C41E790FA16AC40096E9EC /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 43E341280F9BB4B6003C5D00 /* wolf3dlite_icon.png */; + }; + 43C41E7A0FA16AC40096E9EC /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 183"; + rLen = 0; + rLoc = 4436; + rType = 0; + vrLen = 148; + vrLoc = 4029; + }; + 43C41E7B0FA16AC40096E9EC /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = /Users/cass/dev/id/iphone/wolf3d/code/iphone/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + 43C41E7C0FA16AC40096E9EC /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 43E341280F9BB4B6003C5D00 /* wolf3dlite_icon.png */; + }; + 43CE171E0F9BBFB900EE0AE2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */; + name = "iphone_wolf.h: 38"; + rLen = 14; + rLoc = 1123; + rType = 0; + vrLen = 622; + vrLoc = 529; + }; + 43CE17200F9BBFB900EE0AE2 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = /Users/cass/dev/id/iphone/wolf3d/code/iphone/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + 43CE17220F9BBFB900EE0AE2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */; + name = "iphone_wolf.h: 38"; + rLen = 14; + rLoc = 1123; + rType = 0; + vrLen = 622; + vrLoc = 529; + }; + 43E3412D0F9BB6AB003C5D00 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 43CF02FE0F56974E00E4A23D /* Default.png */; + }; + 43E3412E0F9BB6AB003C5D00 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + name = "wolf_doors.c: 355"; + rLen = 0; + rLoc = 8077; + rType = 0; + vrLen = 685; + vrLoc = 7833; + }; + 43E3412F0F9BB6AB003C5D00 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC340F6B3222004123C5 /* wolf_main.c */; + name = "wolf_main.c: 75"; + rLen = 4; + rLoc = 1741; + rType = 0; + vrLen = 507; + vrLoc = 1412; + }; + 43E341330F9BB6AB003C5D00 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + name = "wolf_doors.c: 355"; + rLen = 0; + rLoc = 8077; + rType = 0; + vrLen = 685; + vrLoc = 7833; + }; + 43E341340F9BB6AB003C5D00 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 531"; + rLen = 0; + rLoc = 13273; + rType = 0; + vrLen = 465; + vrLoc = 12924; + }; + 43E341350F9BB6AB003C5D00 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC340F6B3222004123C5 /* wolf_main.c */; + name = "wolf_main.c: 75"; + rLen = 4; + rLoc = 1741; + rType = 0; + vrLen = 507; + vrLoc = 1412; + }; + 7229CC300F6B3222004123C5 /* wolf_doors.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {900, 6972}}"; + sepNavSelRange = "{8077, 0}"; + sepNavVisRange = "{7833, 685}"; + }; + }; + 7229CC340F6B3222004123C5 /* wolf_main.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {879, 1232}}"; + sepNavSelRange = "{1741, 4}"; + sepNavVisRange = "{1412, 507}"; + }; + }; + 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {879, 3276}}"; + sepNavSelRange = "{1123, 14}"; + sepNavVisRange = "{529, 622}"; + }; + }; + 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {879, 16688}}"; + sepNavSelRange = "{4436, 0}"; + sepNavVisRange = "{4029, 148}"; + }; + }; +} diff --git a/wolf3d/code/iphone/wolf3d.xcodeproj/cass.perspectivev3 b/wolf3d/code/iphone/wolf3d.xcodeproj/cass.perspectivev3 new file mode 100644 index 0000000..69d556c --- /dev/null +++ b/wolf3d/code/iphone/wolf3d.xcodeproj/cass.perspectivev3 @@ -0,0 +1,1544 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 4339B0360F9A27F600D3517B + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusWarningsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusWarningsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 1147 + 1147 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + go + build-and-go + buildOrClean + com.apple.ide.PBXToolbarStopButton + toggle-editor + get-info + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 29B97315FDCFA39411CA2CEA + 29B97317FDCFA39411CA2CEA + 19C28FACFE9D520D11CA2CBB + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 31 + 30 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 629}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 647}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 125 67 1147 688 0 0 1280 778 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 4339B0310F9A27F600D3517B + PBXProjectModuleLabel + wolf3dlite_icon.png + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 4339B0320F9A27F600D3517B + PBXProjectModuleLabel + wolf3dlite_icon.png + _historyCapacity + 0 + bookmark + 43C41E7C0FA16AC40096E9EC + history + + 43E3412D0F9BB6AB003C5D00 + 43E3412E0F9BB6AB003C5D00 + 43E3412F0F9BB6AB003C5D00 + 43CE171E0F9BBFB900EE0AE2 + 43C41E770FA16AC40096E9EC + 43C41E780FA16AC40096E9EC + 43C41E790FA16AC40096E9EC + + prevStack + + 439BD4810F9A49880078F31F + 43E341330F9BB6AB003C5D00 + 43E341340F9BB6AB003C5D00 + 43E341350F9BB6AB003C5D00 + 43CE17200F9BBFB900EE0AE2 + 43CE17220F9BBFB900EE0AE2 + 43C41E7A0FA16AC40096E9EC + 43C41E7B0FA16AC40096E9EC + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {940, 418}} + RubberWindowFrame + 125 67 1147 688 0 0 1280 778 + + Module + PBXNavigatorGroup + Proportion + 418pt + + + Proportion + 224pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {940, 197}} + RubberWindowFrame + 125 67 1147 688 0 0 1280 778 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 27}, {940, 231}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXBuildLogShowsTranscriptDefaultKey + {{0, 39}, {940, 158}} + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1013 + + GeometryConfiguration + + Frame + {{10, 27}, {940, 197}} + + Module + PBXBuildResultsModule + + + + + Proportion + 940pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 43C41E6A0F9E55630096E9EC + 1CA23ED40692098700951B8B + 43C41E6B0F9E55630096E9EC + 4339B0310F9A27F600D3517B + 43C41E6C0F9E55630096E9EC + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + go-run + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + debugger-enable-breakpoints + clean + NSToolbarFlexibleSpaceItem + com.apple.ide.XCBreakpointsToolbarItem + clear-log + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0pt + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 185 + + Frame + {{395, 0}, {415, 213}} + + + Module + PBXDebugSessionModule + Proportion + 438pt + + + Name + Debug + ServiceClasses + + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + PBXDebugProcessAndThreadModule + PBXDebugProcessViewModule + PBXDebugThreadViewModule + PBXDebugStackFrameViewModule + PBXNavigatorGroup + + TableOfContents + + 43A32F6D0F9D2840003389E0 + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 43A32F6E0F9D2840003389E0 + 43A32F6F0F9D2840003389E0 + 43A32F700F9D2840003389E0 + 43A32F710F9D2840003389E0 + 43A32F720F9D2840003389E0 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 262236868.40616 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + /Users/cass/dev/id/iphone/wolf3d/code/iphone/wolf3d.xcodeproj + + WindowString + 125 67 1147 688 0 0 1280 778 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.mode1v3 b/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.mode1v3 new file mode 100644 index 0000000..9dc97f1 --- /dev/null +++ b/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.mode1v3 @@ -0,0 +1,1524 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 72A540880F57487000C58067 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + go + build-and-go + build + clean + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 242 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 080E96DDFE201D6D7F000001 + 29B97315FDCFA39411CA2CEA + 43E8CFBD0F4F855A003F09B2 + 43E8CFBF0F4F855A003F09B2 + 43E8CFC00F4F855A003F09B2 + 43E8CFC50F4F855A003F09B2 + 43E8D05B0F4F860B003F09B2 + 43E8D05C0F4F860B003F09B2 + 43E8D2370F4FB278003F09B2 + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 68 + 6 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 701}, {242, 804}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {259, 822}} + GroupTreeTableConfiguration + + MainColumn + 242 + + RubberWindowFrame + 579 156 1089 863 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 259pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + iphone_loop.c + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + iphone_loop.c + _historyCapacity + 0 + bookmark + 72044B700F5CCC2A007CA9A1 + history + + 72A541380F57656500C58067 + 72A542410F57B17F00C58067 + 72A542430F57B17F00C58067 + 72A542450F57B17F00C58067 + 72A542470F57B17F00C58067 + 72A542490F57B17F00C58067 + 72A5424B0F57B17F00C58067 + 72A5424D0F57B17F00C58067 + 72A5424F0F57B17F00C58067 + 72A542510F57B17F00C58067 + 72A542530F57B17F00C58067 + 72A542550F57B17F00C58067 + 72A542590F57B17F00C58067 + 72A5425A0F57B17F00C58067 + 72A542640F57B17F00C58067 + 72A542680F57B17F00C58067 + 72A543810F585CE300C58067 + 72A543820F585CE300C58067 + 72A543830F585CE300C58067 + 72A5440F0F58A37100C58067 + 72A544100F58A37100C58067 + 72A5452F0F590D0100C58067 + 72A545300F590D0100C58067 + 72A545320F590D0100C58067 + 72A545330F590D0100C58067 + 72A545340F590D0100C58067 + 72A545360F590D0100C58067 + 72A545C10F5C64A200C58067 + 72A545C30F5C64A200C58067 + 72A545C40F5C64A200C58067 + 72A545C70F5C64A200C58067 + 72A545C80F5C64A200C58067 + 72A545CA0F5C64A200C58067 + 72A545CB0F5C64A200C58067 + 72A545CC0F5C64A200C58067 + 72A545CD0F5C64A200C58067 + 72A545CE0F5C64A200C58067 + 72A545CF0F5C64A200C58067 + 72A545D00F5C64A200C58067 + 7235B9360F5CC78C005C10A8 + 7235B9370F5CC78C005C10A8 + 7235B9380F5CC78C005C10A8 + 7235B9390F5CC78C005C10A8 + 7235B93A0F5CC78C005C10A8 + 7235B93B0F5CC78C005C10A8 + 7235B93C0F5CC78C005C10A8 + 7235B93D0F5CC78C005C10A8 + 7235B93E0F5CC78C005C10A8 + 7235B93F0F5CC78C005C10A8 + 7235B9400F5CC78C005C10A8 + 7235B9410F5CC78C005C10A8 + 7235B9430F5CC78C005C10A8 + 7235B9440F5CC78C005C10A8 + 7235B9460F5CC78C005C10A8 + 7235B9490F5CC78C005C10A8 + 72044B660F5CCC2A007CA9A1 + 72044B670F5CCC2A007CA9A1 + 72044B680F5CCC2A007CA9A1 + 72044B690F5CCC2A007CA9A1 + + prevStack + + 72A5413B0F57656500C58067 + 72A5413C0F57656500C58067 + 72A5413E0F57656500C58067 + 72A5413F0F57656500C58067 + 72A541400F57656500C58067 + 72A541420F57656500C58067 + 72A5414A0F57656500C58067 + 72A5415A0F57656500C58067 + 72A5415B0F57656500C58067 + 72A5426E0F57B17F00C58067 + 72A542700F57B17F00C58067 + 72A542720F57B17F00C58067 + 72A542740F57B17F00C58067 + 72A542760F57B17F00C58067 + 72A542780F57B17F00C58067 + 72A5427A0F57B17F00C58067 + 72A5427C0F57B17F00C58067 + 72A5427E0F57B17F00C58067 + 72A542800F57B17F00C58067 + 72A542820F57B17F00C58067 + 72A542840F57B17F00C58067 + 72A542850F57B17F00C58067 + 72A5428B0F57B17F00C58067 + 72A542960F57B17F00C58067 + 72A542970F57B17F00C58067 + 72A542A50F57B17F00C58067 + 72A542B60F57B17F00C58067 + 72A542BA0F57B17F00C58067 + 72A542C20F57B17F00C58067 + 72A542C90F57B17F00C58067 + 72A5431A0F57B81F00C58067 + 72A5431B0F57B81F00C58067 + 72A5431E0F57B81F00C58067 + 72A543310F57B81F00C58067 + 72A543880F585CE300C58067 + 72A5438B0F585CE300C58067 + 72A5438C0F585CE300C58067 + 72A5441C0F58A37100C58067 + 72A5453B0F590D0100C58067 + 72A5453E0F590D0100C58067 + 72A545430F590D0100C58067 + 72A5454C0F590D0100C58067 + 72A545D40F5C64A200C58067 + 72A545D50F5C64A200C58067 + 72A545D60F5C64A200C58067 + 72A545D70F5C64A200C58067 + 72A545D80F5C64A200C58067 + 72A545D90F5C64A200C58067 + 72A545DD0F5C64A200C58067 + 72A545E90F5C64A200C58067 + 72A545EB0F5C64A200C58067 + 72A545EC0F5C64A200C58067 + 72A545F00F5C64A200C58067 + 72A545F10F5C64A200C58067 + 72A545F60F5C64A200C58067 + 72A545F90F5C64A200C58067 + 7235B95E0F5CC78C005C10A8 + 7235B9750F5CC78C005C10A8 + 7235B9850F5CC78C005C10A8 + 72044B6A0F5CCC2A007CA9A1 + 72044B6B0F5CCC2A007CA9A1 + 72044B6C0F5CCC2A007CA9A1 + 72044B6D0F5CCC2A007CA9A1 + 72044B6E0F5CCC2A007CA9A1 + 72044B6F0F5CCC2A007CA9A1 + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {825, 644}} + RubberWindowFrame + 579 156 1089 863 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 644pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 649}, {825, 173}} + RubberWindowFrame + 579 156 1089 863 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 173pt + + + Proportion + 825pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 72044B710F5CCC2A007CA9A1 + 1CE0B1FE06471DED0097A5F4 + 72044B720F5CCC2A007CA9A1 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 72044B7D0F5CCC2A007CA9A1 + 72044B7E0F5CCC2A007CA9A1 + 72A5408D0F5748C100C58067 + 1CD10A99069EF8BA00B06720 + 1C78EAAD065D492600B07095 + 1C530D57069F1CE1000CFCEE + /Users/johnc/dev/wolf3d/code/iphone/wolf3d.xcodeproj + + WindowString + 579 156 1089 863 0 0 1680 1028 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {815, 501}} + RubberWindowFrame + 240 173 815 783 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 501pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 506}, {815, 236}} + RubberWindowFrame + 240 173 815 783 0 0 1680 1028 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 742pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 72A5408D0F5748C100C58067 + 72044B730F5CCC2A007CA9A1 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 240 173 815 783 0 0 1680 1028 + WindowToolGUID + 72A5408D0F5748C100C58067 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {551, 407}} + {{551, 0}, {641, 407}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {1192, 407}} + {{0, 407}, {1192, 428}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {1192, 835}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 411 + + Frame + {{551, 0}, {641, 407}} + RubberWindowFrame + 260 152 1192 876 0 0 1680 1028 + + RubberWindowFrame + 260 152 1192 876 0 0 1680 1028 + + Module + PBXDebugSessionModule + Proportion + 835pt + + + Proportion + 835pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + 72044B740F5CCC2A007CA9A1 + 1C162984064C10D400B95A72 + 72044B750F5CCC2A007CA9A1 + 72044B760F5CCC2A007CA9A1 + 72044B770F5CCC2A007CA9A1 + 72044B780F5CCC2A007CA9A1 + 72044B790F5CCC2A007CA9A1 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 260 152 1192 876 0 0 1680 1028 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.find + IsVertical + + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + wolf_ai_com.c + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {998, 520}} + RubberWindowFrame + 47 91 998 937 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 998pt + + + Proportion + 520pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{0, 525}, {998, 371}} + RubberWindowFrame + 47 91 998 937 0 0 1680 1028 + + Module + PBXProjectFindModule + Proportion + 371pt + + + Proportion + 896pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + + TableOfContents + + 1C530D57069F1CE1000CFCEE + 72044B7A0F5CCC2A007CA9A1 + 72044B7B0F5CCC2A007CA9A1 + 1CDD528C0622207200134675 + 1CD0528E0623707200166675 + + WindowString + 47 91 998 937 0 0 1680 1028 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + + + + Identifier + MENUSEPARATOR + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {898, 605}} + RubberWindowFrame + 16 185 898 646 0 0 1680 1028 + + Module + PBXDebugCLIModule + Proportion + 605pt + + + Proportion + 605pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C78EAAD065D492600B07095 + 72044B7C0F5CCC2A007CA9A1 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 16 185 898 646 0 0 1680 1028 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.pbxuser b/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.pbxuser new file mode 100644 index 0000000..cf07ce7 --- /dev/null +++ b/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.pbxuser @@ -0,0 +1,9317 @@ +// !$*UTF8*$! +{ + 1D3623250D0F684500981E51 /* wolf3dAppDelegate.m */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.objc; + name = wolf3dAppDelegate.m; + path = /Users/johnc/dev/wolf3d/newCode/iphone/Classes/wolf3dAppDelegate.m; + sourceTree = ""; + }; + 1D6058900D05DD3D006BFB54 /* wolf3d */ = { + activeExec = 0; + executables = ( + 72A540710F57486F00C58067 /* wolf3d */, + ); + }; + 28FD14FD0DC6FC130079059D /* EAGLView.m */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.objc; + name = EAGLView.m; + path = /Users/johnc/dev/wolf3d/newCode/iphone/Classes/EAGLView.m; + sourceTree = ""; + }; + 29B97313FDCFA39411CA2CEA /* Project object */ = { + activeBuildConfigurationName = Debug; + activeExecutable = 72A540710F57486F00C58067 /* wolf3d */; + activeSDKPreference = iphoneos2.0; + activeTarget = 1D6058900D05DD3D006BFB54 /* wolf3d */; + addToTargets = ( + 1D6058900D05DD3D006BFB54 /* wolf3d */, + ); + breakpoints = ( + 72A540B90F574EE300C58067 /* iphone_vid_sys.c:125 */, + 72A540C40F57506600C58067 /* iphone_loop.c:471 */, + 72A540CF0F57520E00C58067 /* opengl_main.c:295 */, + 72A540D60F5752BA00C58067 /* opengl_main.c:296 */, + 72A540D90F57533100C58067 /* EAGLView.m:217 */, + 72A540DB0F57534200C58067 /* EAGLView.m:171 */, + 72A540E60F57556F00C58067 /* iphone_loop.c:471 */, + 72A540E90F57558D00C58067 /* iphone_loop.c:471 */, + 72A540EF0F57563D00C58067 /* iphone_loop.c:471 */, + 72A540F10F57565300C58067 /* iphone_loop.c:471 */, + 72A540F40F5756A000C58067 /* iphone_loop.c:471 */, + 72A540FE0F57590200C58067 /* iphone_loop.c:471 */, + 72A541030F5759CC00C58067 /* iphone_loop.c:471 */, + 72A541070F575AB100C58067 /* EAGLView.m:176 */, + 72A541260F5761D600C58067 /* EAGLView.m:172 */, + 72A5416B0F57664A00C58067 /* texture_manager.c:273 */, + 72A5416D0F57665800C58067 /* texture_manager.c:476 */, + 72A541720F57669500C58067 /* wolf_opengl.c:239 */, + 72A541870F57881500C58067 /* EAGLView.m:121 */, + 72A5418B0F5788A600C58067 /* EAGLView.m:139 */, + 72A541930F578B1900C58067 /* opengl_main.c:126 */, + 72A541CB0F57936A00C58067 /* iphone_loop.c:471 */, + 72A541ED0F57A0AE00C58067 /* wolf_renderer.c:245 */, + 72A541F10F57A0C200C58067 /* wolf_renderer.c:222 */, + 72A542160F57A92100C58067 /* math.c:184 */, + 72A542270F57ACA200C58067 /* texture_manager.c:305 */, + 72A5422D0F57AD9400C58067 /* opengl_texture.c:54 */, + 72A5423F0F57B16300C58067 /* opengl_texture.c:54 */, + 72A542E00F57B5B500C58067 /* iphone_loop.c:471 */, + 72A542F50F57B6F100C58067 /* iphone_loop.c:471 */, + 72A543420F57BB0700C58067 /* common.c:200 */, + 72A5435A0F57BD7E00C58067 /* EAGLView.m:124 */, + 72A543680F58593900C58067 /* EAGLView.m:139 */, + 72A543730F585C3000C58067 /* EAGLView.m:138 */, + 72A543750F585C3800C58067 /* EAGLView.m:110 */, + 72A543770F585C3C00C58067 /* EAGLView.m:50 */, + 72A543A10F5865D800C58067 /* iphone_loop.c:471 */, + 72A543A30F58669700C58067 /* qglBindTexture */, + 72A543AD0F5869C800C58067 /* iphone_loop.c:471 */, + 72A543B60F586C8E00C58067 /* iphone_loop.c:471 */, + 72A543C00F586EA000C58067 /* iphone_loop.c:471 */, + 72A543C30F586EC500C58067 /* iphone_loop.c:471 */, + 72A543C50F586EE400C58067 /* wolf3dAppDelegate.m:88 */, + 72A543F90F58852000C58067 /* iphone_loop.c:471 */, + 72A5440B0F58A28E00C58067 /* EAGLView.m:270 */, + 72A5444D0F58A50400C58067 /* EAGLView.m:273 */, + 72A544560F58AB9B00C58067 /* EAGLView.m:273 */, + 72A544580F58B8B900C58067 /* EAGLView.m:269 */, + 72A544C30F58D0E900C58067 /* iphone_loop.c:471 */, + 72A544C60F58D0F000C58067 /* iphone_loop.c:471 */, + 72A544CF0F58D22800C58067 /* iphone_loop.c:471 */, + 72A544E10F58DF0500C58067 /* iphone_loop.c:471 */, + 72A545280F590BB800C58067 /* iphone_loop.c:471 */, + 72A545610F5C411300C58067 /* client_main.c:329 */, + 72A545640F5C43F500C58067 /* wolf3dAppDelegate.m:56 */, + 72A545660F5C43F700C58067 /* wolf3dAppDelegate.m:26 */, + 72A545680F5C440C00C58067 /* main.m:30 */, + 72A5456D0F5C44C400C58067 /* main.m:29 */, + 72A545740F5C457D00C58067 /* iphone_loop.c:471 */, + 72A545760F5C458A00C58067 /* client_main.c:295 */, + 72A5457A0F5C45B600C58067 /* iphone_loop.c:471 */, + 72A545800F5C4B8300C58067 /* iphone_loop.c:471 */, + 72A545880F5C4ED300C58067 /* fileio.c:409 */, + 72A5458E0F5C4FE400C58067 /* fileio.c:458 */, + 72A545920F5C506700C58067 /* cmd.c:496 */, + 72A545B50F5C63E200C58067 /* iphone_loop.c:471 */, + 72A545B70F5C63E600C58067 /* iphone_loop.c:471 */, + 72A545B90F5C63EB00C58067 /* iphone_loop.c:471 */, + 72A545BB0F5C640F00C58067 /* iphone_loop.c:471 */, + 7235B8A00F5C6B5E005C10A8 /* wolf_renderer.c:249 */, + 7235B8AA0F5C6DAA005C10A8 /* iphone_loop.c:471 */, + 7235B8B10F5C6E48005C10A8 /* iphone_loop.c:471 */, + 7235B8B90F5C72EA005C10A8 /* iphone_loop.c:471 */, + 7235B8BF0F5C73F8005C10A8 /* iphone_loop.c:471 */, + 7235B8C70F5C74BE005C10A8 /* iphone_loop.c:471 */, + 7235B8CE0F5C790E005C10A8 /* iphone_loop.c:471 */, + 7235B8D40F5C79E9005C10A8 /* iphone_loop.c:471 */, + 7235B8E20F5C88B3005C10A8 /* wolf_mintermission.c:813 */, + 7235B8E40F5C88DC005C10A8 /* wolf_player.c:386 */, + 7235B8E60F5C8977005C10A8 /* wolf_player.c:157 */, + 7235B8F40F5C91E9005C10A8 /* iphone_loop.c:471 */, + 7235B8F90F5C9230005C10A8 /* iphone_loop.c:471 */, + 7235B9010F5C974F005C10A8 /* iphone_loop.c:471 */, + 7235B90A0F5C98FE005C10A8 /* iphone_loop.c:471 */, + 7235B9130F5CA09B005C10A8 /* iphone_loop.c:471 */, + 7235B9220F5CAC0A005C10A8 /* wolf3dAppDelegate.m:89 */, + 7235B9280F5CB573005C10A8 /* wolf3dAppDelegate.m:74 */, + 72044B540F5CC8F7007CA9A1 /* wolf3dAppDelegate.m:22 */, + 72044B560F5CC91B007CA9A1 /* wolf_player.c:717 */, + 72044B590F5CC968007CA9A1 /* EAGLView.m:169 */, + 72044B5E0F5CCA6E007CA9A1 /* wolf_player.c:704 */, + 72044B630F5CCB37007CA9A1 /* wolf_ai_com.c:1164 */, + 723DD5BA0F5D93E9002640F0 /* iphone_loop.c:471 */, + 723DD5BC0F5D93F1002640F0 /* iphone_loop.c:471 */, + 723DD5CA0F5D99F7002640F0 /* iphone_loop.c:471 */, + 72977E940F5F0D620074EA80 /* fileio.c:610 */, + 72A7E8BE0F5F1AFC005B83C0 /* iphone_loop.c:471 */, + 72A7E9720F5F541F005B83C0 /* iphone_menus.c:378 */, + 72C167680F604F7800F3B186 /* iphone_loop.c:471 */, + 72C167750F60533A00F3B186 /* wolf_renderer.c:271 */, + 72C167F80F6059B700F3B186 /* iphone_loop.c:471 */, + 72C168C50F6079D100F3B186 /* iphone_menus.c:775 */, + 72C168C90F607AC900F3B186 /* iphone_menus.c:601 */, + 72C168E50F607BE600F3B186 /* iphone_menus.c:330 */, + 72C168F70F607C3E00F3B186 /* sound_stream.c:182 */, + 72C169130F607CA900F3B186 /* iphone_main.c:70 */, + 72C169150F607CAD00F3B186 /* iphone_main.c:76 */, + 72C169BA0F609BF900F3B186 /* texture_manager.c:269 */, + 72C169C40F609C5800F3B186 /* texture_manager.c:265 */, + 729B60CF0F60B28C00C46D45 /* texture_manager.c:538 */, + 72810A6E0F612B9300CBB029 /* wolf_ai_com.c:594 */, + 72810A820F612CE400CBB029 /* wolf_areas.c:114 */, + 72810AA60F612EC900CBB029 /* wolf_areas.c:120 */, + 72810AA80F612ECB00CBB029 /* wolf_areas.c:120 */, + 72810ABC0F612F6300CBB029 /* wolf_areas.c:155 */, + 72810ABE0F612F6900CBB029 /* wolf_areas.c:173 */, + 72B625620F617C0D00F04830 /* iphone_loop.c:471 */, + 72B625640F617C1400F04830 /* iphone_loop.c:471 */, + 72B6258D0F617C9600F04830 /* main.m:13 */, + 729400540F61857400F15A77 /* wolf_opengl.c:386 */, + 729400580F61859200F15A77 /* wolf_sprites.c:298 */, + 729852750F61A87B00D7BB48 /* wolf_opengl.c:441 */, + 724551B90F61C0E500512339 /* texture_manager.c:1352 */, + 728AD7710F62021E0065C748 /* script.c:440 */, + 728AD7730F6202280065C748 /* wolf_main.c:95 */, + 728AD79A0F6203EF0065C748 /* wolf_mnewgame.c:179 */, + 728AD7C80F6211700065C748 /* wolf_bj.c:139 */, + 72DDCB920F63643600138FD4 /* iphone_loop.c:471 */, + 72DDCBA60F6364C700138FD4 /* iphone_loop.c:471 */, + 72DDCC7A0F63E9F800138FD4 /* wolf_player.c:730 */, + 72DDCCC00F64A85400138FD4 /* iphone_loop.c:471 */, + 72DDCCDE0F64AA2F00138FD4 /* iphone_loop.c:471 */, + 72DDCCE20F64AA7B00138FD4 /* wolf_actors.c:183 */, + 72DDCCE70F64AB6000138FD4 /* wolf_actors.c:97 */, + 72DDCD030F64ADAA00138FD4 /* wolf_ai_com.c:600 */, + 72DDCD050F64ADBE00138FD4 /* wolf_ai_com.c:653 */, + 72DDCD070F64ADCD00138FD4 /* wolf_actors.c:105 */, + 72DDCD0A0F64ADEF00138FD4 /* wolf_ai_com.c:557 */, + 72DDCDE70F64B76B00138FD4 /* wolf_level.c:1132 */, + 72DDCDE90F64B76E00138FD4 /* wolf_level.c:1118 */, + 72A9C8F80F65924E009A369C /* iphoneLoop */, + 72A9C8FD0F65925C009A369C /* iphone_loop.c:471 */, + 72A9C93C0F659D16009A369C /* iphone_menus.c:356 */, + 72D5BC1F0F66FD7200D801FC /* client_main.c:187 */, + 72D5BC210F66FD7400D801FC /* client_main.c:170 */, + 72D5BC230F66FD7600D801FC /* client_main.c:140 */, + 72D5BC250F66FD7C00D801FC /* client_main.c:255 */, + 729D0DC50F670EA9001B874A /* iphone_menus.c:606 */, + 729D0DC80F670EB6001B874A /* iphone_menus.c:607 */, + 729D0E020F671CB5001B874A /* iphone_menus.c:584 */, + 729D0E1E0F672226001B874A /* wolf_client_main.c:100 */, + 729D0E860F6737A5001B874A /* iphone_loop.c:471 */, + 72A4D0F80F6755A400964EEF /* wolf3dAppDelegate.m:95 */, + 72A4D1000F67568E00964EEF /* iphone_menus.c:192 */, + 72A4D1020F67575700964EEF /* iphone_main.c:329 */, + 72B3DC0E0F69AF1500D46C29 /* iphone_loop.c:471 */, + 7229CEB20F6C9334004123C5 /* font_manager.c:190 */, + 7229CEB40F6C9341004123C5 /* opengl_main.c:288 */, + 7229CF290F6D34B2004123C5 /* font_manager.c:89 */, + 7229CF960F6D378B004123C5 /* files.c:162 */, + 7229D04D0F6D4393004123C5 /* zmem.c:100 */, + 7229D0BE0F6E0123004123C5 /* iphone_menus.c:589 */, + 7229D0C10F6E0145004123C5 /* iphone_menus.c:544 */, + 7229D12A0F6E0757004123C5 /* iphone_menus.c:552 */, + 7229D1350F6E07C0004123C5 /* wolf_main.c:69 */, + 7229D1370F6E07E0004123C5 /* cvar.c:287 */, + 7229D1830F6E0965004123C5 /* iphone_menus.c:517 */, + 7229D1FB0F6E10F3004123C5 /* iphone_menus.c:1060 */, + 7274BA260F7000E900962F7D /* iphone_menus.c:1093 */, + 7274BA600F70041000962F7D /* iphone_menus.c:1101 */, + 7274BA740F70063600962F7D /* iphone_menus.c:1115 */, + 7274BA990F700FF000962F7D /* iphone_menus.c:1027 */, + 7276B0D10F7023CD0042B98A /* iphone_menus.c:923 */, + 7276B0E90F7073240042B98A /* sound_sfx_id.c:253 */, + 7276B0EB0F7073360042B98A /* sound_sfx_id.c:161 */, + 7276B1450F7077050042B98A /* fileio.c:195 */, + 7276B17A0F7079120042B98A /* fileio.c:252 */, + 7276B1A00F707C710042B98A /* fileio.c:226 */, + 7276B1E00F7080C00042B98A /* texture_manager.c:496 */, + 7273411E0F7163E600ED2E46 /* iphone_menus.c:893 */, + 7273413C0F71654200ED2E46 /* iphone_menus.c:897 */, + 72784A540F734D15001C3AB7 /* iphone_menus.c:971 */, + 72784A560F734D1B001C3AB7 /* iphone_menus.c:962 */, + 72784A700F734D54001C3AB7 /* iphone_menus.c:983 */, + 72784A720F734D81001C3AB7 /* iphone_menus.c:1073 */, + 72C01EFE0F74390B000201CA /* asm __dyld__dyld_start 0x2fe01028:1 */, + 72C01F220F7445CF000201CA /* iphone_menus.c:897 */, + 72B5FDCD0F7E502300C8A372 /* EAGLView.m:226 */, + 72B5FDE60F7E50FA00C8A372 /* iphone_loop.c:471 */, + 72B5FE040F7E516B00C8A372 /* iphone_loop.c:471 */, + 72B5FE0F0F7E51DC00C8A372 /* iphone_loop.c:471 */, + 72B5FE280F7E54B400C8A372 /* iphone_loop.c:471 */, + 72B5FEFF0F7E5A0600C8A372 /* iphone_main.c:213 */, + 72B43F220F7EF88D00D5BF60 /* wolf_player.c:514 */, + 72B43F240F7EF89800D5BF60 /* wolf_player.c:469 */, + 720EB4C80F8112B7003F989A /* iphone_menus.c:561 */, + 720EB4DD0F8113D3003F989A /* iphone_menus.c:572 */, + 720EB50C0F811453003F989A /* iphone_menus.c:596 */, + 720EB5260F811E99003F989A /* wolf_powerups.c:81 */, + 720EB56C0F811F54003F989A /* iphone_menus.c:272 */, + 720EB56E0F811F5F003F989A /* iphone_menus.c:222 */, + 720EB5E40F8153F1003F989A /* iphone_loop.c:471 */, + 720EB6090F815766003F989A /* iphone_loop.c:471 */, + 720EB70D0F81A107003F989A /* wolf3dAppDelegate.m:47 */, + 720EB7580F81A845003F989A /* EAGLView.m:165 */, + 720EB7770F81A8D8003F989A /* EAGLView.m:154 */, + 720EB7980F81AB01003F989A /* wolf3dAppDelegate.m:73 */, + 720EB9050F8270D7003F989A /* texture_manager.c:518 */, + 720EB91C0F8271D4003F989A /* texture_manager.c:349 */, + 720EB93C0F8273FC003F989A /* texture_manager.c:590 */, + 720EB98B0F8285DD003F989A /* texture_manager.c:605 */, + 720EB99D0F82861B003F989A /* iphone_menus.c:1154 */, + 720EBA040F829ABC003F989A /* texture_manager.c:522 */, + 720EBA2F0F82A2D9003F989A /* texture_manager.c:543 */, + 720EBA860F82BB19003F989A /* iphone_main.c:225 */, + 720EBB400F82CED5003F989A /* iphone_loop.c:1071 */, + 720EBB640F82CFDB003F989A /* iphone_loop.c:1072 */, + 720EBB780F82D469003F989A /* wolf_opengl.c:61 */, + 72BBA2CC0F83285B003EBE8B /* iphone_loop.c:710 */, + 72BBA2CE0F832860003EBE8B /* iphone_loop.c:712 */, + 72BBA2D70F8328BE003EBE8B /* iphone_loop.c:716 */, + 72D0255F0F84049B00ADAF78 /* wolf_sprites.c:170 */, + 72D026310F84199F00ADAF78 /* texture_manager.c:498 */, + 72F83C310F8A51050032AC67 /* wolf_level.c:1091 */, + 72F83C5C0F8A531E0032AC67 /* wolf_doors.c:106 */, + 72F83C5E0F8A53250032AC67 /* wolf_doors.c:112 */, + 72F83C600F8A532A0032AC67 /* wolf_doors.c:118 */, + 72F83C620F8A532C0032AC67 /* wolf_doors.c:124 */, + 72F83C940F8A65D90032AC67 /* iphone_menus.c:902 */, + 72F83CB80F8A693A0032AC67 /* wolf_level.c:1056 */, + 72F83CD80F8A6BF30032AC67 /* iphone_menus.c:900 */, + 72E5E61B0F8BCC4A0078F4A2 /* sound.c:710 */, + 72E5E62F0F8BCD930078F4A2 /* sound.c:592 */, + 72E5E6330F8BCDAF0078F4A2 /* sound.c:367 */, + 72E5E67E0F8BD4340078F4A2 /* sound.c:623 */, + ); + codeSenseManager = 72A5408A0F57487000C58067 /* Code sense */; + executables = ( + 72A540710F57486F00C58067 /* wolf3d */, + ); + perUserDictionary = { + "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 20, + 198, + 20, + 99, + 99, + 29, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXBreakpointsDataSource_ActionID, + PBXBreakpointsDataSource_TypeID, + PBXBreakpointsDataSource_BreakpointID, + PBXBreakpointsDataSource_UseID, + PBXBreakpointsDataSource_LocationID, + PBXBreakpointsDataSource_ConditionID, + PBXBreakpointsDataSource_IgnoreCountID, + PBXBreakpointsDataSource_ContinueID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID; + PBXFileTableDataSourceColumnWidthsKey = ( + 22, + 300, + 361, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXExecutablesDataSource_ActiveFlagID, + PBXExecutablesDataSource_NameID, + PBXExecutablesDataSource_CommentsID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 591, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID; + PBXFileTableDataSourceColumnWidthsKey = ( + 409, + 391, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFindDataSource_MessageID, + PBXFindDataSource_LocationID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 1194, + 60, + 20, + 48, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 260819573; + PBXWorkspaceStateSaveDate = 260819573; + }; + perUserProjectItems = { + 720EB52D0F811F27003F989A = 720EB52D0F811F27003F989A /* PBXTextBookmark */; + 720EB5320F811F27003F989A = 720EB5320F811F27003F989A /* PBXTextBookmark */; + 720EB58F0F813C92003F989A = 720EB58F0F813C92003F989A /* PBXTextBookmark */; + 720EB59C0F813C92003F989A = 720EB59C0F813C92003F989A /* PBXTextBookmark */; + 720EB6950F818F3E003F989A = 720EB6950F818F3E003F989A /* PBXTextBookmark */; + 720EB6970F818F3E003F989A = 720EB6970F818F3E003F989A /* PBXTextBookmark */; + 720EB69D0F818F3E003F989A = 720EB69D0F818F3E003F989A /* PBXTextBookmark */; + 720EB7380F81A7E5003F989A = 720EB7380F81A7E5003F989A /* PBXTextBookmark */; + 720EB75B0F81A856003F989A = 720EB75B0F81A856003F989A /* PBXTextBookmark */; + 720EB80A0F81B748003F989A = 720EB80A0F81B748003F989A /* PBXTextBookmark */; + 720EB8140F81B748003F989A = 720EB8140F81B748003F989A /* PBXTextBookmark */; + 720EBA640F82B426003F989A = 720EBA640F82B426003F989A /* PBXTextBookmark */; + 720EBA650F82B426003F989A = 720EBA650F82B426003F989A /* PBXTextBookmark */; + 720EBA680F82B426003F989A = 720EBA680F82B426003F989A /* PBXTextBookmark */; + 720EBA8D0F82BB5C003F989A = 720EBA8D0F82BB5C003F989A /* PBXTextBookmark */; + 720EBA8E0F82BB5C003F989A = 720EBA8E0F82BB5C003F989A /* PBXTextBookmark */; + 720EBAB00F82C0D3003F989A = 720EBAB00F82C0D3003F989A /* PBXTextBookmark */; + 720EBAB20F82C0D3003F989A = 720EBAB20F82C0D3003F989A /* PBXTextBookmark */; + 720EBAB80F82C0D3003F989A = 720EBAB80F82C0D3003F989A /* PBXTextBookmark */; + 720EBAF40F82C7BA003F989A = 720EBAF40F82C7BA003F989A /* PBXTextBookmark */; + 720EBB450F82CF05003F989A = 720EBB450F82CF05003F989A /* PBXTextBookmark */; + 7229CD060F6C88EB004123C5 = 7229CD060F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD080F6C88EB004123C5 = 7229CD080F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD090F6C88EB004123C5 = 7229CD090F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD0A0F6C88EB004123C5 = 7229CD0A0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD0E0F6C88EB004123C5 = 7229CD0E0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD120F6C88EB004123C5 = 7229CD120F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD170F6C88EB004123C5 = 7229CD170F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD190F6C88EB004123C5 = 7229CD190F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD210F6C88EB004123C5 = 7229CD210F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD220F6C88EB004123C5 = 7229CD220F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD240F6C88EB004123C5 = 7229CD240F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD290F6C88EB004123C5 = 7229CD290F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD2B0F6C88EB004123C5 = 7229CD2B0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD2C0F6C88EB004123C5 = 7229CD2C0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD2F0F6C88EB004123C5 = 7229CD2F0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD300F6C88EB004123C5 = 7229CD300F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD310F6C88EB004123C5 = 7229CD310F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD320F6C88EB004123C5 = 7229CD320F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD330F6C88EB004123C5 = 7229CD330F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD360F6C88EB004123C5 = 7229CD360F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD370F6C88EB004123C5 = 7229CD370F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD3C0F6C88EB004123C5 = 7229CD3C0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD410F6C88EB004123C5 = 7229CD410F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD4D0F6C88EB004123C5 = 7229CD4D0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD4F0F6C88EB004123C5 = 7229CD4F0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD500F6C88EB004123C5 = 7229CD500F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD560F6C88EB004123C5 = 7229CD560F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD600F6C88EB004123C5 = 7229CD600F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD630F6C88EB004123C5 = 7229CD630F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD650F6C88EB004123C5 = 7229CD650F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD700F6C88EB004123C5 = 7229CD700F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD730F6C88EB004123C5 = 7229CD730F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD790F6C88EB004123C5 = 7229CD790F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD7A0F6C88EB004123C5 = 7229CD7A0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD7E0F6C88EB004123C5 = 7229CD7E0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD800F6C88EB004123C5 = 7229CD800F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD810F6C88EB004123C5 = 7229CD810F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD820F6C88EB004123C5 = 7229CD820F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD830F6C88EB004123C5 = 7229CD830F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD840F6C88EB004123C5 = 7229CD840F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD8A0F6C88EB004123C5 = 7229CD8A0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD8C0F6C88EB004123C5 = 7229CD8C0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD940F6C88EB004123C5 = 7229CD940F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD950F6C88EB004123C5 = 7229CD950F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD960F6C88EB004123C5 = 7229CD960F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD980F6C88EB004123C5 = 7229CD980F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD990F6C88EB004123C5 = 7229CD990F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD9B0F6C88EB004123C5 = 7229CD9B0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CD9C0F6C88EB004123C5 = 7229CD9C0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDA10F6C88EB004123C5 = 7229CDA10F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDA40F6C88EB004123C5 = 7229CDA40F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDA50F6C88EB004123C5 = 7229CDA50F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDA80F6C88EB004123C5 = 7229CDA80F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDA90F6C88EB004123C5 = 7229CDA90F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDAA0F6C88EB004123C5 = 7229CDAA0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDAB0F6C88EB004123C5 = 7229CDAB0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDAD0F6C88EB004123C5 = 7229CDAD0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDB30F6C88EB004123C5 = 7229CDB30F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDB40F6C88EB004123C5 = 7229CDB40F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDB50F6C88EB004123C5 = 7229CDB50F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDB70F6C88EB004123C5 = 7229CDB70F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDBF0F6C88EB004123C5 = 7229CDBF0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDC00F6C88EB004123C5 = 7229CDC00F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDC20F6C88EB004123C5 = 7229CDC20F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDC40F6C88EB004123C5 = 7229CDC40F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDC50F6C88EB004123C5 = 7229CDC50F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDC60F6C88EB004123C5 = 7229CDC60F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDC70F6C88EB004123C5 = 7229CDC70F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDC80F6C88EB004123C5 = 7229CDC80F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDC90F6C88EB004123C5 = 7229CDC90F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDCD0F6C88EB004123C5 = 7229CDCD0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDCE0F6C88EB004123C5 = 7229CDCE0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDCF0F6C88EB004123C5 = 7229CDCF0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDD00F6C88EB004123C5 = 7229CDD00F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDD20F6C88EB004123C5 = 7229CDD20F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDD80F6C88EB004123C5 = 7229CDD80F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDD90F6C88EB004123C5 = 7229CDD90F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDDA0F6C88EB004123C5 = 7229CDDA0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDDB0F6C88EB004123C5 = 7229CDDB0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDDC0F6C88EB004123C5 = 7229CDDC0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDDE0F6C88EB004123C5 = 7229CDDE0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDE00F6C88EB004123C5 = 7229CDE00F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDE10F6C88EB004123C5 = 7229CDE10F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDE80F6C88EB004123C5 = 7229CDE80F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDE90F6C88EB004123C5 = 7229CDE90F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDEC0F6C88EB004123C5 = 7229CDEC0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDED0F6C88EB004123C5 = 7229CDED0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDEE0F6C88EB004123C5 = 7229CDEE0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDEF0F6C88EB004123C5 = 7229CDEF0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDF00F6C88EB004123C5 = 7229CDF00F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDF70F6C88EB004123C5 = 7229CDF70F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDFB0F6C88EB004123C5 = 7229CDFB0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDFC0F6C88EB004123C5 = 7229CDFC0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDFD0F6C88EB004123C5 = 7229CDFD0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CDFE0F6C88EB004123C5 = 7229CDFE0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE020F6C88EB004123C5 = 7229CE020F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE030F6C88EB004123C5 = 7229CE030F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE040F6C88EB004123C5 = 7229CE040F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE080F6C88EB004123C5 = 7229CE080F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE0A0F6C88EB004123C5 = 7229CE0A0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE0C0F6C88EB004123C5 = 7229CE0C0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE0D0F6C88EB004123C5 = 7229CE0D0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE0E0F6C88EB004123C5 = 7229CE0E0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE0F0F6C88EB004123C5 = 7229CE0F0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE110F6C88EB004123C5 = 7229CE110F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE130F6C88EB004123C5 = 7229CE130F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE140F6C88EB004123C5 = 7229CE140F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE150F6C88EB004123C5 = 7229CE150F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE190F6C88EB004123C5 = 7229CE190F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE1A0F6C88EB004123C5 = 7229CE1A0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE290F6C88EB004123C5 = 7229CE290F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE2B0F6C88EB004123C5 = 7229CE2B0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE2C0F6C88EB004123C5 = 7229CE2C0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE2E0F6C88EB004123C5 = 7229CE2E0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE2F0F6C88EB004123C5 = 7229CE2F0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE310F6C88EB004123C5 = 7229CE310F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE320F6C88EB004123C5 = 7229CE320F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE330F6C88EB004123C5 = 7229CE330F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE340F6C88EB004123C5 = 7229CE340F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE380F6C88EB004123C5 = 7229CE380F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE3B0F6C88EB004123C5 = 7229CE3B0F6C88EB004123C5 /* PBXTextBookmark */; + 7229CE5D0F6C92B6004123C5 = 7229CE5D0F6C92B6004123C5 /* PBXTextBookmark */; + 7229CE5F0F6C92B6004123C5 = 7229CE5F0F6C92B6004123C5 /* PBXTextBookmark */; + 7229CE6B0F6C92B6004123C5 = 7229CE6B0F6C92B6004123C5 /* PBXTextBookmark */; + 7229CE750F6C92B6004123C5 = 7229CE750F6C92B6004123C5 /* PBXTextBookmark */; + 7229CEA20F6C92B6004123C5 = 7229CEA20F6C92B6004123C5 /* PBXTextBookmark */; + 7229CF730F6D36B6004123C5 = 7229CF730F6D36B6004123C5 /* PBXTextBookmark */; + 7229D0200F6D3C00004123C5 = 7229D0200F6D3C00004123C5 /* PBXTextBookmark */; + 7229D0230F6D3C00004123C5 = 7229D0230F6D3C00004123C5 /* PBXTextBookmark */; + 7229D0710F6DFF8E004123C5 = 7229D0710F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D0720F6DFF8E004123C5 = 7229D0720F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D0730F6DFF8E004123C5 = 7229D0730F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D0790F6DFF8E004123C5 = 7229D0790F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D07B0F6DFF8E004123C5 = 7229D07B0F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D07E0F6DFF8E004123C5 = 7229D07E0F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D07F0F6DFF8E004123C5 = 7229D07F0F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D0800F6DFF8E004123C5 = 7229D0800F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D0820F6DFF8E004123C5 = 7229D0820F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D0A20F6DFF8E004123C5 = 7229D0A20F6DFF8E004123C5 /* PBXTextBookmark */; + 7229D0AA0F6DFFDA004123C5 = 7229D0AA0F6DFFDA004123C5 /* PBXTextBookmark */; + 7229D0AC0F6DFFDA004123C5 = 7229D0AC0F6DFFDA004123C5 /* PBXTextBookmark */; + 7229D0B90F6E00EE004123C5 = 7229D0B90F6E00EE004123C5 /* PBXTextBookmark */; + 7229D15D0F6E08D1004123C5 = 7229D15D0F6E08D1004123C5 /* PBXTextBookmark */; + 7229D1670F6E08D1004123C5 = 7229D1670F6E08D1004123C5 /* PBXTextBookmark */; + 7229D1CA0F6E109C004123C5 = 7229D1CA0F6E109C004123C5 /* PBXTextBookmark */; + 7229D1FC0F6E1131004123C5 = 7229D1FC0F6E1131004123C5 /* PBXTextBookmark */; + 7245527D0F61F51A00512339 = 7245527D0F61F51A00512339 /* PBXTextBookmark */; + 7274BA2C0F7000EC00962F7D = 7274BA2C0F7000EC00962F7D /* PBXTextBookmark */; + 7274BA2F0F7000EC00962F7D = 7274BA2F0F7000EC00962F7D /* PBXTextBookmark */; + 7274BA9E0F700FF400962F7D = 7274BA9E0F700FF400962F7D /* PBXTextBookmark */; + 7274BAAB0F700FF400962F7D = 7274BAAB0F700FF400962F7D /* PBXTextBookmark */; + 7276B0F10F7073540042B98A = 7276B0F10F7073540042B98A /* PBXTextBookmark */; + 7276B0F20F7073540042B98A = 7276B0F20F7073540042B98A /* PBXTextBookmark */; + 7276B0F30F7073540042B98A = 7276B0F30F7073540042B98A /* PBXTextBookmark */; + 7276B0F70F7073540042B98A = 7276B0F70F7073540042B98A /* PBXTextBookmark */; + 7276B14F0F70770A0042B98A = 7276B14F0F70770A0042B98A /* PBXTextBookmark */; + 7276B1700F7078300042B98A = 7276B1700F7078300042B98A /* PBXTextBookmark */; + 7276B1710F7078300042B98A = 7276B1710F7078300042B98A /* PBXTextBookmark */; + 7276B1E50F7081E60042B98A = 7276B1E50F7081E60042B98A /* PBXTextBookmark */; + 7276B1E60F7081E60042B98A = 7276B1E60F7081E60042B98A /* PBXTextBookmark */; + 72784AAE0F735733001C3AB7 = 72784AAE0F735733001C3AB7 /* PBXTextBookmark */; + 728AD7F00F6214300065C748 = 728AD7F00F6214300065C748 /* PBXTextBookmark */; + 72A7E91F0F5F4758005B83C0 = 72A7E91F0F5F4758005B83C0 /* PBXTextBookmark */; + 72A7E9200F5F4758005B83C0 = 72A7E9200F5F4758005B83C0 /* PBXTextBookmark */; + 72A7E9240F5F4758005B83C0 = 72A7E9240F5F4758005B83C0 /* PBXTextBookmark */; + 72B36F760F7FAE4200E614A8 = 72B36F760F7FAE4200E614A8 /* PBXTextBookmark */; + 72B43F110F7EF7A400D5BF60 = 72B43F110F7EF7A400D5BF60 /* PBXTextBookmark */; + 72B43F330F7EFAD700D5BF60 = 72B43F330F7EFAD700D5BF60 /* PBXTextBookmark */; + 72B5FD8A0F7E4E3100C8A372 = 72B5FD8A0F7E4E3100C8A372 /* PBXTextBookmark */; + 72B5FEB40F7E588B00C8A372 = 72B5FEB40F7E588B00C8A372 /* PBXTextBookmark */; + 72B5FEBA0F7E588B00C8A372 = 72B5FEBA0F7E588B00C8A372 /* PBXTextBookmark */; + 72B5FF040F7E5A1700C8A372 = 72B5FF040F7E5A1700C8A372 /* PBXTextBookmark */; + 72B5FF060F7E5A1700C8A372 = 72B5FF060F7E5A1700C8A372 /* PBXTextBookmark */; + 72B625940F617D2000F04830 = 72B625940F617D2000F04830 /* PBXTextBookmark */; + 72BBA2470F831796003EBE8B = 72BBA2470F831796003EBE8B /* PBXTextBookmark */; + 72BBA2490F831796003EBE8B = 72BBA2490F831796003EBE8B /* PBXTextBookmark */; + 72BBA2510F831796003EBE8B = 72BBA2510F831796003EBE8B /* PBXTextBookmark */; + 72BBA2920F8322E4003EBE8B = 72BBA2920F8322E4003EBE8B /* PBXTextBookmark */; + 72BBA2930F8322E4003EBE8B = 72BBA2930F8322E4003EBE8B /* PBXTextBookmark */; + 72BBA2E50F832938003EBE8B = 72BBA2E50F832938003EBE8B /* PBXTextBookmark */; + 72BBA3200F832CB1003EBE8B = 72BBA3200F832CB1003EBE8B /* PBXTextBookmark */; + 72C01F4A0F745D0A000201CA = 72C01F4A0F745D0A000201CA /* PBXTextBookmark */; + 72C01F4F0F745D0A000201CA = 72C01F4F0F745D0A000201CA /* PBXTextBookmark */; + 72C169400F6084F300F3B186 = 72C169400F6084F300F3B186 /* PBXTextBookmark */; + 72C1694F0F6084F300F3B186 = 72C1694F0F6084F300F3B186 /* PBXTextBookmark */; + 72D025640F8404C700ADAF78 = 72D025640F8404C700ADAF78 /* PBXTextBookmark */; + 72D0257E0F840E1C00ADAF78 = 72D0257E0F840E1C00ADAF78 /* PBXTextBookmark */; + 72D0259E0F8413C500ADAF78 = 72D0259E0F8413C500ADAF78 /* PBXTextBookmark */; + 72D025AF0F84141200ADAF78 = 72D025AF0F84141200ADAF78 /* PBXTextBookmark */; + 72D025D40F84158900ADAF78 = 72D025D40F84158900ADAF78 /* PBXTextBookmark */; + 72D0262B0F84196D00ADAF78 = 72D0262B0F84196D00ADAF78 /* PBXTextBookmark */; + 72D026330F8419B700ADAF78 = 72D026330F8419B700ADAF78 /* PBXTextBookmark */; + 72D027310F842F9D00ADAF78 = 72D027310F842F9D00ADAF78 /* PBXTextBookmark */; + 72D027320F842F9D00ADAF78 = 72D027320F842F9D00ADAF78 /* PBXTextBookmark */; + 72D027340F842F9D00ADAF78 = 72D027340F842F9D00ADAF78 /* PBXTextBookmark */; + 72D0274E0F8445E700ADAF78 = 72D0274E0F8445E700ADAF78 /* PBXTextBookmark */; + 72E5E60E0F8BCAB30078F4A2 /* PBXTextBookmark */ = 72E5E60E0F8BCAB30078F4A2 /* PBXTextBookmark */; + 72E5E60F0F8BCAB30078F4A2 /* PBXTextBookmark */ = 72E5E60F0F8BCAB30078F4A2 /* PBXTextBookmark */; + 72E5E6100F8BCAB30078F4A2 /* PBXTextBookmark */ = 72E5E6100F8BCAB30078F4A2 /* PBXTextBookmark */; + 72E5E6110F8BCAB30078F4A2 /* PBXTextBookmark */ = 72E5E6110F8BCAB30078F4A2 /* PBXTextBookmark */; + 72E5E6150F8BCAB30078F4A2 /* PBXTextBookmark */ = 72E5E6150F8BCAB30078F4A2 /* PBXTextBookmark */; + 72E5E6160F8BCAB30078F4A2 /* PBXTextBookmark */ = 72E5E6160F8BCAB30078F4A2 /* PBXTextBookmark */; + 72E5E6170F8BCAB30078F4A2 /* PBXTextBookmark */ = 72E5E6170F8BCAB30078F4A2 /* PBXTextBookmark */; + 72E5E6180F8BCAB30078F4A2 /* PBXTextBookmark */ = 72E5E6180F8BCAB30078F4A2 /* PBXTextBookmark */; + 72E5E6370F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6370F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6380F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6380F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6390F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6390F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E63A0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E63A0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E63B0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E63B0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E63C0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E63C0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E63D0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E63D0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E63E0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E63E0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E63F0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E63F0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6400F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6400F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6410F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6410F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6420F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6420F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6430F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6430F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6440F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6440F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6450F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6450F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6460F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6460F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6470F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6470F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6480F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6480F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6490F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E6490F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E64A0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E64A0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E64B0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E64B0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E64C0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E64C0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E64D0F8BCE610078F4A2 /* PBXTextBookmark */ = 72E5E64D0F8BCE610078F4A2 /* PBXTextBookmark */; + 72E5E6540F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E6540F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E6560F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E6560F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E6570F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E6570F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E6580F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E6580F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E65A0F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E65A0F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E65C0F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E65C0F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E65E0F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E65E0F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E6600F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E6600F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E6620F8BCF570078F4A2 /* PBXTextBookmark */ = 72E5E6620F8BCF570078F4A2 /* PBXTextBookmark */; + 72E5E6640F8BCFA80078F4A2 /* PBXTextBookmark */ = 72E5E6640F8BCFA80078F4A2 /* PBXTextBookmark */; + 72E5E6670F8BCFED0078F4A2 /* PBXTextBookmark */ = 72E5E6670F8BCFED0078F4A2 /* PBXTextBookmark */; + 72E5E6680F8BCFED0078F4A2 /* PBXTextBookmark */ = 72E5E6680F8BCFED0078F4A2 /* PBXTextBookmark */; + 72E5E66A0F8BCFED0078F4A2 /* PBXTextBookmark */ = 72E5E66A0F8BCFED0078F4A2 /* PBXTextBookmark */; + 72E5E66B0F8BCFED0078F4A2 /* PBXTextBookmark */ = 72E5E66B0F8BCFED0078F4A2 /* PBXTextBookmark */; + 72E5E68C0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E68C0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E68D0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E68D0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E68E0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E68E0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E68F0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E68F0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6900F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6900F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6910F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6910F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6920F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6920F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6930F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6930F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6940F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6940F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6950F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6950F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6960F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6960F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6970F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6970F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6980F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6980F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E6990F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E6990F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E69A0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E69A0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E69B0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E69B0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E69C0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E69C0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E69D0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E69D0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E69E0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E69E0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72E5E69F0F8BD65E0078F4A2 /* PBXTextBookmark */ = 72E5E69F0F8BD65E0078F4A2 /* PBXTextBookmark */; + 72F83C2F0F8A4FA10032AC67 = 72F83C2F0F8A4FA10032AC67 /* PBXBookmark */; + 72F83C370F8A52D20032AC67 = 72F83C370F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C390F8A52D20032AC67 = 72F83C390F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C3A0F8A52D20032AC67 = 72F83C3A0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C3B0F8A52D20032AC67 = 72F83C3B0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C3D0F8A52D20032AC67 = 72F83C3D0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C3E0F8A52D20032AC67 = 72F83C3E0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C3F0F8A52D20032AC67 = 72F83C3F0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C410F8A52D20032AC67 = 72F83C410F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C420F8A52D20032AC67 = 72F83C420F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C440F8A52D20032AC67 = 72F83C440F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C450F8A52D20032AC67 = 72F83C450F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C460F8A52D20032AC67 = 72F83C460F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C470F8A52D20032AC67 = 72F83C470F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C480F8A52D20032AC67 = 72F83C480F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C490F8A52D20032AC67 = 72F83C490F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C4A0F8A52D20032AC67 = 72F83C4A0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C4B0F8A52D20032AC67 = 72F83C4B0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C4C0F8A52D20032AC67 = 72F83C4C0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C4D0F8A52D20032AC67 = 72F83C4D0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C4E0F8A52D20032AC67 = 72F83C4E0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C4F0F8A52D20032AC67 = 72F83C4F0F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C500F8A52D20032AC67 = 72F83C500F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C510F8A52D20032AC67 = 72F83C510F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C520F8A52D20032AC67 = 72F83C520F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C530F8A52D20032AC67 = 72F83C530F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C540F8A52D20032AC67 = 72F83C540F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C550F8A52D20032AC67 = 72F83C550F8A52D20032AC67 /* PBXTextBookmark */; + 72F83C7D0F8A5FBB0032AC67 = 72F83C7D0F8A5FBB0032AC67 /* PBXTextBookmark */; + 72F83C7E0F8A5FBB0032AC67 = 72F83C7E0F8A5FBB0032AC67 /* PBXTextBookmark */; + 72F83C800F8A5FBB0032AC67 = 72F83C800F8A5FBB0032AC67 /* PBXTextBookmark */; + 72F83C810F8A5FBB0032AC67 = 72F83C810F8A5FBB0032AC67 /* PBXTextBookmark */; + 72F83C850F8A5FBB0032AC67 = 72F83C850F8A5FBB0032AC67 /* PBXTextBookmark */; + 72F83C890F8A5FBB0032AC67 = 72F83C890F8A5FBB0032AC67 /* PBXTextBookmark */; + 72F83CA30F8A67DA0032AC67 = 72F83CA30F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CA40F8A67DA0032AC67 = 72F83CA40F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CA60F8A67DA0032AC67 = 72F83CA60F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CA70F8A67DA0032AC67 = 72F83CA70F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CA80F8A67DA0032AC67 = 72F83CA80F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CA90F8A67DA0032AC67 = 72F83CA90F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CAA0F8A67DA0032AC67 = 72F83CAA0F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CAB0F8A67DA0032AC67 = 72F83CAB0F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CAC0F8A67DA0032AC67 = 72F83CAC0F8A67DA0032AC67 /* PBXTextBookmark */; + 72F83CBC0F8A6A140032AC67 = 72F83CBC0F8A6A140032AC67 /* PBXTextBookmark */; + 72F83CBE0F8A6A140032AC67 = 72F83CBE0F8A6A140032AC67 /* PBXTextBookmark */; + 72F83CDC0F8A6BFD0032AC67 = 72F83CDC0F8A6BFD0032AC67 /* PBXTextBookmark */; + 72F83CDD0F8A6BFD0032AC67 = 72F83CDD0F8A6BFD0032AC67 /* PBXTextBookmark */; + 72F83CDE0F8A6BFD0032AC67 = 72F83CDE0F8A6BFD0032AC67 /* PBXTextBookmark */; + 72F83CED0F8A6D1F0032AC67 = 72F83CED0F8A6D1F0032AC67 /* PBXTextBookmark */; + 72F83D0D0F8A6E140032AC67 = 72F83D0D0F8A6E140032AC67 /* PBXTextBookmark */; + 72F83D0E0F8A6E140032AC67 = 72F83D0E0F8A6E140032AC67 /* PBXTextBookmark */; + 72F83D0F0F8A6E140032AC67 = 72F83D0F0F8A6E140032AC67 /* PBXTextBookmark */; + 72F83D1F0F8A6F730032AC67 = 72F83D1F0F8A6F730032AC67 /* PBXTextBookmark */; + 72F83D200F8A6F730032AC67 = 72F83D200F8A6F730032AC67 /* PBXTextBookmark */; + 72F83D360F8A72820032AC67 = 72F83D360F8A72820032AC67 /* PBXTextBookmark */; + 72F83D370F8A72820032AC67 = 72F83D370F8A72820032AC67 /* PBXTextBookmark */; + 72F83D380F8A72820032AC67 = 72F83D380F8A72820032AC67 /* PBXTextBookmark */; + 72F83D410F8AE1A30032AC67 = 72F83D410F8AE1A30032AC67 /* PBXTextBookmark */; + 72F83D420F8AE1A30032AC67 = 72F83D420F8AE1A30032AC67 /* PBXTextBookmark */; + 72F83D430F8AE1A30032AC67 = 72F83D430F8AE1A30032AC67 /* PBXTextBookmark */; + 72F83D440F8AE1A30032AC67 = 72F83D440F8AE1A30032AC67 /* PBXTextBookmark */; + 72F83D450F8AE1A30032AC67 = 72F83D450F8AE1A30032AC67 /* PBXTextBookmark */; + }; + sourceControlManager = 72A540890F57487000C58067 /* Source Control */; + userBuildSettings = { + }; + }; + 29B97316FDCFA39411CA2CEA /* main.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 874}}"; + sepNavSelRange = "{767, 8}"; + sepNavVisRange = "{0, 767}"; + }; + }; + 32CA4F630368D1EE00C91783 /* wolf3d_Prefix.pch */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 396}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 173}"; + }; + }; + 43A945140F82D75900FFD32E /* iphone_sys.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1132, 1197}}"; + sepNavSelRange = "{1457, 0}"; + sepNavVisRange = "{1323, 958}"; + }; + }; + 43CF03090F56D5C200E4A23D /* iphone_loop.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {860, 22781}}"; + sepNavSelRange = "{21325, 0}"; + sepNavVisRange = "{21557, 445}"; + sepNavWindowFrame = "{{15, 98}, {848, 910}}"; + }; + }; + 43E8CF580F4F8449003F09B2 /* client_main.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = client_main.c; + path = /Users/johnc/dev/wolf3d/newCode/client/client_main.c; + sourceTree = ""; + }; + 43E8CF690F4F8461003F09B2 /* cmd.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = cmd.c; + path = /Users/johnc/dev/wolf3d/newCode/common/cmd.c; + sourceTree = ""; + }; + 43E8CF6B0F4F8461003F09B2 /* common.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = common.c; + path = /Users/johnc/dev/wolf3d/newCode/common/common.c; + sourceTree = ""; + }; + 43E8CF7F0F4F848D003F09B2 /* fileio.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = fileio.c; + path = /Users/johnc/dev/wolf3d/newCode/device/filesys/fileio.c; + sourceTree = ""; + }; + 43E8CFC10F4F855A003F09B2 /* wolf_client_main.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_client_main.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/client/wolf_client_main.c; + sourceTree = ""; + }; + 43E8CFC90F4F855A003F09B2 /* wolf_actors.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_actors.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/entities/wolf_actors.c; + sourceTree = ""; + }; + 43E8CFCB0F4F855A003F09B2 /* wolf_ai_com.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_ai_com.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/entities/wolf_ai_com.c; + sourceTree = ""; + }; + 43E8CFCD0F4F855A003F09B2 /* wolf_bj.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_bj.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/entities/wolf_bj.c; + sourceTree = ""; + }; + 43E8CFCF0F4F855A003F09B2 /* wolf_player.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_player.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/entities/wolf_player.c; + sourceTree = ""; + }; + 43E8CFD30F4F855A003F09B2 /* wolf_sprites.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_sprites.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/entities/wolf_sprites.c; + sourceTree = ""; + }; + 43E8CFD70F4F855A003F09B2 /* wolf_areas.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_areas.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/level/wolf_areas.c; + sourceTree = ""; + }; + 43E8CFD90F4F855A003F09B2 /* wolf_level.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_level.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/level/wolf_level.c; + sourceTree = ""; + }; + 43E8CFE30F4F855A003F09B2 /* wolf_mintermission.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_mintermission.c; + path = /Users/johnc/dev/wolf3d/code/game/wolf3d/menu/wolf_mintermission.c; + sourceTree = ""; + }; + 43E8CFE50F4F855A003F09B2 /* wolf_mnewgame.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_mnewgame.c; + path = /Users/johnc/dev/wolf3d/code/game/wolf3d/menu/wolf_mnewgame.c; + sourceTree = ""; + }; + 43E8CFEF0F4F855A003F09B2 /* wolf_opengl.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_opengl.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/video/opengl/wolf_opengl.c; + sourceTree = ""; + }; + 43E8CFF20F4F855A003F09B2 /* wolf_renderer.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_renderer.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/video/wolf_renderer.c; + sourceTree = ""; + }; + 43E8CFF50F4F855A003F09B2 /* wolf_main.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = wolf_main.c; + path = /Users/johnc/dev/wolf3d/newCode/game/wolf3d/wolf_main.c; + sourceTree = ""; + }; + 43E8D0170F4F8569003F09B2 /* math.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = math.c; + path = /Users/johnc/dev/wolf3d/newCode/math/math.c; + sourceTree = ""; + }; + 43E8D02D0F4F85B7003F09B2 /* script.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = script.c; + path = /Users/johnc/dev/wolf3d/code/script/script.c; + sourceTree = ""; + }; + 43E8D0660F4F860B003F09B2 /* opengl_main.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = opengl_main.c; + path = /Users/johnc/dev/wolf3d/newCode/video/opengl/opengl_main.c; + sourceTree = ""; + }; + 43E8D0670F4F860B003F09B2 /* opengl_texture.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = opengl_texture.c; + path = /Users/johnc/dev/wolf3d/newCode/video/opengl/opengl_texture.c; + sourceTree = ""; + }; + 43E8D06D0F4F860B003F09B2 /* texture_manager.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = texture_manager.c; + path = /Users/johnc/dev/wolf3d/newCode/video/texture_manager.c; + sourceTree = ""; + }; + 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 5928}}"; + sepNavSelRange = "{5977, 0}"; + sepNavVisRange = "{5615, 794}"; + sepNavWindowFrame = "{{15, 152}, {1264, 871}}"; + }; + }; + 43E8D2E00F4FC61E003F09B2 /* iphone_vid_sys.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = iphone_vid_sys.c; + path = /Users/johnc/dev/iphone/wolf3d/newCode/iphone/iphone_vid_sys.c; + sourceTree = ""; + }; + 43E8D40A0F51B268003F09B2 /* sound_stream.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = sound_stream.c; + path = /Users/johnc/dev/wolf3d/newCode/sound/sound_stream.c; + sourceTree = ""; + }; + 72044B540F5CC8F7007CA9A1 /* wolf3dAppDelegate.m:22 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 1D3623250D0F684500981E51 /* wolf3dAppDelegate.m */; + functionName = "vibrateDevice()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 22; + location = wolf3d; + modificationTime = 260822668.932886; + state = 2; + }; + 72044B560F5CC91B007CA9A1 /* wolf_player.c:717 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCF0F4F855A003F09B2 /* wolf_player.c */; + functionName = "PL_Damage()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 717; + location = wolf3d; + modificationTime = 260822668.933129; + state = 2; + }; + 72044B590F5CC968007CA9A1 /* EAGLView.m:169 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-handleTouches:withEvent:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 169; + location = wolf3d; + modificationTime = 260822668.933366; + state = 2; + }; + 72044B5E0F5CCA6E007CA9A1 /* wolf_player.c:704 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCF0F4F855A003F09B2 /* wolf_player.c */; + functionName = "PL_Damage()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 704; + location = wolf3d; + modificationTime = 260822668.933614; + state = 2; + }; + 72044B630F5CCB37007CA9A1 /* wolf_ai_com.c:1164 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCB0F4F855A003F09B2 /* wolf_ai_com.c */; + functionName = "T_Shoot()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1164; + location = wolf3d; + modificationTime = 260822668.933836; + state = 2; + }; + 720EB4C80F8112B7003F989A /* iphone_menus.c:561 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 561; + location = wolf3d; + modificationTime = 260822669.009963; + state = 2; + }; + 720EB4DD0F8113D3003F989A /* iphone_menus.c:572 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 572; + location = wolf3d; + modificationTime = 260822669.010257; + state = 2; + }; + 720EB50C0F811453003F989A /* iphone_menus.c:596 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 596; + location = wolf3d; + modificationTime = 260822669.010553; + state = 2; + }; + 720EB5260F811E99003F989A /* wolf_powerups.c:81 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC3A0F6B3222004123C5 /* wolf_powerups.c */; + functionName = "Pow_Remove()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 81; + location = wolf3d; + modificationTime = 260822669.010867; + state = 2; + }; + 720EB52D0F811F27003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC8E0F6B3363004123C5 /* wolfiphone.h */; + name = "wolfiphone.h: 78"; + rLen = 0; + rLoc = 1659; + rType = 0; + vrLen = 602; + vrLoc = 1304; + }; + 720EB5320F811F27003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC270F6B3222004123C5 /* wolf_actors.c */; + name = "wolf_actors.c: 184"; + rLen = 0; + rLoc = 4471; + rType = 0; + vrLen = 760; + vrLoc = 4206; + }; + 720EB56C0F811F54003F989A /* iphone_menus.c:272 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "LoadTheGame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 272; + location = wolf3d; + modificationTime = 260822669.011192; + state = 2; + }; + 720EB56E0F811F5F003F989A /* iphone_menus.c:222 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "SaveTheGame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 222; + location = wolf3d; + modificationTime = 260822669.011497; + state = 2; + }; + 720EB58F0F813C92003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 720EB5900F813C92003F989A /* UIApplication.h */; + name = "UIApplication.h: 76"; + rLen = 7; + rLoc = 3280; + rType = 0; + vrLen = 1225; + vrLoc = 2615; + }; + 720EB5900F813C92003F989A /* UIApplication.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = UIApplication.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h; + sourceTree = ""; + }; + 720EB59C0F813C92003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 720EB59D0F813C92003F989A /* UIApplication.h */; + name = "UIApplication.h: 76"; + rLen = 7; + rLoc = 3280; + rType = 0; + vrLen = 1225; + vrLoc = 2615; + }; + 720EB59D0F813C92003F989A /* UIApplication.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = UIApplication.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h; + sourceTree = ""; + }; + 720EB5E40F8153F1003F989A /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneExecuteCommandLine()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822669.011799; + state = 2; + }; + 720EB6090F815766003F989A /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneExecuteCommandLine()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822669.012121; + state = 2; + }; + 720EB6950F818F3E003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B540F6B2D9D0085DD28 /* opengl_texture.c */; + name = "opengl_texture.c: 154"; + rLen = 33; + rLoc = 2921; + rType = 0; + vrLen = 447; + vrLoc = 2789; + }; + 720EB6970F818F3E003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B2A0F6B2D9D0085DD28 /* console.c */; + name = "console.c: 55"; + rLen = 46; + rLoc = 1356; + rType = 0; + vrLen = 426; + vrLoc = 1121; + }; + 720EB69D0F818F3E003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72B5FF380F7E5C3D00C8A372 /* hud.c */; + name = "hud.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 152; + vrLoc = 0; + }; + 720EB70D0F81A107003F989A /* wolf3dAppDelegate.m:47 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CE490F6C89F8004123C5 /* wolf3dAppDelegate.m */; + functionName = "-volumeChanged:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 47; + location = wolf3d; + modificationTime = 260822669.01243; + state = 2; + }; + 720EB7380F81A7E5003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CDEA0F6C88EB004123C5 /* gles_glue.h */; + name = "gles_glue.h: 50"; + rLen = 0; + rLoc = 1490; + rType = 0; + vrLen = 681; + vrLoc = 1201; + }; + 720EB7580F81A845003F989A /* EAGLView.m:165 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CE460F6C89F8004123C5 /* EAGLView.m */; + functionName = "-drawView"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 165; + location = wolf3d; + modificationTime = 260822669.012735; + state = 2; + }; + 720EB75B0F81A856003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE480F6C89F8004123C5 /* wolf3dAppDelegate.h */; + name = "wolf3dAppDelegate.h: 37"; + rLen = 0; + rLoc = 1139; + rType = 0; + vrLen = 487; + vrLoc = 659; + }; + 720EB7770F81A8D8003F989A /* EAGLView.m:154 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CE460F6C89F8004123C5 /* EAGLView.m */; + functionName = "-initWithCoder:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 154; + location = wolf3d; + modificationTime = 260822669.013037; + state = 2; + }; + 720EB7980F81AB01003F989A /* wolf3dAppDelegate.m:73 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CE490F6C89F8004123C5 /* wolf3dAppDelegate.m */; + functionName = "-applicationDidFinishLaunching:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 73; + location = wolf3d; + modificationTime = 260822669.013336; + state = 2; + }; + 720EB80A0F81B748003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 720EB80B0F81B748003F989A /* FoundationErrors.h */; + name = "FoundationErrors.h: 5"; + rLen = 0; + rLoc = 115; + rType = 0; + vrLen = 1644; + vrLoc = 0; + }; + 720EB80B0F81B748003F989A /* FoundationErrors.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = FoundationErrors.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/FoundationErrors.h; + sourceTree = ""; + }; + 720EB8140F81B748003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 720EB8150F81B748003F989A /* FoundationErrors.h */; + name = "FoundationErrors.h: 5"; + rLen = 0; + rLoc = 115; + rType = 0; + vrLen = 1644; + vrLoc = 0; + }; + 720EB8150F81B748003F989A /* FoundationErrors.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = FoundationErrors.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/FoundationErrors.h; + sourceTree = ""; + }; + 720EB9050F8270D7003F989A /* texture_manager.c:518 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 518; + location = wolf3d; + modificationTime = 260822669.013641; + state = 2; + }; + 720EB91C0F8271D4003F989A /* texture_manager.c:349 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + functionName = "TM_LoadTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 349; + location = wolf3d; + modificationTime = 260822669.013943; + state = 2; + }; + 720EB93C0F8273FC003F989A /* texture_manager.c:590 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 590; + location = wolf3d; + modificationTime = 260822669.014254; + state = 1; + }; + 720EB98B0F8285DD003F989A /* texture_manager.c:605 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 605; + location = wolf3d; + modificationTime = 260822669.014561; + state = 2; + }; + 720EB99D0F82861B003F989A /* iphone_menus.c:1154 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneDrawMenus()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1154; + location = wolf3d; + modificationTime = 260822669.014889; + state = 2; + }; + 720EBA040F829ABC003F989A /* texture_manager.c:522 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 522; + location = wolf3d; + modificationTime = 260822669.015192; + state = 2; + }; + 720EBA2F0F82A2D9003F989A /* texture_manager.c:543 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 543; + location = wolf3d; + modificationTime = 260822669.015498; + state = 2; + }; + 720EBA640F82B426003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5E0F6B2D9D0085DD28 /* sound_stream.c */; + name = "sound_stream.c: 267"; + rLen = 19; + rLoc = 6493; + rType = 0; + vrLen = 501; + vrLoc = 6172; + }; + 720EBA650F82B426003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 609"; + rLen = 0; + rLoc = 12785; + rType = 0; + vrLen = 520; + vrLoc = 11947; + }; + 720EBA680F82B426003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC2E0F6B3222004123C5 /* wolf_client_main.c */; + name = "wolf_client_main.c: 79"; + rLen = 0; + rLoc = 1962; + rType = 0; + vrLen = 665; + vrLoc = 1318; + }; + 720EBA860F82BB19003F989A /* iphone_main.c:225 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + functionName = "iphoneStartup()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 225; + location = wolf3d; + modificationTime = 260822669.015814; + state = 2; + }; + 720EBA8D0F82BB5C003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B460F6B2D9D0085DD28 /* myopengl.h */; + name = "myopengl.h: 840"; + rLen = 8; + rLoc = 41473; + rType = 0; + vrLen = 1204; + vrLoc = 40915; + }; + 720EBA8E0F82BB5C003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */; + name = "openal_binding.c: 180"; + rLen = 21; + rLoc = 3917; + rType = 0; + vrLen = 403; + vrLoc = 1378; + }; + 720EBAB00F82C0D3003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE450F6C89F8004123C5 /* EAGLView.h */; + name = "EAGLView.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 853; + vrLoc = 0; + }; + 720EBAB20F82C0D3003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE490F6C89F8004123C5 /* wolf3dAppDelegate.m */; + name = "wolf3dAppDelegate.m: 73"; + rLen = 0; + rLoc = 2426; + rType = 0; + vrLen = 1091; + vrLoc = 1337; + }; + 720EBAB80F82C0D3003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE450F6C89F8004123C5 /* EAGLView.h */; + name = "EAGLView.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 853; + vrLoc = 0; + }; + 720EBAF40F82C7BA003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE460F6C89F8004123C5 /* EAGLView.m */; + name = "EAGLView.m: 138"; + rLen = 0; + rLoc = 4770; + rType = 0; + vrLen = 700; + vrLoc = 4702; + }; + 720EBB400F82CED5003F989A /* iphone_loop.c:1071 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1071; + location = wolf3d; + modificationTime = 260822669.016128; + state = 2; + }; + 720EBB450F82CF05003F989A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CDF80F6C88EB004123C5 /* iphone_qgl.h */; + name = "iphone_qgl.h: 939"; + rLen = 0; + rLoc = 34098; + rType = 0; + vrLen = 622; + vrLoc = 33725; + }; + 720EBB640F82CFDB003F989A /* iphone_loop.c:1072 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1072; + location = wolf3d; + modificationTime = 260822669.01644; + state = 2; + }; + 720EBB780F82D469003F989A /* wolf_opengl.c:61 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC370F6B3222004123C5 /* wolf_opengl.c */; + functionName = "GL_SetDefaultState()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 61; + location = wolf3d; + modificationTime = 260822669.016751; + state = 2; + }; + 7229CC240F6B3222004123C5 /* wolf_act_stat.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 31407}}"; + sepNavSelRange = "{57843, 14}"; + sepNavVisRange = "{57243, 696}"; + }; + }; + 7229CC250F6B3222004123C5 /* wolf_actor_ai.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1100, 18278}}"; + sepNavSelRange = "{3204, 0}"; + sepNavVisRange = "{3006, 571}"; + }; + }; + 7229CC270F6B3222004123C5 /* wolf_actors.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1100, 8740}}"; + sepNavSelRange = "{4471, 0}"; + sepNavVisRange = "{4206, 760}"; + }; + }; + 7229CC280F6B3222004123C5 /* wolf_actors.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1205, 3287}}"; + sepNavSelRange = "{3616, 93}"; + sepNavVisRange = "{2940, 1214}"; + sepNavWindowFrame = "{{15, 152}, {1264, 871}}"; + }; + }; + 7229CC290F6B3222004123C5 /* wolf_ai_com.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1276, 24624}}"; + sepNavSelRange = "{25137, 0}"; + sepNavVisRange = "{25081, 349}"; + }; + }; + 7229CC2B0F6B3222004123C5 /* wolf_areas.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 3078}}"; + sepNavSelRange = "{1584, 0}"; + sepNavVisRange = "{1335, 561}"; + }; + }; + 7229CC2C0F6B3222004123C5 /* wolf_bj.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2432}}"; + sepNavSelRange = "{833, 0}"; + sepNavVisRange = "{797, 348}"; + }; + }; + 7229CC2D0F6B3222004123C5 /* wolf_bj.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1140}}"; + sepNavSelRange = "{1347, 41}"; + sepNavVisRange = "{1183, 339}"; + }; + }; + 7229CC2E0F6B3222004123C5 /* wolf_client_main.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1748}}"; + sepNavSelRange = "{1962, 0}"; + sepNavVisRange = "{1318, 665}"; + }; + }; + 7229CC300F6B3222004123C5 /* wolf_doors.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {796, 9576}}"; + sepNavSelRange = "{2973, 9}"; + sepNavVisRange = "{2289, 1178}"; + sepNavWindowFrame = "{{15, 120}, {716, 903}}"; + }; + }; + 7229CC310F6B3222004123C5 /* wolf_level.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {612, 26372}}"; + sepNavSelRange = "{22815, 14}"; + sepNavVisRange = "{21805, 962}"; + sepNavWindowFrame = "{{38, 155}, {641, 847}}"; + }; + }; + 7229CC320F6B3222004123C5 /* wolf_level.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1205, 5643}}"; + sepNavSelRange = "{2242, 55}"; + sepNavVisRange = "{1766, 783}"; + sepNavWindowFrame = "{{170, 106}, {1264, 871}}"; + }; + }; + 7229CC330F6B3222004123C5 /* wolf_local.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2869}}"; + sepNavSelRange = "{1250, 9}"; + sepNavVisRange = "{1382, 536}"; + }; + }; + 7229CC340F6B3222004123C5 /* wolf_main.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1672}}"; + sepNavSelRange = "{1727, 0}"; + sepNavVisRange = "{1390, 484}"; + }; + }; + 7229CC350F6B3222004123C5 /* wolf_math.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 6175}}"; + sepNavSelRange = "{1103, 0}"; + sepNavVisRange = "{1061, 642}"; + }; + }; + 7229CC360F6B3222004123C5 /* wolf_math.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 3002}}"; + sepNavSelRange = "{1948, 19}"; + sepNavVisRange = "{1644, 453}"; + }; + }; + 7229CC370F6B3222004123C5 /* wolf_opengl.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {956, 9728}}"; + sepNavSelRange = "{3434, 0}"; + sepNavVisRange = "{3101, 858}"; + sepNavWindowFrame = "{{15, 176}, {641, 847}}"; + }; + }; + 7229CC380F6B3222004123C5 /* wolf_player.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 18050}}"; + sepNavSelRange = "{12648, 0}"; + sepNavVisRange = "{12474, 327}"; + }; + }; + 7229CC390F6B3222004123C5 /* wolf_player.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2926}}"; + sepNavSelRange = "{3477, 6}"; + sepNavVisRange = "{3461, 684}"; + }; + }; + 7229CC3A0F6B3222004123C5 /* wolf_powerups.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {884, 7011}}"; + sepNavSelRange = "{8443, 6}"; + sepNavVisRange = "{8069, 760}"; + }; + }; + 7229CC3B0F6B3222004123C5 /* wolf_powerups.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1205, 1634}}"; + sepNavSelRange = "{2320, 0}"; + sepNavVisRange = "{1226, 1099}"; + sepNavWindowFrame = "{{15, 152}, {1264, 871}}"; + }; + }; + 7229CC3C0F6B3222004123C5 /* wolf_pushwalls.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1020, 3211}}"; + sepNavSelRange = "{3300, 0}"; + sepNavVisRange = "{2984, 744}"; + }; + }; + 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1020, 7049}}"; + sepNavSelRange = "{2691, 11}"; + sepNavVisRange = "{2594, 772}"; + sepNavWindowFrame = "{{15, 152}, {1264, 871}}"; + }; + }; + 7229CC3E0F6B3222004123C5 /* wolf_raycast.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1425}}"; + sepNavSelRange = "{1849, 66}"; + sepNavVisRange = "{1475, 577}"; + }; + }; + 7229CC3F0F6B3222004123C5 /* wolf_renderer.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1843}}"; + sepNavSelRange = "{1464, 19}"; + sepNavVisRange = "{0, 822}"; + }; + }; + 7229CC400F6B3222004123C5 /* wolf_renderer.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {964, 1197}}"; + sepNavSelRange = "{1622, 0}"; + sepNavVisRange = "{1059, 625}"; + }; + }; + 7229CC410F6B3222004123C5 /* wolf_sprites.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {628, 5605}}"; + sepNavSelRange = "{4117, 13}"; + sepNavVisRange = "{3878, 819}"; + sepNavWindowFrame = "{{561, 134}, {641, 847}}"; + }; + }; + 7229CC420F6B3222004123C5 /* wolf_sprites.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1205, 7999}}"; + sepNavSelRange = "{10555, 0}"; + sepNavVisRange = "{9990, 1020}"; + sepNavWindowFrame = "{{15, 152}, {1264, 871}}"; + }; + }; + 7229CC430F6B3222004123C5 /* wolf_sv_ccmds.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1205, 1729}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1086}"; + sepNavWindowFrame = "{{61, 110}, {1264, 871}}"; + }; + }; + 7229CC440F6B3222004123C5 /* wolf_weapon.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1292, 3705}}"; + sepNavSelRange = "{2245, 6}"; + sepNavVisRange = "{936, 432}"; + }; + }; + 7229CC790F6B3295004123C5 /* vorbisfile.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 30096}}"; + sepNavSelRange = "{44832, 0}"; + sepNavVisRange = "{44240, 1170}"; + }; + }; + 7229CC8E0F6B3363004123C5 /* wolfiphone.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {789, 1672}}"; + sepNavSelRange = "{1659, 29}"; + sepNavVisRange = "{866, 1040}"; + sepNavWindowFrame = "{{36, 102}, {848, 910}}"; + }; + }; + 7229CD060F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B1C0F6B2D9D0085DD28 /* app_def.h */; + name = "app_def.h: 44"; + rLen = 0; + rLoc = 1101; + rType = 0; + vrLen = 260; + vrLoc = 905; + }; + 7229CD080F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B400F6B2D9D0085DD28 /* matrix.h */; + name = "matrix.h: 31"; + rLen = 21; + rLoc = 968; + rType = 0; + vrLen = 614; + vrLoc = 792; + }; + 7229CD090F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B450F6B2D9D0085DD28 /* mymath.h */; + name = "mymath.h: 37"; + rLen = 0; + rLoc = 1141; + rType = 0; + vrLen = 440; + vrLoc = 881; + }; + 7229CD0A0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6C0F6B2D9D0085DD28 /* vector.h */; + name = "vector.h: 120"; + rLen = 3; + rLoc = 4875; + rType = 0; + vrLen = 1157; + vrLoc = 3857; + }; + 7229CD0E0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B360F6B2D9D0085DD28 /* font_manager.h */; + name = "font_manager.h: 38"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 360; + vrLoc = 761; + }; + 7229CD120F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B420F6B2D9D0085DD28 /* memory.h */; + name = "memory.h: 36"; + rLen = 0; + rLoc = 1035; + rType = 0; + vrLen = 695; + vrLoc = 927; + }; + 7229CD170F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC280F6B3222004123C5 /* wolf_actors.h */; + name = "wolf_actors.h: 46"; + rLen = 0; + rLoc = 1331; + rType = 0; + vrLen = 443; + vrLoc = 1086; + }; + 7229CD190F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4C0F6B2D9D0085DD28 /* openal_binding.h */; + name = "openal_binding.h: 33"; + rLen = 52; + rLoc = 943; + rType = 0; + vrLen = 1330; + vrLoc = 884; + }; + 7229CD210F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B1A0F6B2D9D0085DD28 /* angle.c */; + name = "angle.c: 35"; + rLen = 0; + rLoc = 1123; + rType = 0; + vrLen = 636; + vrLoc = 978; + }; + 7229CD220F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B1D0F6B2D9D0085DD28 /* arch.c */; + name = "arch.c: 30"; + rLen = 0; + rLoc = 904; + rType = 0; + vrLen = 479; + vrLoc = 756; + }; + 7229CD240F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B250F6B2D9D0085DD28 /* com_string.c */; + name = "com_string.c: 39"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 701; + vrLoc = 1185; + }; + 7229CD290F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B320F6B2D9D0085DD28 /* filestring.c */; + name = "filestring.c: 35"; + rLen = 0; + rLoc = 1149; + rType = 0; + vrLen = 550; + vrLoc = 1112; + }; + 7229CD2B0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B380F6B2D9D0085DD28 /* glob.h */; + name = "glob.h: 22"; + rLen = 10; + rLoc = 776; + rType = 0; + vrLen = 818; + vrLoc = 0; + }; + 7229CD2C0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B370F6B2D9D0085DD28 /* glob.c */; + name = "glob.c: 12"; + rLen = 0; + rLoc = 454; + rType = 0; + vrLen = 827; + vrLoc = 178; + }; + 7229CD2F0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B3E0F6B2D9D0085DD28 /* math.c */; + name = "math.c: 35"; + rLen = 0; + rLoc = 1080; + rType = 0; + vrLen = 346; + vrLoc = 832; + }; + 7229CD300F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B3F0F6B2D9D0085DD28 /* matrix.c */; + name = "matrix.c: 31"; + rLen = 0; + rLoc = 1049; + rType = 0; + vrLen = 582; + vrLoc = 716; + }; + 7229CD310F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B410F6B2D9D0085DD28 /* memory.c */; + name = "memory.c: 30"; + rLen = 0; + rLoc = 958; + rType = 0; + vrLen = 317; + vrLoc = 713; + }; + 7229CD320F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4A0F6B2D9D0085DD28 /* oggfile.h */; + name = "oggfile.h: 26"; + rLen = 0; + rLoc = 879; + rType = 0; + vrLen = 811; + vrLoc = 187; + }; + 7229CD330F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6F0F6B2D9D0085DD28 /* wavfile.h */; + name = "wavfile.h: 37"; + rLen = 0; + rLoc = 1090; + rType = 0; + vrLen = 575; + vrLoc = 838; + }; + 7229CD360F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5B0F6B2D9D0085DD28 /* sound.h */; + name = "sound.h: 66"; + rLen = 0; + rLoc = 2004; + rType = 0; + vrLen = 675; + vrLoc = 1646; + }; + 7229CD370F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 54"; + rLen = 0; + rLoc = 1256; + rType = 0; + vrLen = 386; + vrLoc = 1131; + }; + 7229CD3C0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B570F6B2D9D0085DD28 /* random_number.h */; + name = "random_number.h: 42"; + rLen = 29; + rLoc = 1233; + rType = 0; + vrLen = 417; + vrLoc = 889; + }; + 7229CD410F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B560F6B2D9D0085DD28 /* random_number.c */; + name = "random_number.c: 88"; + rLen = 0; + rLoc = 2976; + rType = 0; + vrLen = 336; + vrLoc = 2953; + }; + 7229CD4D0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC2D0F6B3222004123C5 /* wolf_bj.h */; + name = "wolf_bj.h: 49"; + rLen = 41; + rLoc = 1347; + rType = 0; + vrLen = 339; + vrLoc = 1183; + }; + 7229CD4F0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC2B0F6B3222004123C5 /* wolf_areas.c */; + name = "wolf_areas.c: 53"; + rLen = 0; + rLoc = 1584; + rType = 0; + vrLen = 561; + vrLoc = 1335; + }; + 7229CD500F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC2C0F6B3222004123C5 /* wolf_bj.c */; + name = "wolf_bj.c: 23"; + rLen = 0; + rLoc = 833; + rType = 0; + vrLen = 348; + vrLoc = 797; + }; + 7229CD560F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC350F6B3222004123C5 /* wolf_math.c */; + name = "wolf_math.c: 35"; + rLen = 0; + rLoc = 1103; + rType = 0; + vrLen = 642; + vrLoc = 1061; + }; + 7229CD600F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6A0F6B2D9D0085DD28 /* unix_timer.c */; + name = "unix_timer.c: 53"; + rLen = 23; + rLoc = 1390; + rType = 0; + vrLen = 382; + vrLoc = 1056; + }; + 7229CD630F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B640F6B2D9D0085DD28 /* tga.h */; + name = "tga.h: 40"; + rLen = 0; + rLoc = 1326; + rType = 0; + vrLen = 589; + vrLoc = 992; + }; + 7229CD650F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC240F6B3222004123C5 /* wolf_act_stat.h */; + name = "wolf_act_stat.h: 1449"; + rLen = 14; + rLoc = 57843; + rType = 0; + vrLen = 696; + vrLoc = 57243; + }; + 7229CD700F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC8E0F6B3363004123C5 /* wolfiphone.h */; + name = "wolfiphone.h: 28"; + rLen = 0; + rLoc = 1399; + rType = 0; + vrLen = 654; + vrLoc = 194; + }; + 7229CD730F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6D0F6B2D9D0085DD28 /* video.h */; + name = "video.h: 63"; + rLen = 14; + rLoc = 1467; + rType = 0; + vrLen = 551; + vrLoc = 1174; + }; + 7229CD790F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC2B0F6B3222004123C5 /* wolf_areas.c */; + name = "wolf_areas.c: 63"; + rLen = 8; + rLoc = 1630; + rType = 0; + vrLen = 300; + vrLoc = 1640; + }; + 7229CD7A0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B1E0F6B2D9D0085DD28 /* arch.h */; + name = "arch.h: 231"; + rLen = 8; + rLoc = 4373; + rType = 0; + vrLen = 330; + vrLoc = 4131; + }; + 7229CD7E0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B280F6B2D9D0085DD28 /* common.h */; + name = "common.h: 42"; + rLen = 0; + rLoc = 1178; + rType = 0; + vrLen = 640; + vrLoc = 1135; + }; + 7229CD800F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6C0F6B2D9D0085DD28 /* vector.h */; + name = "vector.h: 37"; + rLen = 0; + rLoc = 1151; + rType = 0; + vrLen = 458; + vrLoc = 893; + }; + 7229CD810F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B340F6B2D9D0085DD28 /* filesystem.h */; + name = "filesystem.h: 41"; + rLen = 0; + rLoc = 1213; + rType = 0; + vrLen = 511; + vrLoc = 1096; + }; + 7229CD820F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B1C0F6B2D9D0085DD28 /* app_def.h */; + name = "app_def.h: 44"; + rLen = 0; + rLoc = 1101; + rType = 0; + vrLen = 260; + vrLoc = 905; + }; + 7229CD830F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B580F6B2D9D0085DD28 /* renderer.h */; + name = "renderer.h: 46"; + rLen = 0; + rLoc = 1332; + rType = 0; + vrLen = 560; + vrLoc = 1624; + }; + 7229CD840F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B520F6B2D9D0085DD28 /* opengl_local.h */; + name = "opengl_local.h: 23"; + rLen = 0; + rLoc = 796; + rType = 0; + vrLen = 569; + vrLoc = 531; + }; + 7229CD8A0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B400F6B2D9D0085DD28 /* matrix.h */; + name = "matrix.h: 31"; + rLen = 21; + rLoc = 968; + rType = 0; + vrLen = 614; + vrLoc = 792; + }; + 7229CD8C0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B450F6B2D9D0085DD28 /* mymath.h */; + name = "mymath.h: 37"; + rLen = 0; + rLoc = 1141; + rType = 0; + vrLen = 440; + vrLoc = 881; + }; + 7229CD940F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B620F6B2D9D0085DD28 /* texture_manager.h */; + name = "texture_manager.h: 41"; + rLen = 0; + rLoc = 1313; + rType = 0; + vrLen = 336; + vrLoc = 1092; + }; + 7229CD950F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B360F6B2D9D0085DD28 /* font_manager.h */; + name = "font_manager.h: 38"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 360; + vrLoc = 761; + }; + 7229CD960F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B650F6B2D9D0085DD28 /* timer.h */; + name = "timer.h: 38"; + rLen = 0; + rLoc = 981; + rType = 0; + vrLen = 352; + vrLoc = 766; + }; + 7229CD980F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5B0F6B2D9D0085DD28 /* sound.h */; + name = "sound.h: 39"; + rLen = 0; + rLoc = 1129; + rType = 0; + vrLen = 660; + vrLoc = 888; + }; + 7229CD990F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5C0F6B2D9D0085DD28 /* sound_local.h */; + name = "sound_local.h: 41"; + rLen = 2; + rLoc = 1189; + rType = 0; + vrLen = 469; + vrLoc = 921; + }; + 7229CD9B0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B420F6B2D9D0085DD28 /* memory.h */; + name = "memory.h: 36"; + rLen = 0; + rLoc = 1035; + rType = 0; + vrLen = 695; + vrLoc = 927; + }; + 7229CD9C0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC320F6B3222004123C5 /* wolf_level.h */; + name = "wolf_level.h: 50"; + rLen = 0; + rLoc = 1353; + rType = 0; + vrLen = 303; + vrLoc = 1149; + }; + 7229CDA10F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B260F6B2D9D0085DD28 /* com_string.h */; + name = "com_string.h: 46"; + rLen = 0; + rLoc = 1413; + rType = 0; + vrLen = 715; + vrLoc = 1176; + }; + 7229CDA40F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4C0F6B2D9D0085DD28 /* openal_binding.h */; + name = "openal_binding.h: 33"; + rLen = 0; + rLoc = 943; + rType = 0; + vrLen = 1330; + vrLoc = 884; + }; + 7229CDA50F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B2B0F6B2D9D0085DD28 /* console.h */; + name = "console.h: 42"; + rLen = 0; + rLoc = 1209; + rType = 0; + vrLen = 345; + vrLoc = 967; + }; + 7229CDA80F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC330F6B3222004123C5 /* wolf_local.h */; + name = "wolf_local.h: 42"; + rLen = 0; + rLoc = 1156; + rType = 0; + vrLen = 378; + vrLoc = 914; + }; + 7229CDA90F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC280F6B3222004123C5 /* wolf_actors.h */; + name = "wolf_actors.h: 46"; + rLen = 0; + rLoc = 1331; + rType = 0; + vrLen = 443; + vrLoc = 1086; + }; + 7229CDAA0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC390F6B3222004123C5 /* wolf_player.h */; + name = "wolf_player.h: 42"; + rLen = 0; + rLoc = 1215; + rType = 0; + vrLen = 461; + vrLoc = 976; + }; + 7229CDAB0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC360F6B3222004123C5 /* wolf_math.h */; + name = "wolf_math.h: 41"; + rLen = 0; + rLoc = 1175; + rType = 0; + vrLen = 578; + vrLoc = 1009; + }; + 7229CDAD0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6B0F6B2D9D0085DD28 /* vector.c */; + name = "vector.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 888; + vrLoc = 0; + }; + 7229CDB30F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC420F6B3222004123C5 /* wolf_sprites.h */; + name = "wolf_sprites.h: 47"; + rLen = 0; + rLoc = 1334; + rType = 0; + vrLen = 265; + vrLoc = 1161; + }; + 7229CDB40F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3B0F6B3222004123C5 /* wolf_powerups.h */; + name = "wolf_powerups.h: 43"; + rLen = 0; + rLoc = 1224; + rType = 0; + vrLen = 462; + vrLoc = 936; + }; + 7229CDB50F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC400F6B3222004123C5 /* wolf_renderer.h */; + name = "wolf_renderer.h: 43"; + rLen = 0; + rLoc = 1228; + rType = 0; + vrLen = 595; + vrLoc = 1080; + }; + 7229CDB70F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3E0F6B3222004123C5 /* wolf_raycast.h */; + name = "wolf_raycast.h: 42"; + rLen = 0; + rLoc = 1213; + rType = 0; + vrLen = 525; + vrLoc = 950; + }; + 7229CDBF0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B310F6B2D9D0085DD28 /* files.c */; + name = "files.c: 141"; + rLen = 0; + rLoc = 2142; + rType = 0; + vrLen = 335; + vrLoc = 4034; + }; + 7229CDC00F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B1A0F6B2D9D0085DD28 /* angle.c */; + name = "angle.c: 35"; + rLen = 0; + rLoc = 1123; + rType = 0; + vrLen = 622; + vrLoc = 978; + }; + 7229CDC20F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B1D0F6B2D9D0085DD28 /* arch.c */; + name = "arch.c: 30"; + rLen = 0; + rLoc = 904; + rType = 0; + vrLen = 479; + vrLoc = 756; + }; + 7229CDC40F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B230F6B2D9D0085DD28 /* cmd.c */; + name = "cmd.c: 35"; + rLen = 0; + rLoc = 1051; + rType = 0; + vrLen = 269; + vrLoc = 1015; + }; + 7229CDC50F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B250F6B2D9D0085DD28 /* com_string.c */; + name = "com_string.c: 39"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 701; + vrLoc = 1185; + }; + 7229CDC60F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B270F6B2D9D0085DD28 /* common.c */; + name = "common.c: 681"; + rLen = 0; + rLoc = 11588; + rType = 0; + vrLen = 429; + vrLoc = 12626; + }; + 7229CDC70F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B2A0F6B2D9D0085DD28 /* console.c */; + name = "console.c: 33"; + rLen = 27; + rLoc = 1069; + rType = 0; + vrLen = 432; + vrLoc = 825; + }; + 7229CDC80F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B2D0F6B2D9D0085DD28 /* cvar.c */; + name = "cvar.c: 34"; + rLen = 0; + rLoc = 1073; + rType = 0; + vrLen = 498; + vrLoc = 1001; + }; + 7229CDC90F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B2F0F6B2D9D0085DD28 /* fileio.c */; + name = "fileio.c: 29"; + rLen = 0; + rLoc = 869; + rType = 0; + vrLen = 593; + vrLoc = 909; + }; + 7229CDCD0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B320F6B2D9D0085DD28 /* filestring.c */; + name = "filestring.c: 35"; + rLen = 0; + rLoc = 1149; + rType = 0; + vrLen = 550; + vrLoc = 1112; + }; + 7229CDCE0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B350F6B2D9D0085DD28 /* font_manager.c */; + name = "font_manager.c: 28"; + rLen = 0; + rLoc = 858; + rType = 0; + vrLen = 327; + vrLoc = 829; + }; + 7229CDCF0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B370F6B2D9D0085DD28 /* glob.c */; + name = "glob.c: 22"; + rLen = 0; + rLoc = 765; + rType = 0; + vrLen = 192; + vrLoc = 1059; + }; + 7229CDD00F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B380F6B2D9D0085DD28 /* glob.h */; + name = "glob.h: 22"; + rLen = 10; + rLoc = 776; + rType = 0; + vrLen = 818; + vrLoc = 0; + }; + 7229CDD20F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B680F6B2D9D0085DD28 /* unix_file.c */; + name = "unix_file.c: 180"; + rLen = 10; + rLoc = 4500; + rType = 0; + vrLen = 459; + vrLoc = 4178; + }; + 7229CDD80F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B3E0F6B2D9D0085DD28 /* math.c */; + name = "math.c: 35"; + rLen = 0; + rLoc = 1080; + rType = 0; + vrLen = 346; + vrLoc = 832; + }; + 7229CDD90F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B3F0F6B2D9D0085DD28 /* matrix.c */; + name = "matrix.c: 31"; + rLen = 0; + rLoc = 1049; + rType = 0; + vrLen = 582; + vrLoc = 716; + }; + 7229CDDA0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B410F6B2D9D0085DD28 /* memory.c */; + name = "memory.c: 30"; + rLen = 0; + rLoc = 958; + rType = 0; + vrLen = 317; + vrLoc = 713; + }; + 7229CDDB0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B490F6B2D9D0085DD28 /* oggfile.c */; + name = "oggfile.c: 25"; + rLen = 0; + rLoc = 846; + rType = 0; + vrLen = 426; + vrLoc = 736; + }; + 7229CDDC0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4A0F6B2D9D0085DD28 /* oggfile.h */; + name = "oggfile.h: 26"; + rLen = 0; + rLoc = 879; + rType = 0; + vrLen = 811; + vrLoc = 187; + }; + 7229CDDE0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6F0F6B2D9D0085DD28 /* wavfile.h */; + name = "wavfile.h: 37"; + rLen = 0; + rLoc = 1090; + rType = 0; + vrLen = 575; + vrLoc = 838; + }; + 7229CDE00F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */; + name = "openal_binding.c: 31"; + rLen = 0; + rLoc = 920; + rType = 0; + vrLen = 360; + vrLoc = 740; + }; + 7229CDE10F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 59"; + rLen = 27; + rLoc = 1296; + rType = 0; + vrLen = 384; + vrLoc = 1131; + }; + 7229CDE80F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B460F6B2D9D0085DD28 /* myopengl.h */; + name = "myopengl.h: 91"; + rLen = 63; + rLoc = 2585; + rType = 0; + vrLen = 1808; + vrLoc = 1930; + }; + 7229CDE90F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CDEA0F6C88EB004123C5 /* gles_glue.h */; + name = "gles_glue.h: 63"; + rLen = 31; + rLoc = 1531; + rType = 0; + vrLen = 657; + vrLoc = 1519; + }; + 7229CDEA0F6C88EB004123C5 /* gles_glue.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = gles_glue.h; + path = /Users/johnc/dev/iphone/wolf3d/newCode/iphone/../env/../iphone/gles_glue.h; + sourceTree = ""; + }; + 7229CDEC0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B500F6B2D9D0085DD28 /* opengl_draw.c */; + name = "opengl_draw.c: 35"; + rLen = 0; + rLoc = 1051; + rType = 0; + vrLen = 414; + vrLoc = 1022; + }; + 7229CDED0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B530F6B2D9D0085DD28 /* opengl_main.c */; + name = "opengl_main.c: 22"; + rLen = 0; + rLoc = 769; + rType = 0; + vrLen = 491; + vrLoc = 358; + }; + 7229CDEE0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B540F6B2D9D0085DD28 /* opengl_texture.c */; + name = "opengl_texture.c: 35"; + rLen = 0; + rLoc = 1075; + rType = 0; + vrLen = 354; + vrLoc = 1042; + }; + 7229CDEF0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B560F6B2D9D0085DD28 /* random_number.c */; + name = "random_number.c: 100"; + rLen = 3; + rLoc = 3211; + rType = 0; + vrLen = 332; + vrLoc = 2953; + }; + 7229CDF00F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B570F6B2D9D0085DD28 /* random_number.h */; + name = "random_number.h: 42"; + rLen = 29; + rLoc = 1233; + rType = 0; + vrLen = 417; + vrLoc = 889; + }; + 7229CDF70F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CDF80F6C88EB004123C5 /* iphone_qgl.h */; + name = "iphone_qgl.h: 36"; + rLen = 2; + rLoc = 749; + rType = 0; + vrLen = 668; + vrLoc = 421; + }; + 7229CDF80F6C88EB004123C5 /* iphone_qgl.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = iphone_qgl.h; + path = /Users/johnc/dev/iphone/wolf3d/newCode/iphone/../env/../iphone/iphone_qgl.h; + sourceTree = ""; + }; + 7229CDFB0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B590F6B2D9D0085DD28 /* share.c */; + name = "share.c: 23"; + rLen = 0; + rLoc = 792; + rType = 0; + vrLen = 569; + vrLoc = 368; + }; + 7229CDFC0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 38"; + rLen = 0; + rLoc = 1116; + rType = 0; + vrLen = 444; + vrLoc = 1089; + }; + 7229CDFD0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */; + name = "sound_sfx_id.c: 38"; + rLen = 0; + rLoc = 1123; + rType = 0; + vrLen = 307; + vrLoc = 1096; + }; + 7229CDFE0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6A0F6B2D9D0085DD28 /* unix_timer.c */; + name = "unix_timer.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 808; + vrLoc = 0; + }; + 7229CE020F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5E0F6B2D9D0085DD28 /* sound_stream.c */; + name = "sound_stream.c: 33"; + rLen = 0; + rLoc = 987; + rType = 0; + vrLen = 391; + vrLoc = 741; + }; + 7229CE030F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + name = "texture_manager.c: 40"; + rLen = 0; + rLoc = 1280; + rType = 0; + vrLen = 589; + vrLoc = 968; + }; + 7229CE040F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B630F6B2D9D0085DD28 /* tga.c */; + name = "tga.c: 39"; + rLen = 0; + rLoc = 1211; + rType = 0; + vrLen = 415; + vrLoc = 1181; + }; + 7229CE080F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6E0F6B2D9D0085DD28 /* wavfile.c */; + name = "wavfile.c: 35"; + rLen = 0; + rLoc = 1044; + rType = 0; + vrLen = 302; + vrLoc = 1012; + }; + 7229CE0A0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B730F6B2D9D0085DD28 /* zmem.h */; + name = "zmem.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 441; + vrLoc = 1370; + }; + 7229CE0C0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B720F6B2D9D0085DD28 /* zmem.c */; + name = "zmem.c: 41"; + rLen = 0; + rLoc = 1190; + rType = 0; + vrLen = 409; + vrLoc = 1158; + }; + 7229CE0D0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC250F6B3222004123C5 /* wolf_actor_ai.c */; + name = "wolf_actor_ai.c: 35"; + rLen = 0; + rLoc = 1080; + rType = 0; + vrLen = 389; + vrLoc = 842; + }; + 7229CE0E0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC270F6B3222004123C5 /* wolf_actors.c */; + name = "wolf_actors.c: 279"; + rLen = 0; + rLoc = 6445; + rType = 0; + vrLen = 624; + vrLoc = 6137; + }; + 7229CE0F0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC2D0F6B3222004123C5 /* wolf_bj.h */; + name = "wolf_bj.h: 49"; + rLen = 41; + rLoc = 1347; + rType = 0; + vrLen = 339; + vrLoc = 1183; + }; + 7229CE110F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC290F6B3222004123C5 /* wolf_ai_com.c */; + name = "wolf_ai_com.c: 36"; + rLen = 0; + rLoc = 1074; + rType = 0; + vrLen = 477; + vrLoc = 839; + }; + 7229CE130F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC2C0F6B3222004123C5 /* wolf_bj.c */; + name = "wolf_bj.c: 23"; + rLen = 0; + rLoc = 833; + rType = 0; + vrLen = 348; + vrLoc = 797; + }; + 7229CE140F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC2E0F6B3222004123C5 /* wolf_client_main.c */; + name = "wolf_client_main.c: 35"; + rLen = 18; + rLoc = 990; + rType = 0; + vrLen = 425; + vrLoc = 768; + }; + 7229CE150F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + name = "wolf_doors.c: 487"; + rLen = 19; + rLoc = 11853; + rType = 0; + vrLen = 408; + vrLoc = 11624; + }; + 7229CE190F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 39"; + rLen = 0; + rLoc = 1222; + rType = 0; + vrLen = 625; + vrLoc = 931; + }; + 7229CE1A0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC340F6B3222004123C5 /* wolf_main.c */; + name = "wolf_main.c: 103"; + rLen = 0; + rLoc = 1925; + rType = 0; + vrLen = 0; + vrLoc = 1925; + }; + 7229CE290F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC380F6B3222004123C5 /* wolf_player.c */; + name = "wolf_player.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 927; + vrLoc = 90; + }; + 7229CE2B0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC350F6B3222004123C5 /* wolf_math.c */; + name = "wolf_math.c: 35"; + rLen = 0; + rLoc = 1103; + rType = 0; + vrLen = 642; + vrLoc = 1061; + }; + 7229CE2C0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC370F6B3222004123C5 /* wolf_opengl.c */; + name = "wolf_opengl.c: 39"; + rLen = 0; + rLoc = 1233; + rType = 0; + vrLen = 470; + vrLoc = 966; + }; + 7229CE2E0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3A0F6B3222004123C5 /* wolf_powerups.c */; + name = "wolf_powerups.c: 35"; + rLen = 0; + rLoc = 1077; + rType = 0; + vrLen = 376; + vrLoc = 842; + }; + 7229CE2F0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3C0F6B3222004123C5 /* wolf_pushwalls.c */; + name = "wolf_pushwalls.c: 35"; + rLen = 0; + rLoc = 1112; + rType = 0; + vrLen = 424; + vrLoc = 1073; + }; + 7229CE310F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3F0F6B3222004123C5 /* wolf_renderer.c */; + name = "wolf_renderer.c: 34"; + rLen = 0; + rLoc = 1102; + rType = 0; + vrLen = 417; + vrLoc = 825; + }; + 7229CE320F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC410F6B3222004123C5 /* wolf_sprites.c */; + name = "wolf_sprites.c: 35"; + rLen = 0; + rLoc = 1108; + rType = 0; + vrLen = 429; + vrLoc = 862; + }; + 7229CE330F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC430F6B3222004123C5 /* wolf_sv_ccmds.c */; + name = "wolf_sv_ccmds.c: 22"; + rLen = 0; + rLoc = 764; + rType = 0; + vrLen = 197; + vrLoc = 1952; + }; + 7229CE340F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC440F6B3222004123C5 /* wolf_weapon.c */; + name = "wolf_weapon.c: 24"; + rLen = 0; + rLoc = 835; + rType = 0; + vrLen = 481; + vrLoc = 805; + }; + 7229CE380F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B640F6B2D9D0085DD28 /* tga.h */; + name = "tga.h: 40"; + rLen = 0; + rLoc = 1326; + rType = 0; + vrLen = 589; + vrLoc = 992; + }; + 7229CE3B0F6C88EB004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC240F6B3222004123C5 /* wolf_act_stat.h */; + name = "wolf_act_stat.h: 1449"; + rLen = 14; + rLoc = 57843; + rType = 0; + vrLen = 696; + vrLoc = 57243; + }; + 7229CE450F6C89F8004123C5 /* EAGLView.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1102}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 853}"; + }; + }; + 7229CE460F6C89F8004123C5 /* EAGLView.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1044, 6821}}"; + sepNavSelRange = "{4770, 0}"; + sepNavVisRange = "{4702, 700}"; + }; + }; + 7229CE480F6C89F8004123C5 /* wolf3dAppDelegate.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 760}}"; + sepNavSelRange = "{1139, 0}"; + sepNavVisRange = "{659, 487}"; + }; + }; + 7229CE490F6C89F8004123C5 /* wolf3dAppDelegate.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {820, 2242}}"; + sepNavSelRange = "{2426, 0}"; + sepNavVisRange = "{1337, 1091}"; + }; + }; + 7229CE540F6C8CDE004123C5 /* gles_glue.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2698}}"; + sepNavSelRange = "{1215, 0}"; + sepNavVisRange = "{169, 656}"; + }; + }; + 7229CE5D0F6C92B6004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B650F6B2D9D0085DD28 /* timer.h */; + name = "timer.h: 40"; + rLen = 38; + rLoc = 1048; + rType = 0; + vrLen = 352; + vrLoc = 766; + }; + 7229CE5F0F6C92B6004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B1E0F6B2D9D0085DD28 /* arch.h */; + name = "arch.h: 233"; + rLen = 16; + rLoc = 4385; + rType = 0; + vrLen = 330; + vrLoc = 4131; + }; + 7229CE6B0F6C92B6004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6B0F6B2D9D0085DD28 /* vector.c */; + name = "vector.c: 167"; + rLen = 3; + rLoc = 4412; + rType = 0; + vrLen = 532; + vrLoc = 4137; + }; + 7229CE750F6C92B6004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE460F6C89F8004123C5 /* EAGLView.m */; + name = "EAGLView.m: 105"; + rLen = 0; + rLoc = 5282; + rType = 0; + vrLen = 638; + vrLoc = 2700; + }; + 7229CEA20F6C92B6004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE540F6C8CDE004123C5 /* gles_glue.c */; + name = "gles_glue.c: 142"; + rLen = 0; + rLoc = 3260; + rType = 0; + vrLen = 352; + vrLoc = 2907; + }; + 7229CEB20F6C9334004123C5 /* font_manager.c:190 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B350F6B2D9D0085DD28 /* font_manager.c */; + functionName = "Font_Init()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 190; + location = wolf3d; + modificationTime = 260822668.951169; + state = 2; + }; + 7229CEB40F6C9341004123C5 /* opengl_main.c:288 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B530F6B2D9D0085DD28 /* opengl_main.c */; + functionName = "R_Init()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 288; + location = wolf3d; + modificationTime = 260822668.95149; + state = 2; + }; + 7229CF290F6D34B2004123C5 /* font_manager.c:89 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B350F6B2D9D0085DD28 /* font_manager.c */; + functionName = "createFont()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 89; + location = wolf3d; + modificationTime = 260822668.951784; + state = 2; + }; + 7229CF730F6D36B6004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE490F6C89F8004123C5 /* wolf3dAppDelegate.m */; + name = "wolf3dAppDelegate.m: 56"; + rLen = 18; + rLoc = 2073; + rType = 0; + vrLen = 944; + vrLoc = 1494; + }; + 7229CF960F6D378B004123C5 /* files.c:162 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B310F6B2D9D0085DD28 /* files.c */; + functionName = "FS_InitFilesystem()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 162; + location = wolf3d; + modificationTime = 260822668.95207; + state = 2; + }; + 7229D0200F6D3C00004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B330F6B2D9D0085DD28 /* filestring.h */; + name = "filestring.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 458; + vrLoc = 1091; + }; + 7229D0230F6D3C00004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B330F6B2D9D0085DD28 /* filestring.h */; + name = "filestring.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 458; + vrLoc = 1091; + }; + 7229D04D0F6D4393004123C5 /* zmem.c:100 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B720F6B2D9D0085DD28 /* zmem.c */; + functionName = "Z_Stats_f()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 100; + location = wolf3d; + modificationTime = 260822668.952369; + state = 2; + }; + 7229D0710F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B350F6B2D9D0085DD28 /* font_manager.c */; + name = "font_manager.c: 85"; + rLen = 49; + rLoc = 1810; + rType = 0; + vrLen = 489; + vrLoc = 1670; + }; + 7229D0720F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B680F6B2D9D0085DD28 /* unix_file.c */; + name = "unix_file.c: 165"; + rLen = 64; + rLoc = 4476; + rType = 0; + vrLen = 724; + vrLoc = 3623; + }; + 7229D0730F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B260F6B2D9D0085DD28 /* com_string.h */; + name = "com_string.h: 46"; + rLen = 0; + rLoc = 1413; + rType = 0; + vrLen = 837; + vrLoc = 1957; + }; + 7229D0790F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC430F6B3222004123C5 /* wolf_sv_ccmds.c */; + name = "wolf_sv_ccmds.c: 94"; + rLen = 0; + rLoc = 2146; + rType = 0; + vrLen = 437; + vrLoc = 1712; + }; + 7229D07B0F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B2B0F6B2D9D0085DD28 /* console.h */; + name = "console.h: 83"; + rLen = 0; + rLoc = 2336; + rType = 0; + vrLen = 655; + vrLoc = 1700; + }; + 7229D07E0F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B590F6B2D9D0085DD28 /* share.c */; + name = "share.c: 20"; + rLen = 0; + rLoc = 760; + rType = 0; + vrLen = 287; + vrLoc = 2322; + }; + 7229D07F0F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6D0F6B2D9D0085DD28 /* video.h */; + name = "video.h: 56"; + rLen = 6; + rLoc = 1352; + rType = 0; + vrLen = 460; + vrLoc = 1232; + }; + 7229D0800F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B730F6B2D9D0085DD28 /* zmem.h */; + name = "zmem.h: 72"; + rLen = 9; + rLoc = 1825; + rType = 0; + vrLen = 370; + vrLoc = 1504; + }; + 7229D0820F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229D0830F6DFF8E004123C5 /* CGLayer.h */; + name = "CGLayer.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 886; + vrLoc = 1318; + }; + 7229D0830F6DFF8E004123C5 /* CGLayer.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CGLayer.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGLayer.h; + sourceTree = ""; + }; + 7229D0A20F6DFF8E004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229D0A30F6DFF8E004123C5 /* CGLayer.h */; + name = "CGLayer.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 886; + vrLoc = 1318; + }; + 7229D0A30F6DFF8E004123C5 /* CGLayer.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CGLayer.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGLayer.h; + sourceTree = ""; + }; + 7229D0A50F6DFF8E004123C5 /* CoreGraphics.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CoreGraphics.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h; + sourceTree = ""; + }; + 7229D0AA0F6DFFDA004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229D0A50F6DFF8E004123C5 /* CoreGraphics.h */; + name = "CoreGraphics.h: 5"; + rLen = 0; + rLoc = 120; + rType = 0; + vrLen = 637; + vrLoc = 0; + }; + 7229D0AC0F6DFFDA004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229D0A50F6DFF8E004123C5 /* CoreGraphics.h */; + name = "CoreGraphics.h: 5"; + rLen = 0; + rLoc = 120; + rType = 0; + vrLen = 637; + vrLoc = 0; + }; + 7229D0B90F6E00EE004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B720F6B2D9D0085DD28 /* zmem.c */; + name = "zmem.c: 150"; + rLen = 0; + rLoc = 3605; + rType = 0; + vrLen = 417; + vrLoc = 3482; + }; + 7229D0BE0F6E0123004123C5 /* iphone_menus.c:589 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 589; + location = wolf3d; + modificationTime = 260822668.952683; + state = 2; + }; + 7229D0C10F6E0145004123C5 /* iphone_menus.c:544 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 544; + location = wolf3d; + modificationTime = 260822668.953091; + state = 2; + }; + 7229D12A0F6E0757004123C5 /* iphone_menus.c:552 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 552; + location = wolf3d; + modificationTime = 260822668.99925; + state = 2; + }; + 7229D1350F6E07C0004123C5 /* wolf_main.c:69 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC340F6B3222004123C5 /* wolf_main.c */; + functionName = "Game_Init()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 69; + location = wolf3d; + modificationTime = 260822668.999695; + state = 2; + }; + 7229D1370F6E07E0004123C5 /* cvar.c:287 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B2D0F6B2D9D0085DD28 /* cvar.c */; + functionName = "Cvar_Set2()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 287; + location = wolf3d; + modificationTime = 260822669.000013; + state = 2; + }; + 7229D15D0F6E08D1004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229D15E0F6E08D1004123C5 /* MacTypes.h */; + name = "MacTypes.h: 581"; + rLen = 9; + rLoc = 23954; + rType = 0; + vrLen = 1023; + vrLoc = 23132; + }; + 7229D15E0F6E08D1004123C5 /* MacTypes.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = MacTypes.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/include/MacTypes.h; + sourceTree = ""; + }; + 7229D1670F6E08D1004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229D1680F6E08D1004123C5 /* MacTypes.h */; + name = "MacTypes.h: 581"; + rLen = 9; + rLoc = 23954; + rType = 0; + vrLen = 1023; + vrLoc = 23132; + }; + 7229D1680F6E08D1004123C5 /* MacTypes.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = MacTypes.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/include/MacTypes.h; + sourceTree = ""; + }; + 7229D1830F6E0965004123C5 /* iphone_menus.c:517 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneEpisodeMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 517; + location = wolf3d; + modificationTime = 260822669.000412; + state = 2; + }; + 7229D1CA0F6E109C004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3E0F6B3222004123C5 /* wolf_raycast.h */; + name = "wolf_raycast.h: 67"; + rLen = 66; + rLoc = 1849; + rType = 0; + vrLen = 577; + vrLoc = 1475; + }; + 7229D1FB0F6E10F3004123C5 /* iphone_menus.c:1060 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1060; + location = wolf3d; + modificationTime = 260822669.00077; + state = 2; + }; + 7229D1FC0F6E1131004123C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B270F6B2D9D0085DD28 /* common.c */; + name = "common.c: 115"; + rLen = 56; + rLoc = 2575; + rType = 0; + vrLen = 780; + vrLoc = 0; + }; + 7235B8A00F5C6B5E005C10A8 /* wolf_renderer.c:249 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFF20F4F855A003F09B2 /* wolf_renderer.c */; + functionName = "R_DrawPsyched()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 249; + location = wolf3d; + modificationTime = 260822668.92861; + state = 2; + }; + 7235B8AA0F5C6DAA005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.928834; + state = 2; + }; + 7235B8B10F5C6E48005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.929078; + state = 2; + }; + 7235B8B90F5C72EA005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.929296; + state = 2; + }; + 7235B8BF0F5C73F8005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.929521; + state = 2; + }; + 7235B8C70F5C74BE005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.929731; + state = 2; + }; + 7235B8CE0F5C790E005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.929962; + state = 2; + }; + 7235B8D40F5C79E9005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.930195; + state = 2; + }; + 7235B8E20F5C88B3005C10A8 /* wolf_mintermission.c:813 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFE30F4F855A003F09B2 /* wolf_mintermission.c */; + functionName = "M_Intermission_f()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 813; + location = wolf3d; + modificationTime = 260822668.930473; + state = 2; + }; + 7235B8E40F5C88DC005C10A8 /* wolf_player.c:386 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCF0F4F855A003F09B2 /* wolf_player.c */; + functionName = "PL_ControlMovement()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 386; + location = wolf3d; + modificationTime = 260822668.930718; + state = 2; + }; + 7235B8E60F5C8977005C10A8 /* wolf_player.c:157 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCF0F4F855A003F09B2 /* wolf_player.c */; + functionName = "PL_Use()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 157; + location = wolf3d; + modificationTime = 260822668.930944; + state = 2; + }; + 7235B8F40F5C91E9005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneDrawNotifyText()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.931173; + state = 2; + }; + 7235B8F90F5C9230005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneDrawNotifyText()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.931404; + state = 2; + }; + 7235B9010F5C974F005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.931636; + state = 2; + }; + 7235B90A0F5C98FE005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneControlMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.931854; + state = 2; + }; + 7235B9130F5CA09B005C10A8 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneIntermission()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.932099; + state = 2; + }; + 7235B9220F5CAC0A005C10A8 /* wolf3dAppDelegate.m:89 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 1D3623250D0F684500981E51 /* wolf3dAppDelegate.m */; + functionName = "-accelerometer:didAccelerate:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 89; + location = wolf3d; + modificationTime = 260822668.932333; + state = 2; + }; + 7235B9280F5CB573005C10A8 /* wolf3dAppDelegate.m:74 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 1D3623250D0F684500981E51 /* wolf3dAppDelegate.m */; + functionName = "-restartAccelerometerIfNeeded"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 74; + location = wolf3d; + modificationTime = 260822668.932659; + state = 2; + }; + 723DD5BA0F5D93E9002640F0 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "R_Draw_StretchPicWithTouch()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.93407; + state = 2; + }; + 723DD5BC0F5D93F1002640F0 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneDrawControls()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.934341; + state = 2; + }; + 723DD5CA0F5D99F7002640F0 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneSlider()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.934598; + state = 2; + }; + 724551B90F61C0E500512339 /* texture_manager.c:1352 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D06D0F4F860B003F09B2 /* texture_manager.c */; + functionName = "TM_Shutdown()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1352; + location = wolf3d; + modificationTime = 260822668.941835; + state = 2; + }; + 7245527D0F61F51A00512339 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + name = "iphone_loop.c: 128"; + rLen = 0; + rLoc = 5682; + rType = 0; + vrLen = 848; + vrLoc = 2686; + }; + 7273411E0F7163E600ED2E46 /* iphone_menus.c:893 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 893; + location = wolf3d; + modificationTime = 260822669.004929; + state = 2; + }; + 7273413C0F71654200ED2E46 /* iphone_menus.c:897 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + condition = 72C01EFA0F7438A3000201CA /* XCGDBBreakpointCondition */; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 897; + location = wolf3d; + modificationTime = 260822669.005212; + state = 2; + }; + 7274BA260F7000E900962F7D /* iphone_menus.c:1093 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1093; + location = wolf3d; + modificationTime = 260822669.001165; + state = 2; + }; + 7274BA2C0F7000EC00962F7D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC360F6B3222004123C5 /* wolf_math.h */; + name = "wolf_math.h: 66"; + rLen = 19; + rLoc = 1948; + rType = 0; + vrLen = 453; + vrLoc = 1644; + }; + 7274BA2F0F7000EC00962F7D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC330F6B3222004123C5 /* wolf_local.h */; + name = "wolf_local.h: 51"; + rLen = 9; + rLoc = 1250; + rType = 0; + vrLen = 536; + vrLoc = 1382; + }; + 7274BA600F70041000962F7D /* iphone_menus.c:1101 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1101; + location = wolf3d; + modificationTime = 260822669.001563; + state = 2; + }; + 7274BA740F70063600962F7D /* iphone_menus.c:1115 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1115; + location = wolf3d; + modificationTime = 260822669.001964; + state = 2; + }; + 7274BA990F700FF000962F7D /* iphone_menus.c:1027 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1027; + location = wolf3d; + modificationTime = 260822669.002344; + state = 2; + }; + 7274BA9E0F700FF400962F7D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7274BA9F0F700FF400962F7D /* stdlib.h */; + name = "stdlib.h: 173"; + rLen = 36; + rLoc = 5699; + rType = 0; + vrLen = 781; + vrLoc = 5336; + }; + 7274BA9F0F700FF400962F7D /* stdlib.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = stdlib.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/include/stdlib.h; + sourceTree = ""; + }; + 7274BAAB0F700FF400962F7D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7274BAAC0F700FF400962F7D /* stdlib.h */; + name = "stdlib.h: 173"; + rLen = 36; + rLoc = 5699; + rType = 0; + vrLen = 781; + vrLoc = 5336; + }; + 7274BAAC0F700FF400962F7D /* stdlib.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = stdlib.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/include/stdlib.h; + sourceTree = ""; + }; + 7276B0D10F7023CD0042B98A /* iphone_menus.c:923 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 923; + location = wolf3d; + modificationTime = 260822669.002692; + state = 2; + }; + 7276B0E90F7073240042B98A /* sound_sfx_id.c:253 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */; + functionName = "Sound_RegisterSound()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 253; + location = wolf3d; + modificationTime = 260822669.00302; + state = 2; + }; + 7276B0EB0F7073360042B98A /* sound_sfx_id.c:161 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */; + functionName = "Sound_LoadSound()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 161; + location = wolf3d; + modificationTime = 260822669.003322; + state = 2; + }; + 7276B0F10F7073540042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 32CA4F630368D1EE00C91783 /* wolf3d_Prefix.pch */; + name = "wolf3d_Prefix.pch: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 173; + vrLoc = 0; + }; + 7276B0F20F7073540042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 22"; + rLen = 8; + rLoc = 767; + rType = 0; + vrLen = 767; + vrLoc = 0; + }; + 7276B0F30F7073540042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE540F6C8CDE004123C5 /* gles_glue.c */; + name = "gles_glue.c: 54"; + rLen = 0; + rLoc = 1215; + rType = 0; + vrLen = 656; + vrLoc = 169; + }; + 7276B0F70F7073540042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5C0F6B2D9D0085DD28 /* sound_local.h */; + name = "sound_local.h: 55"; + rLen = 5; + rLoc = 1447; + rType = 0; + vrLen = 488; + vrLoc = 1160; + }; + 7276B1450F7077050042B98A /* fileio.c:195 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B2F0F6B2D9D0085DD28 /* fileio.c */; + functionName = "LoadFile()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 195; + location = wolf3d; + modificationTime = 260822669.003643; + state = 2; + }; + 7276B14F0F70770A0042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7276B1500F70770A0042B98A /* stdio.h */; + name = "stdio.h: 137"; + rLen = 5; + rLoc = 5069; + rType = 0; + vrLen = 909; + vrLoc = 4544; + }; + 7276B1500F70770A0042B98A /* stdio.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = stdio.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/include/stdio.h; + sourceTree = ""; + }; + 7276B1700F7078300042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7276B1500F70770A0042B98A /* stdio.h */; + name = "stdio.h: 163"; + rLen = 8; + rLoc = 6161; + rType = 0; + vrLen = 973; + vrLoc = 5003; + }; + 7276B1710F7078300042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B340F6B2D9D0085DD28 /* filesystem.h */; + name = "filesystem.h: 71"; + rLen = 16; + rLoc = 1996; + rType = 0; + vrLen = 629; + vrLoc = 1477; + }; + 7276B17A0F7079120042B98A /* fileio.c:252 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B2F0F6B2D9D0085DD28 /* fileio.c */; + functionName = "FS_OpenFile()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 252; + location = wolf3d; + modificationTime = 260822669.003978; + state = 2; + }; + 7276B1A00F707C710042B98A /* fileio.c:226 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B2F0F6B2D9D0085DD28 /* fileio.c */; + functionName = "FS_OpenFile()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 226; + location = wolf3d; + modificationTime = 260822669.004308; + state = 2; + }; + 7276B1E00F7080C00042B98A /* texture_manager.c:496 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 496; + location = wolf3d; + modificationTime = 260822669.004641; + state = 2; + }; + 7276B1E50F7081E60042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B310F6B2D9D0085DD28 /* files.c */; + name = "files.c: 64"; + rLen = 0; + rLoc = 2141; + rType = 0; + vrLen = 401; + vrLoc = 3564; + }; + 7276B1E60F7081E60042B98A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B6E0F6B2D9D0085DD28 /* wavfile.c */; + name = "wavfile.c: 150"; + rLen = 0; + rLoc = 3071; + rType = 0; + vrLen = 506; + vrLoc = 2751; + }; + 72784A540F734D15001C3AB7 /* iphone_menus.c:971 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 971; + location = wolf3d; + modificationTime = 260822669.00551; + state = 2; + }; + 72784A560F734D1B001C3AB7 /* iphone_menus.c:962 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 962; + location = wolf3d; + modificationTime = 260822669.005807; + state = 2; + }; + 72784A700F734D54001C3AB7 /* iphone_menus.c:983 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 983; + location = wolf3d; + modificationTime = 260822669.00621; + state = 2; + }; + 72784A720F734D81001C3AB7 /* iphone_menus.c:1073 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1073; + location = wolf3d; + modificationTime = 260822669.006509; + state = 2; + }; + 72784AAE0F735733001C3AB7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3C0F6B3222004123C5 /* wolf_pushwalls.c */; + name = "wolf_pushwalls.c: 114"; + rLen = 0; + rLoc = 3300; + rType = 0; + vrLen = 744; + vrLoc = 2984; + }; + 72810A6E0F612B9300CBB029 /* wolf_ai_com.c:594 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCB0F4F855A003F09B2 /* wolf_ai_com.c */; + functionName = "AI_FindTarget()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 594; + location = wolf3d; + modificationTime = 260822668.938766; + state = 2; + }; + 72810A820F612CE400CBB029 /* wolf_areas.c:114 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFD70F4F855A003F09B2 /* wolf_areas.c */; + functionName = "Areas_ConnectAreas()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 114; + location = wolf3d; + modificationTime = 260822668.939017; + state = 2; + }; + 72810AA60F612EC900CBB029 /* wolf_areas.c:120 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFD70F4F855A003F09B2 /* wolf_areas.c */; + functionName = "Areas_ConnectAreas()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 120; + location = wolf3d; + modificationTime = 260822668.939283; + state = 2; + }; + 72810AA80F612ECB00CBB029 /* wolf_areas.c:120 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFD70F4F855A003F09B2 /* wolf_areas.c */; + functionName = "Areas_ConnectAreas()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 120; + location = wolf3d; + modificationTime = 260822668.939542; + state = 2; + }; + 72810ABC0F612F6300CBB029 /* wolf_areas.c:155 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFD70F4F855A003F09B2 /* wolf_areas.c */; + functionName = "Areas_JoinAreas()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 155; + location = wolf3d; + modificationTime = 260822668.939805; + state = 2; + }; + 72810ABE0F612F6900CBB029 /* wolf_areas.c:173 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFD70F4F855A003F09B2 /* wolf_areas.c */; + functionName = "Areas_DisconnectAreas()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 173; + location = wolf3d; + modificationTime = 260822668.940051; + state = 2; + }; + 728AD7710F62021E0065C748 /* script.c:440 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D02D0F4F85B7003F09B2 /* script.c */; + functionName = "script_Parse()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 440; + modificationTime = 260822668.942085; + state = 2; + }; + 728AD7730F6202280065C748 /* wolf_main.c:95 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFF50F4F855A003F09B2 /* wolf_main.c */; + functionName = "Game_Init()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 95; + location = wolf3dEpisode1; + modificationTime = 260822668.942377; + state = 2; + }; + 728AD79A0F6203EF0065C748 /* wolf_mnewgame.c:179 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFE50F4F855A003F09B2 /* wolf_mnewgame.c */; + functionName = "StartGame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 179; + location = wolf3d; + modificationTime = 260822668.942641; + state = 2; + }; + 728AD7C80F6211700065C748 /* wolf_bj.c:139 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCD0F4F855A003F09B2 /* wolf_bj.c */; + functionName = "T_BJDone()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 139; + location = wolf3d; + modificationTime = 260822668.942894; + state = 2; + }; + 728AD7F00F6214300065C748 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 32CA4F630368D1EE00C91783 /* wolf3d_Prefix.pch */; + name = "wolf3d_Prefix.pch: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 173; + vrLoc = 0; + }; + 72935B1A0F6B2D9D0085DD28 /* angle.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2964}}"; + sepNavSelRange = "{1123, 0}"; + sepNavVisRange = "{978, 636}"; + }; + }; + 72935B1C0F6B2D9D0085DD28 /* app_def.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 969}}"; + sepNavSelRange = "{1101, 0}"; + sepNavVisRange = "{905, 260}"; + }; + }; + 72935B1D0F6B2D9D0085DD28 /* arch.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1159}}"; + sepNavSelRange = "{904, 0}"; + sepNavVisRange = "{756, 479}"; + }; + }; + 72935B1E0F6B2D9D0085DD28 /* arch.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1420, 5054}}"; + sepNavSelRange = "{4385, 16}"; + sepNavVisRange = "{4131, 330}"; + }; + }; + 72935B230F6B2D9D0085DD28 /* cmd.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 22439}}"; + sepNavSelRange = "{10890, 0}"; + sepNavVisRange = "{10437, 483}"; + }; + }; + 72935B250F6B2D9D0085DD28 /* com_string.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 9291}}"; + sepNavSelRange = "{1327, 0}"; + sepNavVisRange = "{1185, 701}"; + }; + }; + 72935B260F6B2D9D0085DD28 /* com_string.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1012, 1653}}"; + sepNavSelRange = "{1413, 0}"; + sepNavVisRange = "{1957, 837}"; + }; + }; + 72935B270F6B2D9D0085DD28 /* common.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1007, 10716}}"; + sepNavSelRange = "{3402, 9}"; + sepNavVisRange = "{3009, 498}"; + }; + }; + 72935B280F6B2D9D0085DD28 /* common.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1007, 3895}}"; + sepNavSelRange = "{4698, 20}"; + sepNavVisRange = "{4171, 453}"; + }; + }; + 72935B2A0F6B2D9D0085DD28 /* console.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 15580}}"; + sepNavSelRange = "{1356, 46}"; + sepNavVisRange = "{1121, 426}"; + }; + }; + 72935B2B0F6B2D9D0085DD28 /* console.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1653}}"; + sepNavSelRange = "{2336, 0}"; + sepNavVisRange = "{1700, 655}"; + }; + }; + 72935B2D0F6B2D9D0085DD28 /* cvar.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1007, 14155}}"; + sepNavSelRange = "{11543, 5}"; + sepNavVisRange = "{11348, 445}"; + }; + }; + 72935B2F0F6B2D9D0085DD28 /* fileio.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {748, 5415}}"; + sepNavSelRange = "{5666, 0}"; + sepNavVisRange = "{5666, 624}"; + }; + }; + 72935B310F6B2D9D0085DD28 /* files.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {796, 3097}}"; + sepNavSelRange = "{2141, 0}"; + sepNavVisRange = "{3564, 401}"; + }; + }; + 72935B320F6B2D9D0085DD28 /* filestring.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2508}}"; + sepNavSelRange = "{1149, 0}"; + sepNavVisRange = "{1112, 550}"; + }; + }; + 72935B330F6B2D9D0085DD28 /* filestring.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1064}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{1091, 458}"; + }; + }; + 72935B340F6B2D9D0085DD28 /* filesystem.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2565}}"; + sepNavSelRange = "{1996, 16}"; + sepNavVisRange = "{1477, 629}"; + }; + }; + 72935B350F6B2D9D0085DD28 /* font_manager.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 8797}}"; + sepNavSelRange = "{1810, 49}"; + sepNavVisRange = "{1670, 489}"; + }; + }; + 72935B360F6B2D9D0085DD28 /* font_manager.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1577}}"; + sepNavSelRange = "{1033, 0}"; + sepNavVisRange = "{761, 360}"; + }; + }; + 72935B370F6B2D9D0085DD28 /* glob.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 3629}}"; + sepNavSelRange = "{454, 0}"; + sepNavVisRange = "{178, 827}"; + }; + }; + 72935B380F6B2D9D0085DD28 /* glob.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 437}}"; + sepNavSelRange = "{776, 10}"; + sepNavVisRange = "{0, 818}"; + }; + }; + 72935B3E0F6B2D9D0085DD28 /* math.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 3990}}"; + sepNavSelRange = "{1080, 0}"; + sepNavVisRange = "{832, 346}"; + }; + }; + 72935B3F0F6B2D9D0085DD28 /* matrix.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 3097}}"; + sepNavSelRange = "{1049, 0}"; + sepNavVisRange = "{716, 582}"; + }; + }; + 72935B400F6B2D9D0085DD28 /* matrix.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 836}}"; + sepNavSelRange = "{968, 21}"; + sepNavVisRange = "{792, 614}"; + }; + }; + 72935B410F6B2D9D0085DD28 /* memory.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {668, 3610}}"; + sepNavSelRange = "{1492, 0}"; + sepNavVisRange = "{1642, 421}"; + }; + }; + 72935B420F6B2D9D0085DD28 /* memory.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1045}}"; + sepNavSelRange = "{1035, 0}"; + sepNavVisRange = "{927, 695}"; + }; + }; + 72935B450F6B2D9D0085DD28 /* mymath.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1596}}"; + sepNavSelRange = "{1141, 0}"; + sepNavVisRange = "{881, 440}"; + }; + }; + 72935B460F6B2D9D0085DD28 /* myopengl.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1284, 18145}}"; + sepNavSelRange = "{41473, 8}"; + sepNavVisRange = "{40915, 1204}"; + }; + }; + 72935B490F6B2D9D0085DD28 /* oggfile.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1396, 2888}}"; + sepNavSelRange = "{3340, 0}"; + sepNavVisRange = "{3124, 524}"; + }; + }; + 72935B4A0F6B2D9D0085DD28 /* oggfile.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 570}}"; + sepNavSelRange = "{879, 0}"; + sepNavVisRange = "{187, 811}"; + }; + }; + 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 6726}}"; + sepNavSelRange = "{5229, 0}"; + sepNavVisRange = "{5451, 1493}"; + }; + }; + 72935B4C0F6B2D9D0085DD28 /* openal_binding.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {988, 3325}}"; + sepNavSelRange = "{943, 52}"; + sepNavVisRange = "{6346, 937}"; + }; + }; + 72935B4D0F6B2D9D0085DD28 /* openal_main.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {796, 4579}}"; + sepNavSelRange = "{4598, 1}"; + sepNavVisRange = "{4524, 373}"; + }; + }; + 72935B500F6B2D9D0085DD28 /* opengl_draw.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 4807}}"; + sepNavSelRange = "{3568, 0}"; + sepNavVisRange = "{438, 638}"; + }; + }; + 72935B520F6B2D9D0085DD28 /* opengl_local.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {772, 4883}}"; + sepNavSelRange = "{961, 0}"; + sepNavVisRange = "{737, 370}"; + }; + }; + 72935B530F6B2D9D0085DD28 /* opengl_main.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1007, 7714}}"; + sepNavSelRange = "{8514, 0}"; + sepNavVisRange = "{8090, 371}"; + sepNavWindowFrame = "{{15, 152}, {1264, 871}}"; + }; + }; + 72935B540F6B2D9D0085DD28 /* opengl_texture.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 4636}}"; + sepNavSelRange = "{2921, 33}"; + sepNavVisRange = "{2789, 447}"; + }; + }; + 72935B560F6B2D9D0085DD28 /* random_number.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2033}}"; + sepNavSelRange = "{2976, 0}"; + sepNavVisRange = "{2953, 336}"; + }; + }; + 72935B570F6B2D9D0085DD28 /* random_number.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 931}}"; + sepNavSelRange = "{1233, 29}"; + sepNavVisRange = "{889, 417}"; + }; + }; + 72935B580F6B2D9D0085DD28 /* renderer.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {796, 1919}}"; + sepNavSelRange = "{1818, 0}"; + sepNavVisRange = "{1616, 694}"; + }; + }; + 72935B590F6B2D9D0085DD28 /* share.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 3268}}"; + sepNavSelRange = "{760, 0}"; + sepNavVisRange = "{2322, 287}"; + }; + }; + 72935B5A0F6B2D9D0085DD28 /* sound.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {644, 13908}}"; + sepNavSelRange = "{13358, 0}"; + sepNavVisRange = "{13162, 244}"; + sepNavWindowFrame = "{{15, 152}, {1264, 871}}"; + }; + }; + 72935B5B0F6B2D9D0085DD28 /* sound.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1132, 1786}}"; + sepNavSelRange = "{2129, 0}"; + sepNavVisRange = "{2032, 866}"; + }; + }; + 72935B5C0F6B2D9D0085DD28 /* sound_local.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 2014}}"; + sepNavSelRange = "{2854, 0}"; + sepNavVisRange = "{2529, 454}"; + }; + }; + 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 5567}}"; + sepNavSelRange = "{5647, 0}"; + sepNavVisRange = "{5353, 294}"; + }; + }; + 72935B5E0F6B2D9D0085DD28 /* sound_stream.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {884, 9785}}"; + sepNavSelRange = "{6493, 19}"; + sepNavVisRange = "{6172, 501}"; + }; + }; + 72935B610F6B2D9D0085DD28 /* texture_manager.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1007, 26885}}"; + sepNavSelRange = "{11345, 0}"; + sepNavVisRange = "{11117, 487}"; + }; + }; + 72935B620F6B2D9D0085DD28 /* texture_manager.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {836, 3743}}"; + sepNavSelRange = "{2833, 0}"; + sepNavVisRange = "{2303, 757}"; + sepNavWindowFrame = "{{85, 113}, {641, 847}}"; + }; + }; + 72935B630F6B2D9D0085DD28 /* tga.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 14421}}"; + sepNavSelRange = "{15061, 5}"; + sepNavVisRange = "{14681, 779}"; + }; + }; + 72935B640F6B2D9D0085DD28 /* tga.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 950}}"; + sepNavSelRange = "{1326, 0}"; + sepNavVisRange = "{992, 589}"; + }; + }; + 72935B650F6B2D9D0085DD28 /* timer.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 855}}"; + sepNavSelRange = "{1048, 38}"; + sepNavVisRange = "{766, 352}"; + }; + }; + 72935B680F6B2D9D0085DD28 /* unix_file.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {772, 5369}}"; + sepNavSelRange = "{4476, 64}"; + sepNavVisRange = "{3623, 724}"; + }; + }; + 72935B6A0F6B2D9D0085DD28 /* unix_timer.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1328}}"; + sepNavSelRange = "{1390, 23}"; + sepNavVisRange = "{1056, 436}"; + }; + }; + 72935B6B0F6B2D9D0085DD28 /* vector.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {836, 12559}}"; + sepNavSelRange = "{4412, 3}"; + sepNavVisRange = "{4137, 532}"; + }; + }; + 72935B6C0F6B2D9D0085DD28 /* vector.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 2375}}"; + sepNavSelRange = "{4875, 3}"; + sepNavVisRange = "{3857, 1157}"; + }; + }; + 72935B6D0F6B2D9D0085DD28 /* video.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1311}}"; + sepNavSelRange = "{1352, 6}"; + sepNavVisRange = "{1232, 460}"; + }; + }; + 72935B6E0F6B2D9D0085DD28 /* wavfile.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 4161}}"; + sepNavSelRange = "{3071, 0}"; + sepNavVisRange = "{2751, 506}"; + }; + }; + 72935B6F0F6B2D9D0085DD28 /* wavfile.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1045}}"; + sepNavSelRange = "{1090, 0}"; + sepNavVisRange = "{838, 575}"; + }; + }; + 72935B720F6B2D9D0085DD28 /* zmem.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {676, 3363}}"; + sepNavSelRange = "{4560, 0}"; + sepNavVisRange = "{3737, 463}"; + }; + }; + 72935B730F6B2D9D0085DD28 /* zmem.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 1444}}"; + sepNavSelRange = "{1825, 9}"; + sepNavVisRange = "{1504, 370}"; + }; + }; + 729400540F61857400F15A77 /* wolf_opengl.c:386 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFEF0F4F855A003F09B2 /* wolf_opengl.c */; + functionName = "R_DrawSprites()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 386; + location = wolf3d; + modificationTime = 260822668.94107; + state = 2; + }; + 729400580F61859200F15A77 /* wolf_sprites.c:298 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFD30F4F855A003F09B2 /* wolf_sprites.c */; + functionName = "Sprite_CreateVisList()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 298; + location = wolf3d; + modificationTime = 260822668.941331; + state = 2; + }; + 72977E940F5F0D620074EA80 /* fileio.c:610 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF7F0F4F848D003F09B2 /* fileio.c */; + functionName = "FS_ReadFile()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 610; + location = wolf3d; + modificationTime = 260822668.934851; + state = 2; + }; + 729852750F61A87B00D7BB48 /* wolf_opengl.c:441 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFEF0F4F855A003F09B2 /* wolf_opengl.c */; + functionName = "R_DrawSprites()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 441; + location = wolf3d; + modificationTime = 260822668.941576; + state = 2; + }; + 729B60CF0F60B28C00C46D45 /* texture_manager.c:538 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D06D0F4F860B003F09B2 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 538; + location = wolf3d; + modificationTime = 260822668.938509; + state = 2; + }; + 729D0DC50F670EA9001B874A /* iphone_menus.c:606 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 606; + location = wolf3d; + modificationTime = 260822668.948612; + state = 2; + }; + 729D0DC80F670EB6001B874A /* iphone_menus.c:607 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 607; + location = wolf3d; + modificationTime = 260822668.9489; + state = 2; + }; + 729D0E020F671CB5001B874A /* iphone_menus.c:584 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 584; + location = wolf3d; + modificationTime = 260822668.949175; + state = 2; + }; + 729D0E1E0F672226001B874A /* wolf_client_main.c:100 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFC10F4F855A003F09B2 /* wolf_client_main.c */; + functionName = "Client_PrepRefresh()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 100; + location = wolf3d; + modificationTime = 260822668.949467; + state = 2; + }; + 729D0E860F6737A5001B874A /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "ShowTilt()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.949746; + state = 2; + }; + 72A4D0F80F6755A400964EEF /* wolf3dAppDelegate.m:95 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 1D3623250D0F684500981E51 /* wolf3dAppDelegate.m */; + functionName = "-accelerometer:didAccelerate:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 95; + location = wolf3d; + modificationTime = 260822668.950026; + state = 2; + }; + 72A4D1000F67568E00964EEF /* iphone_menus.c:192 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "SaveTheGame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 192; + location = wolf3d; + modificationTime = 260822668.950306; + state = 2; + }; + 72A4D1020F67575700964EEF /* iphone_main.c:329 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + functionName = "iphoneShutdown()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 329; + location = wolf3d; + modificationTime = 260822668.950579; + state = 2; + }; + 72A540710F57486F00C58067 /* wolf3d */ = { + isa = PBXExecutable; + activeArgIndices = ( + ); + argumentStrings = ( + ); + autoAttachOnCrash = 1; + breakpointsEnabled = 1; + configStateDict = { + }; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + libgmallocEnabled = 0; + name = wolf3d; + savedGlobals = { + }; + sourceDirectories = ( + ); + variableFormatDictionary = { + $cpsr = 1; + $d0 = 1; + $d1 = 1; + $d10 = 1; + $d11 = 1; + $d12 = 1; + $d13 = 1; + $d14 = 1; + $d15 = 1; + $d2 = 1; + $d3 = 1; + $d4 = 1; + $d5 = 1; + $d6 = 1; + $d7 = 1; + $d8 = 1; + $d9 = 1; + $ip = 1; + $lr = 1; + $pc = 1; + $r0 = 1; + $r1 = 1; + $r2 = 1; + $r3 = 1; + $r4 = 1; + $r5 = 1; + $r6 = 1; + $r7 = 1; + $r8 = 1; + $r9 = 1; + $sl = 1; + $sp = 1; + }; + }; + 72A540890F57487000C58067 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + }; + }; + 72A5408A0F57487000C58067 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 72A540B90F574EE300C58067 /* iphone_vid_sys.c:125 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D2E00F4FC61E003F09B2 /* iphone_vid_sys.c */; + functionName = "VID_GetModeInfo()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 125; + location = wolf3d; + modificationTime = 260822668.902912; + state = 2; + }; + 72A540C40F57506600C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.903156; + state = 2; + }; + 72A540CF0F57520E00C58067 /* opengl_main.c:295 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D0660F4F860B003F09B2 /* opengl_main.c */; + functionName = "R_SetGL2D()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 295; + location = wolf3d; + modificationTime = 260822668.903414; + state = 2; + }; + 72A540D60F5752BA00C58067 /* opengl_main.c:296 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D0660F4F860B003F09B2 /* opengl_main.c */; + functionName = "R_SetGL2D()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 296; + location = wolf3d; + modificationTime = 260822668.903706; + state = 2; + }; + 72A540D90F57533100C58067 /* EAGLView.m:217 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-handleTouches:withEvent:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 217; + location = wolf3d; + modificationTime = 260822668.903896; + state = 2; + }; + 72A540DB0F57534200C58067 /* EAGLView.m:171 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-handleTouches:withEvent:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 171; + location = wolf3d; + modificationTime = 260822668.904098; + state = 2; + }; + 72A540E60F57556F00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.904386; + state = 2; + }; + 72A540E90F57558D00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.904601; + state = 2; + }; + 72A540EF0F57563D00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.904813; + state = 2; + }; + 72A540F10F57565300C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "WolfensteinTouches()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.905026; + state = 2; + }; + 72A540F40F5756A000C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.905249; + state = 2; + }; + 72A540FE0F57590200C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.905441; + state = 2; + }; + 72A541030F5759CC00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "WolfensteinTouches()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.905663; + state = 2; + }; + 72A541070F575AB100C58067 /* EAGLView.m:176 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-handleTouches:withEvent:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 176; + location = wolf3d; + modificationTime = 260822668.905899; + state = 2; + }; + 72A541260F5761D600C58067 /* EAGLView.m:172 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-handleTouches:withEvent:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 172; + location = wolf3d; + modificationTime = 260822668.906152; + state = 2; + }; + 72A5416B0F57664A00C58067 /* texture_manager.c:273 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D06D0F4F860B003F09B2 /* texture_manager.c */; + functionName = "TM_LoadTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 273; + location = wolf3d; + modificationTime = 260822668.906378; + state = 2; + }; + 72A5416D0F57665800C58067 /* texture_manager.c:476 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D06D0F4F860B003F09B2 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 476; + location = wolf3d; + modificationTime = 260822668.906592; + state = 2; + }; + 72A541720F57669500C58067 /* wolf_opengl.c:239 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFEF0F4F855A003F09B2 /* wolf_opengl.c */; + functionName = "R_Draw_Wall()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 239; + location = wolf3d; + modificationTime = 260822668.906817; + state = 2; + }; + 72A541870F57881500C58067 /* EAGLView.m:121 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-drawView"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 121; + location = wolf3d; + modificationTime = 260822668.907028; + state = 2; + }; + 72A5418B0F5788A600C58067 /* EAGLView.m:139 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-layoutSubviews"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 139; + location = wolf3d; + modificationTime = 260822668.907261; + state = 2; + }; + 72A541930F578B1900C58067 /* opengl_main.c:126 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D0660F4F860B003F09B2 /* opengl_main.c */; + functionName = "MYgluPerspective()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 126; + location = wolf3d; + modificationTime = 260822668.917901; + state = 2; + }; + 72A541CB0F57936A00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.918136; + state = 2; + }; + 72A541ED0F57A0AE00C58067 /* wolf_renderer.c:245 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFF20F4F855A003F09B2 /* wolf_renderer.c */; + functionName = "R_DrawWorld()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 245; + location = wolf3d; + modificationTime = 260822668.91836; + state = 2; + }; + 72A541F10F57A0C200C58067 /* wolf_renderer.c:222 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFF20F4F855A003F09B2 /* wolf_renderer.c */; + functionName = "R_DrawFlash()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 222; + location = wolf3d; + modificationTime = 260822668.918571; + state = 2; + }; + 72A542160F57A92100C58067 /* math.c:184 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D0170F4F8569003F09B2 /* math.c */; + functionName = "CalcFov()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 184; + location = wolf3d; + modificationTime = 260822668.91888; + state = 2; + }; + 72A542270F57ACA200C58067 /* texture_manager.c:305 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D06D0F4F860B003F09B2 /* texture_manager.c */; + functionName = "TM_LoadTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 305; + location = wolf3d; + modificationTime = 260822668.91906; + state = 2; + }; + 72A5422D0F57AD9400C58067 /* opengl_texture.c:54 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D0670F4F860B003F09B2 /* opengl_texture.c */; + functionName = "R_UploadTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 54; + location = wolf3d; + modificationTime = 260822668.919247; + state = 2; + }; + 72A5423F0F57B16300C58067 /* opengl_texture.c:54 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D0670F4F860B003F09B2 /* opengl_texture.c */; + functionName = "R_UploadTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 54; + location = wolf3d; + modificationTime = 260822668.919433; + state = 2; + }; + 72A542E00F57B5B500C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.919642; + state = 2; + }; + 72A542F50F57B6F100C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.91986; + state = 2; + }; + 72A543420F57BB0700C58067 /* common.c:200 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF6B0F4F8461003F09B2 /* common.c */; + functionName = "Com_Printf()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 200; + location = wolf3d; + modificationTime = 260822668.920102; + state = 2; + }; + 72A5435A0F57BD7E00C58067 /* EAGLView.m:124 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-drawView"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 124; + location = wolf3d; + modificationTime = 260822668.920314; + state = 2; + }; + 72A543680F58593900C58067 /* EAGLView.m:139 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-layoutSubviews"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 139; + modificationTime = 260822668.920504; + state = 2; + }; + 72A543730F585C3000C58067 /* EAGLView.m:138 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-layoutSubviews"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 138; + location = wolf3d; + modificationTime = 260822668.920685; + state = 2; + }; + 72A543750F585C3800C58067 /* EAGLView.m:110 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-drawView"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 110; + location = wolf3d; + modificationTime = 260822668.920893; + state = 2; + }; + 72A543770F585C3C00C58067 /* EAGLView.m:50 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-initWithCoder:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 50; + location = wolf3d; + modificationTime = 260822668.921106; + state = 2; + }; + 72A543A10F5865D800C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.921317; + state = 2; + }; + 72A543A30F58669700C58067 /* qglBindTexture */ = { + isa = PBXSymbolicBreakpoint; + actions = ( + ); + breakpointStyle = 1; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + hitCount = 0; + ignoreCount = 0; + location = ""; + modificationTime = 260822669.026559; + state = 2; + symbolName = qglBindTexture; + }; + 72A543AD0F5869C800C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.921562; + state = 2; + }; + 72A543B60F586C8E00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreatePCUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.921769; + state = 2; + }; + 72A543C00F586EA000C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.922005; + state = 2; + }; + 72A543C30F586EC500C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "WolfensteinTilts()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.922204; + state = 2; + }; + 72A543C50F586EE400C58067 /* wolf3dAppDelegate.m:88 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 1D3623250D0F684500981E51 /* wolf3dAppDelegate.m */; + functionName = "-accelerometer:didAccelerate:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 88; + location = wolf3d; + modificationTime = 260822668.922402; + state = 2; + }; + 72A543F90F58852000C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.922607; + state = 2; + }; + 72A5440B0F58A28E00C58067 /* EAGLView.m:270 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-textFieldShouldReturn:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 270; + location = wolf3d; + modificationTime = 260822668.922825; + state = 2; + }; + 72A5444D0F58A50400C58067 /* EAGLView.m:273 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-textField:shouldChangeCharactersInRange:replacementString:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 273; + location = wolf3d; + modificationTime = 260822668.923041; + state = 2; + }; + 72A544560F58AB9B00C58067 /* EAGLView.m:273 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-textField:shouldChangeCharactersInRange:replacementString:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 273; + location = wolf3d; + modificationTime = 260822668.923278; + state = 2; + }; + 72A544580F58B8B900C58067 /* EAGLView.m:269 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 28FD14FD0DC6FC130079059D /* EAGLView.m */; + functionName = "-textFieldShouldReturn:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 269; + location = wolf3d; + modificationTime = 260822668.923509; + state = 2; + }; + 72A544C30F58D0E900C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.923717; + state = 2; + }; + 72A544C60F58D0F000C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.923931; + state = 2; + }; + 72A544CF0F58D22800C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.92415; + state = 2; + }; + 72A544E10F58DF0500C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.924419; + state = 2; + }; + 72A545280F590BB800C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.924639; + state = 2; + }; + 72A545610F5C411300C58067 /* client_main.c:329 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF580F4F8449003F09B2 /* client_main.c */; + functionName = "Client_Shutdown()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 329; + location = wolf3d; + modificationTime = 260822668.924836; + state = 2; + }; + 72A545640F5C43F500C58067 /* wolf3dAppDelegate.m:56 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 1D3623250D0F684500981E51 /* wolf3dAppDelegate.m */; + functionName = "-applicationDidBecomeActive:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 56; + location = wolf3d; + modificationTime = 260822668.925065; + state = 2; + }; + 72A545660F5C43F700C58067 /* wolf3dAppDelegate.m:26 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 1D3623250D0F684500981E51 /* wolf3dAppDelegate.m */; + functionName = "-applicationDidFinishLaunching:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 26; + location = wolf3d; + modificationTime = 260822668.925281; + state = 2; + }; + 72A545680F5C440C00C58067 /* main.m:30 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 29B97316FDCFA39411CA2CEA /* main.m */; + functionName = "main()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 30; + location = wolf3d; + modificationTime = 260822668.925501; + state = 2; + }; + 72A5456D0F5C44C400C58067 /* main.m:29 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 29B97316FDCFA39411CA2CEA /* main.m */; + functionName = "main()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 29; + location = wolf3d; + modificationTime = 260822668.925716; + state = 2; + }; + 72A545740F5C457D00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneWriteConfig()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.925945; + state = 2; + }; + 72A545760F5C458A00C58067 /* client_main.c:295 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF580F4F8449003F09B2 /* client_main.c */; + functionName = "Client_WriteConfiguration()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 295; + location = wolf3d; + modificationTime = 260822668.92616; + state = 2; + }; + 72A5457A0F5C45B600C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneWriteConfig()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.926366; + state = 2; + }; + 72A545800F5C4B8300C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneStartup()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.926575; + state = 2; + }; + 72A545880F5C4ED300C58067 /* fileio.c:409 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF7F0F4F848D003F09B2 /* fileio.c */; + functionName = "FS_OpenFile()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 409; + location = wolf3d; + modificationTime = 260822668.926832; + state = 2; + }; + 72A5458E0F5C4FE400C58067 /* fileio.c:458 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF7F0F4F848D003F09B2 /* fileio.c */; + functionName = "FS_OpenFile()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 458; + location = wolf3d; + modificationTime = 260822668.927079; + state = 2; + }; + 72A545920F5C506700C58067 /* cmd.c:496 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF690F4F8461003F09B2 /* cmd.c */; + functionName = "Cmd_Exec_f()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 496; + location = wolf3d; + modificationTime = 260822668.927521; + state = 2; + }; + 72A545B50F5C63E200C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + modificationTime = 260822668.927746; + state = 2; + }; + 72A545B70F5C63E600C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + modificationTime = 260822668.927969; + state = 2; + }; + 72A545B90F5C63EB00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.928186; + state = 2; + }; + 72A545BB0F5C640F00C58067 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.928402; + state = 2; + }; + 72A7E8BE0F5F1AFC005B83C0 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneSlider()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.935079; + state = 2; + }; + 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {789, 4446}}"; + sepNavSelRange = "{4376, 0}"; + sepNavVisRange = "{4196, 679}"; + sepNavWindowFrame = "{{10, 112}, {848, 910}}"; + }; + }; + 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {996, 22097}}"; + sepNavSelRange = "{22171, 0}"; + sepNavVisRange = "{21874, 679}"; + sepNavWindowFrame = "{{15, 152}, {1264, 871}}"; + }; + }; + 72A7E91F0F5F4758005B83C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */; + name = "iphone_wolf.h: 22"; + rLen = 0; + rLoc = 1098; + rType = 0; + vrLen = 290; + vrLoc = 0; + }; + 72A7E9200F5F4758005B83C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 143; + vrLoc = 0; + }; + 72A7E9240F5F4758005B83C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + name = "iphone_main.c: 103"; + rLen = 0; + rLoc = 1835; + rType = 0; + vrLen = 349; + vrLoc = 1398; + }; + 72A7E9720F5F541F005B83C0 /* iphone_menus.c:378 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMainMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 378; + location = wolf3d; + modificationTime = 260822668.935311; + state = 2; + }; + 72A9C8F80F65924E009A369C /* iphoneLoop */ = { + isa = PBXSymbolicBreakpoint; + actions = ( + ); + breakpointStyle = 1; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + hitCount = 0; + ignoreCount = 0; + modificationTime = 260822669.026761; + state = 2; + symbolName = iphoneLoop; + }; + 72A9C8FD0F65925C009A369C /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneDrawNumber()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.946704; + state = 2; + }; + 72A9C93C0F659D16009A369C /* iphone_menus.c:356 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMainMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 356; + location = wolf3d; + modificationTime = 260822668.947004; + state = 2; + }; + 72B36F760F7FAE4200E614A8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3B0F6B3222004123C5 /* wolf_powerups.h */; + name = "wolf_powerups.h: 80"; + rLen = 13; + rLoc = 2283; + rType = 0; + vrLen = 189; + vrLoc = 2136; + }; + 72B3DC0E0F69AF1500D46C29 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneDrawWeapon()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.950888; + state = 2; + }; + 72B43F110F7EF7A400D5BF60 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CE480F6C89F8004123C5 /* wolf3dAppDelegate.h */; + name = "wolf3dAppDelegate.h: 24"; + rLen = 0; + rLoc = 802; + rType = 0; + vrLen = 610; + vrLoc = 529; + }; + 72B43F220F7EF88D00D5BF60 /* wolf_player.c:514 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC380F6B3222004123C5 /* wolf_player.c */; + functionName = "PL_Process()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 514; + location = wolf3d; + modificationTime = 260822669.009364; + state = 2; + }; + 72B43F240F7EF89800D5BF60 /* wolf_player.c:469 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC380F6B3222004123C5 /* wolf_player.c */; + functionName = "PL_Process()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 469; + location = wolf3d; + modificationTime = 260822669.009659; + state = 2; + }; + 72B43F330F7EFAD700D5BF60 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B280F6B2D9D0085DD28 /* common.h */; + name = "common.h: 183"; + rLen = 20; + rLoc = 4698; + rType = 0; + vrLen = 348; + vrLoc = 4425; + }; + 72B5FD8A0F7E4E3100C8A372 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B230F6B2D9D0085DD28 /* cmd.c */; + name = "cmd.c: 512"; + rLen = 0; + rLoc = 10890; + rType = 0; + vrLen = 483; + vrLoc = 10437; + }; + 72B5FDCD0F7E502300C8A372 /* EAGLView.m:226 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CE460F6C89F8004123C5 /* EAGLView.m */; + functionName = "-handleTouches:withEvent:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 226; + location = wolf3d; + modificationTime = 260822669.007609; + state = 2; + }; + 72B5FDE60F7E50FA00C8A372 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "TouchDown()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822669.007899; + state = 2; + }; + 72B5FE040F7E516B00C8A372 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "TouchDown()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822669.008191; + state = 2; + }; + 72B5FE0F0F7E51DC00C8A372 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "WolfensteinTouches()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822669.008495; + state = 2; + }; + 72B5FE280F7E54B400C8A372 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "WolfensteinTilts()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822669.008786; + state = 2; + }; + 72B5FEB40F7E588B00C8A372 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72B5FEB50F7E588B00C8A372 /* CFBundle.h */; + name = "CFBundle.h: 23"; + rLen = 5; + rLoc = 647; + rType = 0; + vrLen = 871; + vrLoc = 14999; + }; + 72B5FEB50F7E588B00C8A372 /* CFBundle.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CFBundle.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBundle.h; + sourceTree = ""; + }; + 72B5FEBA0F7E588B00C8A372 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72B5FEBB0F7E588B00C8A372 /* CFBundle.h */; + name = "CFBundle.h: 23"; + rLen = 5; + rLoc = 647; + rType = 0; + vrLen = 871; + vrLoc = 14999; + }; + 72B5FEBB0F7E588B00C8A372 /* CFBundle.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CFBundle.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBundle.h; + sourceTree = ""; + }; + 72B5FEBD0F7E588B00C8A372 /* Foundation.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = Foundation.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h; + sourceTree = ""; + }; + 72B5FEFF0F7E5A0600C8A372 /* iphone_main.c:213 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + functionName = "iphoneStartup()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 213; + location = wolf3d; + modificationTime = 260822669.009074; + state = 2; + }; + 72B5FF040F7E5A1700C8A372 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72B5FEBD0F7E588B00C8A372 /* Foundation.h */; + name = "Foundation.h: 131"; + rLen = 0; + rLoc = 4404; + rType = 0; + vrLen = 943; + vrLoc = 3998; + }; + 72B5FF060F7E5A1700C8A372 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72B5FEBD0F7E588B00C8A372 /* Foundation.h */; + name = "Foundation.h: 131"; + rLen = 0; + rLoc = 4404; + rType = 0; + vrLen = 943; + vrLoc = 3998; + }; + 72B5FF380F7E5C3D00C8A372 /* hud.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {769, 4712}}"; + sepNavSelRange = "{4112, 12}"; + sepNavVisRange = "{3737, 701}"; + }; + }; + 72B625620F617C0D00F04830 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneStartup()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.940296; + state = 2; + }; + 72B625640F617C1400F04830 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneStartup()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.940566; + state = 2; + }; + 72B6258D0F617C9600F04830 /* main.m:13 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 29B97316FDCFA39411CA2CEA /* main.m */; + hitCount = 0; + ignoreCount = 0; + lineNumber = 13; + location = wolf3d; + modificationTime = 260822668.940819; + state = 2; + }; + 72B625940F617D2000F04830 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 30"; + rLen = 0; + rLoc = 520; + rType = 0; + vrLen = 280; + vrLoc = 175; + }; + 72BBA2470F831796003EBE8B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B500F6B2D9D0085DD28 /* opengl_draw.c */; + name = "opengl_draw.c: 160"; + rLen = 0; + rLoc = 3568; + rType = 0; + vrLen = 638; + vrLoc = 438; + }; + 72BBA2490F831796003EBE8B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B620F6B2D9D0085DD28 /* texture_manager.h */; + name = "texture_manager.h: 176"; + rLen = 0; + rLoc = 3311; + rType = 0; + vrLen = 636; + vrLoc = 3105; + }; + 72BBA2510F831796003EBE8B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */; + name = "wolf_raycast.c: 121"; + rLen = 11; + rLoc = 2993; + rType = 0; + vrLen = 899; + vrLoc = 2657; + }; + 72BBA2920F8322E4003EBE8B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */; + name = "sound_sfx_id.c: 251"; + rLen = 54; + rLoc = 5177; + rType = 0; + vrLen = 355; + vrLoc = 5060; + }; + 72BBA2930F8322E4003EBE8B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC340F6B3222004123C5 /* wolf_main.c */; + name = "wolf_main.c: 73"; + rLen = 0; + rLoc = 1727; + rType = 0; + vrLen = 484; + vrLoc = 1390; + }; + 72BBA2CC0F83285B003EBE8B /* iphone_loop.c:710 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneDrawWeapon()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 710; + modificationTime = 260822669.017058; + state = 2; + }; + 72BBA2CE0F832860003EBE8B /* iphone_loop.c:712 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneDrawWeapon()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 712; + location = wolf3d; + modificationTime = 260822669.017369; + state = 2; + }; + 72BBA2D70F8328BE003EBE8B /* iphone_loop.c:716 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneDrawWeapon()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 716; + location = wolf3d; + modificationTime = 260822669.017895; + state = 2; + }; + 72BBA2E50F832938003EBE8B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC420F6B3222004123C5 /* wolf_sprites.h */; + name = "wolf_sprites.h: 356"; + rLen = 60; + rLoc = 9147; + rType = 0; + vrLen = 303; + vrLoc = 1050; + }; + 72BBA3200F832CB1003EBE8B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC400F6B3222004123C5 /* wolf_renderer.h */; + name = "wolf_renderer.h: 56"; + rLen = 0; + rLoc = 1622; + rType = 0; + vrLen = 625; + vrLoc = 1059; + }; + 72C01EFA0F7438A3000201CA /* XCGDBBreakpointCondition */ = { + isa = XCGDBBreakpointCondition; + conditionString = "x == 48 && y == 6"; + }; + 72C01EFC0F74390B000201CA /* asm __dyld__dyld_start 0x2fe01028 */ = { + isa = PBXFileReference; + lastKnownFileType = text; + path = "asm __dyld__dyld_start 0x2fe01028"; + sourceTree = ""; + }; + 72C01EFE0F74390B000201CA /* asm __dyld__dyld_start 0x2fe01028:1 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72C01EFC0F74390B000201CA /* asm __dyld__dyld_start 0x2fe01028 */; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1; + modificationTime = 260822669.006805; + state = 1; + }; + 72C01F220F7445CF000201CA /* iphone_menus.c:897 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 897; + location = wolf3d; + modificationTime = 260822669.0071; + state = 2; + }; + 72C01F4A0F745D0A000201CA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC790F6B3295004123C5 /* vorbisfile.c */; + name = "vorbisfile.c: 1526"; + rLen = 0; + rLoc = 44832; + rType = 0; + vrLen = 1170; + vrLoc = 44240; + }; + 72C01F4F0F745D0A000201CA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC790F6B3295004123C5 /* vorbisfile.c */; + name = "vorbisfile.c: 1526"; + rLen = 0; + rLoc = 44832; + rType = 0; + vrLen = 1170; + vrLoc = 44240; + }; + 72C167680F604F7800F3B186 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneSavePrevTouches()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.935569; + state = 2; + }; + 72C167750F60533A00F3B186 /* wolf_renderer.c:271 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFF20F4F855A003F09B2 /* wolf_renderer.c */; + functionName = "R_BeginRegistration()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 271; + location = wolf3d; + modificationTime = 260822668.935853; + state = 2; + }; + 72C167F80F6059B700F3B186 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "LoadTheGame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.936096; + state = 2; + }; + 72C168C50F6079D100F3B186 /* iphone_menus.c:775 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneIntermission()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 775; + location = wolf3d; + modificationTime = 260822668.936332; + state = 2; + }; + 72C168C90F607AC900F3B186 /* iphone_menus.c:601 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneMapMenu()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 601; + location = wolf3d; + modificationTime = 260822668.936575; + state = 2; + }; + 72C168E50F607BE600F3B186 /* iphone_menus.c:330 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneStartMap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 330; + location = wolf3d; + modificationTime = 260822668.936812; + state = 2; + }; + 72C168F70F607C3E00F3B186 /* sound_stream.c:182 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D40A0F51B268003F09B2 /* sound_stream.c */; + functionName = "Sound_OpenBGTrack()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 182; + location = wolf3d; + modificationTime = 260822668.937062; + state = 2; + }; + 72C169130F607CA900F3B186 /* iphone_main.c:70 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + functionName = "Sys_Error()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 70; + location = wolf3d; + modificationTime = 260822668.937309; + state = 2; + }; + 72C169150F607CAD00F3B186 /* iphone_main.c:76 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + functionName = "Sys_Quit()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 76; + location = wolf3d; + modificationTime = 260822668.937768; + state = 2; + }; + 72C169400F6084F300F3B186 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72C169410F6084F300F3B186 /* setjmp.h */; + name = "setjmp.h: 25"; + rLen = 29; + rLoc = 579; + rType = 0; + vrLen = 579; + vrLoc = 318; + }; + 72C169410F6084F300F3B186 /* setjmp.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = setjmp.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/include/arm/setjmp.h; + sourceTree = ""; + }; + 72C1694F0F6084F300F3B186 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72C169500F6084F300F3B186 /* setjmp.h */; + name = "setjmp.h: 25"; + rLen = 29; + rLoc = 579; + rType = 0; + vrLen = 579; + vrLoc = 318; + }; + 72C169500F6084F300F3B186 /* setjmp.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = setjmp.h; + path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/include/arm/setjmp.h; + sourceTree = ""; + }; + 72C169BA0F609BF900F3B186 /* texture_manager.c:269 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D06D0F4F860B003F09B2 /* texture_manager.c */; + functionName = "TM_LoadTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 269; + location = wolf3d; + modificationTime = 260822668.938022; + state = 2; + }; + 72C169C40F609C5800F3B186 /* texture_manager.c:265 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8D06D0F4F860B003F09B2 /* texture_manager.c */; + hitCount = 0; + ignoreCount = 0; + lineNumber = 265; + location = wolf3d; + modificationTime = 260822668.938262; + state = 2; + }; + 72D0255F0F84049B00ADAF78 /* wolf_sprites.c:170 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC410F6B3222004123C5 /* wolf_sprites.c */; + functionName = "Sprite_SetTex()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 170; + location = wolf3d; + modificationTime = 260822669.018222; + state = 2; + }; + 72D025640F8404C700ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3A0F6B3222004123C5 /* wolf_powerups.c */; + name = "wolf_powerups.c: 336"; + rLen = 6; + rLoc = 8443; + rType = 0; + vrLen = 760; + vrLoc = 8069; + }; + 72D0257E0F840E1C00ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC410F6B3222004123C5 /* wolf_sprites.c */; + name = "wolf_sprites.c: 170"; + rLen = 0; + rLoc = 4116; + rType = 0; + vrLen = 606; + vrLoc = 3824; + }; + 72D0259E0F8413C500ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B630F6B2D9D0085DD28 /* tga.c */; + name = "tga.c: 709"; + rLen = 5; + rLoc = 15061; + rType = 0; + vrLen = 779; + vrLoc = 14681; + }; + 72D025AF0F84141200ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B2D0F6B2D9D0085DD28 /* cvar.c */; + name = "cvar.c: 595"; + rLen = 5; + rLoc = 11543; + rType = 0; + vrLen = 619; + vrLoc = 11312; + }; + 72D025D40F84158900ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC250F6B3222004123C5 /* wolf_actor_ai.c */; + name = "wolf_actor_ai.c: 125"; + rLen = 0; + rLoc = 3204; + rType = 0; + vrLen = 908; + vrLoc = 2788; + }; + 72D0262B0F84196D00ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B490F6B2D9D0085DD28 /* oggfile.c */; + name = "oggfile.c: 142"; + rLen = 0; + rLoc = 3340; + rType = 0; + vrLen = 524; + vrLoc = 3124; + }; + 72D026310F84199F00ADAF78 /* texture_manager.c:498 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + functionName = "TM_FindTexture()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 498; + location = wolf3d; + modificationTime = 260822669.018536; + state = 2; + }; + 72D026330F8419B700ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B2F0F6B2D9D0085DD28 /* fileio.c */; + name = "fileio.c: 226"; + rLen = 0; + rLoc = 5531; + rType = 0; + vrLen = 550; + vrLoc = 5210; + }; + 72D027310F842F9D00ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; + name = "texture_manager.c: 498"; + rLen = 0; + rLoc = 11345; + rType = 0; + vrLen = 548; + vrLoc = 11103; + }; + 72D027320F842F9D00ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */; + name = "iphone_wolf.h: 149"; + rLen = 23; + rLoc = 4011; + rType = 0; + vrLen = 803; + vrLoc = 3368; + }; + 72D027340F842F9D00ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72B5FF380F7E5C3D00C8A372 /* hud.c */; + name = "hud.c: 121"; + rLen = 12; + rLoc = 4112; + rType = 0; + vrLen = 701; + vrLoc = 3737; + }; + 72D0274E0F8445E700ADAF78 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */; + name = "iphone_wolf.h: 181"; + rLen = 27; + rLoc = 4550; + rType = 0; + vrLen = 762; + vrLoc = 4196; + }; + 72D5BC1F0F66FD7200D801FC /* client_main.c:187 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF580F4F8449003F09B2 /* client_main.c */; + functionName = "Client_InitLocal()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 187; + location = wolf3d; + modificationTime = 260822668.94728; + state = 2; + }; + 72D5BC210F66FD7400D801FC /* client_main.c:170 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF580F4F8449003F09B2 /* client_main.c */; + functionName = "Client_Quit_f()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 170; + location = wolf3d; + modificationTime = 260822668.947803; + state = 2; + }; + 72D5BC230F66FD7600D801FC /* client_main.c:140 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF580F4F8449003F09B2 /* client_main.c */; + functionName = "Client_Drop()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 140; + location = wolf3d; + modificationTime = 260822668.948076; + state = 2; + }; + 72D5BC250F66FD7C00D801FC /* client_main.c:255 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CF580F4F8449003F09B2 /* client_main.c */; + functionName = "Client_Init()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 255; + location = wolf3d; + modificationTime = 260822668.948342; + state = 2; + }; + 72DDCB920F63643600138FD4 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "CreateIphoneUserCmd()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.94322; + state = 2; + }; + 72DDCBA60F6364C700138FD4 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneShutdown()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.943476; + state = 2; + }; + 72DDCC7A0F63E9F800138FD4 /* wolf_player.c:730 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCF0F4F855A003F09B2 /* wolf_player.c */; + functionName = "PL_Damage()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 730; + location = wolf3d; + modificationTime = 260822668.943729; + state = 2; + }; + 72DDCCC00F64A85400138FD4 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "WolfensteinTilts()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.944024; + state = 2; + }; + 72DDCCDE0F64AA2F00138FD4 /* iphone_loop.c:471 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + functionName = "iphoneFrame()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 471; + location = wolf3d; + modificationTime = 260822668.944285; + state = 2; + }; + 72DDCCE20F64AA7B00138FD4 /* wolf_actors.c:183 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFC90F4F855A003F09B2 /* wolf_actors.c */; + functionName = "ProcessGuards()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 183; + location = wolf3d; + modificationTime = 260822668.944557; + state = 2; + }; + 72DDCCE70F64AB6000138FD4 /* wolf_actors.c:97 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFC90F4F855A003F09B2 /* wolf_actors.c */; + functionName = "DoGuard()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 97; + location = wolf3d; + modificationTime = 260822668.944817; + state = 2; + }; + 72DDCD030F64ADAA00138FD4 /* wolf_ai_com.c:600 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCB0F4F855A003F09B2 /* wolf_ai_com.c */; + functionName = "AI_FindTarget()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 600; + location = wolf3d; + modificationTime = 260822668.945089; + state = 2; + }; + 72DDCD050F64ADBE00138FD4 /* wolf_ai_com.c:653 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCB0F4F855A003F09B2 /* wolf_ai_com.c */; + functionName = "AI_FindTarget()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 653; + location = wolf3d; + modificationTime = 260822668.945357; + state = 2; + }; + 72DDCD070F64ADCD00138FD4 /* wolf_actors.c:105 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFC90F4F855A003F09B2 /* wolf_actors.c */; + functionName = "DoGuard()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 105; + location = wolf3d; + modificationTime = 260822668.945639; + state = 2; + }; + 72DDCD0A0F64ADEF00138FD4 /* wolf_ai_com.c:557 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFCB0F4F855A003F09B2 /* wolf_ai_com.c */; + functionName = "AI_CheckSight()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 557; + location = wolf3d; + modificationTime = 260822668.945918; + state = 2; + }; + 72DDCDE70F64B76B00138FD4 /* wolf_level.c:1132 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFD90F4F855A003F09B2 /* wolf_level.c */; + functionName = "Level_LoadMap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1132; + location = wolf3d; + modificationTime = 260822668.946177; + state = 2; + }; + 72DDCDE90F64B76E00138FD4 /* wolf_level.c:1118 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 43E8CFD90F4F855A003F09B2 /* wolf_level.c */; + functionName = "Level_LoadMap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1118; + location = wolf3d; + modificationTime = 260822668.946436; + state = 2; + }; + 72E5E60E0F8BCAB30078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1058"; + rLen = 0; + rLoc = 21970; + rType = 0; + vrLen = 712; + vrLoc = 21669; + }; + 72E5E60F0F8BCAB30078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + name = "iphone_main.c: 102"; + rLen = 0; + rLoc = 2151; + rType = 0; + vrLen = 537; + vrLoc = 1907; + }; + 72E5E6100F8BCAB30078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1058"; + rLen = 0; + rLoc = 21970; + rType = 0; + vrLen = 712; + vrLoc = 21669; + }; + 72E5E6110F8BCAB30078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + name = "iphone_main.c: 211"; + rLen = 0; + rLoc = 5977; + rType = 0; + vrLen = 794; + vrLoc = 5615; + }; + 72E5E6150F8BCAB30078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC320F6B3222004123C5 /* wolf_level.h */; + name = "wolf_level.h: 95"; + rLen = 55; + rLoc = 2242; + rType = 0; + vrLen = 809; + vrLoc = 1766; + }; + 72E5E6160F8BCAB30078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + name = "wolf_doors.c: 112"; + rLen = 9; + rLoc = 2973; + rType = 0; + vrLen = 1234; + vrLoc = 2289; + }; + 72E5E6170F8BCAB30078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1092"; + rLen = 14; + rLoc = 22815; + rType = 0; + vrLen = 1006; + vrLoc = 21805; + }; + 72E5E6180F8BCAB30078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */; + name = "iphone_wolf.h: 171"; + rLen = 0; + rLoc = 4376; + rType = 0; + vrLen = 764; + vrLoc = 4196; + }; + 72E5E61B0F8BCC4A0078F4A2 /* sound.c:710 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + functionName = "Sound_Init()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 710; + location = wolf3d; + modificationTime = 260822669.021943; + state = 2; + }; + 72E5E62F0F8BCD930078F4A2 /* sound.c:592 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + functionName = "Sound_Update()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 592; + location = wolf3d; + modificationTime = 260822669.022382; + state = 2; + }; + 72E5E6330F8BCDAF0078F4A2 /* sound.c:367 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + functionName = "Sound_IssuePlaySounds()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 367; + location = wolf3d; + modificationTime = 260822669.022782; + state = 2; + }; + 72E5E6370F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + name = "iphone_main.c: 211"; + rLen = 0; + rLoc = 5977; + rType = 0; + vrLen = 794; + vrLoc = 5615; + }; + 72E5E6380F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4C0F6B2D9D0085DD28 /* openal_binding.h */; + name = "openal_binding.h: 33"; + rLen = 52; + rLoc = 943; + rType = 0; + vrLen = 937; + vrLoc = 6346; + }; + 72E5E6390F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5B0F6B2D9D0085DD28 /* sound.h */; + name = "sound.h: 91"; + rLen = 19; + rLoc = 2868; + rType = 0; + vrLen = 902; + vrLoc = 2032; + }; + 72E5E63A0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5C0F6B2D9D0085DD28 /* sound_local.h */; + name = "sound_local.h: 108"; + rLen = 21; + rLoc = 2913; + rType = 0; + vrLen = 493; + vrLoc = 2529; + }; + 72E5E63B0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43A945140F82D75900FFD32E /* iphone_sys.c */; + name = "iphone_sys.c: 42"; + rLen = 0; + rLoc = 1457; + rType = 0; + vrLen = 958; + vrLoc = 1323; + }; + 72E5E63C0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */; + name = "openal_binding.c: 238"; + rLen = 0; + rLoc = 5229; + rType = 0; + vrLen = 1493; + vrLoc = 5451; + }; + 72E5E63D0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 87"; + rLen = 0; + rLoc = 2078; + rType = 0; + vrLen = 373; + vrLoc = 4524; + }; + 72E5E63E0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + rLen = 0; + rLoc = 721; + rType = 1; + }; + 72E5E63F0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + name = "iphone_main.c: 211"; + rLen = 0; + rLoc = 5977; + rType = 0; + vrLen = 794; + vrLoc = 5615; + }; + 72E5E6400F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4C0F6B2D9D0085DD28 /* openal_binding.h */; + name = "openal_binding.h: 33"; + rLen = 52; + rLoc = 943; + rType = 0; + vrLen = 937; + vrLoc = 6346; + }; + 72E5E6410F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5B0F6B2D9D0085DD28 /* sound.h */; + name = "sound.h: 91"; + rLen = 19; + rLoc = 2868; + rType = 0; + vrLen = 864; + vrLoc = 2096; + }; + 72E5E6420F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 526"; + rLen = 19; + rLoc = 10750; + rType = 0; + vrLen = 664; + vrLoc = 11262; + }; + 72E5E6430F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5B0F6B2D9D0085DD28 /* sound.h */; + name = "sound.h: 91"; + rLen = 19; + rLoc = 2868; + rType = 0; + vrLen = 902; + vrLoc = 2032; + }; + 72E5E6440F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5C0F6B2D9D0085DD28 /* sound_local.h */; + name = "sound_local.h: 108"; + rLen = 21; + rLoc = 2913; + rType = 0; + vrLen = 493; + vrLoc = 2529; + }; + 72E5E6450F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 526"; + rLen = 19; + rLoc = 10750; + rType = 0; + vrLen = 604; + vrLoc = 11344; + }; + 72E5E6460F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 144"; + rLen = 18; + rLoc = 3483; + rType = 0; + vrLen = 793; + vrLoc = 2970; + }; + 72E5E6470F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 749"; + rLen = 0; + rLoc = 15141; + rType = 0; + vrLen = 411; + vrLoc = 16002; + }; + 72E5E6480F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 146"; + rLen = 0; + rLoc = 3512; + rType = 0; + vrLen = 659; + vrLoc = 3104; + }; + 72E5E6490F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43A945140F82D75900FFD32E /* iphone_sys.c */; + name = "iphone_sys.c: 42"; + rLen = 0; + rLoc = 1457; + rType = 0; + vrLen = 958; + vrLoc = 1323; + }; + 72E5E64A0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 149"; + rLen = 0; + rLoc = 3593; + rType = 0; + vrLen = 643; + vrLoc = 3386; + }; + 72E5E64B0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */; + name = "openal_binding.c: 238"; + rLen = 0; + rLoc = 5229; + rType = 0; + vrLen = 1493; + vrLoc = 5451; + }; + 72E5E64C0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 87"; + rLen = 0; + rLoc = 2078; + rType = 0; + vrLen = 373; + vrLoc = 4524; + }; + 72E5E64D0F8BCE610078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 172"; + rLen = 0; + rLoc = 3416; + rType = 0; + vrLen = 659; + vrLoc = 3350; + }; + 72E5E6540F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72E5E6550F8BCF570078F4A2 /* asm __dyld__dyld_start 0x2fe01028 */; + name = "asm __dyld__dyld_start 0x2fe01028: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 581; + vrLoc = 0; + }; + 72E5E6550F8BCF570078F4A2 /* asm __dyld__dyld_start 0x2fe01028 */ = { + isa = PBXFileReference; + path = "asm __dyld__dyld_start 0x2fe01028"; + sourceTree = ""; + }; + 72E5E6560F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + rLen = 0; + rLoc = 709; + rType = 1; + }; + 72E5E6570F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 174"; + rLen = 0; + rLoc = 3505; + rType = 0; + vrLen = 429; + vrLoc = 3646; + }; + 72E5E6580F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72E5E6590F8BCF570078F4A2 /* asm __dyld__dyld_start 0x2fe01028 */; + name = "asm __dyld__dyld_start 0x2fe01028: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 581; + vrLoc = 0; + }; + 72E5E6590F8BCF570078F4A2 /* asm __dyld__dyld_start 0x2fe01028 */ = { + isa = PBXFileReference; + path = "asm __dyld__dyld_start 0x2fe01028"; + sourceTree = ""; + }; + 72E5E65A0F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 387"; + rLen = 0; + rLoc = 8115; + rType = 0; + vrLen = 458; + vrLoc = 8470; + }; + 72E5E65C0F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72E5E65D0F8BCF570078F4A2 /* asm Sound_Init 0x00012e2c */; + name = "asm Sound_Init 0x00012e2c: 4"; + rLen = 0; + rLoc = 136; + rType = 0; + vrLen = 826; + vrLoc = 0; + }; + 72E5E65D0F8BCF570078F4A2 /* asm Sound_Init 0x00012e2c */ = { + isa = PBXFileReference; + path = "asm Sound_Init 0x00012e2c"; + sourceTree = ""; + }; + 72E5E65E0F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72E5E65F0F8BCF570078F4A2 /* asm Sound_IssuePlaySounds 0x000122d8 */; + rLen = 0; + rLoc = 2147483647; + rType = 0; + }; + 72E5E65F0F8BCF570078F4A2 /* asm Sound_IssuePlaySounds 0x000122d8 */ = { + isa = PBXFileReference; + path = "asm Sound_IssuePlaySounds 0x000122d8"; + sourceTree = ""; + }; + 72E5E6600F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72E5E6610F8BCF570078F4A2 /* asm Sound_Init 0x00012e2c */; + name = "asm Sound_Init 0x00012e2c: 4"; + rLen = 0; + rLoc = 136; + rType = 0; + vrLen = 826; + vrLoc = 0; + }; + 72E5E6610F8BCF570078F4A2 /* asm Sound_Init 0x00012e2c */ = { + isa = PBXFileReference; + path = "asm Sound_Init 0x00012e2c"; + sourceTree = ""; + }; + 72E5E6620F8BCF570078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72E5E6630F8BCF570078F4A2 /* asm Sound_IssuePlaySounds 0x000122d8 */; + name = "asm Sound_IssuePlaySounds 0x000122d8: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 834; + vrLoc = 849; + }; + 72E5E6630F8BCF570078F4A2 /* asm Sound_IssuePlaySounds 0x000122d8 */ = { + isa = PBXFileReference; + path = "asm Sound_IssuePlaySounds 0x000122d8"; + sourceTree = ""; + }; + 72E5E6640F8BCFA80078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 173"; + rLen = 0; + rLoc = 3418; + rType = 0; + vrLen = 610; + vrLoc = 3412; + }; + 72E5E6670F8BCFED0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 173"; + rLen = 0; + rLoc = 3418; + rType = 0; + vrLen = 531; + vrLoc = 3490; + }; + 72E5E6680F8BCFED0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72E5E6690F8BCFED0078F4A2 /* asm __dyld__dyld_start 0x2fe01028 */; + rLen = 0; + rLoc = 2147483647; + rType = 0; + }; + 72E5E6690F8BCFED0078F4A2 /* asm __dyld__dyld_start 0x2fe01028 */ = { + isa = PBXFileReference; + lastKnownFileType = text; + path = "asm __dyld__dyld_start 0x2fe01028"; + sourceTree = ""; + }; + 72E5E66A0F8BCFED0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 173"; + rLen = 0; + rLoc = 3418; + rType = 0; + vrLen = 531; + vrLoc = 3490; + }; + 72E5E66B0F8BCFED0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72E5E66C0F8BCFED0078F4A2 /* asm __dyld__dyld_start 0x2fe01028 */; + name = "asm __dyld__dyld_start 0x2fe01028: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 581; + vrLoc = 0; + }; + 72E5E66C0F8BCFED0078F4A2 /* asm __dyld__dyld_start 0x2fe01028 */ = { + isa = PBXFileReference; + path = "asm __dyld__dyld_start 0x2fe01028"; + sourceTree = ""; + }; + 72E5E67E0F8BD4340078F4A2 /* sound.c:623 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + functionName = "Sound_Update()"; + hitCount = 1; + ignoreCount = 0; + lineNumber = 623; + location = wolf3d; + modificationTime = 260822691.365661; + state = 2; + }; + 72E5E68C0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */; + name = "openal_binding.c: 238"; + rLen = 0; + rLoc = 5229; + rType = 0; + vrLen = 1493; + vrLoc = 5451; + }; + 72E5E68D0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 207"; + rLen = 1; + rLoc = 4598; + rType = 0; + vrLen = 373; + vrLoc = 4524; + }; + 72E5E68E0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */; + name = "sound_sfx_id.c: 288"; + rLen = 0; + rLoc = 5647; + rType = 0; + vrLen = 294; + vrLoc = 5353; + }; + 72E5E68F0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5C0F6B2D9D0085DD28 /* sound_local.h */; + name = "sound_local.h: 105"; + rLen = 0; + rLoc = 2854; + rType = 0; + vrLen = 454; + vrLoc = 2529; + }; + 72E5E6900F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5B0F6B2D9D0085DD28 /* sound.h */; + name = "sound.h: 72"; + rLen = 0; + rLoc = 2129; + rType = 0; + vrLen = 866; + vrLoc = 2032; + }; + 72E5E6910F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + rLen = 0; + rLoc = 15138; + rType = 0; + }; + 72E5E6920F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 146"; + rLen = 14; + rLoc = 3340; + rType = 0; + vrLen = 538; + vrLoc = 3103; + }; + 72E5E6930F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */; + name = "openal_binding.c: 238"; + rLen = 0; + rLoc = 5229; + rType = 0; + vrLen = 1493; + vrLoc = 5451; + }; + 72E5E6940F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 755"; + rLen = 0; + rLoc = 15501; + rType = 0; + vrLen = 381; + vrLoc = 15897; + }; + 72E5E6950F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; + name = "openal_main.c: 207"; + rLen = 1; + rLoc = 4598; + rType = 0; + vrLen = 373; + vrLoc = 4524; + }; + 72E5E6960F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 154"; + rLen = 0; + rLoc = 3509; + rType = 0; + vrLen = 699; + vrLoc = 3209; + }; + 72E5E6970F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */; + name = "sound_sfx_id.c: 292"; + rLen = 0; + rLoc = 5647; + rType = 0; + vrLen = 348; + vrLoc = 5649; + }; + 72E5E6980F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 763"; + rLen = 0; + rLoc = 15501; + rType = 0; + vrLen = 362; + vrLoc = 15942; + }; + 72E5E6990F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */; + name = "sound_sfx_id.c: 288"; + rLen = 0; + rLoc = 5647; + rType = 0; + vrLen = 294; + vrLoc = 5353; + }; + 72E5E69A0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5C0F6B2D9D0085DD28 /* sound_local.h */; + name = "sound_local.h: 105"; + rLen = 0; + rLoc = 2854; + rType = 0; + vrLen = 454; + vrLoc = 2529; + }; + 72E5E69B0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 695"; + rLen = 0; + rLoc = 14132; + rType = 0; + vrLen = 544; + vrLoc = 14289; + }; + 72E5E69C0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5B0F6B2D9D0085DD28 /* sound.h */; + name = "sound.h: 72"; + rLen = 0; + rLoc = 2129; + rType = 0; + vrLen = 901; + vrLoc = 2032; + }; + 72E5E69D0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 750"; + rLen = 0; + rLoc = 15501; + rType = 0; + vrLen = 360; + vrLoc = 15644; + }; + 72E5E69E0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5B0F6B2D9D0085DD28 /* sound.h */; + name = "sound.h: 72"; + rLen = 0; + rLoc = 2129; + rType = 0; + vrLen = 866; + vrLoc = 2032; + }; + 72E5E69F0F8BD65E0078F4A2 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; + name = "sound.c: 705"; + rLen = 0; + rLoc = 15138; + rType = 0; + vrLen = 849; + vrLoc = 14442; + }; + 72F83C2F0F8A4FA10032AC67 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + }; + 72F83C310F8A51050032AC67 /* wolf_level.c:1091 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC310F6B3222004123C5 /* wolf_level.c */; + functionName = "Level_LoadMap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1091; + location = wolf3d; + modificationTime = 260822669.018862; + state = 2; + }; + 72F83C370F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + name = "iphone_main.c: 102"; + rLen = 0; + rLoc = 2151; + rType = 0; + vrLen = 362; + vrLoc = 2042; + }; + 72F83C390F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC440F6B3222004123C5 /* wolf_weapon.c */; + name = "wolf_weapon.c: 82"; + rLen = 6; + rLoc = 2245; + rType = 0; + vrLen = 432; + vrLoc = 936; + }; + 72F83C3A0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC390F6B3222004123C5 /* wolf_player.h */; + name = "wolf_player.h: 160"; + rLen = 6; + rLoc = 3477; + rType = 0; + vrLen = 684; + vrLoc = 3461; + }; + 72F83C3B0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC290F6B3222004123C5 /* wolf_ai_com.c */; + name = "wolf_ai_com.c: 1215"; + rLen = 0; + rLoc = 25137; + rType = 0; + vrLen = 349; + vrLoc = 25081; + }; + 72F83C3D0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3F0F6B3222004123C5 /* wolf_renderer.c */; + name = "wolf_renderer.c: 50"; + rLen = 19; + rLoc = 1464; + rType = 0; + vrLen = 822; + vrLoc = 0; + }; + 72F83C3E0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC320F6B3222004123C5 /* wolf_level.h */; + name = "wolf_level.h: 89"; + rLen = 21; + rLoc = 2016; + rType = 0; + vrLen = 334; + vrLoc = 1989; + }; + 72F83C3F0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC380F6B3222004123C5 /* wolf_player.c */; + name = "wolf_player.c: 564"; + rLen = 0; + rLoc = 12648; + rType = 0; + vrLen = 327; + vrLoc = 12474; + }; + 72F83C410F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + name = "wolf_doors.c: 124"; + rLen = 35; + rLoc = 3291; + rType = 0; + vrLen = 722; + vrLoc = 2988; + }; + 72F83C420F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */; + name = "wolf_raycast.c: 111"; + rLen = 11; + rLoc = 2691; + rType = 0; + vrLen = 772; + vrLoc = 2594; + }; + 72F83C440F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; + name = "iphone_main.c: 102"; + rLen = 0; + rLoc = 2151; + rType = 0; + vrLen = 362; + vrLoc = 2042; + }; + 72F83C450F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 427"; + rLen = 0; + rLoc = 11008; + rType = 0; + vrLen = 667; + vrLoc = 10800; + }; + 72F83C460F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC440F6B3222004123C5 /* wolf_weapon.c */; + name = "wolf_weapon.c: 82"; + rLen = 6; + rLoc = 2245; + rType = 0; + vrLen = 432; + vrLoc = 936; + }; + 72F83C470F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC390F6B3222004123C5 /* wolf_player.h */; + name = "wolf_player.h: 160"; + rLen = 6; + rLoc = 3477; + rType = 0; + vrLen = 684; + vrLoc = 3461; + }; + 72F83C480F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC290F6B3222004123C5 /* wolf_ai_com.c */; + name = "wolf_ai_com.c: 1215"; + rLen = 0; + rLoc = 25137; + rType = 0; + vrLen = 349; + vrLoc = 25081; + }; + 72F83C490F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC380F6B3222004123C5 /* wolf_player.c */; + name = "wolf_player.c: 564"; + rLen = 19; + rLoc = 12621; + rType = 0; + vrLen = 653; + vrLoc = 12001; + }; + 72F83C4A0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + name = "iphone_loop.c: 878"; + rLen = 51; + rLoc = 20759; + rType = 0; + vrLen = 444; + vrLoc = 20567; + }; + 72F83C4B0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3F0F6B3222004123C5 /* wolf_renderer.c */; + name = "wolf_renderer.c: 50"; + rLen = 19; + rLoc = 1464; + rType = 0; + vrLen = 822; + vrLoc = 0; + }; + 72F83C4C0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */; + name = "wolf_raycast.c: 135"; + rLen = 9; + rLoc = 3586; + rType = 0; + vrLen = 1113; + vrLoc = 3100; + }; + 72F83C4D0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + name = "wolf_doors.c: 81"; + rLen = 14; + rLoc = 2057; + rType = 0; + vrLen = 347; + vrLoc = 1926; + }; + 72F83C4E0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC320F6B3222004123C5 /* wolf_level.h */; + name = "wolf_level.h: 89"; + rLen = 21; + rLoc = 2016; + rType = 0; + vrLen = 334; + vrLoc = 1989; + }; + 72F83C4F0F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1182"; + rLen = 10; + rLoc = 25455; + rType = 0; + vrLen = 350; + vrLoc = 24812; + }; + 72F83C500F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC380F6B3222004123C5 /* wolf_player.c */; + name = "wolf_player.c: 135"; + rLen = 10; + rLoc = 3079; + rType = 0; + vrLen = 323; + vrLoc = 2896; + }; + 72F83C510F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */; + name = "wolf_raycast.c: 127"; + rLen = 10; + rLoc = 3338; + rType = 0; + vrLen = 469; + vrLoc = 1441; + }; + 72F83C520F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC380F6B3222004123C5 /* wolf_player.c */; + name = "wolf_player.c: 564"; + rLen = 0; + rLoc = 12648; + rType = 0; + vrLen = 327; + vrLoc = 12474; + }; + 72F83C530F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1078"; + rLen = 0; + rLoc = 22767; + rType = 0; + vrLen = 650; + vrLoc = 22045; + }; + 72F83C540F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + name = "wolf_doors.c: 124"; + rLen = 35; + rLoc = 3291; + rType = 0; + vrLen = 722; + vrLoc = 2988; + }; + 72F83C550F8A52D20032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */; + name = "wolf_raycast.c: 111"; + rLen = 11; + rLoc = 2691; + rType = 0; + vrLen = 772; + vrLoc = 2594; + }; + 72F83C5C0F8A531E0032AC67 /* wolf_doors.c:106 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + functionName = "Door_SpawnDoor()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 106; + location = wolf3d; + modificationTime = 260822669.019299; + state = 2; + }; + 72F83C5E0F8A53250032AC67 /* wolf_doors.c:112 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + functionName = "Door_SpawnDoor()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 112; + location = wolf3d; + modificationTime = 260822669.01971; + state = 2; + }; + 72F83C600F8A532A0032AC67 /* wolf_doors.c:118 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + functionName = "Door_SpawnDoor()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 118; + location = wolf3d; + modificationTime = 260822669.020094; + state = 2; + }; + 72F83C620F8A532C0032AC67 /* wolf_doors.c:124 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + functionName = "Door_SpawnDoor()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 124; + location = wolf3d; + modificationTime = 260822669.020499; + state = 2; + }; + 72F83C7D0F8A5FBB0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC370F6B3222004123C5 /* wolf_opengl.c */; + name = "wolf_opengl.c: 135"; + rLen = 0; + rLoc = 3434; + rType = 0; + vrLen = 858; + vrLoc = 3101; + }; + 72F83C7E0F8A5FBB0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + name = "iphone_loop.c: 905"; + rLen = 0; + rLoc = 21325; + rType = 0; + vrLen = 445; + vrLoc = 21557; + }; + 72F83C800F8A5FBB0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC370F6B3222004123C5 /* wolf_opengl.c */; + name = "wolf_opengl.c: 135"; + rLen = 0; + rLoc = 3434; + rType = 0; + vrLen = 858; + vrLoc = 3101; + }; + 72F83C810F8A5FBB0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; + name = "iphone_loop.c: 905"; + rLen = 0; + rLoc = 21325; + rType = 0; + vrLen = 445; + vrLoc = 21557; + }; + 72F83C850F8A5FBB0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC320F6B3222004123C5 /* wolf_level.h */; + rLen = 1; + rLoc = 94; + rType = 1; + }; + 72F83C890F8A5FBB0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + rLen = 1; + rLoc = 80; + rType = 1; + }; + 72F83C940F8A65D90032AC67 /* iphone_menus.c:902 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 902; + location = wolf3d; + modificationTime = 260822669.020891; + state = 2; + }; + 72F83CA30F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B580F6B2D9D0085DD28 /* renderer.h */; + name = "renderer.h: 89"; + rLen = 0; + rLoc = 1818; + rType = 0; + vrLen = 694; + vrLoc = 1616; + }; + 72F83CA40F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B520F6B2D9D0085DD28 /* opengl_local.h */; + name = "opengl_local.h: 31"; + rLen = 0; + rLoc = 961; + rType = 0; + vrLen = 370; + vrLoc = 737; + }; + 72F83CA60F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 445"; + rLen = 2; + rLoc = 11487; + rType = 0; + vrLen = 666; + vrLoc = 21847; + }; + 72F83CA70F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B530F6B2D9D0085DD28 /* opengl_main.c */; + name = "opengl_main.c: 340"; + rLen = 0; + rLoc = 8512; + rType = 0; + vrLen = 409; + vrLoc = 8512; + }; + 72F83CA80F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B580F6B2D9D0085DD28 /* renderer.h */; + name = "renderer.h: 85"; + rLen = 0; + rLoc = 1728; + rType = 0; + vrLen = 718; + vrLoc = 1638; + }; + 72F83CA90F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B530F6B2D9D0085DD28 /* opengl_main.c */; + name = "opengl_main.c: 352"; + rLen = 0; + rLoc = 8513; + rType = 0; + vrLen = 406; + vrLoc = 8606; + }; + 72F83CAA0F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B580F6B2D9D0085DD28 /* renderer.h */; + name = "renderer.h: 89"; + rLen = 0; + rLoc = 1818; + rType = 0; + vrLen = 694; + vrLoc = 1616; + }; + 72F83CAB0F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B530F6B2D9D0085DD28 /* opengl_main.c */; + name = "opengl_main.c: 342"; + rLen = 0; + rLoc = 8514; + rType = 0; + vrLen = 382; + vrLoc = 8510; + }; + 72F83CAC0F8A67DA0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B520F6B2D9D0085DD28 /* opengl_local.h */; + name = "opengl_local.h: 31"; + rLen = 0; + rLoc = 961; + rType = 0; + vrLen = 370; + vrLoc = 737; + }; + 72F83CB80F8A693A0032AC67 /* wolf_level.c:1056 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 7229CC310F6B3222004123C5 /* wolf_level.c */; + functionName = "Level_LoadMap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 1056; + location = wolf3d; + modificationTime = 260822669.02123; + state = 2; + }; + 72F83CBC0F8A6A140032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B530F6B2D9D0085DD28 /* opengl_main.c */; + name = "opengl_main.c: 342"; + rLen = 0; + rLoc = 8514; + rType = 0; + vrLen = 622; + vrLoc = 7885; + }; + 72F83CBE0F8A6A140032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72935B530F6B2D9D0085DD28 /* opengl_main.c */; + name = "opengl_main.c: 342"; + rLen = 0; + rLoc = 8514; + rType = 0; + vrLen = 622; + vrLoc = 7885; + }; + 72F83CD80F8A6BF30032AC67 /* iphone_menus.c:900 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + functionName = "iphoneOpenAutomap()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 900; + location = wolf3d; + modificationTime = 260822669.021613; + state = 2; + }; + 72F83CDC0F8A6BFD0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1058"; + rLen = 0; + rLoc = 21970; + rType = 0; + vrLen = 732; + vrLoc = 21740; + }; + 72F83CDD0F8A6BFD0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 445"; + rLen = 2; + rLoc = 11487; + rType = 0; + vrLen = 666; + vrLoc = 21847; + }; + 72F83CDE0F8A6BFD0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1058"; + rLen = 0; + rLoc = 21970; + rType = 0; + vrLen = 732; + vrLoc = 21740; + }; + 72F83CED0F8A6D1F0032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 900"; + rLen = 0; + rLoc = 22106; + rType = 0; + vrLen = 646; + vrLoc = 21844; + }; + 72F83D0D0F8A6E140032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1069"; + rLen = 0; + rLoc = 22281; + rType = 0; + vrLen = 580; + vrLoc = 23078; + }; + 72F83D0E0F8A6E140032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 900"; + rLen = 0; + rLoc = 22106; + rType = 0; + vrLen = 646; + vrLoc = 21844; + }; + 72F83D0F0F8A6E140032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1059"; + rLen = 0; + rLoc = 22010; + rType = 0; + vrLen = 669; + vrLoc = 21669; + }; + 72F83D1F0F8A6F730032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 902"; + rLen = 0; + rLoc = 22161; + rType = 0; + vrLen = 669; + vrLoc = 27010; + }; + 72F83D200F8A6F730032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1057"; + rLen = 0; + rLoc = 21953; + rType = 0; + vrLen = 669; + vrLoc = 21669; + }; + 72F83D360F8A72820032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 903"; + rLen = 0; + rLoc = 22171; + rType = 0; + vrLen = 679; + vrLoc = 21874; + }; + 72F83D370F8A72820032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1057"; + rLen = 0; + rLoc = 21953; + rType = 0; + vrLen = 669; + vrLoc = 21669; + }; + 72F83D380F8A72820032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; + name = "iphone_menus.c: 903"; + rLen = 0; + rLoc = 22171; + rType = 0; + vrLen = 679; + vrLoc = 21874; + }; + 72F83D410F8AE1A30032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1058"; + rLen = 0; + rLoc = 21970; + rType = 0; + vrLen = 712; + vrLoc = 21669; + }; + 72F83D420F8AE1A30032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC320F6B3222004123C5 /* wolf_level.h */; + name = "wolf_level.h: 95"; + rLen = 55; + rLoc = 2242; + rType = 0; + vrLen = 809; + vrLoc = 1766; + }; + 72F83D430F8AE1A30032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; + name = "wolf_doors.c: 112"; + rLen = 9; + rLoc = 2973; + rType = 0; + vrLen = 1250; + vrLoc = 2273; + }; + 72F83D440F8AE1A30032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; + name = "wolf_level.c: 1092"; + rLen = 14; + rLoc = 22815; + rType = 0; + vrLen = 1068; + vrLoc = 21743; + }; + 72F83D450F8AE1A30032AC67 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */; + name = "iphone_wolf.h: 171"; + rLen = 0; + rLoc = 4376; + rType = 0; + vrLen = 764; + vrLoc = 4196; + }; +} diff --git a/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.perspectivev3 b/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.perspectivev3 new file mode 100644 index 0000000..317f68e --- /dev/null +++ b/wolf3d/code/iphone/wolf3d.xcodeproj/johnc.perspectivev3 @@ -0,0 +1,1884 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 72044C090F5CCDA1007CA9A1 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + OpenEditors + + + Content + + PBXProjectModuleGUID + 72F83C830F8A5FBB0032AC67 + PBXProjectModuleLabel + wolf_level.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 72F83C840F8A5FBB0032AC67 + PBXProjectModuleLabel + wolf_level.h + _historyCapacity + 0 + bookmark + 72E5E6150F8BCAB30078F4A2 + history + + 72F83D420F8AE1A30032AC67 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {1264, 774}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 38 187 1264 815 0 0 1680 1028 + + + + Content + + PBXProjectModuleGUID + 72F83C870F8A5FBB0032AC67 + PBXProjectModuleLabel + wolf_doors.c + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 72F83C880F8A5FBB0032AC67 + PBXProjectModuleLabel + wolf_doors.c + _historyCapacity + 0 + bookmark + 72E5E6160F8BCAB30078F4A2 + history + + 72F83D430F8AE1A30032AC67 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {716, 806}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 15 176 716 847 0 0 1680 1028 + + + + Content + + PBXProjectModuleGUID + 72F83C8B0F8A5FBB0032AC67 + PBXProjectModuleLabel + wolf_level.c + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 72F83C8C0F8A5FBB0032AC67 + PBXProjectModuleLabel + wolf_level.c + _historyCapacity + 0 + bookmark + 72E5E6170F8BCAB30078F4A2 + history + + 72F83D440F8AE1A30032AC67 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {641, 750}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 38 211 641 791 0 0 1680 1028 + + + + Content + + PBXProjectModuleGUID + 72D0274B0F8445E700ADAF78 + PBXProjectModuleLabel + iphone_wolf.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 72D0274C0F8445E700ADAF78 + PBXProjectModuleLabel + iphone_wolf.h + _historyCapacity + 0 + bookmark + 72E5E6180F8BCAB30078F4A2 + history + + 72F83D450F8AE1A30032AC67 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {848, 813}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 10 168 848 854 0 0 1680 1028 + + + + PerspectiveWidths + + 1068 + 1068 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + build-and-go + com.apple.ide.PBXToolbarStopButton + clean + toggle-editor + NSToolbarFlexibleSpaceItem + get-info + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 216 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 29B97315FDCFA39411CA2CEA + 72935B190F6B2D720085DD28 + 29B97323FDCFA39411CA2CEA + 19C28FACFE9D520D11CA2CBB + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 49 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 298}, {216, 823}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {233, 841}} + GroupTreeTableConfiguration + + MainColumn + 216 + + RubberWindowFrame + 594 146 1068 882 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 233pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 72044BEC0F5CCC81007CA9A1 + PBXProjectModuleLabel + iphone_main.c + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 72044BED0F5CCC81007CA9A1 + PBXProjectModuleLabel + iphone_main.c + _historyCapacity + 0 + bookmark + 72E5E6110F8BCAB30078F4A2 + history + + 72C169400F6084F300F3B186 + 7229CD060F6C88EB004123C5 + 7229CD080F6C88EB004123C5 + 7229CD090F6C88EB004123C5 + 7229CD0A0F6C88EB004123C5 + 7229CD0E0F6C88EB004123C5 + 7229CD120F6C88EB004123C5 + 7229CD170F6C88EB004123C5 + 7229CD190F6C88EB004123C5 + 7229CD210F6C88EB004123C5 + 7229CD220F6C88EB004123C5 + 7229CD240F6C88EB004123C5 + 7229CD290F6C88EB004123C5 + 7229CD2B0F6C88EB004123C5 + 7229CD2C0F6C88EB004123C5 + 7229CD2F0F6C88EB004123C5 + 7229CD300F6C88EB004123C5 + 7229CD310F6C88EB004123C5 + 7229CD320F6C88EB004123C5 + 7229CD330F6C88EB004123C5 + 7229CD360F6C88EB004123C5 + 7229CD370F6C88EB004123C5 + 7229CD3C0F6C88EB004123C5 + 7229CD410F6C88EB004123C5 + 7229CD4D0F6C88EB004123C5 + 7229CD4F0F6C88EB004123C5 + 7229CD500F6C88EB004123C5 + 7229CD560F6C88EB004123C5 + 7229CD600F6C88EB004123C5 + 7229CD630F6C88EB004123C5 + 7229CD650F6C88EB004123C5 + 7229CE5D0F6C92B6004123C5 + 7229CE5F0F6C92B6004123C5 + 7229CE6B0F6C92B6004123C5 + 7229D0200F6D3C00004123C5 + 7229D0710F6DFF8E004123C5 + 7229D0720F6DFF8E004123C5 + 7229D0730F6DFF8E004123C5 + 7229D0790F6DFF8E004123C5 + 7229D07B0F6DFF8E004123C5 + 7229D07E0F6DFF8E004123C5 + 7229D07F0F6DFF8E004123C5 + 7229D0800F6DFF8E004123C5 + 7229D0820F6DFF8E004123C5 + 7229D0AA0F6DFFDA004123C5 + 7229D0B90F6E00EE004123C5 + 7229D15D0F6E08D1004123C5 + 7229D1CA0F6E109C004123C5 + 7229D1FC0F6E1131004123C5 + 7274BA2C0F7000EC00962F7D + 7274BA2F0F7000EC00962F7D + 7274BA9E0F700FF400962F7D + 7276B0F10F7073540042B98A + 7276B0F20F7073540042B98A + 7276B0F30F7073540042B98A + 7276B0F70F7073540042B98A + 7276B1700F7078300042B98A + 7276B1710F7078300042B98A + 7276B1E50F7081E60042B98A + 7276B1E60F7081E60042B98A + 72784AAE0F735733001C3AB7 + 72C01F4A0F745D0A000201CA + 72B5FD8A0F7E4E3100C8A372 + 72B5FEB40F7E588B00C8A372 + 72B5FF040F7E5A1700C8A372 + 72B43F330F7EFAD700D5BF60 + 72B36F760F7FAE4200E614A8 + 720EB52D0F811F27003F989A + 720EB5320F811F27003F989A + 720EB58F0F813C92003F989A + 720EB6950F818F3E003F989A + 720EB6970F818F3E003F989A + 720EB7380F81A7E5003F989A + 720EB75B0F81A856003F989A + 720EB80A0F81B748003F989A + 720EBA640F82B426003F989A + 720EBA650F82B426003F989A + 720EBA680F82B426003F989A + 720EBA8D0F82BB5C003F989A + 720EBA8E0F82BB5C003F989A + 720EBAB00F82C0D3003F989A + 720EBAB20F82C0D3003F989A + 720EBAF40F82C7BA003F989A + 720EBB450F82CF05003F989A + 72BBA2470F831796003EBE8B + 72BBA2490F831796003EBE8B + 72BBA2920F8322E4003EBE8B + 72BBA2930F8322E4003EBE8B + 72BBA2E50F832938003EBE8B + 72BBA3200F832CB1003EBE8B + 72D025640F8404C700ADAF78 + 72D0257E0F840E1C00ADAF78 + 72D0259E0F8413C500ADAF78 + 72D025AF0F84141200ADAF78 + 72D025D40F84158900ADAF78 + 72D0262B0F84196D00ADAF78 + 72D026330F8419B700ADAF78 + 72D027310F842F9D00ADAF78 + 72D027320F842F9D00ADAF78 + 72D027340F842F9D00ADAF78 + 72F83C390F8A52D20032AC67 + 72F83C3A0F8A52D20032AC67 + 72F83C3B0F8A52D20032AC67 + 72F83C3D0F8A52D20032AC67 + 72F83C3E0F8A52D20032AC67 + 72F83C3F0F8A52D20032AC67 + 72F83C410F8A52D20032AC67 + 72F83C420F8A52D20032AC67 + 72F83C7D0F8A5FBB0032AC67 + 72F83C7E0F8A5FBB0032AC67 + 72F83CA30F8A67DA0032AC67 + 72F83CA40F8A67DA0032AC67 + 72F83CBC0F8A6A140032AC67 + 72F83D360F8A72820032AC67 + 72E5E60E0F8BCAB30078F4A2 + 72E5E60F0F8BCAB30078F4A2 + + prevStack + + 72A7E91F0F5F4758005B83C0 + 72A7E9200F5F4758005B83C0 + 72A7E9240F5F4758005B83C0 + 72C1694F0F6084F300F3B186 + 72B625940F617D2000F04830 + 7245527D0F61F51A00512339 + 728AD7F00F6214300065C748 + 7229CD700F6C88EB004123C5 + 7229CD730F6C88EB004123C5 + 7229CD790F6C88EB004123C5 + 7229CD7A0F6C88EB004123C5 + 7229CD7E0F6C88EB004123C5 + 7229CD800F6C88EB004123C5 + 7229CD810F6C88EB004123C5 + 7229CD820F6C88EB004123C5 + 7229CD830F6C88EB004123C5 + 7229CD840F6C88EB004123C5 + 7229CD8A0F6C88EB004123C5 + 7229CD8C0F6C88EB004123C5 + 7229CD940F6C88EB004123C5 + 7229CD950F6C88EB004123C5 + 7229CD960F6C88EB004123C5 + 7229CD980F6C88EB004123C5 + 7229CD990F6C88EB004123C5 + 7229CD9B0F6C88EB004123C5 + 7229CD9C0F6C88EB004123C5 + 7229CDA10F6C88EB004123C5 + 7229CDA40F6C88EB004123C5 + 7229CDA50F6C88EB004123C5 + 7229CDA80F6C88EB004123C5 + 7229CDA90F6C88EB004123C5 + 7229CDAA0F6C88EB004123C5 + 7229CDAB0F6C88EB004123C5 + 7229CDAD0F6C88EB004123C5 + 7229CDB30F6C88EB004123C5 + 7229CDB40F6C88EB004123C5 + 7229CDB50F6C88EB004123C5 + 7229CDB70F6C88EB004123C5 + 7229CDBF0F6C88EB004123C5 + 7229CDC00F6C88EB004123C5 + 7229CDC20F6C88EB004123C5 + 7229CDC40F6C88EB004123C5 + 7229CDC50F6C88EB004123C5 + 7229CDC60F6C88EB004123C5 + 7229CDC70F6C88EB004123C5 + 7229CDC80F6C88EB004123C5 + 7229CDC90F6C88EB004123C5 + 7229CDCD0F6C88EB004123C5 + 7229CDCE0F6C88EB004123C5 + 7229CDCF0F6C88EB004123C5 + 7229CDD00F6C88EB004123C5 + 7229CDD20F6C88EB004123C5 + 7229CDD80F6C88EB004123C5 + 7229CDD90F6C88EB004123C5 + 7229CDDA0F6C88EB004123C5 + 7229CDDB0F6C88EB004123C5 + 7229CDDC0F6C88EB004123C5 + 7229CDDE0F6C88EB004123C5 + 7229CDE00F6C88EB004123C5 + 7229CDE10F6C88EB004123C5 + 7229CDE80F6C88EB004123C5 + 7229CDE90F6C88EB004123C5 + 7229CDEC0F6C88EB004123C5 + 7229CDED0F6C88EB004123C5 + 7229CDEE0F6C88EB004123C5 + 7229CDEF0F6C88EB004123C5 + 7229CDF00F6C88EB004123C5 + 7229CDF70F6C88EB004123C5 + 7229CDFB0F6C88EB004123C5 + 7229CDFC0F6C88EB004123C5 + 7229CDFD0F6C88EB004123C5 + 7229CDFE0F6C88EB004123C5 + 7229CE020F6C88EB004123C5 + 7229CE030F6C88EB004123C5 + 7229CE040F6C88EB004123C5 + 7229CE080F6C88EB004123C5 + 7229CE0A0F6C88EB004123C5 + 7229CE0C0F6C88EB004123C5 + 7229CE0D0F6C88EB004123C5 + 7229CE0E0F6C88EB004123C5 + 7229CE0F0F6C88EB004123C5 + 7229CE110F6C88EB004123C5 + 7229CE130F6C88EB004123C5 + 7229CE140F6C88EB004123C5 + 7229CE150F6C88EB004123C5 + 7229CE190F6C88EB004123C5 + 7229CE1A0F6C88EB004123C5 + 7229CE290F6C88EB004123C5 + 7229CE2B0F6C88EB004123C5 + 7229CE2C0F6C88EB004123C5 + 7229CE2E0F6C88EB004123C5 + 7229CE2F0F6C88EB004123C5 + 7229CE310F6C88EB004123C5 + 7229CE320F6C88EB004123C5 + 7229CE330F6C88EB004123C5 + 7229CE340F6C88EB004123C5 + 7229CE380F6C88EB004123C5 + 7229CE3B0F6C88EB004123C5 + 7229CE750F6C92B6004123C5 + 7229CEA20F6C92B6004123C5 + 7229CF730F6D36B6004123C5 + 7229D0230F6D3C00004123C5 + 7229D0A20F6DFF8E004123C5 + 7229D0AC0F6DFFDA004123C5 + 7229D1670F6E08D1004123C5 + 7274BAAB0F700FF400962F7D + 7276B14F0F70770A0042B98A + 72C01F4F0F745D0A000201CA + 72B5FEBA0F7E588B00C8A372 + 72B5FF060F7E5A1700C8A372 + 72B43F110F7EF7A400D5BF60 + 720EB59C0F813C92003F989A + 720EB69D0F818F3E003F989A + 720EB8140F81B748003F989A + 720EBAB80F82C0D3003F989A + 72BBA2510F831796003EBE8B + 72E5E6100F8BCAB30078F4A2 + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {830, 512}} + RubberWindowFrame + 594 146 1068 882 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 512pt + + + Proportion + 324pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {830, 297}} + RubberWindowFrame + 594 146 1068 882 0 0 1680 1028 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 27}, {830, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{10, 27}, {830, 297}} + + Module + PBXBuildResultsModule + + + + + Proportion + 830pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 72E5E6120F8BCAB30078F4A2 + 1CA23ED40692098700951B8B + 72E5E6130F8BCAB30078F4A2 + 72044BEC0F5CCC81007CA9A1 + 72E5E6140F8BCAB30078F4A2 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + servicesModulefind + servicesModuleproject + servicesModulebuild + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + debugger-enable-breakpoints + NSToolbarFlexibleSpaceItem + com.apple.ide.XCBreakpointsToolbarItem + clear-log + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {1068, 244}} + + Module + PBXDebugCLIModule + Proportion + 244pt + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {525, 198}} + {{525, 0}, {543, 198}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {1068, 198}} + {{0, 198}, {1068, 394}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 249}, {1068, 592}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 313 + + Frame + {{525, 0}, {543, 198}} + + + Module + PBXDebugSessionModule + Proportion + 592pt + + + Name + Debug + ServiceClasses + + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + PBXDebugProcessAndThreadModule + PBXDebugProcessViewModule + PBXDebugThreadViewModule + PBXDebugStackFrameViewModule + PBXNavigatorGroup + + TableOfContents + + 72F83C200F8A4CCF0032AC67 + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 72F83C210F8A4CCF0032AC67 + 72F83C220F8A4CCF0032AC67 + 72F83C230F8A4CCF0032AC67 + 72F83C240F8A4CCF0032AC67 + 72F83C1A0F8A4CCC0032AC67 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + 72D0274B0F8445E700ADAF78 + 72F83C8B0F8A5FBB0032AC67 + 72F83C870F8A5FBB0032AC67 + 72F83C830F8A5FBB0032AC67 + /Users/johnc/dev/iphone/wolf3d/newCode/iphone/wolf3d.xcodeproj + + WindowString + 594 146 1068 882 0 0 1680 1028 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {440, 359}} + RubberWindowFrame + 59 597 440 400 0 0 1680 1028 + + Module + PBXDebugCLIModule + Proportion + 359pt + + + Proportion + 359pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 72B5FF480F7E5E1300C8A372 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 59 597 440 400 0 0 1680 1028 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.breakpoints + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 891 541 744 409 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 891 541 744 409 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + + TableOfContents + + 72C01EF80F743898000201CA + 72C01EF90F743898000201CA + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 891 541 744 409 0 0 1680 1028 + WindowToolGUID + 72C01EF80F743898000201CA + WindowToolIsVisible + + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.classBrowser + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {364, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 354}} + MembersFrame + {{0, 101}, {364, 253}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 87 + PBXMemberBookColumnIdentifier + 22 + + RubberWindowFrame + 31 631 616 374 0 0 1680 1028 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + + TableOfContents + + 723DD5B00F5D9085002640F0 + 723DD5B10F5D9085002640F0 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 31 631 616 374 0 0 1680 1028 + WindowToolGUID + 723DD5B00F5D9085002640F0 + WindowToolIsVisible + + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/wolf3d/code/iphone/wolf3d.xcodeproj/project.pbxproj b/wolf3d/code/iphone/wolf3d.xcodeproj/project.pbxproj new file mode 100644 index 0000000..164064a --- /dev/null +++ b/wolf3d/code/iphone/wolf3d.xcodeproj/project.pbxproj @@ -0,0 +1,899 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; + 28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD14FF0DC6FC520079059D /* OpenGLES.framework */; }; + 4333CCE80F5CC23E00AE2B6F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4333CCE70F5CC23E00AE2B6F /* AudioToolbox.framework */; }; + 4364BF3F0F5CB25900F29317 /* dist.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4364BF3E0F5CB25900F29317 /* dist.plist */; }; + 43AE7E9F0F67387500B2F562 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AE7E9E0F67387500B2F562 /* CoreGraphics.framework */; }; + 43AF6B950F996DA200777569 /* iphone_sys.m in Sources */ = {isa = PBXBuildFile; fileRef = 43AF6B940F996DA200777569 /* iphone_sys.m */; }; + 43CF02ED0F56955F00E4A23D /* wolf3d_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 43CF02EC0F56955F00E4A23D /* wolf3d_icon.png */; }; + 43CF02FF0F56974E00E4A23D /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 43CF02FE0F56974E00E4A23D /* Default.png */; }; + 43CF030A0F56D5C200E4A23D /* iphone_loop.c in Sources */ = {isa = PBXBuildFile; fileRef = 43CF03090F56D5C200E4A23D /* iphone_loop.c */; }; + 43E341290F9BB4B6003C5D00 /* wolf3dlite_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 43E341280F9BB4B6003C5D00 /* wolf3dlite_icon.png */; }; + 43E8D2E10F4FC61E003F09B2 /* iphone_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */; }; + 43E8D4E00F51B48B003F09B2 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43E8D4DF0F51B48B003F09B2 /* OpenAL.framework */; }; + 720EBBAE0F82E0BB003F989A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 720EBBAD0F82E0BB003F989A /* QuartzCore.framework */; }; + 7229CC460F6B3222004123C5 /* wolf_actor_ai.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC250F6B3222004123C5 /* wolf_actor_ai.c */; }; + 7229CC470F6B3222004123C5 /* wolf_actors.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC270F6B3222004123C5 /* wolf_actors.c */; }; + 7229CC480F6B3222004123C5 /* wolf_ai_com.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC290F6B3222004123C5 /* wolf_ai_com.c */; }; + 7229CC490F6B3222004123C5 /* wolf_areas.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC2B0F6B3222004123C5 /* wolf_areas.c */; }; + 7229CC4A0F6B3222004123C5 /* wolf_bj.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC2C0F6B3222004123C5 /* wolf_bj.c */; }; + 7229CC4B0F6B3222004123C5 /* wolf_client_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC2E0F6B3222004123C5 /* wolf_client_main.c */; }; + 7229CC4D0F6B3222004123C5 /* wolf_doors.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC300F6B3222004123C5 /* wolf_doors.c */; }; + 7229CC4E0F6B3222004123C5 /* wolf_level.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC310F6B3222004123C5 /* wolf_level.c */; }; + 7229CC4F0F6B3222004123C5 /* wolf_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC340F6B3222004123C5 /* wolf_main.c */; }; + 7229CC500F6B3222004123C5 /* wolf_math.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC350F6B3222004123C5 /* wolf_math.c */; }; + 7229CC510F6B3222004123C5 /* wolf_opengl.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC370F6B3222004123C5 /* wolf_opengl.c */; }; + 7229CC520F6B3222004123C5 /* wolf_player.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC380F6B3222004123C5 /* wolf_player.c */; }; + 7229CC530F6B3222004123C5 /* wolf_powerups.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC3A0F6B3222004123C5 /* wolf_powerups.c */; }; + 7229CC540F6B3222004123C5 /* wolf_pushwalls.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC3C0F6B3222004123C5 /* wolf_pushwalls.c */; }; + 7229CC550F6B3222004123C5 /* wolf_raycast.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */; }; + 7229CC560F6B3222004123C5 /* wolf_renderer.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC3F0F6B3222004123C5 /* wolf_renderer.c */; }; + 7229CC570F6B3222004123C5 /* wolf_sprites.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC410F6B3222004123C5 /* wolf_sprites.c */; }; + 7229CC580F6B3222004123C5 /* wolf_sv_ccmds.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC430F6B3222004123C5 /* wolf_sv_ccmds.c */; }; + 7229CC590F6B3222004123C5 /* wolf_weapon.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC440F6B3222004123C5 /* wolf_weapon.c */; }; + 7229CC7D0F6B3295004123C5 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC5D0F6B3295004123C5 /* bitwise.c */; }; + 7229CC7E0F6B3295004123C5 /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC5E0F6B3295004123C5 /* block.c */; }; + 7229CC7F0F6B3295004123C5 /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC600F6B3295004123C5 /* codebook.c */; }; + 7229CC800F6B3295004123C5 /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC640F6B3295004123C5 /* floor0.c */; }; + 7229CC810F6B3295004123C5 /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC650F6B3295004123C5 /* floor1.c */; }; + 7229CC820F6B3295004123C5 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC660F6B3295004123C5 /* framing.c */; }; + 7229CC830F6B3295004123C5 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC670F6B3295004123C5 /* info.c */; }; + 7229CC850F6B3295004123C5 /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC6C0F6B3295004123C5 /* mapping0.c */; }; + 7229CC860F6B3295004123C5 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC6D0F6B3295004123C5 /* mdct.c */; }; + 7229CC870F6B3295004123C5 /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC740F6B3295004123C5 /* registry.c */; }; + 7229CC880F6B3295004123C5 /* res012.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC760F6B3295004123C5 /* res012.c */; }; + 7229CC890F6B3295004123C5 /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC770F6B3295004123C5 /* sharedbook.c */; }; + 7229CC8A0F6B3295004123C5 /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC780F6B3295004123C5 /* synthesis.c */; }; + 7229CC8B0F6B3295004123C5 /* vorbisfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC790F6B3295004123C5 /* vorbisfile.c */; }; + 7229CC8C0F6B3295004123C5 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CC7A0F6B3295004123C5 /* window.c */; }; + 7229CE4A0F6C89F8004123C5 /* EAGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7229CE460F6C89F8004123C5 /* EAGLView.m */; }; + 7229CE4C0F6C89F8004123C5 /* wolf3dAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7229CE490F6C89F8004123C5 /* wolf3dAppDelegate.m */; }; + 7229CE550F6C8CDE004123C5 /* gles_glue.c in Sources */ = {isa = PBXBuildFile; fileRef = 7229CE540F6C8CDE004123C5 /* gles_glue.c */; }; + 72935B740F6B2D9D0085DD28 /* angle.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B1A0F6B2D9D0085DD28 /* angle.c */; }; + 72935B750F6B2D9D0085DD28 /* arch.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B1D0F6B2D9D0085DD28 /* arch.c */; }; + 72935B790F6B2D9D0085DD28 /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B230F6B2D9D0085DD28 /* cmd.c */; }; + 72935B7A0F6B2D9D0085DD28 /* com_string.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B250F6B2D9D0085DD28 /* com_string.c */; }; + 72935B7B0F6B2D9D0085DD28 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B270F6B2D9D0085DD28 /* common.c */; }; + 72935B7C0F6B2D9D0085DD28 /* console.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B2A0F6B2D9D0085DD28 /* console.c */; }; + 72935B7E0F6B2D9D0085DD28 /* cvar.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B2D0F6B2D9D0085DD28 /* cvar.c */; }; + 72935B7F0F6B2D9D0085DD28 /* fileio.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B2F0F6B2D9D0085DD28 /* fileio.c */; }; + 72935B800F6B2D9D0085DD28 /* files.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B310F6B2D9D0085DD28 /* files.c */; }; + 72935B810F6B2D9D0085DD28 /* filestring.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B320F6B2D9D0085DD28 /* filestring.c */; }; + 72935B820F6B2D9D0085DD28 /* font_manager.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B350F6B2D9D0085DD28 /* font_manager.c */; }; + 72935B830F6B2D9D0085DD28 /* glob.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B370F6B2D9D0085DD28 /* glob.c */; }; + 72935B870F6B2D9D0085DD28 /* math.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B3E0F6B2D9D0085DD28 /* math.c */; }; + 72935B880F6B2D9D0085DD28 /* matrix.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B3F0F6B2D9D0085DD28 /* matrix.c */; }; + 72935B890F6B2D9D0085DD28 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B410F6B2D9D0085DD28 /* memory.c */; }; + 72935B8B0F6B2D9D0085DD28 /* oggfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B490F6B2D9D0085DD28 /* oggfile.c */; }; + 72935B8C0F6B2D9D0085DD28 /* openal_binding.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */; }; + 72935B8D0F6B2D9D0085DD28 /* openal_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B4D0F6B2D9D0085DD28 /* openal_main.c */; }; + 72935B8F0F6B2D9D0085DD28 /* opengl_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B500F6B2D9D0085DD28 /* opengl_draw.c */; }; + 72935B910F6B2D9D0085DD28 /* opengl_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B530F6B2D9D0085DD28 /* opengl_main.c */; }; + 72935B920F6B2D9D0085DD28 /* opengl_texture.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B540F6B2D9D0085DD28 /* opengl_texture.c */; }; + 72935B930F6B2D9D0085DD28 /* random_number.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B560F6B2D9D0085DD28 /* random_number.c */; }; + 72935B940F6B2D9D0085DD28 /* share.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B590F6B2D9D0085DD28 /* share.c */; }; + 72935B950F6B2D9D0085DD28 /* sound.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B5A0F6B2D9D0085DD28 /* sound.c */; }; + 72935B960F6B2D9D0085DD28 /* sound_sfx_id.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */; }; + 72935B970F6B2D9D0085DD28 /* sound_stream.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B5E0F6B2D9D0085DD28 /* sound_stream.c */; }; + 72935B990F6B2D9D0085DD28 /* texture_manager.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B610F6B2D9D0085DD28 /* texture_manager.c */; }; + 72935B9A0F6B2D9D0085DD28 /* tga.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B630F6B2D9D0085DD28 /* tga.c */; }; + 72935B9C0F6B2D9D0085DD28 /* unix_file.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B680F6B2D9D0085DD28 /* unix_file.c */; }; + 72935B9E0F6B2D9D0085DD28 /* unix_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B6A0F6B2D9D0085DD28 /* unix_timer.c */; }; + 72935B9F0F6B2D9D0085DD28 /* vector.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B6B0F6B2D9D0085DD28 /* vector.c */; }; + 72935BA00F6B2D9D0085DD28 /* wavfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B6E0F6B2D9D0085DD28 /* wavfile.c */; }; + 72935BA20F6B2D9D0085DD28 /* zmem.c in Sources */ = {isa = PBXBuildFile; fileRef = 72935B720F6B2D9D0085DD28 /* zmem.c */; }; + 72A7E8F70F5F2063005B83C0 /* iphone_menus.c in Sources */ = {isa = PBXBuildFile; fileRef = 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */; }; + 72B5FF390F7E5C3D00C8A372 /* hud.c in Sources */ = {isa = PBXBuildFile; fileRef = 72B5FF380F7E5C3D00C8A372 /* hud.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 1D6058910D05DD3D006BFB54 /* wolf3dlite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = wolf3dlite.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; + 28FD14FF0DC6FC520079059D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* wolf3d_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wolf3d_Prefix.pch; sourceTree = ""; }; + 4333CCE70F5CC23E00AE2B6F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + 4364BF3E0F5CB25900F29317 /* dist.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = dist.plist; sourceTree = ""; }; + 43AE7E9E0F67387500B2F562 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 43AF6B940F996DA200777569 /* iphone_sys.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iphone_sys.m; sourceTree = ""; }; + 43CF02EC0F56955F00E4A23D /* wolf3d_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wolf3d_icon.png; sourceTree = ""; }; + 43CF02FE0F56974E00E4A23D /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; + 43CF03090F56D5C200E4A23D /* iphone_loop.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = iphone_loop.c; sourceTree = ""; }; + 43E341280F9BB4B6003C5D00 /* wolf3dlite_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wolf3dlite_icon.png; sourceTree = ""; }; + 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = iphone_main.c; sourceTree = ""; }; + 43E8D4DF0F51B48B003F09B2 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = /System/Library/Frameworks/OpenAL.framework; sourceTree = ""; }; + 720EBBAD0F82E0BB003F989A /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = ""; }; + 7229CC240F6B3222004123C5 /* wolf_act_stat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_act_stat.h; path = ../wolf/wolf_act_stat.h; sourceTree = SOURCE_ROOT; }; + 7229CC250F6B3222004123C5 /* wolf_actor_ai.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_actor_ai.c; path = ../wolf/wolf_actor_ai.c; sourceTree = SOURCE_ROOT; }; + 7229CC260F6B3222004123C5 /* wolf_actor_ai.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_actor_ai.h; path = ../wolf/wolf_actor_ai.h; sourceTree = SOURCE_ROOT; }; + 7229CC270F6B3222004123C5 /* wolf_actors.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_actors.c; path = ../wolf/wolf_actors.c; sourceTree = SOURCE_ROOT; }; + 7229CC280F6B3222004123C5 /* wolf_actors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_actors.h; path = ../wolf/wolf_actors.h; sourceTree = SOURCE_ROOT; }; + 7229CC290F6B3222004123C5 /* wolf_ai_com.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_ai_com.c; path = ../wolf/wolf_ai_com.c; sourceTree = SOURCE_ROOT; }; + 7229CC2A0F6B3222004123C5 /* wolf_ai_com.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_ai_com.h; path = ../wolf/wolf_ai_com.h; sourceTree = SOURCE_ROOT; }; + 7229CC2B0F6B3222004123C5 /* wolf_areas.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_areas.c; path = ../wolf/wolf_areas.c; sourceTree = SOURCE_ROOT; }; + 7229CC2C0F6B3222004123C5 /* wolf_bj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_bj.c; path = ../wolf/wolf_bj.c; sourceTree = SOURCE_ROOT; }; + 7229CC2D0F6B3222004123C5 /* wolf_bj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_bj.h; path = ../wolf/wolf_bj.h; sourceTree = SOURCE_ROOT; }; + 7229CC2E0F6B3222004123C5 /* wolf_client_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_client_main.c; path = ../wolf/wolf_client_main.c; sourceTree = SOURCE_ROOT; }; + 7229CC300F6B3222004123C5 /* wolf_doors.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_doors.c; path = ../wolf/wolf_doors.c; sourceTree = SOURCE_ROOT; }; + 7229CC310F6B3222004123C5 /* wolf_level.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_level.c; path = ../wolf/wolf_level.c; sourceTree = SOURCE_ROOT; }; + 7229CC320F6B3222004123C5 /* wolf_level.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_level.h; path = ../wolf/wolf_level.h; sourceTree = SOURCE_ROOT; }; + 7229CC330F6B3222004123C5 /* wolf_local.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_local.h; path = ../wolf/wolf_local.h; sourceTree = SOURCE_ROOT; }; + 7229CC340F6B3222004123C5 /* wolf_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_main.c; path = ../wolf/wolf_main.c; sourceTree = SOURCE_ROOT; }; + 7229CC350F6B3222004123C5 /* wolf_math.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_math.c; path = ../wolf/wolf_math.c; sourceTree = SOURCE_ROOT; }; + 7229CC360F6B3222004123C5 /* wolf_math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_math.h; path = ../wolf/wolf_math.h; sourceTree = SOURCE_ROOT; }; + 7229CC370F6B3222004123C5 /* wolf_opengl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_opengl.c; path = ../wolf/wolf_opengl.c; sourceTree = SOURCE_ROOT; }; + 7229CC380F6B3222004123C5 /* wolf_player.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_player.c; path = ../wolf/wolf_player.c; sourceTree = SOURCE_ROOT; }; + 7229CC390F6B3222004123C5 /* wolf_player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_player.h; path = ../wolf/wolf_player.h; sourceTree = SOURCE_ROOT; }; + 7229CC3A0F6B3222004123C5 /* wolf_powerups.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_powerups.c; path = ../wolf/wolf_powerups.c; sourceTree = SOURCE_ROOT; }; + 7229CC3B0F6B3222004123C5 /* wolf_powerups.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_powerups.h; path = ../wolf/wolf_powerups.h; sourceTree = SOURCE_ROOT; }; + 7229CC3C0F6B3222004123C5 /* wolf_pushwalls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_pushwalls.c; path = ../wolf/wolf_pushwalls.c; sourceTree = SOURCE_ROOT; }; + 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_raycast.c; path = ../wolf/wolf_raycast.c; sourceTree = SOURCE_ROOT; }; + 7229CC3E0F6B3222004123C5 /* wolf_raycast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_raycast.h; path = ../wolf/wolf_raycast.h; sourceTree = SOURCE_ROOT; }; + 7229CC3F0F6B3222004123C5 /* wolf_renderer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_renderer.c; path = ../wolf/wolf_renderer.c; sourceTree = SOURCE_ROOT; }; + 7229CC400F6B3222004123C5 /* wolf_renderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_renderer.h; path = ../wolf/wolf_renderer.h; sourceTree = SOURCE_ROOT; }; + 7229CC410F6B3222004123C5 /* wolf_sprites.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_sprites.c; path = ../wolf/wolf_sprites.c; sourceTree = SOURCE_ROOT; }; + 7229CC420F6B3222004123C5 /* wolf_sprites.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolf_sprites.h; path = ../wolf/wolf_sprites.h; sourceTree = SOURCE_ROOT; }; + 7229CC430F6B3222004123C5 /* wolf_sv_ccmds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_sv_ccmds.c; path = ../wolf/wolf_sv_ccmds.c; sourceTree = SOURCE_ROOT; }; + 7229CC440F6B3222004123C5 /* wolf_weapon.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wolf_weapon.c; path = ../wolf/wolf_weapon.c; sourceTree = SOURCE_ROOT; }; + 7229CC5B0F6B3295004123C5 /* asm_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asm_arm.h; path = ../Tremor/asm_arm.h; sourceTree = SOURCE_ROOT; }; + 7229CC5C0F6B3295004123C5 /* backends.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = backends.h; path = ../Tremor/backends.h; sourceTree = SOURCE_ROOT; }; + 7229CC5D0F6B3295004123C5 /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = ../Tremor/bitwise.c; sourceTree = SOURCE_ROOT; }; + 7229CC5E0F6B3295004123C5 /* block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = block.c; path = ../Tremor/block.c; sourceTree = SOURCE_ROOT; }; + 7229CC5F0F6B3295004123C5 /* block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = block.h; path = ../Tremor/block.h; sourceTree = SOURCE_ROOT; }; + 7229CC600F6B3295004123C5 /* codebook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = ../Tremor/codebook.c; sourceTree = SOURCE_ROOT; }; + 7229CC610F6B3295004123C5 /* codebook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = ../Tremor/codebook.h; sourceTree = SOURCE_ROOT; }; + 7229CC620F6B3295004123C5 /* codec_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = codec_internal.h; path = ../Tremor/codec_internal.h; sourceTree = SOURCE_ROOT; }; + 7229CC630F6B3295004123C5 /* config_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config_types.h; path = ../Tremor/config_types.h; sourceTree = SOURCE_ROOT; }; + 7229CC640F6B3295004123C5 /* floor0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = ../Tremor/floor0.c; sourceTree = SOURCE_ROOT; }; + 7229CC650F6B3295004123C5 /* floor1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = ../Tremor/floor1.c; sourceTree = SOURCE_ROOT; }; + 7229CC660F6B3295004123C5 /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = framing.c; path = ../Tremor/framing.c; sourceTree = SOURCE_ROOT; }; + 7229CC670F6B3295004123C5 /* info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = info.c; path = ../Tremor/info.c; sourceTree = SOURCE_ROOT; }; + 7229CC680F6B3295004123C5 /* ivorbiscodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ivorbiscodec.h; path = ../Tremor/ivorbiscodec.h; sourceTree = SOURCE_ROOT; }; + 7229CC690F6B3295004123C5 /* ivorbisfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ivorbisfile.h; path = ../Tremor/ivorbisfile.h; sourceTree = SOURCE_ROOT; }; + 7229CC6B0F6B3295004123C5 /* lsp_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lsp_lookup.h; path = ../Tremor/lsp_lookup.h; sourceTree = SOURCE_ROOT; }; + 7229CC6C0F6B3295004123C5 /* mapping0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = ../Tremor/mapping0.c; sourceTree = SOURCE_ROOT; }; + 7229CC6D0F6B3295004123C5 /* mdct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = ../Tremor/mdct.c; sourceTree = SOURCE_ROOT; }; + 7229CC6E0F6B3295004123C5 /* mdct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = ../Tremor/mdct.h; sourceTree = SOURCE_ROOT; }; + 7229CC6F0F6B3295004123C5 /* mdct_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mdct_lookup.h; path = ../Tremor/mdct_lookup.h; sourceTree = SOURCE_ROOT; }; + 7229CC700F6B3295004123C5 /* misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = misc.h; path = ../Tremor/misc.h; sourceTree = SOURCE_ROOT; }; + 7229CC710F6B3295004123C5 /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = ../Tremor/ogg.h; sourceTree = SOURCE_ROOT; }; + 7229CC720F6B3295004123C5 /* os.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os.h; path = ../Tremor/os.h; sourceTree = SOURCE_ROOT; }; + 7229CC730F6B3295004123C5 /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = ../Tremor/os_types.h; sourceTree = SOURCE_ROOT; }; + 7229CC740F6B3295004123C5 /* registry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = registry.c; path = ../Tremor/registry.c; sourceTree = SOURCE_ROOT; }; + 7229CC750F6B3295004123C5 /* registry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = registry.h; path = ../Tremor/registry.h; sourceTree = SOURCE_ROOT; }; + 7229CC760F6B3295004123C5 /* res012.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = res012.c; path = ../Tremor/res012.c; sourceTree = SOURCE_ROOT; }; + 7229CC770F6B3295004123C5 /* sharedbook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = ../Tremor/sharedbook.c; sourceTree = SOURCE_ROOT; }; + 7229CC780F6B3295004123C5 /* synthesis.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = ../Tremor/synthesis.c; sourceTree = SOURCE_ROOT; }; + 7229CC790F6B3295004123C5 /* vorbisfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vorbisfile.c; path = ../Tremor/vorbisfile.c; sourceTree = SOURCE_ROOT; }; + 7229CC7A0F6B3295004123C5 /* window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = window.c; path = ../Tremor/window.c; sourceTree = SOURCE_ROOT; }; + 7229CC7B0F6B3295004123C5 /* window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = window.h; path = ../Tremor/window.h; sourceTree = SOURCE_ROOT; }; + 7229CC7C0F6B3295004123C5 /* window_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = window_lookup.h; path = ../Tremor/window_lookup.h; sourceTree = SOURCE_ROOT; }; + 7229CC8E0F6B3363004123C5 /* wolfiphone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wolfiphone.h; path = ../wolfiphone.h; sourceTree = SOURCE_ROOT; }; + 7229CE450F6C89F8004123C5 /* EAGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EAGLView.h; sourceTree = ""; }; + 7229CE460F6C89F8004123C5 /* EAGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EAGLView.m; sourceTree = ""; }; + 7229CE480F6C89F8004123C5 /* wolf3dAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wolf3dAppDelegate.h; sourceTree = ""; }; + 7229CE490F6C89F8004123C5 /* wolf3dAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = wolf3dAppDelegate.m; sourceTree = ""; }; + 7229CE540F6C8CDE004123C5 /* gles_glue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gles_glue.c; sourceTree = ""; }; + 72935B1A0F6B2D9D0085DD28 /* angle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = angle.c; path = ../env/angle.c; sourceTree = SOURCE_ROOT; }; + 72935B1B0F6B2D9D0085DD28 /* angle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = angle.h; path = ../env/angle.h; sourceTree = SOURCE_ROOT; }; + 72935B1C0F6B2D9D0085DD28 /* app_def.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = app_def.h; path = ../env/app_def.h; sourceTree = SOURCE_ROOT; }; + 72935B1D0F6B2D9D0085DD28 /* arch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = arch.c; path = ../env/arch.c; sourceTree = SOURCE_ROOT; }; + 72935B1E0F6B2D9D0085DD28 /* arch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arch.h; path = ../env/arch.h; sourceTree = SOURCE_ROOT; }; + 72935B230F6B2D9D0085DD28 /* cmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cmd.c; path = ../env/cmd.c; sourceTree = SOURCE_ROOT; }; + 72935B240F6B2D9D0085DD28 /* cmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cmd.h; path = ../env/cmd.h; sourceTree = SOURCE_ROOT; }; + 72935B250F6B2D9D0085DD28 /* com_string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = com_string.c; path = ../env/com_string.c; sourceTree = SOURCE_ROOT; }; + 72935B260F6B2D9D0085DD28 /* com_string.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = com_string.h; path = ../env/com_string.h; sourceTree = SOURCE_ROOT; }; + 72935B270F6B2D9D0085DD28 /* common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = common.c; path = ../env/common.c; sourceTree = SOURCE_ROOT; }; + 72935B280F6B2D9D0085DD28 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../env/common.h; sourceTree = SOURCE_ROOT; }; + 72935B290F6B2D9D0085DD28 /* common_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = common_utils.h; path = ../env/common_utils.h; sourceTree = SOURCE_ROOT; }; + 72935B2A0F6B2D9D0085DD28 /* console.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = console.c; path = ../env/console.c; sourceTree = SOURCE_ROOT; }; + 72935B2B0F6B2D9D0085DD28 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = console.h; path = ../env/console.h; sourceTree = SOURCE_ROOT; }; + 72935B2D0F6B2D9D0085DD28 /* cvar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cvar.c; path = ../env/cvar.c; sourceTree = SOURCE_ROOT; }; + 72935B2E0F6B2D9D0085DD28 /* cvar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cvar.h; path = ../env/cvar.h; sourceTree = SOURCE_ROOT; }; + 72935B2F0F6B2D9D0085DD28 /* fileio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fileio.c; path = ../env/fileio.c; sourceTree = SOURCE_ROOT; }; + 72935B310F6B2D9D0085DD28 /* files.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = files.c; path = ../env/files.c; sourceTree = SOURCE_ROOT; }; + 72935B320F6B2D9D0085DD28 /* filestring.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filestring.c; path = ../env/filestring.c; sourceTree = SOURCE_ROOT; }; + 72935B330F6B2D9D0085DD28 /* filestring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filestring.h; path = ../env/filestring.h; sourceTree = SOURCE_ROOT; }; + 72935B340F6B2D9D0085DD28 /* filesystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filesystem.h; path = ../env/filesystem.h; sourceTree = SOURCE_ROOT; }; + 72935B350F6B2D9D0085DD28 /* font_manager.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = font_manager.c; path = ../env/font_manager.c; sourceTree = SOURCE_ROOT; }; + 72935B360F6B2D9D0085DD28 /* font_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = font_manager.h; path = ../env/font_manager.h; sourceTree = SOURCE_ROOT; }; + 72935B370F6B2D9D0085DD28 /* glob.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = glob.c; path = ../env/glob.c; sourceTree = SOURCE_ROOT; }; + 72935B380F6B2D9D0085DD28 /* glob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = glob.h; path = ../env/glob.h; sourceTree = SOURCE_ROOT; }; + 72935B3E0F6B2D9D0085DD28 /* math.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = math.c; path = ../env/math.c; sourceTree = SOURCE_ROOT; }; + 72935B3F0F6B2D9D0085DD28 /* matrix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = matrix.c; path = ../env/matrix.c; sourceTree = SOURCE_ROOT; }; + 72935B400F6B2D9D0085DD28 /* matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = matrix.h; path = ../env/matrix.h; sourceTree = SOURCE_ROOT; }; + 72935B410F6B2D9D0085DD28 /* memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = memory.c; path = ../env/memory.c; sourceTree = SOURCE_ROOT; }; + 72935B420F6B2D9D0085DD28 /* memory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = memory.h; path = ../env/memory.h; sourceTree = SOURCE_ROOT; }; + 72935B450F6B2D9D0085DD28 /* mymath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mymath.h; path = ../env/mymath.h; sourceTree = SOURCE_ROOT; }; + 72935B460F6B2D9D0085DD28 /* myopengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = myopengl.h; path = ../env/myopengl.h; sourceTree = SOURCE_ROOT; }; + 72935B470F6B2D9D0085DD28 /* myopengl_extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = myopengl_extension.h; path = ../env/myopengl_extension.h; sourceTree = SOURCE_ROOT; }; + 72935B480F6B2D9D0085DD28 /* num_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = num_type.h; path = ../env/num_type.h; sourceTree = SOURCE_ROOT; }; + 72935B490F6B2D9D0085DD28 /* oggfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = oggfile.c; path = ../env/oggfile.c; sourceTree = SOURCE_ROOT; }; + 72935B4A0F6B2D9D0085DD28 /* oggfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = oggfile.h; path = ../env/oggfile.h; sourceTree = SOURCE_ROOT; }; + 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = openal_binding.c; path = ../env/openal_binding.c; sourceTree = SOURCE_ROOT; }; + 72935B4C0F6B2D9D0085DD28 /* openal_binding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = openal_binding.h; path = ../env/openal_binding.h; sourceTree = SOURCE_ROOT; }; + 72935B4D0F6B2D9D0085DD28 /* openal_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = openal_main.c; path = ../env/openal_main.c; sourceTree = SOURCE_ROOT; }; + 72935B500F6B2D9D0085DD28 /* opengl_draw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = opengl_draw.c; path = ../env/opengl_draw.c; sourceTree = SOURCE_ROOT; }; + 72935B520F6B2D9D0085DD28 /* opengl_local.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opengl_local.h; path = ../env/opengl_local.h; sourceTree = SOURCE_ROOT; }; + 72935B530F6B2D9D0085DD28 /* opengl_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = opengl_main.c; path = ../env/opengl_main.c; sourceTree = SOURCE_ROOT; }; + 72935B540F6B2D9D0085DD28 /* opengl_texture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = opengl_texture.c; path = ../env/opengl_texture.c; sourceTree = SOURCE_ROOT; }; + 72935B560F6B2D9D0085DD28 /* random_number.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = random_number.c; path = ../env/random_number.c; sourceTree = SOURCE_ROOT; }; + 72935B570F6B2D9D0085DD28 /* random_number.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = random_number.h; path = ../env/random_number.h; sourceTree = SOURCE_ROOT; }; + 72935B580F6B2D9D0085DD28 /* renderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = renderer.h; path = ../env/renderer.h; sourceTree = SOURCE_ROOT; }; + 72935B590F6B2D9D0085DD28 /* share.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = share.c; path = ../env/share.c; sourceTree = SOURCE_ROOT; }; + 72935B5A0F6B2D9D0085DD28 /* sound.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sound.c; path = ../env/sound.c; sourceTree = SOURCE_ROOT; }; + 72935B5B0F6B2D9D0085DD28 /* sound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sound.h; path = ../env/sound.h; sourceTree = SOURCE_ROOT; }; + 72935B5C0F6B2D9D0085DD28 /* sound_local.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sound_local.h; path = ../env/sound_local.h; sourceTree = SOURCE_ROOT; }; + 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sound_sfx_id.c; path = ../env/sound_sfx_id.c; sourceTree = SOURCE_ROOT; }; + 72935B5E0F6B2D9D0085DD28 /* sound_stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sound_stream.c; path = ../env/sound_stream.c; sourceTree = SOURCE_ROOT; }; + 72935B610F6B2D9D0085DD28 /* texture_manager.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = texture_manager.c; path = ../env/texture_manager.c; sourceTree = SOURCE_ROOT; }; + 72935B620F6B2D9D0085DD28 /* texture_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = texture_manager.h; path = ../env/texture_manager.h; sourceTree = SOURCE_ROOT; }; + 72935B630F6B2D9D0085DD28 /* tga.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tga.c; path = ../env/tga.c; sourceTree = SOURCE_ROOT; }; + 72935B640F6B2D9D0085DD28 /* tga.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tga.h; path = ../env/tga.h; sourceTree = SOURCE_ROOT; }; + 72935B650F6B2D9D0085DD28 /* timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = timer.h; path = ../env/timer.h; sourceTree = SOURCE_ROOT; }; + 72935B680F6B2D9D0085DD28 /* unix_file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = unix_file.c; path = ../env/unix_file.c; sourceTree = SOURCE_ROOT; }; + 72935B6A0F6B2D9D0085DD28 /* unix_timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = unix_timer.c; path = ../env/unix_timer.c; sourceTree = SOURCE_ROOT; }; + 72935B6B0F6B2D9D0085DD28 /* vector.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vector.c; path = ../env/vector.c; sourceTree = SOURCE_ROOT; }; + 72935B6C0F6B2D9D0085DD28 /* vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vector.h; path = ../env/vector.h; sourceTree = SOURCE_ROOT; }; + 72935B6D0F6B2D9D0085DD28 /* video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = video.h; path = ../env/video.h; sourceTree = SOURCE_ROOT; }; + 72935B6E0F6B2D9D0085DD28 /* wavfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wavfile.c; path = ../env/wavfile.c; sourceTree = SOURCE_ROOT; }; + 72935B6F0F6B2D9D0085DD28 /* wavfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wavfile.h; path = ../env/wavfile.h; sourceTree = SOURCE_ROOT; }; + 72935B720F6B2D9D0085DD28 /* zmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zmem.c; path = ../env/zmem.c; sourceTree = SOURCE_ROOT; }; + 72935B730F6B2D9D0085DD28 /* zmem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zmem.h; path = ../env/zmem.h; sourceTree = SOURCE_ROOT; }; + 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iphone_wolf.h; sourceTree = ""; }; + 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = iphone_menus.c; sourceTree = ""; }; + 72B5FF380F7E5C3D00C8A372 /* hud.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hud.c; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, + 28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */, + 43E8D4E00F51B48B003F09B2 /* OpenAL.framework in Frameworks */, + 4333CCE80F5CC23E00AE2B6F /* AudioToolbox.framework in Frameworks */, + 43AE7E9F0F67387500B2F562 /* CoreGraphics.framework in Frameworks */, + 720EBBAE0F82E0BB003F989A /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 1D6058910D05DD3D006BFB54 /* wolf3dlite.app */, + 4364BF3E0F5CB25900F29317 /* dist.plist */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + 43AE7E9E0F67387500B2F562 /* CoreGraphics.framework */, + ); + name = CustomTemplate; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 72935B180F6B2D630085DD28 /* env */, + 7229CC5A0F6B324A004123C5 /* tremor */, + 72935B190F6B2D720085DD28 /* wolf */, + 32CA4F630368D1EE00C91783 /* wolf3d_Prefix.pch */, + 29B97316FDCFA39411CA2CEA /* main.m */, + 7229CE540F6C8CDE004123C5 /* gles_glue.c */, + 7229CE450F6C89F8004123C5 /* EAGLView.h */, + 7229CE460F6C89F8004123C5 /* EAGLView.m */, + 72B5FF380F7E5C3D00C8A372 /* hud.c */, + 7229CE480F6C89F8004123C5 /* wolf3dAppDelegate.h */, + 7229CE490F6C89F8004123C5 /* wolf3dAppDelegate.m */, + 7229CC8E0F6B3363004123C5 /* wolfiphone.h */, + 72A7E8F30F5F2001005B83C0 /* iphone_wolf.h */, + 72A7E8F60F5F2063005B83C0 /* iphone_menus.c */, + 43CF03090F56D5C200E4A23D /* iphone_loop.c */, + 43E8D2DF0F4FC61E003F09B2 /* iphone_main.c */, + 43AF6B940F996DA200777569 /* iphone_sys.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 43E341280F9BB4B6003C5D00 /* wolf3dlite_icon.png */, + 43CF02FE0F56974E00E4A23D /* Default.png */, + 43CF02EC0F56955F00E4A23D /* wolf3d_icon.png */, + 28AD733E0D9D9553002E5188 /* MainWindow.xib */, + 8D1107310486CEB800E47090 /* Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 720EBBAD0F82E0BB003F989A /* QuartzCore.framework */, + 4333CCE70F5CC23E00AE2B6F /* AudioToolbox.framework */, + 43E8D4DF0F51B48B003F09B2 /* OpenAL.framework */, + 28FD14FF0DC6FC520079059D /* OpenGLES.framework */, + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, + 1D30AB110D05D00D00671497 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 7229CC5A0F6B324A004123C5 /* tremor */ = { + isa = PBXGroup; + children = ( + 7229CC5B0F6B3295004123C5 /* asm_arm.h */, + 7229CC5C0F6B3295004123C5 /* backends.h */, + 7229CC5D0F6B3295004123C5 /* bitwise.c */, + 7229CC5E0F6B3295004123C5 /* block.c */, + 7229CC5F0F6B3295004123C5 /* block.h */, + 7229CC600F6B3295004123C5 /* codebook.c */, + 7229CC610F6B3295004123C5 /* codebook.h */, + 7229CC620F6B3295004123C5 /* codec_internal.h */, + 7229CC630F6B3295004123C5 /* config_types.h */, + 7229CC640F6B3295004123C5 /* floor0.c */, + 7229CC650F6B3295004123C5 /* floor1.c */, + 7229CC660F6B3295004123C5 /* framing.c */, + 7229CC670F6B3295004123C5 /* info.c */, + 7229CC680F6B3295004123C5 /* ivorbiscodec.h */, + 7229CC690F6B3295004123C5 /* ivorbisfile.h */, + 7229CC6B0F6B3295004123C5 /* lsp_lookup.h */, + 7229CC6C0F6B3295004123C5 /* mapping0.c */, + 7229CC6D0F6B3295004123C5 /* mdct.c */, + 7229CC6E0F6B3295004123C5 /* mdct.h */, + 7229CC6F0F6B3295004123C5 /* mdct_lookup.h */, + 7229CC700F6B3295004123C5 /* misc.h */, + 7229CC710F6B3295004123C5 /* ogg.h */, + 7229CC720F6B3295004123C5 /* os.h */, + 7229CC730F6B3295004123C5 /* os_types.h */, + 7229CC740F6B3295004123C5 /* registry.c */, + 7229CC750F6B3295004123C5 /* registry.h */, + 7229CC760F6B3295004123C5 /* res012.c */, + 7229CC770F6B3295004123C5 /* sharedbook.c */, + 7229CC780F6B3295004123C5 /* synthesis.c */, + 7229CC790F6B3295004123C5 /* vorbisfile.c */, + 7229CC7A0F6B3295004123C5 /* window.c */, + 7229CC7B0F6B3295004123C5 /* window.h */, + 7229CC7C0F6B3295004123C5 /* window_lookup.h */, + ); + name = tremor; + sourceTree = ""; + }; + 72935B180F6B2D630085DD28 /* env */ = { + isa = PBXGroup; + children = ( + 72935B1A0F6B2D9D0085DD28 /* angle.c */, + 72935B1B0F6B2D9D0085DD28 /* angle.h */, + 72935B1C0F6B2D9D0085DD28 /* app_def.h */, + 72935B1D0F6B2D9D0085DD28 /* arch.c */, + 72935B1E0F6B2D9D0085DD28 /* arch.h */, + 72935B230F6B2D9D0085DD28 /* cmd.c */, + 72935B240F6B2D9D0085DD28 /* cmd.h */, + 72935B250F6B2D9D0085DD28 /* com_string.c */, + 72935B260F6B2D9D0085DD28 /* com_string.h */, + 72935B270F6B2D9D0085DD28 /* common.c */, + 72935B280F6B2D9D0085DD28 /* common.h */, + 72935B290F6B2D9D0085DD28 /* common_utils.h */, + 72935B2A0F6B2D9D0085DD28 /* console.c */, + 72935B2B0F6B2D9D0085DD28 /* console.h */, + 72935B2D0F6B2D9D0085DD28 /* cvar.c */, + 72935B2E0F6B2D9D0085DD28 /* cvar.h */, + 72935B2F0F6B2D9D0085DD28 /* fileio.c */, + 72935B310F6B2D9D0085DD28 /* files.c */, + 72935B320F6B2D9D0085DD28 /* filestring.c */, + 72935B330F6B2D9D0085DD28 /* filestring.h */, + 72935B340F6B2D9D0085DD28 /* filesystem.h */, + 72935B350F6B2D9D0085DD28 /* font_manager.c */, + 72935B360F6B2D9D0085DD28 /* font_manager.h */, + 72935B370F6B2D9D0085DD28 /* glob.c */, + 72935B380F6B2D9D0085DD28 /* glob.h */, + 72935B3E0F6B2D9D0085DD28 /* math.c */, + 72935B3F0F6B2D9D0085DD28 /* matrix.c */, + 72935B400F6B2D9D0085DD28 /* matrix.h */, + 72935B410F6B2D9D0085DD28 /* memory.c */, + 72935B420F6B2D9D0085DD28 /* memory.h */, + 72935B450F6B2D9D0085DD28 /* mymath.h */, + 72935B460F6B2D9D0085DD28 /* myopengl.h */, + 72935B470F6B2D9D0085DD28 /* myopengl_extension.h */, + 72935B480F6B2D9D0085DD28 /* num_type.h */, + 72935B490F6B2D9D0085DD28 /* oggfile.c */, + 72935B4A0F6B2D9D0085DD28 /* oggfile.h */, + 72935B4B0F6B2D9D0085DD28 /* openal_binding.c */, + 72935B4C0F6B2D9D0085DD28 /* openal_binding.h */, + 72935B4D0F6B2D9D0085DD28 /* openal_main.c */, + 72935B500F6B2D9D0085DD28 /* opengl_draw.c */, + 72935B520F6B2D9D0085DD28 /* opengl_local.h */, + 72935B530F6B2D9D0085DD28 /* opengl_main.c */, + 72935B540F6B2D9D0085DD28 /* opengl_texture.c */, + 72935B560F6B2D9D0085DD28 /* random_number.c */, + 72935B570F6B2D9D0085DD28 /* random_number.h */, + 72935B580F6B2D9D0085DD28 /* renderer.h */, + 72935B590F6B2D9D0085DD28 /* share.c */, + 72935B5A0F6B2D9D0085DD28 /* sound.c */, + 72935B5B0F6B2D9D0085DD28 /* sound.h */, + 72935B5C0F6B2D9D0085DD28 /* sound_local.h */, + 72935B5D0F6B2D9D0085DD28 /* sound_sfx_id.c */, + 72935B5E0F6B2D9D0085DD28 /* sound_stream.c */, + 72935B610F6B2D9D0085DD28 /* texture_manager.c */, + 72935B620F6B2D9D0085DD28 /* texture_manager.h */, + 72935B630F6B2D9D0085DD28 /* tga.c */, + 72935B640F6B2D9D0085DD28 /* tga.h */, + 72935B650F6B2D9D0085DD28 /* timer.h */, + 72935B680F6B2D9D0085DD28 /* unix_file.c */, + 72935B6A0F6B2D9D0085DD28 /* unix_timer.c */, + 72935B6B0F6B2D9D0085DD28 /* vector.c */, + 72935B6C0F6B2D9D0085DD28 /* vector.h */, + 72935B6D0F6B2D9D0085DD28 /* video.h */, + 72935B6E0F6B2D9D0085DD28 /* wavfile.c */, + 72935B6F0F6B2D9D0085DD28 /* wavfile.h */, + 72935B720F6B2D9D0085DD28 /* zmem.c */, + 72935B730F6B2D9D0085DD28 /* zmem.h */, + ); + name = env; + sourceTree = ""; + }; + 72935B190F6B2D720085DD28 /* wolf */ = { + isa = PBXGroup; + children = ( + 7229CC240F6B3222004123C5 /* wolf_act_stat.h */, + 7229CC250F6B3222004123C5 /* wolf_actor_ai.c */, + 7229CC260F6B3222004123C5 /* wolf_actor_ai.h */, + 7229CC270F6B3222004123C5 /* wolf_actors.c */, + 7229CC280F6B3222004123C5 /* wolf_actors.h */, + 7229CC290F6B3222004123C5 /* wolf_ai_com.c */, + 7229CC2A0F6B3222004123C5 /* wolf_ai_com.h */, + 7229CC2B0F6B3222004123C5 /* wolf_areas.c */, + 7229CC2C0F6B3222004123C5 /* wolf_bj.c */, + 7229CC2D0F6B3222004123C5 /* wolf_bj.h */, + 7229CC2E0F6B3222004123C5 /* wolf_client_main.c */, + 7229CC300F6B3222004123C5 /* wolf_doors.c */, + 7229CC310F6B3222004123C5 /* wolf_level.c */, + 7229CC320F6B3222004123C5 /* wolf_level.h */, + 7229CC330F6B3222004123C5 /* wolf_local.h */, + 7229CC340F6B3222004123C5 /* wolf_main.c */, + 7229CC350F6B3222004123C5 /* wolf_math.c */, + 7229CC360F6B3222004123C5 /* wolf_math.h */, + 7229CC370F6B3222004123C5 /* wolf_opengl.c */, + 7229CC380F6B3222004123C5 /* wolf_player.c */, + 7229CC390F6B3222004123C5 /* wolf_player.h */, + 7229CC3A0F6B3222004123C5 /* wolf_powerups.c */, + 7229CC3B0F6B3222004123C5 /* wolf_powerups.h */, + 7229CC3C0F6B3222004123C5 /* wolf_pushwalls.c */, + 7229CC3D0F6B3222004123C5 /* wolf_raycast.c */, + 7229CC3E0F6B3222004123C5 /* wolf_raycast.h */, + 7229CC3F0F6B3222004123C5 /* wolf_renderer.c */, + 7229CC400F6B3222004123C5 /* wolf_renderer.h */, + 7229CC410F6B3222004123C5 /* wolf_sprites.c */, + 7229CC420F6B3222004123C5 /* wolf_sprites.h */, + 7229CC430F6B3222004123C5 /* wolf_sv_ccmds.c */, + 7229CC440F6B3222004123C5 /* wolf_weapon.c */, + ); + name = wolf; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1D6058900D05DD3D006BFB54 /* wolf3d */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "wolf3d" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + 435F41A90F532CA300887552 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = wolf3d; + productName = wolf3d; + productReference = 1D6058910D05DD3D006BFB54 /* wolf3dlite.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "wolf3d" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1D6058900D05DD3D006BFB54 /* wolf3d */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, + 43CF02ED0F56955F00E4A23D /* wolf3d_icon.png in Resources */, + 43CF02FF0F56974E00E4A23D /* Default.png in Resources */, + 4364BF3F0F5CB25900F29317 /* dist.plist in Resources */, + 43E341290F9BB4B6003C5D00 /* wolf3dlite_icon.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 435F41A90F532CA300887552 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = "/bin/sh -x"; + shellScript = "PBXCP=${DEVELOPER_DIR}/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp\nBASE=${PROJECT_DIR}/../../base\nDST=${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\n${PBXCP} -exclude .svn ${BASE} ${DST}\n# \"${PROJECT_DIR}/../../base\" \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nSCRIPTS=${PROJECT_DIR}/../../scripts\n/usr/bin/perl ${SCRIPTS}/scrubBase.pl ${BASE} ${DST}\n\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589B0D05DD56006BFB54 /* main.m in Sources */, + 43E8D2E10F4FC61E003F09B2 /* iphone_main.c in Sources */, + 43CF030A0F56D5C200E4A23D /* iphone_loop.c in Sources */, + 72A7E8F70F5F2063005B83C0 /* iphone_menus.c in Sources */, + 72935B740F6B2D9D0085DD28 /* angle.c in Sources */, + 72935B750F6B2D9D0085DD28 /* arch.c in Sources */, + 72935B790F6B2D9D0085DD28 /* cmd.c in Sources */, + 72935B7A0F6B2D9D0085DD28 /* com_string.c in Sources */, + 72935B7B0F6B2D9D0085DD28 /* common.c in Sources */, + 72935B7C0F6B2D9D0085DD28 /* console.c in Sources */, + 72935B7E0F6B2D9D0085DD28 /* cvar.c in Sources */, + 72935B7F0F6B2D9D0085DD28 /* fileio.c in Sources */, + 72935B800F6B2D9D0085DD28 /* files.c in Sources */, + 72935B810F6B2D9D0085DD28 /* filestring.c in Sources */, + 72935B820F6B2D9D0085DD28 /* font_manager.c in Sources */, + 72935B830F6B2D9D0085DD28 /* glob.c in Sources */, + 72935B870F6B2D9D0085DD28 /* math.c in Sources */, + 72935B880F6B2D9D0085DD28 /* matrix.c in Sources */, + 72935B890F6B2D9D0085DD28 /* memory.c in Sources */, + 72935B8B0F6B2D9D0085DD28 /* oggfile.c in Sources */, + 72935B8C0F6B2D9D0085DD28 /* openal_binding.c in Sources */, + 72935B8D0F6B2D9D0085DD28 /* openal_main.c in Sources */, + 72935B8F0F6B2D9D0085DD28 /* opengl_draw.c in Sources */, + 72935B910F6B2D9D0085DD28 /* opengl_main.c in Sources */, + 72935B920F6B2D9D0085DD28 /* opengl_texture.c in Sources */, + 72935B930F6B2D9D0085DD28 /* random_number.c in Sources */, + 72935B940F6B2D9D0085DD28 /* share.c in Sources */, + 72935B950F6B2D9D0085DD28 /* sound.c in Sources */, + 72935B960F6B2D9D0085DD28 /* sound_sfx_id.c in Sources */, + 72935B970F6B2D9D0085DD28 /* sound_stream.c in Sources */, + 72935B990F6B2D9D0085DD28 /* texture_manager.c in Sources */, + 72935B9A0F6B2D9D0085DD28 /* tga.c in Sources */, + 72935B9C0F6B2D9D0085DD28 /* unix_file.c in Sources */, + 72935B9E0F6B2D9D0085DD28 /* unix_timer.c in Sources */, + 72935B9F0F6B2D9D0085DD28 /* vector.c in Sources */, + 72935BA00F6B2D9D0085DD28 /* wavfile.c in Sources */, + 72935BA20F6B2D9D0085DD28 /* zmem.c in Sources */, + 7229CC460F6B3222004123C5 /* wolf_actor_ai.c in Sources */, + 7229CC470F6B3222004123C5 /* wolf_actors.c in Sources */, + 7229CC480F6B3222004123C5 /* wolf_ai_com.c in Sources */, + 7229CC490F6B3222004123C5 /* wolf_areas.c in Sources */, + 7229CC4A0F6B3222004123C5 /* wolf_bj.c in Sources */, + 7229CC4B0F6B3222004123C5 /* wolf_client_main.c in Sources */, + 7229CC4D0F6B3222004123C5 /* wolf_doors.c in Sources */, + 7229CC4E0F6B3222004123C5 /* wolf_level.c in Sources */, + 7229CC4F0F6B3222004123C5 /* wolf_main.c in Sources */, + 7229CC500F6B3222004123C5 /* wolf_math.c in Sources */, + 7229CC510F6B3222004123C5 /* wolf_opengl.c in Sources */, + 7229CC520F6B3222004123C5 /* wolf_player.c in Sources */, + 7229CC530F6B3222004123C5 /* wolf_powerups.c in Sources */, + 7229CC540F6B3222004123C5 /* wolf_pushwalls.c in Sources */, + 7229CC550F6B3222004123C5 /* wolf_raycast.c in Sources */, + 7229CC560F6B3222004123C5 /* wolf_renderer.c in Sources */, + 7229CC570F6B3222004123C5 /* wolf_sprites.c in Sources */, + 7229CC580F6B3222004123C5 /* wolf_sv_ccmds.c in Sources */, + 7229CC590F6B3222004123C5 /* wolf_weapon.c in Sources */, + 7229CC7D0F6B3295004123C5 /* bitwise.c in Sources */, + 7229CC7E0F6B3295004123C5 /* block.c in Sources */, + 7229CC7F0F6B3295004123C5 /* codebook.c in Sources */, + 7229CC800F6B3295004123C5 /* floor0.c in Sources */, + 7229CC810F6B3295004123C5 /* floor1.c in Sources */, + 7229CC820F6B3295004123C5 /* framing.c in Sources */, + 7229CC830F6B3295004123C5 /* info.c in Sources */, + 7229CC850F6B3295004123C5 /* mapping0.c in Sources */, + 7229CC860F6B3295004123C5 /* mdct.c in Sources */, + 7229CC870F6B3295004123C5 /* registry.c in Sources */, + 7229CC880F6B3295004123C5 /* res012.c in Sources */, + 7229CC890F6B3295004123C5 /* sharedbook.c in Sources */, + 7229CC8A0F6B3295004123C5 /* synthesis.c in Sources */, + 7229CC8B0F6B3295004123C5 /* vorbisfile.c in Sources */, + 7229CC8C0F6B3295004123C5 /* window.c in Sources */, + 7229CE4A0F6C89F8004123C5 /* EAGLView.m in Sources */, + 7229CE4C0F6C89F8004123C5 /* wolf3dAppDelegate.m in Sources */, + 7229CE550F6C8CDE004123C5 /* gles_glue.c in Sources */, + 72B5FF390F7E5C3D00C8A372 /* hud.c in Sources */, + 43AF6B950F996DA200777569 /* iphone_sys.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Cass Everitt"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = wolf3d_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = IPHONE; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = Info.plist; + PRODUCT_NAME = wolf3d; + PROFILE_PREFIX = nu.r3; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "94041F5C-2EDC-4F49-AF97-95ECE6BB398D"; + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Cass Everitt"; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = wolf3d_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = IPHONE; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = Info.plist; + PRODUCT_NAME = wolf3d; + PROFILE_PREFIX = nu.r3; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "94041F5C-2EDC-4F49-AF97-95ECE6BB398D"; + }; + name = Release; + }; + 431181700F994C5400FF9351 /* AdHocDistLite */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CODE_SIGN_ENTITLEMENTS = dist.plist; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Cass Everitt"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_THUMB_SUPPORT = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "E2E91433-8CD1-46DB-9DC5-B7E4C84FD1C2"; + SDKROOT = iphoneos2.0; + SYMROOT = ../../build; + }; + name = AdHocDistLite; + }; + 431181710F994C5400FF9351 /* AdHocDistLite */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Cass Everitt"; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = wolf3d_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + LITE, + IPHONE, + ); + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = Info.plist; + PRODUCT_NAME = wolf3dlite; + PROFILE_PREFIX = nu.r3; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "42086F40-083A-4573-8902-E1E628A229ED"; + }; + name = AdHocDistLite; + }; + 4364BF480F5CB27300F29317 /* AdHocDist */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CODE_SIGN_ENTITLEMENTS = dist.plist; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Cass Everitt"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_THUMB_SUPPORT = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "E2E91433-8CD1-46DB-9DC5-B7E4C84FD1C2"; + SDKROOT = iphoneos2.0; + SYMROOT = ../../build; + }; + name = AdHocDist; + }; + 4364BF490F5CB27300F29317 /* AdHocDist */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Cass Everitt"; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = wolf3d_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = IPHONE; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = Info.plist; + PRODUCT_NAME = wolf3d; + PROFILE_PREFIX = nu.r3; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "42086F40-083A-4573-8902-E1E628A229ED"; + }; + name = AdHocDist; + }; + 43AE7CA40F61EC4E00B2F562 /* ReleaseLite */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_THUMB_SUPPORT = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = iphoneos2.0; + SYMROOT = ../../build; + }; + name = ReleaseLite; + }; + 43AE7CA50F61EC4E00B2F562 /* ReleaseLite */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Cass Everitt"; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = wolf3d_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + LITE, + IPHONE, + ); + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = Info.plist; + PRODUCT_NAME = wolf3dlite; + PROFILE_PREFIX = nu.r3; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "94041F5C-2EDC-4F49-AF97-95ECE6BB398D"; + }; + name = ReleaseLite; + }; + 43AE7CAE0F61FC9200B2F562 /* DebugLite */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = NO; + SDKROOT = iphoneos2.0; + SYMROOT = ../../build; + }; + name = DebugLite; + }; + 43AE7CAF0F61FC9200B2F562 /* DebugLite */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Cass Everitt"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = wolf3d_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + LITE, + IPHONE, + ); + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = Info.plist; + PRODUCT_NAME = wolf3dlite; + PROFILE_PREFIX = nu.r3; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "94041F5C-2EDC-4F49-AF97-95ECE6BB398D"; + }; + name = DebugLite; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = NO; + SDKROOT = iphoneos2.0; + SYMROOT = ../../build; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_THUMB_SUPPORT = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = iphoneos2.0; + SYMROOT = ../../build; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "wolf3d" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 43AE7CAF0F61FC9200B2F562 /* DebugLite */, + 1D6058950D05DD3E006BFB54 /* Release */, + 43AE7CA50F61EC4E00B2F562 /* ReleaseLite */, + 4364BF490F5CB27300F29317 /* AdHocDist */, + 431181710F994C5400FF9351 /* AdHocDistLite */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "wolf3d" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + 43AE7CAE0F61FC9200B2F562 /* DebugLite */, + C01FCF5008A954540054247B /* Release */, + 43AE7CA40F61EC4E00B2F562 /* ReleaseLite */, + 4364BF480F5CB27300F29317 /* AdHocDist */, + 431181700F994C5400FF9351 /* AdHocDistLite */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/wolf3d/code/iphone/wolf3dAppDelegate.h b/wolf3d/code/iphone/wolf3dAppDelegate.h new file mode 100644 index 0000000..96e6653 --- /dev/null +++ b/wolf3d/code/iphone/wolf3dAppDelegate.h @@ -0,0 +1,39 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +#import +#import + + +@class EAGLView; + +@interface wolf3dAppDelegate : NSObject { + UIWindow *window; + EAGLView *glView; + int lastAccelUpdateMsec; +} + +@property (nonatomic, retain) IBOutlet UIWindow *window; +@property (nonatomic, retain) IBOutlet EAGLView *glView; + +- (void)restartAccelerometerIfNeeded; + +@end + diff --git a/wolf3d/code/iphone/wolf3dAppDelegate.m b/wolf3d/code/iphone/wolf3dAppDelegate.m new file mode 100644 index 0000000..4c030e6 --- /dev/null +++ b/wolf3d/code/iphone/wolf3dAppDelegate.m @@ -0,0 +1,127 @@ +/* + + Copyright (C) 2009 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + +#import "wolf3dAppDelegate.h" +#import "EAGLView.h" +#import +#include "../wolfiphone.h" + +@interface UIApplication (Private) + +- (void)setSystemVolumeHUDEnabled:(BOOL)enabled forAudioCategory:(NSString *)category; +- (void)setSystemVolumeHUDEnabled:(BOOL)enabled; + +@end + + +char iphoneDocDirectory[1024]; +char iphoneAppDirectory[1024]; + + +void SysIPhoneVibrate() { + AudioServicesPlaySystemSound( kSystemSoundID_Vibrate ); +} + +@implementation wolf3dAppDelegate + +@synthesize window; +@synthesize glView; + + +- (void)applicationDidFinishLaunching:(UIApplication *)application { + application.statusBarHidden = YES; + application.statusBarOrientation = UIInterfaceOrientationLandscapeLeft; + + // get the documents directory, where we will write configs and save games + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *documentsDirectory = [paths objectAtIndex:0]; + [documentsDirectory getCString: iphoneDocDirectory + maxLength: sizeof( iphoneDocDirectory ) - 1 + encoding: NSASCIIStringEncoding ]; + + // get the app directory, where our data files live + paths = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES); + NSString *appDirectory = documentsDirectory = [paths objectAtIndex:0]; + [appDirectory getCString: iphoneAppDirectory + maxLength: sizeof( iphoneAppDirectory ) - 1 + encoding: NSASCIIStringEncoding ]; + + // start the flow of accelerometer events + UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer]; + accelerometer.delegate = self; + accelerometer.updateInterval = 0.01; + + // do all the game startup work + iphoneStartup(); +} + + +- (void)applicationWillResignActive:(UIApplication *)application { +} + + +- (void)applicationDidBecomeActive:(UIApplication *)application { +} + +- (void)applicationWillTerminate:(UIApplication *)application { + iphoneShutdown(); +} + +- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { + // wolf3d:foo should launch wolf3d now... next, add useful URL parameter encoding + return YES; +} + + +- (void)dealloc { + [window release]; + [glView release]; + [super dealloc]; +} + +- (void)restartAccelerometerIfNeeded { + + // I have no idea why this seems to happen sometimes... + if ( Sys_Milliseconds() - lastAccelUpdateMsec > 1000 ) { + static int count; + if ( ++count < 100 ) { + printf( "Restarting accelerometer updates.\n" ); + } + UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer]; + accelerometer.delegate = self; + accelerometer.updateInterval = 0.01; + } +} + +- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration +{ + float acc[4]; + acc[0] = acceleration.x; + acc[1] = acceleration.y; + acc[2] = acceleration.z; + acc[3] = acceleration.timestamp; + iphoneTiltEvent( acc ); + lastAccelUpdateMsec = Sys_Milliseconds(); +} + +@end + + + diff --git a/wolf3d/code/iphone/wolf3d_Prefix.pch b/wolf3d/code/iphone/wolf3d_Prefix.pch new file mode 100644 index 0000000..58ef796 --- /dev/null +++ b/wolf3d/code/iphone/wolf3d_Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'wolf3d' target in the 'wolf3d' project +// + +#ifdef __OBJC__ +#import +#import +#endif diff --git a/wolf3d/code/iphone/wolf3d_icon.png b/wolf3d/code/iphone/wolf3d_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..956a45a58e792de4b7948965e365d8d0726bf473 GIT binary patch literal 5935 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 REd>Ao002ovPDHLkV1hlXfaw4L literal 0 HcmV?d00001 diff --git a/wolf3d/code/iphone/wolf3dlite_icon.png b/wolf3d/code/iphone/wolf3dlite_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..290e79c0a9a9f4ca8f3a8c18f7b5f3ecb3640532 GIT binary patch literal 7126 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 M07*qoM6N<$f>lcl$N&HU literal 0 HcmV?d00001 diff --git a/wolf3d/code/wolf/wolf_act_stat.h b/wolf3d/code/wolf/wolf_act_stat.h new file mode 100644 index 0000000..a3b6022 --- /dev/null +++ b/wolf3d/code/wolf/wolf_act_stat.h @@ -0,0 +1,1619 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_act_stat.h: Wolfenstein3-D entity management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + + +*/ + +#ifndef __WOLF_ACT_STAT_H__ +#define __WOLF_ACT_STAT_H__ + +#include "wolf_bj.h" +#include "wolf_actor_ai.h" +#include "wolf_ai_com.h" +#include "wolf_sprites.h" + +#define ST_INFO_NULL { 0, SPR_DEMO, 0, NULL, NULL, st_dead } + +/* + 1-if object can be rotated, 0 if one sprite for every direction + base object's state texture if rotation is on facing player + after how man frames change state to .next_state + what to do every frame + what to do once per state + next state +*/ + +stateinfo objstate[ NUMENEMIES ][ NUMSTATES ] = +{ + // en_guard, + { + { 1, SPR_GRD_S_1, 0, T_Stand, NULL, st_stand }, // st_stand, + + { 1, SPR_GRD_W1_1, 20, T_Path, NULL, st_path1s }, // st_path1, + { 1, SPR_GRD_W1_1, 5, NULL, NULL, st_path2 }, // st_path1s, + { 1, SPR_GRD_W2_1, 15, T_Path, NULL, st_path3 }, // st_path2, + { 1, SPR_GRD_W3_1, 20, T_Path, NULL, st_path3s }, // st_path3, + { 1, SPR_GRD_W3_1, 5, NULL, NULL, st_path4 }, // st_path3s, + { 1, SPR_GRD_W4_1, 15, T_Path, NULL, st_path1 }, // st_path4, + + { 0, SPR_GRD_PAIN_1, 10, NULL, NULL, st_chase1},// st_pain, + { 0, SPR_GRD_PAIN_2, 10, NULL, NULL, st_chase1},// st_pain1, + + { 0, SPR_GRD_SHOOT1, 20, NULL, NULL, st_shoot2},// st_shoot1, + { 0, SPR_GRD_SHOOT2, 20, NULL, T_Shoot,st_shoot3},// st_shoot2, + { 0, SPR_GRD_SHOOT3, 20, NULL, NULL, st_chase1},// st_shoot3, + + { 0, SPR_DEMO, 0, NULL, NULL, st_chase1 }, // st_shoot4, + { 0, SPR_DEMO, 0, NULL, NULL, st_chase1 }, // st_shoot5, + { 0, SPR_DEMO, 0, NULL, NULL, st_chase1 }, // st_shoot6, + { 0, SPR_DEMO, 0, NULL, NULL, st_chase1 }, // st_shoot7, + { 0, SPR_DEMO, 0, NULL, NULL, st_chase1 }, // st_shoot8, + { 0, SPR_DEMO, 0, NULL, NULL, st_chase1 }, // st_shoot9, + + { 1, SPR_GRD_W1_1, 10, T_Chase, NULL, st_chase1s }, // st_chase1, + { 1, SPR_GRD_W1_1, 3, NULL, NULL, st_chase2 }, // st_chase1s, + { 1, SPR_GRD_W2_1, 8, T_Chase, NULL, st_chase3 }, // st_chase2, + { 1, SPR_GRD_W3_1, 10, T_Chase, NULL, st_chase3s }, // st_chase3, + { 1, SPR_GRD_W3_1, 3, NULL, NULL, st_chase4 }, // st_chase3s, + { 1, SPR_GRD_W4_1, 8, T_Chase, NULL, st_chase1 }, // st_chase4, + + { 0, SPR_GRD_DIE_1, 15, NULL, A_DeathScream,st_die2 }, // st_die1, + { 0, SPR_GRD_DIE_2, 15, NULL, NULL, st_die3 }, // st_die2, + { 0, SPR_GRD_DIE_3, 15, NULL, NULL, st_dead }, // st_die3, + + { 0, SPR_DEMO, 0, NULL, NULL, st_dead }, // st_die4, + { 0, SPR_DEMO, 0, NULL, NULL, st_dead }, // st_die5, + { 0, SPR_DEMO, 0, NULL, NULL, st_dead }, // st_die6, + { 0, SPR_DEMO, 0, NULL, NULL, st_dead }, // st_die7, + { 0, SPR_DEMO, 0, NULL, NULL, st_dead }, // st_die8, + { 0, SPR_DEMO, 0, NULL, NULL, st_dead }, // st_die9, + + { 0, SPR_GRD_DEAD, 0, NULL, NULL, st_dead } // st_dead + }, + // en_officer, + { + {1, SPR_OFC_S_1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {1, SPR_OFC_W1_1, 20, T_Path, NULL, st_path1s},// st_path1, + {1, SPR_OFC_W1_1, 5, NULL , NULL, st_path2}, // st_path1s, + {1, SPR_OFC_W2_1, 15, T_Path, NULL, st_path3}, // st_path2, + {1, SPR_OFC_W3_1, 20, T_Path, NULL, st_path3s},// st_path3, + {1, SPR_OFC_W3_1, 5, NULL , NULL, st_path4}, // st_path3s, + {1, SPR_OFC_W4_1, 15, T_Path, NULL, st_path1}, // st_path4, + + {0, SPR_OFC_PAIN_1, 10, NULL, NULL, st_chase1},// st_pain, + {0, SPR_OFC_PAIN_2, 10, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_OFC_SHOOT1, 6, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_OFC_SHOOT2, 20, NULL, T_Shoot, st_shoot3},// st_shoot2, + {0, SPR_OFC_SHOOT3, 10, NULL, NULL, st_chase1},// st_shoot3, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot4, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot5, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {1, SPR_OFC_W1_1, 10, T_Chase, NULL, st_chase1s},// st_chase1, + {1, SPR_OFC_W1_1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {1, SPR_OFC_W2_1, 8, T_Chase, NULL, st_chase3}, // st_chase2, + {1, SPR_OFC_W3_1, 10, T_Chase, NULL, st_chase3s},// st_chase3, + {1, SPR_OFC_W3_1, 3, NULL , NULL, st_chase4}, // st_chase3s, + {1, SPR_OFC_W4_1, 8, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_OFC_DIE_1, 11, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_OFC_DIE_2, 11, NULL, NULL, st_die3},// st_die2, + {0, SPR_OFC_DIE_3, 11, NULL, NULL, st_dead},// st_die3, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_OFC_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_ss, + { + {1, SPR_SS_S_1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {1, SPR_SS_W1_1, 20, T_Path, NULL, st_path1s},// st_path1, + {1, SPR_SS_W1_1, 5, NULL , NULL, st_path2}, // st_path1s, + {1, SPR_SS_W2_1, 15, T_Path, NULL, st_path3}, // st_path2, + {1, SPR_SS_W3_1, 20, T_Path, NULL, st_path3s},// st_path3, + {1, SPR_SS_W3_1, 5, NULL , NULL, st_path4}, // st_path3s, + {1, SPR_SS_W4_1, 15, T_Path, NULL, st_path1}, // st_path4, + + {0, SPR_SS_PAIN_1, 10, NULL, NULL, st_chase1},// st_pain, + {0, SPR_SS_PAIN_2, 10, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_SS_SHOOT1, 20, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_SS_SHOOT2, 20, NULL, T_Shoot, st_shoot3},// st_shoot2, + {0, SPR_SS_SHOOT3, 10, NULL, NULL, st_shoot4},// st_shoot3, + {0, SPR_SS_SHOOT2, 10, NULL, T_Shoot, st_shoot5},// st_shoot4, + {0, SPR_SS_SHOOT3, 10, NULL, NULL, st_shoot6},// st_shoot5, + {0, SPR_SS_SHOOT2, 10, NULL, T_Shoot, st_shoot7},// st_shoot6, + {0, SPR_SS_SHOOT3, 10, NULL, NULL, st_shoot8},// st_shoot7, + {0, SPR_SS_SHOOT2, 10, NULL, T_Shoot, st_shoot9},// st_shoot8, + {0, SPR_SS_SHOOT3, 10, NULL, NULL, st_chase1},// st_shoot9, + + {1, SPR_SS_W1_1, 10, T_Chase, NULL, st_chase1s},// st_chase1, + {1, SPR_SS_W1_1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {1, SPR_SS_W2_1, 8, T_Chase, NULL, st_chase3}, // st_chase2, + {1, SPR_SS_W3_1, 10, T_Chase, NULL, st_chase3s},// st_chase3, + {1, SPR_SS_W3_1, 3, NULL , NULL, st_chase4}, // st_chase3s, + {1, SPR_SS_W4_1, 8, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_SS_DIE_1, 15, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_SS_DIE_2, 15, NULL, NULL, st_die3},// st_die2, + {0, SPR_SS_DIE_3, 15, NULL, NULL, st_dead},// st_die3, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_SS_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_dog, + { + {0, SPR_DEMO, 0, NULL, NULL, st_stand}, // st_stand, + + {1, SPR_DOG_W1_1, 20, T_Path, NULL, st_path1s},// st_path1, + {1, SPR_DOG_W1_1, 5, NULL , NULL, st_path2}, // st_path1s, + {1, SPR_DOG_W2_1, 15, T_Path, NULL, st_path3}, // st_path2, + {1, SPR_DOG_W3_1, 20, T_Path, NULL, st_path3s},// st_path3, + {1, SPR_DOG_W3_1, 5, NULL , NULL, st_path4}, // st_path3s, + {1, SPR_DOG_W4_1, 15, T_Path, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_DOG_JUMP1, 10, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_DOG_JUMP2, 10, NULL, T_Bite, st_shoot3},// st_shoot2, + {0, SPR_DOG_JUMP3, 10, NULL, NULL, st_shoot4},// st_shoot3, + {0, SPR_DOG_JUMP1, 10, NULL, NULL, st_shoot5},// st_shoot4, + {0, SPR_DOG_W1_1, 10, NULL, NULL, st_chase1},// st_shoot5, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {1, SPR_DOG_W1_1, 10, T_DogChase, NULL, st_chase1s},// st_chase1, + {1, SPR_DOG_W1_1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {1, SPR_DOG_W2_1, 8, T_DogChase, NULL, st_chase3}, // st_chase2, + {1, SPR_DOG_W3_1, 10, T_DogChase, NULL, st_chase3s},// st_chase3, + {1, SPR_DOG_W3_1, 3, NULL , NULL, st_chase4}, // st_chase3s, + {1, SPR_DOG_W4_1, 8, T_DogChase, NULL, st_chase1}, // st_chase4, + + {0, SPR_DOG_DIE_1, 15, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_DOG_DIE_2, 15, NULL, NULL, st_die3},// st_die2, + {0, SPR_DOG_DIE_3, 15, NULL, NULL, st_dead},// st_die3, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_DOG_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_boss, + { + {0, SPR_BOSS_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_BOSS_SHOOT1, 30, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_BOSS_SHOOT2, 10, NULL, T_Shoot, st_shoot3},// st_shoot2, + {0, SPR_BOSS_SHOOT3, 10, NULL, T_Shoot, st_shoot4},// st_shoot3, + {0, SPR_BOSS_SHOOT2, 10, NULL, T_Shoot, st_shoot5},// st_shoot4, + {0, SPR_BOSS_SHOOT3, 10, NULL, T_Shoot, st_shoot6},// st_shoot5, + {0, SPR_BOSS_SHOOT2, 10, NULL, T_Shoot, st_shoot7},// st_shoot6, + {0, SPR_BOSS_SHOOT3, 10, NULL, T_Shoot, st_shoot8},// st_shoot7, + {0, SPR_BOSS_SHOOT1, 10, NULL, NULL, st_chase1},// st_shoot8, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_BOSS_W1, 10, T_Chase, NULL, st_chase1s},// st_chase1, + {0, SPR_BOSS_W1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {0, SPR_BOSS_W2, 8, T_Chase, NULL, st_chase3}, // st_chase2, + {0, SPR_BOSS_W3, 10, T_Chase, NULL, st_chase3s},// st_chase3, + {0, SPR_BOSS_W3, 3, NULL , NULL, st_chase4}, // st_chase3s, + {0, SPR_BOSS_W4, 8, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_BOSS_DIE1, 15, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_BOSS_DIE2, 15, NULL, NULL, st_die3},// st_die2, + {0, SPR_BOSS_DIE3, 15, NULL, NULL, st_dead},// st_die3, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_BOSS_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_schabbs, + { + {0, SPR_SCHABB_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_SCHABB_SHOOT1, 30, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_SCHABB_SHOOT2, 10, NULL, T_Launch, st_chase1},// st_shoot2, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot3, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot4, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot5, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_SCHABB_W1, 10, T_BossChase, NULL, st_chase1s},// st_chase1, + {0, SPR_SCHABB_W1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {0, SPR_SCHABB_W2, 8, T_BossChase, NULL, st_chase3}, // st_chase2, + {0, SPR_SCHABB_W3, 10, T_BossChase, NULL, st_chase3s},// st_chase3, + {0, SPR_SCHABB_W3, 3, NULL , NULL, st_chase4}, // st_chase3s, + {0, SPR_SCHABB_W4, 8, T_BossChase, NULL, st_chase1}, // st_chase4, + + {0, SPR_SCHABB_W1, 10, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_SCHABB_W1, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_SCHABB_DIE1, 10, NULL, NULL, st_die4},// st_die3, + {0, SPR_SCHABB_DIE2, 10, NULL, NULL, st_die5},// st_die4, + {0, SPR_SCHABB_DIE3, 10, NULL, NULL, st_dead},// st_die5, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_SCHABB_DEAD, 0, NULL, A_StartDeathCam, st_dead} // st_dead + }, + // en_fake, + { + {0, SPR_FAKE_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_FAKE_SHOOT, 8, NULL, T_Launch, st_shoot2},// st_shoot1, + {0, SPR_FAKE_SHOOT, 8, NULL, T_Launch, st_shoot3},// st_shoot2, + {0, SPR_FAKE_SHOOT, 8, NULL, T_Launch, st_shoot4},// st_shoot3, + {0, SPR_FAKE_SHOOT, 8, NULL, T_Launch, st_shoot5},// st_shoot4, + {0, SPR_FAKE_SHOOT, 8, NULL, T_Launch, st_shoot6},// st_shoot4, + {0, SPR_FAKE_SHOOT, 8, NULL, T_Launch, st_shoot7},// st_shoot4, + {0, SPR_FAKE_SHOOT, 8, NULL, T_Launch, st_shoot8},// st_shoot4, + {0, SPR_FAKE_SHOOT, 8, NULL, T_Launch, st_shoot9},// st_shoot4, + {0, SPR_FAKE_SHOOT, 8, NULL, NULL, st_chase1},// st_shoot4, + + {0, SPR_FAKE_W1, 10, T_Fake, NULL, st_chase1s},// st_chase1, + {0, SPR_FAKE_W1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {0, SPR_FAKE_W2, 8, T_Fake, NULL, st_chase3}, // st_chase2, + {0, SPR_FAKE_W3, 10, T_Fake, NULL, st_chase3s},// st_chase3, + {0, SPR_FAKE_W3, 3, NULL , NULL, st_chase4}, // st_chase3s, + {0, SPR_FAKE_W4, 8, T_Fake, NULL, st_chase1}, // st_chase4, + + {0, SPR_FAKE_DIE1, 10, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_FAKE_DIE2, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_FAKE_DIE3, 10, NULL, NULL, st_die4},// st_die3, + {0, SPR_FAKE_DIE4, 10, NULL, NULL, st_die5},// st_die4, + {0, SPR_FAKE_DIE5, 10, NULL, NULL, st_dead},// st_die5, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_FAKE_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_hitler, (mecha) + { + {0, SPR_MECHA_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_MECHA_SHOOT1, 30, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_MECHA_SHOOT2, 10, NULL, T_Shoot, st_shoot3},// st_shoot2, + {0, SPR_MECHA_SHOOT3, 10, NULL, T_Shoot, st_shoot4},// st_shoot3, + {0, SPR_MECHA_SHOOT2, 10, NULL, T_Shoot, st_shoot5},// st_shoot4, + {0, SPR_MECHA_SHOOT3, 10, NULL, T_Shoot, st_shoot6},// st_shoot5, + {0, SPR_MECHA_SHOOT2, 10, NULL, T_Shoot, st_chase1},// st_shoot6, + + {0, SPR_DEMO, 0, NULL, NULL, st_shoot8},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot9},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_MECHA_W1, 10, T_Chase, A_MechaSound, st_chase1s},// st_chase1, + {0, SPR_MECHA_W1, 6, NULL , NULL, st_chase2}, // st_chase1s, + {0, SPR_MECHA_W2, 8, T_Chase, NULL, st_chase3}, // st_chase2, + {0, SPR_MECHA_W3, 10, T_Chase, A_MechaSound, st_chase3s},// st_chase3, + {0, SPR_MECHA_W3, 6, NULL , NULL, st_chase4}, // st_chase3s, + {0, SPR_MECHA_W4, 8, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_MECHA_DIE1, 10, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_MECHA_DIE2, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_MECHA_DIE3, 10, NULL, A_HitlerMorph, st_dead},// st_die3, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_MECHA_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_hitler, + { + {0, SPR_DEMO, 0, NULL, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_HITLER_SHOOT1, 30, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_HITLER_SHOOT2, 10, NULL, T_Shoot, st_shoot3},// st_shoot2, + {0, SPR_HITLER_SHOOT3, 10, NULL, T_Shoot, st_shoot4},// st_shoot3, + {0, SPR_HITLER_SHOOT2, 10, NULL, T_Shoot, st_shoot5},// st_shoot4, + {0, SPR_HITLER_SHOOT3, 10, NULL, T_Shoot, st_shoot6},// st_shoot5, + {0, SPR_HITLER_SHOOT2, 10, NULL, T_Shoot, st_chase1},// st_shoot6, + + {0, SPR_DEMO, 0, NULL, NULL, st_shoot8},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot9},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_HITLER_W1, 6, T_Chase, NULL, st_chase1s}, // st_chase1, + {0, SPR_HITLER_W1, 4, NULL , NULL, st_chase2}, // st_chase1s, + {0, SPR_HITLER_W2, 2, T_Chase, NULL, st_chase3}, // st_chase2, + {0, SPR_HITLER_W3, 6, T_Chase, NULL, st_chase3s}, // st_chase3, + {0, SPR_HITLER_W3, 4, NULL , NULL, st_chase4}, // st_chase3s, + {0, SPR_HITLER_W4, 2, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_HITLER_W1, 1, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_HITLER_W1, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_HITLER_DIE1, 10, NULL, NULL, st_dead},// st_die3, + {0, SPR_HITLER_DIE2, 10, NULL, NULL, st_dead},// st_die4, + {0, SPR_HITLER_DIE3, 10, NULL, NULL, st_dead},// st_die5, + {0, SPR_HITLER_DIE4, 10, NULL, NULL, st_dead},// st_die6, + {0, SPR_HITLER_DIE5, 10, NULL, NULL, st_dead},// st_die7, + {0, SPR_HITLER_DIE6, 10, NULL, NULL, st_dead},// st_die8, + {0, SPR_HITLER_DIE7, 10, NULL, NULL, st_dead},// st_die9, + + {0, SPR_HITLER_DEAD, 0, NULL, A_StartDeathCam, st_dead} // st_dead + }, + // en_mutant, + { + {1, SPR_MUT_S_1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {1, SPR_MUT_W1_1, 20, T_Path, NULL, st_path1s},// st_path1, + {1, SPR_MUT_W1_1, 5, NULL , NULL, st_path2}, // st_path1s, + {1, SPR_MUT_W2_1, 15, T_Path, NULL, st_path3}, // st_path2, + {1, SPR_MUT_W3_1, 20, T_Path, NULL, st_path3s},// st_path3, + {1, SPR_MUT_W3_1, 5, NULL , NULL, st_path4}, // st_path3s, + {1, SPR_MUT_W4_1, 15, T_Path, NULL, st_path1}, // st_path4, + + {0, SPR_MUT_PAIN_1, 10, NULL, NULL, st_chase1},// st_pain, + {0, SPR_MUT_PAIN_2, 10, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_MUT_SHOOT1, 6, NULL, T_Shoot, st_shoot2}, // st_shoot1, + {0, SPR_MUT_SHOOT2, 20, NULL, NULL, st_shoot3}, // st_shoot2, + {0, SPR_MUT_SHOOT3, 10, NULL, T_Shoot, st_shoot4}, // st_shoot3, + {0, SPR_MUT_SHOOT4, 20, NULL, NULL, st_chase1}, // st_shoot4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot5, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {1, SPR_MUT_W1_1, 10, T_Chase, NULL, st_chase1s},// st_chase1, + {1, SPR_MUT_W1_1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {1, SPR_MUT_W2_1, 8, T_Chase, NULL, st_chase3}, // st_chase2, + {1, SPR_MUT_W3_1, 10, T_Chase, NULL, st_chase3s},// st_chase3, + {1, SPR_MUT_W3_1, 3, NULL , NULL, st_chase4}, // st_chase3s, + {1, SPR_MUT_W4_1, 8, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_MUT_DIE_1, 7, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_MUT_DIE_2, 7, NULL, NULL, st_die3},// st_die2, + {0, SPR_MUT_DIE_3, 7, NULL, NULL, st_die4},// st_die3, + {0, SPR_MUT_DIE_4, 7, NULL, NULL, st_dead},// st_die4, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_MUT_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_blinky, + { + {0, SPR_DEMO, 0, NULL, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_DEMO, 0, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot3},// st_shoot2, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot4},// st_shoot3, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot5},// st_shoot4, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot6},// st_shoot5, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot8},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot9},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_BLINKY_W1, 10, T_Ghosts, NULL, st_chase2},// st_chase1, + {0, SPR_DEMO, 0, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_BLINKY_W2, 10, T_Ghosts, NULL, st_chase1},// st_chase2, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase3s},// st_chase3, + {0, SPR_DEMO, 0, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1}, // st_chase4, + + {0, SPR_DEMO, 10, NULL, NULL, st_die2},// st_die1, + {0, SPR_DEMO, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_DEMO, 10, NULL, NULL, st_dead},// st_die3, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead} // st_dead + }, + // en_clyde, + { + {0, SPR_DEMO, 0, NULL, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_DEMO, 0, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot3},// st_shoot2, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot4},// st_shoot3, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot5},// st_shoot4, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot6},// st_shoot5, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot8},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot9},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_CLYDE_W1, 10, T_Ghosts, NULL, st_chase2},// st_chase1, + {0, SPR_DEMO, 0, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_CLYDE_W2, 10, T_Ghosts, NULL, st_chase1},// st_chase2, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase3s},// st_chase3, + {0, SPR_DEMO, 0, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1}, // st_chase4, + + {0, SPR_DEMO, 10, NULL, NULL, st_die2},// st_die1, + {0, SPR_DEMO, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_DEMO, 10, NULL, NULL, st_dead},// st_die3, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead} // st_dead + }, + // en_pinky, + { + {0, SPR_DEMO, 0, NULL, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_DEMO, 0, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot3},// st_shoot2, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot4},// st_shoot3, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot5},// st_shoot4, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot6},// st_shoot5, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot8},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot9},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_PINKY_W1, 10, T_Ghosts, NULL, st_chase2},// st_chase1, + {0, SPR_DEMO, 0, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_PINKY_W2, 10, T_Ghosts, NULL, st_chase1},// st_chase2, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase3s},// st_chase3, + {0, SPR_DEMO, 0, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1}, // st_chase4, + + {0, SPR_DEMO, 10, NULL, NULL, st_die2},// st_die1, + {0, SPR_DEMO, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_DEMO, 10, NULL, NULL, st_dead},// st_die3, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead} // st_dead + }, + // en_inky, + { + {0, SPR_DEMO, 0, NULL, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_DEMO, 0, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot3},// st_shoot2, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot4},// st_shoot3, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot5},// st_shoot4, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot6},// st_shoot5, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot8},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_shoot9},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_INKY_W1, 10, T_Ghosts, NULL, st_chase2},// st_chase1, + {0, SPR_DEMO, 0, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_INKY_W2, 10, T_Ghosts, NULL, st_chase1},// st_chase2, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase3s},// st_chase3, + {0, SPR_DEMO, 0, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1}, // st_chase4, + + {0, SPR_DEMO, 10, NULL, NULL, st_die2},// st_die1, + {0, SPR_DEMO, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_DEMO, 10, NULL, NULL, st_dead},// st_die3, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead} // st_dead + }, + // en_gretel, + { + {0, SPR_GRETEL_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_GRETEL_SHOOT1, 30, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_GRETEL_SHOOT2, 10, NULL, T_Shoot, st_shoot3},// st_shoot2, + {0, SPR_GRETEL_SHOOT3, 10, NULL, T_Shoot, st_shoot4},// st_shoot3, + {0, SPR_GRETEL_SHOOT2, 10, NULL, T_Shoot, st_shoot5},// st_shoot4, + {0, SPR_GRETEL_SHOOT3, 10, NULL, T_Shoot, st_shoot6},// st_shoot5, + {0, SPR_GRETEL_SHOOT2, 10, NULL, T_Shoot, st_shoot7},// st_shoot6, + {0, SPR_GRETEL_SHOOT3, 10, NULL, T_Shoot, st_shoot8},// st_shoot7, + {0, SPR_GRETEL_SHOOT1, 10, NULL, NULL, st_chase1},// st_shoot8, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_GRETEL_W1, 10, T_Chase, NULL, st_chase1s},// st_chase1, + {0, SPR_GRETEL_W1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {0, SPR_GRETEL_W2, 8, T_Chase, NULL, st_chase3}, // st_chase2, + {0, SPR_GRETEL_W3, 10, T_Chase, NULL, st_chase3s},// st_chase3, + {0, SPR_GRETEL_W3, 3, NULL , NULL, st_chase4}, // st_chase3s, + {0, SPR_GRETEL_W4, 8, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_GRETEL_DIE1, 15, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_GRETEL_DIE2, 15, NULL, NULL, st_die3},// st_die2, + {0, SPR_GRETEL_DIE3, 15, NULL, NULL, st_dead},// st_die3, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die4, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die5, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_GRETEL_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_gift, + { + {0, SPR_GIFT_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_GIFT_SHOOT1, 30, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_GIFT_SHOOT2, 10, NULL, T_Launch, st_chase1},// st_shoot2, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot3, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot4, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot5, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot6, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_GIFT_W1, 10, T_BossChase, NULL, st_chase1s},// st_chase1, + {0, SPR_GIFT_W1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {0, SPR_GIFT_W2, 8, T_BossChase, NULL, st_chase3}, // st_chase2, + {0, SPR_GIFT_W3, 10, T_BossChase, NULL, st_chase3s},// st_chase3, + {0, SPR_GIFT_W3, 3, NULL , NULL, st_chase4}, // st_chase3s, + {0, SPR_GIFT_W4, 8, T_BossChase, NULL, st_chase1}, // st_chase4, + + {0, SPR_GIFT_W1, 10, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_GIFT_W1, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_GIFT_DIE1, 10, NULL, NULL, st_die4},// st_die3, + {0, SPR_GIFT_DIE2, 10, NULL, NULL, st_die5},// st_die4, + {0, SPR_GIFT_DIE3, 10, NULL, NULL, st_dead},// st_die5, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_GIFT_DEAD, 0, NULL, A_StartDeathCam, st_dead} // st_dead + }, + // en_fat, + { + {0, SPR_FAT_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + {0, SPR_DEMO, 0, NULL, NULL, st_path1s},// st_path1, + {0, SPR_DEMO, 0, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_DEMO, 0, NULL, NULL, st_path3}, // st_path2, + {0, SPR_DEMO, 0, NULL, NULL, st_path3s},// st_path3, + {0, SPR_DEMO, 0, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_DEMO, 0, NULL, NULL, st_path1}, // st_path4, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_pain1, + + {0, SPR_FAT_SHOOT1, 30, NULL, NULL, st_shoot2},// st_shoot1, + {0, SPR_FAT_SHOOT2, 10, NULL, T_Launch, st_shoot3},// st_shoot2, + {0, SPR_FAT_SHOOT3, 10, NULL, T_Shoot, st_shoot4},// st_shoot3, + {0, SPR_FAT_SHOOT4, 10, NULL, T_Shoot, st_shoot5},// st_shoot4, + {0, SPR_FAT_SHOOT3, 10, NULL, T_Shoot, st_shoot6},// st_shoot5, + {0, SPR_FAT_SHOOT4, 10, NULL, T_Shoot, st_chase1},// st_shoot6, + + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot7, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot8, + {0, SPR_DEMO, 0, NULL, NULL, st_chase1},// st_shoot9, + + {0, SPR_FAT_W1, 10, T_BossChase, NULL, st_chase1s},// st_chase1, + {0, SPR_FAT_W1, 3, NULL , NULL, st_chase2}, // st_chase1s, + {0, SPR_FAT_W2, 8, T_BossChase, NULL, st_chase3}, // st_chase2, + {0, SPR_FAT_W3, 10, T_BossChase, NULL, st_chase3s},// st_chase3, + {0, SPR_FAT_W3, 3, NULL , NULL, st_chase4}, // st_chase3s, + {0, SPR_FAT_W4, 8, T_BossChase, NULL, st_chase1}, // st_chase4, + + {0, SPR_FAT_W1, 10, NULL, A_DeathScream, st_die2},// st_die1, + {0, SPR_FAT_W1, 10, NULL, NULL, st_die3},// st_die2, + {0, SPR_FAT_DIE1, 10, NULL, NULL, st_die4},// st_die3, + {0, SPR_FAT_DIE2, 10, NULL, NULL, st_die5},// st_die4, + {0, SPR_FAT_DIE3, 10, NULL, NULL, st_dead},// st_die5, + + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die6, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die7, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die8, + {0, SPR_DEMO, 0, NULL, NULL, st_dead},// st_die9, + + {0, SPR_FAT_DEAD, 0, NULL, A_StartDeathCam, st_dead} // st_dead + }, +// --- Projectiles + // en_needle, + { + ST_INFO_NULL, // st_stand, + + {0, SPR_HYPO1, 6, T_Projectile, NULL, st_path2}, // st_path1, + ST_INFO_NULL, // st_path1s, + {0, SPR_HYPO2, 6, T_Projectile, NULL, st_path3}, // st_path2, + {0, SPR_HYPO3, 6, T_Projectile, NULL, st_path4}, // st_path3, + ST_INFO_NULL, // st_path3s, + {0, SPR_HYPO4, 6, T_Projectile, NULL, st_path1}, // st_path4, + + ST_INFO_NULL,// st_pain, + ST_INFO_NULL,// st_pain1, + + ST_INFO_NULL,// st_shoot1, + ST_INFO_NULL,// st_shoot2, + ST_INFO_NULL,// st_shoot3, + ST_INFO_NULL,// st_shoot4, + ST_INFO_NULL,// st_shoot5, + ST_INFO_NULL,// st_shoot6, + + ST_INFO_NULL,// st_shoot7, + ST_INFO_NULL,// st_shoot8, + ST_INFO_NULL,// st_shoot9, + + ST_INFO_NULL,// st_chase1, + ST_INFO_NULL, // st_chase1s, + ST_INFO_NULL, // st_chase2, + ST_INFO_NULL,// st_chase3, + ST_INFO_NULL, // st_chase3s, + ST_INFO_NULL, // st_chase4, + + ST_INFO_NULL, // st_die1, + ST_INFO_NULL, // st_die2, + ST_INFO_NULL, // st_die3, + ST_INFO_NULL,// st_die4, + ST_INFO_NULL,// st_die5, + + ST_INFO_NULL,// st_die6, + ST_INFO_NULL,// st_die7, + ST_INFO_NULL,// st_die8, + ST_INFO_NULL,// st_die9, + + ST_INFO_NULL // st_dead + }, + // en_fire, + { + ST_INFO_NULL, // st_stand, + + {0, SPR_FIRE1, 6, NULL, T_Projectile, st_path2}, // st_path1, + ST_INFO_NULL, // st_path1s, + {0, SPR_FIRE2, 6, NULL, T_Projectile, st_path1}, // st_path2, + ST_INFO_NULL, // st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL,// st_pain, + ST_INFO_NULL,// st_pain1, + + ST_INFO_NULL,// st_shoot1, + ST_INFO_NULL,// st_shoot2, + ST_INFO_NULL,// st_shoot3, + ST_INFO_NULL,// st_shoot4, + ST_INFO_NULL,// st_shoot5, + ST_INFO_NULL,// st_shoot6, + + ST_INFO_NULL,// st_shoot7, + ST_INFO_NULL,// st_shoot8, + ST_INFO_NULL,// st_shoot9, + + ST_INFO_NULL,// st_chase1, + ST_INFO_NULL, // st_chase1s, + ST_INFO_NULL, // st_chase2, + ST_INFO_NULL,// st_chase3, + ST_INFO_NULL, // st_chase3s, + ST_INFO_NULL, // st_chase4, + + ST_INFO_NULL, // st_die1, + ST_INFO_NULL, // st_die2, + ST_INFO_NULL, // st_die3, + ST_INFO_NULL,// st_die4, + ST_INFO_NULL,// st_die5, + + ST_INFO_NULL,// st_die6, + ST_INFO_NULL,// st_die7, + ST_INFO_NULL,// st_die8, + ST_INFO_NULL,// st_die9, + + ST_INFO_NULL // st_dead + }, + // en_rocket, + { + {1, SPR_ROCKET_1, 3, T_Projectile, A_Smoke, st_stand}, // st_stand, + + ST_INFO_NULL,// st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL,// st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL,// st_pain, + ST_INFO_NULL,// st_pain1, + + ST_INFO_NULL,// st_shoot1, + ST_INFO_NULL,// st_shoot2, + ST_INFO_NULL,// st_shoot3, + ST_INFO_NULL,// st_shoot4, + ST_INFO_NULL,// st_shoot5, + ST_INFO_NULL,// st_shoot6, + + ST_INFO_NULL,// st_shoot7, + ST_INFO_NULL,// st_shoot8, + ST_INFO_NULL,// st_shoot9, + + ST_INFO_NULL,// st_chase1, + ST_INFO_NULL, // st_chase1s, + ST_INFO_NULL, // st_chase2, + ST_INFO_NULL,// st_chase3, + ST_INFO_NULL, // st_chase3s, + ST_INFO_NULL, // st_chase4, + + {0, SPR_BOOM_1, 6, NULL, NULL, st_die2}, // st_die1, + {0, SPR_BOOM_2, 6, NULL, NULL, st_die3}, // st_die2, + {0, SPR_BOOM_3, 6, NULL, NULL, st_remove}, // st_die3, + ST_INFO_NULL,// st_die4, + ST_INFO_NULL,// st_die5, + + ST_INFO_NULL,// st_die6, + ST_INFO_NULL,// st_die7, + ST_INFO_NULL,// st_die8, + ST_INFO_NULL,// st_die9, + + ST_INFO_NULL // st_dead + }, + // en_smoke, + { + ST_INFO_NULL, // st_stand, + + ST_INFO_NULL, // st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL, // st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL, // st_pain, + ST_INFO_NULL, // st_pain1, + + ST_INFO_NULL, // st_shoot1, + ST_INFO_NULL, // st_shoot2, + ST_INFO_NULL, // st_shoot3, + ST_INFO_NULL, // st_shoot4, + ST_INFO_NULL, // st_shoot5, + ST_INFO_NULL, // st_shoot6, + + ST_INFO_NULL, // st_shoot7, + ST_INFO_NULL, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + ST_INFO_NULL, // st_chase1, + ST_INFO_NULL, // st_chase1s, + ST_INFO_NULL, // st_chase2, + ST_INFO_NULL, // st_chase3, + ST_INFO_NULL, // st_chase3s, + ST_INFO_NULL, // st_chase4, + + {0, SPR_SMOKE_1, 3, NULL, NULL, st_die2}, // st_die1, + {0, SPR_SMOKE_2, 3, NULL, NULL, st_die3}, // st_die2, + {0, SPR_SMOKE_3, 3, NULL, NULL, st_die4}, // st_die3, + {0, SPR_SMOKE_4, 3, NULL, NULL, st_remove}, // st_die4, + ST_INFO_NULL, // st_die5, + + ST_INFO_NULL, // st_die6, + ST_INFO_NULL, // st_die7, + ST_INFO_NULL, // st_die8, + ST_INFO_NULL, // st_die9, + + ST_INFO_NULL // st_dead + }, + // en_bj, + { + ST_INFO_NULL, // st_stand, + + {0, SPR_BJ_W1, 12, T_BJRun, NULL, st_path1s}, // st_path1, + {0, SPR_BJ_W1, 3, NULL, NULL, st_path2}, // st_path1s, + {0, SPR_BJ_W2, 8, T_BJRun, NULL, st_path3}, // st_path2, + {0, SPR_BJ_W3, 12, T_BJRun, NULL, st_path3s}, // st_path3, + {0, SPR_BJ_W3, 3, NULL, NULL, st_path4}, // st_path3s, + {0, SPR_BJ_W4, 8, T_BJRun, NULL, st_path1}, // st_path4, + + ST_INFO_NULL, // st_pain, + ST_INFO_NULL, // st_pain1, + + {0, SPR_BJ_JUMP1, 14, T_BJJump, NULL, st_shoot2}, // st_shoot1, + {0, SPR_BJ_JUMP2, 14, T_BJJump, T_BJYell, st_shoot3}, // st_shoot2, + {0, SPR_BJ_JUMP3, 14, T_BJJump, NULL, st_shoot4}, // st_shoot3, + {0, SPR_BJ_JUMP4,300, NULL, T_BJDone, st_shoot4}, // st_shoot4, + ST_INFO_NULL, // st_shoot5, + ST_INFO_NULL, // st_shoot6, + + ST_INFO_NULL, // st_shoot7, + ST_INFO_NULL, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + ST_INFO_NULL, // st_chase1, + ST_INFO_NULL, // st_chase1s, + ST_INFO_NULL, // st_chase2, + ST_INFO_NULL, // st_chase3, + ST_INFO_NULL, // st_chase3s, + ST_INFO_NULL, // st_chase4, + + ST_INFO_NULL, // st_die1, + ST_INFO_NULL, // st_die2, + ST_INFO_NULL, // st_die3, + ST_INFO_NULL, // st_die4, + ST_INFO_NULL, // st_die5, + + ST_INFO_NULL, // st_die6, + ST_INFO_NULL, // st_die7, + ST_INFO_NULL, // st_die8, + ST_INFO_NULL, // st_die9, + + ST_INFO_NULL // st_dead + }, + +// --- Spear of destiny! + // en_spark, + { + ST_INFO_NULL, // st_stand, + + {0, SPR_SPARK1, 6, T_Projectile, NULL, st_path2}, // st_path1, + ST_INFO_NULL, // st_path1s, + {0, SPR_SPARK2, 6, T_Projectile, NULL, st_path3}, // st_path2, + {0, SPR_SPARK3, 6, T_Projectile, NULL, st_path4}, // st_path3, + ST_INFO_NULL, // st_path3s, + {0, SPR_SPARK4, 6, T_Projectile, NULL, st_path1}, // st_path4, + + ST_INFO_NULL,// st_pain, + ST_INFO_NULL,// st_pain1, + + ST_INFO_NULL,// st_shoot1, + ST_INFO_NULL,// st_shoot2, + ST_INFO_NULL,// st_shoot3, + ST_INFO_NULL,// st_shoot4, + ST_INFO_NULL,// st_shoot5, + ST_INFO_NULL,// st_shoot6, + + ST_INFO_NULL,// st_shoot7, + ST_INFO_NULL,// st_shoot8, + ST_INFO_NULL,// st_shoot9, + + ST_INFO_NULL,// st_chase1, + ST_INFO_NULL, // st_chase1s, + ST_INFO_NULL, // st_chase2, + ST_INFO_NULL,// st_chase3, + ST_INFO_NULL, // st_chase3s, + ST_INFO_NULL, // st_chase4, + + ST_INFO_NULL, // st_die1, + ST_INFO_NULL, // st_die2, + ST_INFO_NULL, // st_die3, + ST_INFO_NULL,// st_die4, + ST_INFO_NULL,// st_die5, + + ST_INFO_NULL,// st_die6, + ST_INFO_NULL,// st_die7, + ST_INFO_NULL,// st_die8, + ST_INFO_NULL,// st_die9, + + ST_INFO_NULL // st_dead + }, + // en_hrocket, + { + {1, SPR_HROCKET_1, 3, T_Projectile, A_Smoke, st_stand}, // st_stand, + + ST_INFO_NULL,// st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL,// st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL,// st_pain, + ST_INFO_NULL,// st_pain1, + + ST_INFO_NULL,// st_shoot1, + ST_INFO_NULL,// st_shoot2, + ST_INFO_NULL,// st_shoot3, + ST_INFO_NULL,// st_shoot4, + ST_INFO_NULL,// st_shoot5, + ST_INFO_NULL,// st_shoot6, + + ST_INFO_NULL,// st_shoot7, + ST_INFO_NULL,// st_shoot8, + ST_INFO_NULL,// st_shoot9, + + ST_INFO_NULL,// st_chase1, + ST_INFO_NULL, // st_chase1s, + ST_INFO_NULL, // st_chase2, + ST_INFO_NULL,// st_chase3, + ST_INFO_NULL, // st_chase3s, + ST_INFO_NULL, // st_chase4, + + {0, SPR_HBOOM_1, 6, NULL, NULL, st_die2}, // st_die1, + {0, SPR_HBOOM_2, 6, NULL, NULL, st_die3}, // st_die2, + {0, SPR_HBOOM_3, 6, NULL, NULL, st_remove}, // st_die3, + ST_INFO_NULL,// st_die4, + ST_INFO_NULL,// st_die5, + + ST_INFO_NULL,// st_die6, + ST_INFO_NULL,// st_die7, + ST_INFO_NULL,// st_die8, + ST_INFO_NULL,// st_die9, + + ST_INFO_NULL // st_dead + }, + // en_hsmoke, + { + ST_INFO_NULL, // st_stand, + + ST_INFO_NULL, // st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL, // st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL, // st_pain, + ST_INFO_NULL, // st_pain1, + + ST_INFO_NULL, // st_shoot1, + ST_INFO_NULL, // st_shoot2, + ST_INFO_NULL, // st_shoot3, + ST_INFO_NULL, // st_shoot4, + ST_INFO_NULL, // st_shoot5, + ST_INFO_NULL, // st_shoot6, + + ST_INFO_NULL, // st_shoot7, + ST_INFO_NULL, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + ST_INFO_NULL, // st_chase1, + ST_INFO_NULL, // st_chase1s, + ST_INFO_NULL, // st_chase2, + ST_INFO_NULL, // st_chase3, + ST_INFO_NULL, // st_chase3s, + ST_INFO_NULL, // st_chase4, + + {0, SPR_HSMOKE_1, 3, NULL, NULL, st_die2}, // st_die1, + {0, SPR_HSMOKE_2, 3, NULL, NULL, st_die3}, // st_die2, + {0, SPR_HSMOKE_3, 3, NULL, NULL, st_die4}, // st_die3, + {0, SPR_HSMOKE_4, 3, NULL, NULL, st_remove}, // st_die4, + ST_INFO_NULL, // st_die5, + + ST_INFO_NULL, // st_die6, + ST_INFO_NULL, // st_die7, + ST_INFO_NULL, // st_die8, + ST_INFO_NULL, // st_die9, + + ST_INFO_NULL // st_dead + }, + // en_spectre, + { + ST_INFO_NULL, // st_stand, + + {0, SPR_SPECTRE_W1, 10, T_Stand, NULL, st_path2}, // st_path1, + ST_INFO_NULL, // st_path1s, + {0, SPR_SPECTRE_W2, 10, T_Stand, NULL, st_path3}, // st_path2, + {0, SPR_SPECTRE_W3, 10, T_Stand, NULL, st_path4}, // st_path3, + ST_INFO_NULL, // st_path3s, + {0, SPR_SPECTRE_W4, 10, T_Stand, NULL, st_path1}, // st_path4, + + ST_INFO_NULL, // st_pain, + ST_INFO_NULL, // st_pain1, + + ST_INFO_NULL, // st_shoot1, + ST_INFO_NULL, // st_shoot2, + ST_INFO_NULL, // st_shoot3, + ST_INFO_NULL, // st_shoot4, + ST_INFO_NULL, // st_shoot5, + ST_INFO_NULL, // st_shoot6, + + ST_INFO_NULL, // st_shoot7, + ST_INFO_NULL, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + {0, SPR_SPECTRE_W1, 10, T_Ghosts, NULL, st_chase2}, // st_chase1, + ST_INFO_NULL, // st_chase1s, + {0, SPR_SPECTRE_W2, 10, T_Ghosts, NULL, st_chase3}, // st_chase2, + {0, SPR_SPECTRE_W3, 10, T_Ghosts, NULL, st_chase4}, // st_chase3, + ST_INFO_NULL, // st_chase3s, + {0, SPR_SPECTRE_W4, 10, T_Ghosts, NULL, st_chase1}, // st_chase4, + + {0, SPR_SPECTRE_F1, 10, NULL, NULL, st_die2}, // st_die1, + {0, SPR_SPECTRE_F2, 10, NULL, NULL, st_die3}, // st_die2, + {0, SPR_SPECTRE_F3, 10, NULL, NULL, st_die4}, // st_die3, + {0, SPR_SPECTRE_F4, 300, NULL, NULL, st_die5}, // st_die4, + {0, SPR_SPECTRE_F4, 10, NULL, A_Dormant, st_die5}, // st_die5, + + ST_INFO_NULL, // st_die6, + ST_INFO_NULL, // st_die7, + ST_INFO_NULL, // st_die8, + ST_INFO_NULL, // st_die9, + + ST_INFO_NULL // st_dead + }, + // en_angel, + { + {0, SPR_ANGEL_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + ST_INFO_NULL, // st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL, // st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + {0, SPR_ANGEL_TIRED1, 40, NULL, A_Breathing, st_pain1}, // st_pain, + {0, SPR_ANGEL_TIRED2, 40, NULL, NULL, st_shoot4}, // st_pain1, + + {0, SPR_ANGEL_SHOOT1, 10, NULL, A_StartAttack, st_shoot2}, // st_shoot1, + {0, SPR_ANGEL_SHOOT2, 20, NULL, T_Launch, st_shoot3}, // st_shoot2, + {0, SPR_ANGEL_SHOOT1, 10, NULL, A_Relaunch, st_shoot2}, // st_shoot3, + + {0, SPR_ANGEL_TIRED1, 40, NULL, A_Breathing, st_shoot5}, // st_shoot4, + {0, SPR_ANGEL_TIRED2, 40, NULL, NULL, st_shoot6}, // st_shoot5, + {0, SPR_ANGEL_TIRED1, 40, NULL, A_Breathing, st_shoot7}, // st_shoot6, + {0, SPR_ANGEL_TIRED2, 40, NULL, NULL, st_shoot8}, // st_shoot7, + {0, SPR_ANGEL_TIRED1, 40, NULL, A_Breathing, st_chase1}, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + {0, SPR_ANGEL_W1, 10, T_BossChase, NULL, st_chase1s}, // st_chase1, + {0, SPR_ANGEL_W1, 3, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_ANGEL_W2, 8, T_BossChase, NULL, st_chase3}, // st_chase2, + {0, SPR_ANGEL_W3, 10, T_BossChase, NULL, st_chase3s}, // st_chase3, + {0, SPR_ANGEL_W3, 3, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_ANGEL_W4, 8, T_BossChase, NULL, st_chase1}, // st_chase4, + + {0, SPR_ANGEL_W1, 1, NULL, A_DeathScream, st_die2}, // st_die1, + {0, SPR_ANGEL_W1, 1, NULL, NULL, st_die3}, // st_die2, + {0, SPR_ANGEL_DIE1, 10, NULL, A_Slurpie, st_die4}, // st_die3, + {0, SPR_ANGEL_DIE2, 10, NULL, NULL, st_die5}, // st_die4, + {0, SPR_ANGEL_DIE3, 10, NULL, NULL, st_die6}, // st_die5, + {0, SPR_ANGEL_DIE4, 10, NULL, NULL, st_die7}, // st_die6, + {0, SPR_ANGEL_DIE5, 10, NULL, NULL, st_die8}, // st_die7, + {0, SPR_ANGEL_DIE6, 10, NULL, NULL, st_die9}, // st_die8, + {0, SPR_ANGEL_DIE7, 10, NULL, NULL, st_dead}, // st_die9, + + {0, SPR_ANGEL_DEAD, 130, NULL, A_Victory, st_dead} // st_dead + }, + // en_trans, + { + {0, SPR_TRANS_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + ST_INFO_NULL, // st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL, // st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL, // st_pain, + ST_INFO_NULL, // st_pain1, + + {0, SPR_TRANS_SHOOT1, 30, NULL, NULL, st_shoot2}, // st_shoot1, + {0, SPR_TRANS_SHOOT2, 10, NULL, T_Shoot, st_shoot3}, // st_shoot2, + {0, SPR_TRANS_SHOOT3, 10, NULL, T_Shoot, st_shoot4}, // st_shoot3, + {0, SPR_TRANS_SHOOT2, 10, NULL, T_Shoot, st_shoot5}, // st_shoot4, + {0, SPR_TRANS_SHOOT3, 10, NULL, T_Shoot, st_shoot6}, // st_shoot5, + {0, SPR_TRANS_SHOOT2, 10, NULL, T_Shoot, st_shoot7}, // st_shoot6, + {0, SPR_TRANS_SHOOT3, 10, NULL, T_Shoot, st_shoot8}, // st_shoot7, + {0, SPR_TRANS_SHOOT1, 10, NULL, NULL, st_chase1}, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + {0, SPR_TRANS_W1, 10, T_Chase, NULL, st_chase1s}, // st_chase1, + {0, SPR_TRANS_W1, 3, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_TRANS_W2, 8, T_Chase, NULL, st_chase3}, // st_chase2, + {0, SPR_TRANS_W3, 10, T_Chase, NULL, st_chase3s}, // st_chase3, + {0, SPR_TRANS_W3, 3, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_TRANS_W4, 8, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_TRANS_W1, 1, NULL, A_DeathScream, st_die2}, // st_die1, + {0, SPR_TRANS_W1, 1, NULL, NULL, st_die3}, // st_die2, + {0, SPR_TRANS_DIE1, 15, NULL, NULL, st_die4}, // st_die3, + {0, SPR_TRANS_DIE2, 15, NULL, NULL, st_die5}, // st_die4, + {0, SPR_TRANS_DIE3, 15, NULL, NULL, st_dead}, // st_die5, + ST_INFO_NULL, // st_die6, + ST_INFO_NULL, // st_die7, + ST_INFO_NULL, // st_die8, + ST_INFO_NULL, // st_die9, + + {0, SPR_TRANS_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_uber, + { + {0, SPR_UBER_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + ST_INFO_NULL, // st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL, // st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL, // st_pain, + ST_INFO_NULL, // st_pain1, + + {0, SPR_UBER_SHOOT1, 30, NULL, NULL, st_shoot2}, // st_shoot1, + {0, SPR_UBER_SHOOT2, 12, NULL, T_UShoot, st_shoot3}, // st_shoot2, + {0, SPR_UBER_SHOOT3, 12, NULL, T_UShoot, st_shoot4}, // st_shoot3, + {0, SPR_UBER_SHOOT4, 12, NULL, T_UShoot, st_shoot5}, // st_shoot4, + {0, SPR_UBER_SHOOT3, 12, NULL, T_UShoot, st_shoot6}, // st_shoot5, + {0, SPR_UBER_SHOOT2, 12, NULL, T_UShoot, st_shoot7}, // st_shoot6, + {0, SPR_UBER_SHOOT1, 12, NULL, NULL, st_chase1}, // st_shoot7, + ST_INFO_NULL, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + {0, SPR_UBER_W1, 10, T_Chase, NULL, st_chase1s}, // st_chase1, + {0, SPR_UBER_W1, 3, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_UBER_W2, 8, T_Chase, NULL, st_chase3}, // st_chase2, + {0, SPR_UBER_W3, 10, T_Chase, NULL, st_chase3s}, // st_chase3, + {0, SPR_UBER_W3, 3, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_UBER_W4, 8, T_Chase, NULL, st_chase1}, // st_chase4, + + {0, SPR_UBER_W1, 1, NULL, A_DeathScream, st_die2}, // st_die1, + {0, SPR_UBER_W1, 1, NULL, NULL, st_die3}, // st_die2, + {0, SPR_UBER_DIE1, 15, NULL, NULL, st_die4}, // st_die3, + {0, SPR_UBER_DIE2, 15, NULL, NULL, st_die5}, // st_die4, + {0, SPR_UBER_DIE3, 15, NULL, NULL, st_die6}, // st_die5, + {0, SPR_UBER_DIE4, 15, NULL, NULL, st_dead}, // st_die6, + ST_INFO_NULL, // st_die7, + ST_INFO_NULL, // st_die8, + ST_INFO_NULL, // st_die9, + + {0, SPR_UBER_DEAD, 0, NULL, NULL, st_dead} // st_dead + }, + // en_will, + { + {0, SPR_WILL_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + ST_INFO_NULL, // st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL, // st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL, // st_pain, + ST_INFO_NULL, // st_pain1, + + {0, SPR_WILL_SHOOT1, 30, NULL, NULL, st_shoot2}, // st_shoot1, + {0, SPR_WILL_SHOOT2, 10, NULL, T_Launch, st_shoot3}, // st_shoot2, + {0, SPR_WILL_SHOOT3, 10, NULL, T_Shoot, st_shoot4}, // st_shoot3, + {0, SPR_WILL_SHOOT4, 10, NULL, T_Shoot, st_shoot5}, // st_shoot4, + {0, SPR_WILL_SHOOT3, 10, NULL, T_Shoot, st_shoot6}, // st_shoot5, + {0, SPR_WILL_SHOOT4, 10, NULL, T_Shoot, st_chase1}, // st_shoot6, + ST_INFO_NULL, // st_shoot7, + ST_INFO_NULL, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + {0, SPR_WILL_W1, 10, T_BossChase, NULL, st_chase1s}, // st_chase1, + {0, SPR_WILL_W1, 3, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_WILL_W2, 8, T_BossChase, NULL, st_chase3}, // st_chase2, + {0, SPR_WILL_W3, 10, T_BossChase, NULL, st_chase3s}, // st_chase3, + {0, SPR_WILL_W3, 3, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_WILL_W4, 8, T_BossChase, NULL, st_chase1}, // st_chase4, + + {0, SPR_WILL_W1, 1, NULL, A_DeathScream, st_die2}, // st_die1, + {0, SPR_WILL_W1, 10, NULL, NULL, st_die3}, // st_die2, + {0, SPR_WILL_DIE1, 10, NULL, NULL, st_die4}, // st_die3, + {0, SPR_WILL_DIE2, 10, NULL, NULL, st_die5}, // st_die4, + {0, SPR_WILL_DIE3, 10, NULL, NULL, st_dead}, // st_die5, + ST_INFO_NULL, // st_die6, + ST_INFO_NULL, // st_die7, + ST_INFO_NULL, // st_die8, + ST_INFO_NULL, // st_die9, + + {0, SPR_WILL_DEAD, 20, NULL, NULL, st_dead} // st_dead + }, + // en_death + { + {0, SPR_DEATH_W1, 0, T_Stand, NULL, st_stand}, // st_stand, + + ST_INFO_NULL, // st_path1, + ST_INFO_NULL, // st_path1s, + ST_INFO_NULL, // st_path2, + ST_INFO_NULL, // st_path3, + ST_INFO_NULL, // st_path3s, + ST_INFO_NULL, // st_path4, + + ST_INFO_NULL, // st_pain, + ST_INFO_NULL, // st_pain1, + + {0, SPR_DEATH_SHOOT1, 30, NULL, NULL, st_shoot2}, // st_shoot1, + {0, SPR_DEATH_SHOOT2, 10, NULL, T_Launch, st_shoot3}, // st_shoot2, + {0, SPR_DEATH_SHOOT4, 10, NULL, T_Shoot, st_shoot4}, // st_shoot3, + {0, SPR_DEATH_SHOOT3, 10, NULL, T_Launch, st_shoot5}, // st_shoot4, + {0, SPR_DEATH_SHOOT4, 10, NULL, T_Shoot, st_chase1}, // st_shoot5, + ST_INFO_NULL, // st_shoot6, + ST_INFO_NULL, // st_shoot7, + ST_INFO_NULL, // st_shoot8, + ST_INFO_NULL, // st_shoot9, + + {0, SPR_DEATH_W1, 10, T_BossChase, NULL, st_chase1s}, // st_chase1, + {0, SPR_DEATH_W1, 3, NULL, NULL, st_chase2}, // st_chase1s, + {0, SPR_DEATH_W2, 8, T_BossChase, NULL, st_chase3}, // st_chase2, + {0, SPR_DEATH_W3, 10, T_BossChase, NULL, st_chase3s}, // st_chase3, + {0, SPR_DEATH_W3, 3, NULL, NULL, st_chase4}, // st_chase3s, + {0, SPR_DEATH_W4, 8, T_BossChase, NULL, st_chase1}, // st_chase4, + + {0, SPR_DEATH_W1, 1, NULL, A_DeathScream, st_die2}, // st_die1, + {0, SPR_DEATH_W1, 10, NULL, NULL, st_die3}, // st_die2, + {0, SPR_DEATH_DIE1, 10, NULL, NULL, st_die4}, // st_die3, + {0, SPR_DEATH_DIE2, 10, NULL, NULL, st_die5}, // st_die4, + {0, SPR_DEATH_DIE3, 10, NULL, NULL, st_die6}, // st_die5, + {0, SPR_DEATH_DIE4, 10, NULL, NULL, st_die7}, // st_die6, + {0, SPR_DEATH_DIE5, 10, NULL, NULL, st_die7}, // st_die7, + {0, SPR_DEATH_DIE6, 10, NULL, NULL, st_die7}, // st_die8, + ST_INFO_NULL, // st_die9, + + {0, SPR_DEATH_DEAD, 0, NULL, NULL, st_dead} // st_dead + } + +}; + +int starthitpoints[ 4 ][ NUMENEMIES ] = +// +// BABY MODE +// +{ + {25, // guards + 50, // officer + 100, // SS + 1, // dogs + 850, // Hans + 850, // Schabbs + 200, // fake hitler + 800, // mecha hitler + 500, // hitler + 45, // mutants + 25, // ghosts + 25, // ghosts + 25, // ghosts + 25, // ghosts + + 850, // Gretel + 850, // Gift + 850, // Fat + +// --- Projectiles + 0, // en_needle, + 0, // en_fire, + 0, // en_rocket, + 0, // en_smoke, + 100, // en_bj, +// --- Spear of destiny! + 0, // en_spark, + 0, // en_hrocket, + 0, // en_hsmoke, + + 5, // en_spectre, + 1450, // en_angel, + 850, // en_trans, + 1050, // en_uber, + 950, // en_will, + 1250 // en_death + }, + // + // DON'T HURT ME MODE + // + {25, // guards + 50, // officer + 100, // SS + 1, // dogs + 950, // Hans + 950, // Schabbs + 300, // fake hitler + 950, // mecha hitler + 700, // hitler + 55, // mutants + 25, // ghosts + 25, // ghosts + 25, // ghosts + 25, // ghosts + + 950, // Gretel + 950, // Gift + 950, // Fat + +// --- Projectiles + 0, // en_needle, + 0, // en_fire, + 0, // en_rocket, + 0, // en_smoke, + 100, // en_bj, +// --- Spear of destiny! + 0, // en_spark, + 0, // en_hrocket, + 0, // en_hsmoke, + + 10, // en_spectre, + 1550, // en_angel, + 950, // en_trans, + 1150, // en_uber, + 1050, // en_will, + 1350 // en_death + }, + // + // BRING 'EM ON MODE + // + {25, // guards + 50, // officer + 100, // SS + 1, // dogs + + 1050, // Hans + 1550, // Schabbs + 400, // fake hitler + 1050, // mecha hitler + 800, // hitler + + 55, // mutants + 25, // ghosts + 25, // ghosts + 25, // ghosts + 25, // ghosts + + 1050, // Gretel + 1050, // Gift + 1050, // Fat + +// --- Projectiles + 0, // en_needle, + 0, // en_fire, + 0, // en_rocket, + 0, // en_smoke, + 100, // en_bj, +// --- Spear of destiny! + 0, // en_spark, + 0, // en_hrocket, + 0, // en_hsmoke, + + 15, // en_spectre, + 1650, // en_angel, + 1050, // en_trans, + 1250, // en_uber, + 1150, // en_will, + 1450 // en_death + }, + // + // DEATH INCARNATE MODE + // + {25, // guards + 50, // officer + 100, // SS + 1, // dogs + + 1200, // Hans + 2400, // Schabbs + 500, // fake hitler + 1200, // mecha hitler + 900, // hitler + + 65, // mutants + 25, // ghosts + 25, // ghosts + 25, // ghosts + 25, // ghosts + + 1200, // Gretel + 1200, // Gift + 1200, // Fat + +// --- Projectiles + 0, // en_needle, + 0, // en_fire, + 0, // en_rocket, + 0, // en_smoke, + 100, // en_bj, +// --- Spear of destiny! + 0, // en_spark, + 0, // en_hrocket, + 0, // en_hsmoke, + + 25, // en_spectre, + 2000, // en_angel, + 1200, // en_trans, + 1400, // en_uber, + 1300, // en_will, + 1600 // en_death + } +}; + + +#endif /* __WOLF_ACT_STAT_H__ */ + diff --git a/wolf3d/code/wolf/wolf_actor_ai.c b/wolf3d/code/wolf/wolf_actor_ai.c new file mode 100644 index 0000000..f07b8d8 --- /dev/null +++ b/wolf3d/code/wolf/wolf_actor_ai.c @@ -0,0 +1,968 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2001 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_actor_ai.c: Wolfenstein3-D artificial intelligence. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +#include "../wolfiphone.h" + +const char dsounds[ 7 ][ 32 ] = +{ + "sfx/025.wav", + "sfx/026.wav", + "sfx/086.wav", + "sfx/088.wav", + "sfx/105.wav", + "sfx/107.wav", + "sfx/109.wav" +}; + +const char dsodsounds[ 7 ][ 32 ] = +{ + "sfx/021.wav", + "sfx/022.wav", + "sfx/052.wav", + "sfx/054.wav", + "sfx/057.wav", + "sfx/059.wav", + "sfx/061.wav" +}; + +/* +----------------------------------------------------------------------------- + Function: A_DeathScream() -Do a death scream sound depending on actor type. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void A_DeathScream( entity_t *self ) +{ + switch( self->type ) + { + case en_mutant: + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/033.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/037.wav" ), 1, ATTN_NORM, 0 ); + } + break; + + case en_guard: + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( dsodsounds[ US_RndT() % 6 ] ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( dsounds[ US_RndT() % 6 ] ), 1, ATTN_NORM, 0 ); + } + break; + + case en_officer: + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/046.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/074.wav" ), 1, ATTN_NORM, 0 ); + } + break; + + case en_ss: + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/035.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/046.wav" ), 1, ATTN_NORM, 0 ); + } + break; + + case en_dog: + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/031.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/035.wav" ), 1, ATTN_NORM, 0 ); + } + break; + + case en_boss: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/019.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_schabbs: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/061.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_fake: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/069.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_mecha: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/084.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_hitler: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/044.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_gretel: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/115.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_gift: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/091.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_fat: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/119.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_spectre: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "lsfx/062.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_angel: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/098.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_trans: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/070.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_uber: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/082.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_will: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/072.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_death: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/090.wav" ), 1, ATTN_NORM, 0 ); + break; + } +} + +/* +----------------------------------------------------------------------------- + Function: A_FirstSighting() -Puts an actor into attack mode and possibly + reverses the direction if the player is + behind it. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void A_FirstSighting( entity_t *self ) +{ + switch( self->type ) + { + case en_guard: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/001.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 3; // go faster when chasing player + break; + + case en_officer: + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/043.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/071.wav" ), 1, ATTN_NORM, 0 ); + } + self->speed *= 5; // go faster when chasing player + break; + + case en_mutant: + self->speed *= 3; // go faster when chasing player + break; + + case en_ss: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/015.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 4; // go faster when chasing player + break; + + case en_dog: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/002.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 2; // go faster when chasing player + break; + + case en_boss: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/017.wav" ), 1, ATTN_NORM, 0 ); + self->speed = SPDPATROL * 3; // go faster when chasing player + break; + + case en_gretel: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/112.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 3; // go faster when chasing player + break; + + case en_gift: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/096.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 3; // go faster when chasing player + break; + + case en_fat: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/102.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 3; // go faster when chasing player + break; + + case en_schabbs: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/065.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 3; // go faster when chasing player + break; + + case en_fake: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/054.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 3; // go faster when chasing player + break; + + case en_mecha: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/040.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 3; // go faster when chasing player + break; + + case en_hitler: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/040.wav" ), 1, ATTN_NORM, 0 ); + self->speed *= 5; // go faster when chasing player + break; + + case en_blinky: + case en_clyde: + case en_pinky: + case en_inky: + self->speed *= 2; // go faster when chasing player + break; + +// +// Spear of Destiny +// + case en_spectre: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "lsfx/003.wav" ), 1, ATTN_NORM, 0 ); + self->speed = 800; // go faster when chasing player + break; + + case en_angel: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/095.wav" ), 1, ATTN_NORM, 0 ); + self->speed = 1536; // go faster when chasing player + break; + + case en_trans: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/066.wav" ), 1, ATTN_NORM, 0 ); + self->speed = 1536; // go faster when chasing player + break; + + case en_uber: + self->speed = 3000; // go faster when chasing player + break; + + case en_will: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/073.wav" ), 1, ATTN_NORM, 0 ); + self->speed = 2048; // go faster when chasing player + break; + + case en_death: + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/085.wav" ), 1, ATTN_NORM, 0 ); + self->speed = 2048; // go faster when chasing player + break; + + default: + return; + } + + A_StateChange( self, st_chase1 ); + if( self->waitfordoorx ) + { + self->waitfordoorx = self->waitfordoory = 0; // ignore the door opening command + } + + self->dir = dir8_nodir; + self->flags |= FL_ATTACKMODE | FL_FIRSTATTACK; +} + + +/* +----------------------------------------------------------------------------- + Function: A_KillActor() -Actor has been killed, so give points and spawn + powerups. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void A_KillActor( entity_t *self ) +{ + int tilex, tiley; + + tilex = self->tilex = self->x >> TILESHIFT; // drop item on center + tiley = self->tiley = self->y >> TILESHIFT; + + switch( self->type ) + { + case en_guard: + PL_GivePoints( &Player, 100 ); + Powerup_Spawn( tilex, tiley, pow_clip2 ); + break; + + case en_officer: + PL_GivePoints( &Player, 400 ); + Powerup_Spawn( tilex, tiley, pow_clip2 ); + break; + + case en_mutant: + PL_GivePoints( &Player, 700 ); + Powerup_Spawn( tilex, tiley, pow_clip2 ); + break; + + case en_ss: + PL_GivePoints( &Player, 500 ); + if( Player.items & ITEM_WEAPON_3 ) // have a schmeiser? + { + Powerup_Spawn( tilex, tiley, pow_clip2 ); + } + else + { + Powerup_Spawn( tilex, tiley, pow_machinegun ); + } + break; + + case en_dog: + PL_GivePoints( &Player, 200 ); + break; + + case en_boss: + PL_GivePoints( &Player, 5000 ); + Powerup_Spawn( tilex, tiley, pow_key1 ); + break; + + case en_gretel: + PL_GivePoints( &Player, 5000 ); + Powerup_Spawn( tilex, tiley, pow_key1 ); + break; + + case en_gift: + PL_GivePoints( &Player, 5000 ); + A_StartDeathCam( self ); + break; + + case en_fat: + PL_GivePoints( &Player, 5000 ); + A_StartDeathCam( self ); + break; + + case en_schabbs: + PL_GivePoints( &Player, 5000 ); + A_DeathScream( self ); + A_StartDeathCam( self ); + break; + + case en_fake: + PL_GivePoints( &Player, 2000 ); + break; + + case en_mecha: + PL_GivePoints( &Player, 5000 ); + break; + + case en_hitler: + PL_GivePoints( &Player, 5000 ); + A_DeathScream( self ); + A_StartDeathCam( self ); + break; + + case en_spectre: + PL_GivePoints( &Player, 200 ); + break; + + case en_angel: + PL_GivePoints( &Player, 5000 ); + break; + + case en_trans: + PL_GivePoints( &Player, 5000 ); + Powerup_Spawn( tilex, tiley, pow_key1 ); + break; + + case en_uber: + PL_GivePoints( &Player, 5000 ); + Powerup_Spawn( tilex, tiley, pow_key1 ); + break; + + case en_will: + PL_GivePoints( &Player, 5000 ); + Powerup_Spawn( tilex, tiley, pow_key1 ); + break; + + case en_death: + PL_GivePoints( &Player, 5000 ); + Powerup_Spawn( tilex, tiley, pow_key1 ); + break; + } + + A_StateChange( self, st_die1 ); + + if ( ++levelstate.killed_monsters == levelstate.total_monsters ) { + iphoneSetNotifyText( "You killed the last enemy!" ); + } + + self->flags &= ~FL_SHOOTABLE; + self->flags |= FL_NONMARK; + +} + +/* +----------------------------------------------------------------------------- + Function: A_DamageActor() -Called when the player succesfully hits an enemy. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + + Returns: Nothing. + + Notes: + Does damage points to enemy ob, either putting it into a stun frame or + killing it. +----------------------------------------------------------------------------- +*/ +PUBLIC void A_DamageActor( entity_t *self, int damage ) +{ + Player.madenoise = 1; + +// do double damage if shooting a non attack mode actor + if( ! (self->flags & FL_ATTACKMODE) ) + { + damage <<= 1; + } + + self->health -= damage; + + if( self->health <= 0 ) + { + A_KillActor( self ); + } + else + { + if( ! (self->flags & FL_ATTACKMODE) ) + { + A_FirstSighting( self ); // put into combat mode + } + + switch( self->type ) // dogs only have one hit point + { + case en_guard: + case en_officer: + case en_mutant: + case en_ss: + if( self->health & 1 ) + { + A_StateChange( self, st_pain ); + } + else + { + A_StateChange( self, st_pain1 ); + } + break; + } + } +} + +/////////////////////////// +// +// Hitler +// +/////////////////////////// + + +/* +----------------------------------------------------------------------------- + Function: A_MechaSound -Play Mecha sound. + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void A_MechaSound( entity_t *self ) +{ + if( areabyplayer[ self->areanumber ] ) + { + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "sfx/080.wav" ), 1, ATTN_NORM, 0 ); + } +} + +/* +----------------------------------------------------------------------------- + Function: A_Slurpie -Play Slurpie sound. + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void A_Slurpie( entity_t *self ) +{ + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "lsfx/061.wav" ), 1, ATTN_NORM, 0 ); +} + + +/* +----------------------------------------------------------------------------- + Function: A_HitlerMorph() -Spawn new actor, when Mecha Hitler is dead. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void A_HitlerMorph( entity_t *self ) +{ + int hitpoints[ 4 ] = { 500, 700, 800, 900 }; + entity_t *hitler; + + hitler = GetNewActor(); + if( ! hitler ) + { + return; + } + + hitler->x = self->x;// + hitler->y = self->y;// + hitler->distance = self->distance; + hitler->tilex = self->tilex;// + hitler->tiley = self->tiley;// + hitler->angle = self->angle;// + hitler->dir = self->dir;// + hitler->health = hitpoints[ (int)skill->value ]; + hitler->areanumber = self->areanumber; + hitler->state = st_chase1;// + hitler->type = en_hitler; // + hitler->speed = SPDPATROL * 5;// + hitler->ticcount = 0;// + hitler->flags=self->flags | FL_SHOOTABLE; // + hitler->sprite = Sprite_GetNewSprite(); + + if ( ++levelstate.killed_monsters == levelstate.total_monsters ) { + iphoneSetNotifyText( "You killed the last enemy!" ); + } +} + +/////////////////////////// +// +// Angel of Death +// +/////////////////////////// + +/* + Angel can't shoot more then 3 sparks in a row. + It will get tired! +*/ + +PRIVATE int angel_temp = 0; + +// + +/* +----------------------------------------------------------------------------- + Function: A_Breathing -Play Angel of Death Breathing sound. + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void A_Breathing( entity_t *self ) +{ + Sound_StartSound( NULL, 0, CHAN_VOICE, Sound_RegisterSound( "lsfx/080.wav" ), 1, ATTN_NORM, 0 ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void A_StartAttack( entity_t *self ) +{ + angel_temp = 0; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void A_Relaunch( entity_t *self ) +{ + if( ++angel_temp == 3 ) + { + A_StateChange( self, st_pain ); + return; + } + + if( US_RndT() & 1 ) + { + A_StateChange( self, st_chase1 ); + return; + } +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void A_Victory( entity_t *self ) +{ + iphoneStartIntermission( 0 ); +} + + +/* +----------------------------------------------------------------------------- + Function: A_Dormant() -Entity is dormant state. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void A_Dormant( entity_t *self ) +{ + int deltax, deltay; + int xl, xh, yl, yh, x, y, n; + + deltax = self->x - Player.position.origin[ 0 ]; + + if( deltax < -MINACTORDIST || deltax > MINACTORDIST ) + { + goto moveok; + } + + deltay = self->y - Player.position.origin[ 1 ]; + if( deltay < -MINACTORDIST || deltay > MINACTORDIST ) + { + goto moveok; + } + + return; + +moveok: + xl = (self->x - MINDIST) >> TILESHIFT; + xh = (self->x + MINDIST) >> TILESHIFT; + yl = (self->y - MINDIST) >> TILESHIFT; + yh = (self->y + MINDIST) >> TILESHIFT; + + for( y = yl ; y <= yh ; ++y ) + for( x = xl ; x <= xh ; ++x ) + { + if( r_world->tilemap[ x ][ y ] & SOLID_TILE ) + { + return; + } + + for( n = 0 ; n < NumGuards ; ++n ) + { + if( Guards[ n ].state >= st_die1 ) + { + continue; + } + + if( Guards[ n ].tilex == x && Guards[ n ].tiley == y ) + { + return; // another guard in path + } + } + } + + self->flags |= FL_AMBUSH | FL_SHOOTABLE; + self->flags &= ~FL_ATTACKMODE; + self->dir = dir8_nodir; + A_StateChange( self, st_path1 ); +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void A_StartDeathCam( entity_t *self ) +{ + // the DeathCam feature isn't implimented, but we want to give the animation time + // to play before declaring victory. + iphoneStartIntermission( 50 ); +} + + +/* +----------------------------------------------------------------------------- + Function: A_Smoke() -Rockets emmit smoke. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void A_Smoke( entity_t *self ) +{ + entity_t *smoke; + + smoke = GetNewActor(); + if( ! smoke ) + { + return; + } + + smoke->x = self->x; + smoke->y = self->y; + smoke->tilex = self->tilex; + smoke->tiley = self->tiley; + smoke->state = st_die1; + smoke->type = (self->type==en_hrocket) ? en_hsmoke : en_smoke; + smoke->ticcount = 6; + smoke->flags = FL_NEVERMARK; + smoke->sprite = Sprite_GetNewSprite(); +} + + +/* +----------------------------------------------------------------------------- + Function: ProjectileTryMove() -Called when projectile is airborne. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + lvl -[in] Valid Pointer to LevelData_t structure. + + Returns: true if move ok, otherwise false. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean ProjectileTryMove( entity_t *self, LevelData_t *lvl ) +{ + #define PROJSIZE 0x2000 + + + int xl, yl, xh, yh, x, y; + + xl = (self->x - PROJSIZE) >> TILESHIFT; + yl = (self->y - PROJSIZE) >> TILESHIFT; + + xh = (self->x + PROJSIZE) >> TILESHIFT; + yh = (self->y + PROJSIZE) >> TILESHIFT; + + // Checking for solid walls: + for( y = yl ; y <= yh ; ++y ) + { + for( x = xl ; x <= xh ; ++x ) + { +// FIXME: decide what to do with statics & Doors! + if( lvl->tilemap[ x ][ y ] & (WALL_TILE | BLOCK_TILE) ) + { + return false; + } + + if( lvl->tilemap[ x ][ y ] & DOOR_TILE ) + { + if( Door_Opened( &lvl->Doors, x, y ) != DOOR_FULLOPEN ) + { + return false; + } + } + } + } +// FIXME: Projectile will fly through objects (even guards & columns) - must fix to create rocket launcher! + return true; +} + + +/* +----------------------------------------------------------------------------- + Function: T_Projectile() -Called when projectile is airborne. + + Parameters: self -[in] Valid Pointer to an entity_t structure. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Projectile( entity_t *self ) +{ + #define PROJECTILESIZE 0xC000 + + + int deltax, deltay, speed, damage; + + speed = self->speed * tics; + + deltax = (int)(speed * CosTable[ self->angle ]); + deltay = (int)(speed * SinTable[ self->angle ]); + + if( deltax > TILEGLOBAL ) + { + deltax = TILEGLOBAL; + } + + if( deltax < -TILEGLOBAL ) + { + deltax = -TILEGLOBAL; // my + } + + if( deltay > TILEGLOBAL) + { + deltay = TILEGLOBAL; + } + + if( deltay < -TILEGLOBAL) + { + deltay = -TILEGLOBAL; // my + } + + self->x += deltax; + self->y += deltay; + + deltax = ABS( self->x-Player.position.origin[ 0 ] ); + deltay = ABS( self->y-Player.position.origin[ 1 ] ); + + if( ! ProjectileTryMove( self, r_world ) ) + { + if( self->type == en_rocket || self->type == en_hrocket ) + { // rocket ran into obstacle, draw explosion! + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "lsfx/001.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "lsfx/086.wav" ), 1, ATTN_NORM, 0 ); + } + A_StateChange( self, st_die1 ); + } + else + { + A_StateChange( self, st_remove ); // mark for removal + } + return; + } + + if( deltax < PROJECTILESIZE && deltay < PROJECTILESIZE ) + { // hit the player + switch( self->type ) + { + case en_needle: + damage = (US_RndT() >> 3) + 20; + break; + + case en_rocket: + case en_hrocket: + case en_spark: + damage = (US_RndT()>>3) + 30; + break; + + case en_fire: + damage = (US_RndT() >> 3); + break; + + default: + damage = 0; + break; + } + + PL_Damage( &Player, self, damage ); + A_StateChange( self, st_remove ); // mark for removal + return; + } + + self->tilex = self->x >> TILESHIFT; + self->tiley = self->y >> TILESHIFT; +} diff --git a/wolf3d/code/wolf/wolf_actor_ai.h b/wolf3d/code/wolf/wolf_actor_ai.h new file mode 100644 index 0000000..f428cb6 --- /dev/null +++ b/wolf3d/code/wolf/wolf_actor_ai.h @@ -0,0 +1,73 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_actor_ai.h: Wolfenstein3-D entity management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by wolf_actor_ai.c. + +*/ + +#ifndef __WOLF_ACTOR_AI_H__ +#define __WOLF_ACTOR_AI_H__ + +#include "wolf_actors.h" + +extern void A_DeathScream( entity_t *self ); +extern void A_FirstSighting( entity_t *self ); +extern void A_DamageActor( entity_t *self, int damage ); + +// hitler +extern void A_MechaSound( entity_t *self ); +extern void A_Slurpie( entity_t *self ); +extern void A_HitlerMorph( entity_t *self ); + +// angel +extern void A_Breathing( entity_t *self ); +extern void A_StartAttack( entity_t *self ); +extern void A_Relaunch( entity_t *self ); +extern void A_Victory( entity_t *self ); + +// ghost +extern void A_Dormant( entity_t *self ); + +extern void A_StartDeathCam( entity_t *self ); + +// missiles +extern void T_Projectile( entity_t *self ); +extern void A_Smoke( entity_t *self ); + + +#endif /* __WOLF_ACTOR_AI_H__ */ diff --git a/wolf3d/code/wolf/wolf_actors.c b/wolf3d/code/wolf/wolf_actors.c new file mode 100644 index 0000000..51f97e0 --- /dev/null +++ b/wolf3d/code/wolf/wolf_actors.c @@ -0,0 +1,471 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2001 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_actors.c: Wolfenstein3-D actor manager. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +#include "../wolfiphone.h" + +#include "wolf_act_stat.h" + +entity_t Guards[ MAX_GUARDS + 1 ], *New; +W16 NumGuards = 0; +W8 add8dir[ 9 ] = { 4, 5, 6, 7, 0, 1, 2, 3, 0 }; +W8 r_add8dir[ 9 ]= { 4, 7, 6, 5, 0, 1, 2, 3, 0 }; + + + +/* +----------------------------------------------------------------------------- + Function: A_StateChange -Changes guard's state to that defined in NewState. + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void A_StateChange( entity_t *ent, en_state NewState ) +{ + ent->state = NewState; + assert( ent->type >= 0 && ent->type < NUMENEMIES ); + if ( NewState == st_remove ) { + ent->ticcount = 0; + } else { + assert( ent->state >= 0 && ent->state < NUMSTATES ); + ent->ticcount = objstate[ ent->type ][ ent->state ].timeout; //0; + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE int DoGuard( entity_t *ent ) // FIXME: revise! +{ // returns 0 if we must remove this Guard from Guards list, otherwise 1; + think_t think; + + assert( ent->tilex >= 0 && ent->tilex < 64 ); + assert( ent->tiley >= 0 && ent->tiley < 64 ); + assert( ent->dir >= 0 && ent->dir <= 8 ); + + // ticcounts fire discrete actions separate from think functions + if ( ent->ticcount ) { + ent->ticcount -= tics; + while( ent->ticcount <= 0 ) + { + assert( ent->type >= 0 && ent->type < NUMENEMIES ); + assert( ent->state >= 0 && ent->state < NUMSTATES ); + think = objstate[ ent->type ][ ent->state ].action; // end of state action + if( think ) + { + think( ent ); + if( ent->state == st_remove ) + { + return 0; + } + } + + ent->state = objstate[ ent->type ][ ent->state ].next_state; + if( ent->state == st_remove ) + { + return 0; + } + + if( ! objstate[ ent->type ][ ent->state ].timeout ) + { + ent->ticcount = 0; + break; + } + + ent->ticcount += objstate[ ent->type ][ ent->state ].timeout; + } + } + +// +// think +// + assert( ent->type >= 0 && ent->type < NUMENEMIES ); + assert( ent->state >= 0 && ent->state < NUMSTATES ); + think = objstate[ ent->type ][ ent->state ].think; + if( think ) + { + think( ent ); + if( ent->state == st_remove ) + { + return 0; + } + } + + return 1; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE void RemoveActor( entity_t *actor ) +{ + Sprite_RemoveSprite( actor->sprite ); + memmove( actor, actor+1, (int)(&Guards[ NumGuards ]) - (int)(actor+1) ); + NumGuards--; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void ProcessGuards( void ) +{ + int n, tex; + assert( NumGuards < MAX_GUARDS ); + for( n = 0 ; n < NumGuards ; ++n ) + { + if( ! DoGuard( &Guards[ n ] ) ) + { // remove guard from the game forever! + RemoveActor( &Guards[ n-- ] ); + continue; + } + + Sprite_SetPos( Guards[ n ].sprite, Guards[ n ].x, Guards[ n ].y, Guards[ n ].angle ); + tex = objstate[ Guards[ n ].type ][ Guards[ n ].state ].texture; + + if( objstate[ Guards[ n ].type ][ Guards[ n ].state ].rotate ) + { + if( Guards[ n ].type == en_rocket || Guards[ n ].type == en_hrocket ) + { + tex += r_add8dir[ Get8dir( angle_wise( FINE2RAD(Player.position.angle), FINE2RAD(Guards[ n ].angle) ) ) ]; + } + else + { + tex += add8dir[ Get8dir( angle_wise( FINE2RAD(Player.position.angle), FINE2RAD(Guards[ n ].angle) ) ) ]; + } + } + + Sprite_SetTex( Guards[ n ].sprite, 0, tex ); + } +} + + +/* +----------------------------------------------------------------------------- + Function: ResetGuards -Reset actors status + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void ResetGuards( void ) +{ + memset( Guards, 0, sizeof( Guards ) ); + NumGuards = 0; + New = NULL; +} + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC entity_t *GetNewActor( void ) +{ + if( NumGuards > MAX_GUARDS ) + { + return NULL; + } + + memset( &Guards[ NumGuards ], 0, sizeof( Guards[ 0 ] ) ); + + return &Guards[ NumGuards++ ]; +} + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC entity_t *SpawnActor( enemy_t which, int x, int y, dir4type dir, LevelData_t *lvl ) +{ + entity_t *new_actor; + + new_actor = GetNewActor(); + if( ! new_actor ) + { + return NULL; + } + + new_actor->x = TILE2POS( x ); + new_actor->y = TILE2POS( y ); + + new_actor->tilex = x; + new_actor->tiley = y; + + assert( dir >= 0 && dir <= 4 ); + new_actor->angle = dir4angle[ dir ]; + new_actor->dir = dir4to8[ dir ]; + + new_actor->areanumber = lvl->areas[ x ][ y ]; +// Com_Printf( "Actor at %i,%i had areaNum: %i\n", x, y, new_actor->areanumber ); + if ( new_actor->areanumber < 0 ) { + // ambush marker tiles are listed as -3 area + new_actor->areanumber = 0; + } + + assert( new_actor->areanumber >= 0 && new_actor->areanumber < NUMAREAS ); + new_actor->type = which; + + new_actor->health = starthitpoints[ (int)skill->value ][ which ]; + new_actor->sprite = Sprite_GetNewSprite(); + + return new_actor; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void SpawnStand( enemy_t which, int x, int y, int dir, LevelData_t *lvl ) +{ + entity_t *self; + + self = SpawnActor( which, x, y, dir, r_world ); + if( ! self ) + { + return; + } + + self->state = st_stand; + self->speed = SPDPATROL; + self->ticcount = objstate[ which ][ st_stand ].timeout ? US_RndT() % objstate[ which ][ st_stand ].timeout + 1 : 0; + self->flags |= FL_SHOOTABLE; + if( lvl->tilemap[ x ][ y ] & AMBUSH_TILE ) + { + self->flags |= FL_AMBUSH; + } + + levelstate.total_monsters++; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void SpawnPatrol( enemy_t which, int x, int y, int dir ) +{ + entity_t *self; + + self = SpawnActor( which, x, y, dir, r_world ); + if( ! self ) + { + return; + } + + self->state = st_path1; + self->speed = (which == en_dog) ? SPDDOG : SPDPATROL; + self->distance = TILEGLOBAL; + self->ticcount = objstate[ which ][ st_path1 ].timeout ? US_RndT() % objstate[ which ][ st_path1 ].timeout + 1 : 0; + self->flags |= FL_SHOOTABLE; + + levelstate.total_monsters++; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void SpawnDeadGuard( enemy_t which, int x, int y ) +{ + entity_t *self; + + self = SpawnActor( which, x, y, dir4_nodir, r_world ); + if( ! self ) + { + return; + } + + self->state = st_dead; + self->speed = 0; + self->health = 0; + self->ticcount = objstate[ which ][ st_dead ].timeout ? US_RndT() % objstate[ which ][ st_dead ].timeout + 1 : 0; + +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void SpawnBoss( enemy_t which, int x, int y ) +{ + entity_t *self; + dir4type face; + + switch( which ) + { + case en_boss: + case en_schabbs: + case en_fat: + case en_hitler: + face = dir4_south; + break; + + case en_fake: + case en_gretel: + case en_gift: + face = dir4_north; + break; + + case en_trans: + case en_uber: + case en_will: + case en_death: + case en_angel: + case en_spectre: + face = dir4_nodir; + break; + + default: + face = dir4_nodir; + break; + } + + self = SpawnActor( which, x, y, face, r_world ); + if( ! self ) + { + return; + } + + self->state = which == en_spectre ? st_path1 : st_stand; + self->speed = SPDPATROL; + self->health = starthitpoints[ (int)skill->value ][ which ]; + self->ticcount = objstate[ which ][ st_stand ].timeout ? US_RndT() % objstate[ which ][ st_stand ].timeout + 1 : 0; + self->flags |= FL_SHOOTABLE | FL_AMBUSH; + + levelstate.total_monsters++; + +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void SpawnGhosts( enemy_t which, int x, int y ) +{ + entity_t *self; + + self = SpawnActor( which, x, y, dir4_nodir, r_world ); + if( ! self ) + { + return; + } + + self->state = st_chase1; + self->speed = SPDPATROL * 3; + self->health = starthitpoints[ (int)skill->value ][ which ]; + self->ticcount = objstate[ which ][ st_chase1 ].timeout ? US_RndT() % objstate[ which ][ st_chase1 ].timeout + 1: 0; + self->flags |= FL_AMBUSH; + + levelstate.total_monsters++; +} diff --git a/wolf3d/code/wolf/wolf_actors.h b/wolf3d/code/wolf/wolf_actors.h new file mode 100644 index 0000000..d7439b8 --- /dev/null +++ b/wolf3d/code/wolf/wolf_actors.h @@ -0,0 +1,172 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_actors.h: Wolfenstein3-D entity management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by wolf_actors.c + +*/ + +#ifndef __WOLF_ACTORS_H__ +#define __WOLF_ACTORS_H__ + +#define SPDPATROL 512 +#define SPDDOG 1500 + +#define FL_SHOOTABLE 1 +#define FL_BONUS 2 +#define FL_NEVERMARK 4 +#define FL_VISABLE 8 +#define FL_ATTACKMODE 16 +#define FL_FIRSTATTACK 32 +#define FL_AMBUSH 64 +#define FL_NONMARK 128 + +#define MAX_GUARDS 255 +#define NUMENEMIES 31 +#define NUMSTATES 34 + +#define MINACTORDIST 0x10000 // minimum dist from player center to any actor center + +typedef enum +{ + en_guard, + en_officer, + en_ss, + en_dog, + en_boss, + en_schabbs, + en_fake, + en_mecha, + en_hitler, + en_mutant, + en_blinky, + en_clyde, + en_pinky, + en_inky, + en_gretel, + en_gift, + en_fat, +// --- Projectiles + en_needle, + en_fire, + en_rocket, + en_smoke, + en_bj, +// --- Spear of destiny! + en_spark, + en_hrocket, + en_hsmoke, + + en_spectre, + en_angel, + en_trans, + en_uber, + en_will, + en_death + +} enemy_t; + +typedef enum +{ + st_stand, + st_path1, st_path1s, st_path2, st_path3, st_path3s, st_path4, + st_pain, st_pain1, + st_shoot1, st_shoot2, st_shoot3, st_shoot4, st_shoot5, st_shoot6, st_shoot7, st_shoot8, st_shoot9, + st_chase1, st_chase1s, st_chase2, st_chase3, st_chase3s, st_chase4, + st_die1, st_die2, st_die3, st_die4, st_die5, st_die6, st_die7, st_die8, st_die9, + st_dead, + st_remove + +} en_state; + +typedef struct entity_s +{ + int x, y, angle; + int type; + int health; + int max_health; + int speed; + int ticcount; + int temp2; + int distance; + char tilex, tiley; + char areanumber; + int waitfordoorx, waitfordoory; // waiting on this door if non 0 + W8 flags; // FL_SHOOTABLE, etc + en_state state; + dir8type dir; + int sprite; + +} entity_t; + +typedef void (*think_t)( entity_t *self ); + +typedef struct +{ + char rotate; // 1-if object can be rotated, 0 if one sprite for every direction + int texture; // base object's state texture if rotation is on facing player + int timeout; // after how man ticks change state to .next_state + think_t think; // what to do every frame + think_t action; // what to do once per state + en_state next_state; // next state + +} stateinfo; + + + +extern entity_t Guards[ MAX_GUARDS + 1 ]; +extern entity_t *New; +extern W16 NumGuards; +extern stateinfo objstate[ NUMENEMIES ][ NUMSTATES ]; + +extern void ResetGuards(void); + + +extern entity_t *GetNewActor( void ); +extern entity_t *SpawnActor( enemy_t which, int x, int y, dir4type dir, LevelData_t *lvl ); +extern void A_StateChange( entity_t *Guard, en_state NewState ); + + +extern void SpawnStand( enemy_t which, int tilex, int tiley, int dir, LevelData_t *lvl ); +extern void SpawnPatrol( enemy_t which, int tilex, int tiley, int dir ); +extern void SpawnDeadGuard( enemy_t which, int x, int y ); +extern void SpawnBoss( enemy_t which, int x, int y ); +extern void SpawnGhosts( enemy_t which, int x, int y ); + + +#endif /* __WOLF_ACTORS_H__ */ + diff --git a/wolf3d/code/wolf/wolf_ai_com.c b/wolf3d/code/wolf/wolf_ai_com.c new file mode 100644 index 0000000..dcdc6a4 --- /dev/null +++ b/wolf3d/code/wolf/wolf_ai_com.c @@ -0,0 +1,1315 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_ai_com.c: Wolfenstein3-D actor manager. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +#include "../wolfiphone.h" + + + +#define RUNSPEED 6000 + + +/* +----------------------------------------------------------------------------- + Function: AI_ChangeDir() -Entity is going to move in a new direction. + + Parameters: + + Returns: 1 if direction is OK, otherwise 0. + + Notes: + Called, when actor finished previous moving & located in the 'center' of + the tile. Entity will try walking in direction. + +----------------------------------------------------------------------------- +*/ +PRIVATE int AI_ChangeDir( entity_t *self, dir8type new_dir, LevelData_t *lvl ) +{ + int oldx, oldy, newx, newy; // all it tiles + int n; + + oldx = POS2TILE( self->x ); + oldy = POS2TILE( self->y ); + assert( new_dir >= 0 && new_dir <= 8 ); + newx = oldx + dx8dir[ new_dir ]; + newy = oldy + dy8dir[ new_dir ]; + + if( new_dir & 0x01 ) // same as %2 (diagonal dir) + { + if( lvl->tilemap[ newx ][ oldy ] & SOLID_TILE || + lvl->tilemap[ oldx ][ newy ] & SOLID_TILE || + lvl->tilemap[ newx ][ newy ] & SOLID_TILE ) + { + return 0; + } + + for( n = 0 ; n < NumGuards ; ++n ) + { + if( Guards[ n ].state >= st_die1 ) + continue; + + if( Guards[ n ].tilex == newx && Guards[ n ].tiley == newy ) + return 0; // another guard in path + + if( Guards[ n ].tilex == oldx && Guards[ n ].tiley == newy ) + return 0; // another guard in path + + if( Guards[ n ].tilex == newx && Guards[ n ].tiley == oldy ) + return 0; // another guard in path + } + } + else // linear dir (E, N, W, S) + { + if( lvl->tilemap[ newx ][ newy ] & SOLID_TILE ) + { + return 0; + } + + if( lvl->tilemap[ newx ][ newy ] & DOOR_TILE ) + { + if( self->type == en_fake || self->type == en_dog) // they can't open doors + { + if( lvl->Doors.DoorMap[ newx ][ newy ].action != dr_open ) // path is blocked by a closed opened door + { + return 0; + } + } + else + { + self->waitfordoorx = newx; + self->waitfordoory = newy; + goto moveok; + } + } + for( n = 0 ; n < NumGuards ; ++n ) + { + if( Guards[ n ].state >= st_die1 ) + { + continue; + } + + if( Guards[ n ].tilex == newx && Guards[ n ].tiley == newy ) + { + return 0; // another guard in path + } + } + } + +moveok: + self->tilex = newx; + self->tiley = newy; + + lvl->tilemap[ oldx ][ oldy ] &= ~ACTOR_TILE; // update map status + lvl->tilemap[ newx ][ newy ] |= ACTOR_TILE; + + if( lvl->areas[ newx ][ newy ] > 0 ) + { // ambush tiles don't have valid area numbers (-3), so don't change the area if walking over them + self->areanumber = lvl->areas[ newx ][ newy ]; + assert( self->areanumber >= 0 && self->areanumber < NUMAREAS ); + } + + self->distance = TILEGLOBAL; + self->dir = new_dir; + + return 1; +} + +/* +----------------------------------------------------------------------------- + Function: AI_Path() -Entity is going to turn on a way point. + + Parameters: + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void AI_Path( entity_t *self ) +{ + if( r_world->tilemap[ self->x >> TILESHIFT ][ self->y >> TILESHIFT ] & WAYPOINT_TILE ) + { + long tileinfo = r_world->tilemap[self->x>>TILESHIFT][self->y>>TILESHIFT]; + if(tileinfo&TILE_IS_E_TURN) + self->dir=dir8_east; + else if(tileinfo&TILE_IS_NE_TURN) + self->dir=dir8_northeast; + else if(tileinfo&TILE_IS_N_TURN) + self->dir=dir8_north; + else if(tileinfo&TILE_IS_NW_TURN) + self->dir=dir8_northwest; + else if(tileinfo&TILE_IS_W_TURN) + self->dir=dir8_west; + else if(tileinfo&TILE_IS_SW_TURN) + self->dir=dir8_southwest; + else if(tileinfo&TILE_IS_S_TURN) + self->dir=dir8_south; + else if(tileinfo&TILE_IS_SE_TURN) + self->dir=dir8_southeast; + } + + if( ! AI_ChangeDir( self, self->dir, r_world )) + { + self->dir=dir8_nodir; + } +} + +/* +----------------------------------------------------------------------------- + Function: AI_Dodge() -Attempts to choose and initiate a movement for entity + that sends it towards the player while dodging. + + Parameters: + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void AI_Dodge( entity_t *self ) +{ + int deltax, deltay, i; + dir8type dirtry[ 5 ], turnaround, tdir; + + if( self->flags & FL_FIRSTATTACK ) + { +// turning around is only ok the very first time after noticing the player + turnaround = dir8_nodir; + self->flags &= ~FL_FIRSTATTACK; + } + else + { + turnaround = opposite8[ self->dir ]; + } + + deltax = POS2TILE( Player.position.origin[ 0 ] ) - POS2TILE( self->x ); + deltay = POS2TILE( Player.position.origin[ 1 ] ) - POS2TILE( self->y ); + +// +// arange 5 direction choices in order of preference +// the four cardinal directions plus the diagonal straight towards +// the player +// + + if( deltax > 0 ) + { + dirtry[ 1 ] = dir8_east; + dirtry[ 3 ] = dir8_west; + } + else + { + dirtry[ 1 ] = dir8_west; + dirtry[ 3 ] = dir8_east; + } + + if( deltay > 0 ) + { + dirtry[ 2 ] = dir8_north; + dirtry[ 4 ] = dir8_south; + } + else + { + dirtry[ 2 ] = dir8_south; + dirtry[ 4 ] = dir8_north; + } + +// randomize a bit for dodging + if( ABS( deltax ) > ABS( deltay ) ) + { + tdir = dirtry[1]; dirtry[1]=dirtry[2]; dirtry[2]=tdir; // => swap dirtry[1] & dirtry[2] + tdir = dirtry[3]; dirtry[3]=dirtry[4]; dirtry[4]=tdir; // => swap dirtry[3] & dirtry[4] + } + + if( US_RndT() < 128 ) + { + tdir=dirtry[1]; dirtry[1]=dirtry[2]; dirtry[2]=tdir; + tdir=dirtry[3]; dirtry[3]=dirtry[4]; dirtry[4]=tdir; + } + + dirtry[ 0 ] = diagonal[ dirtry[ 1 ] ][ dirtry[ 2 ] ]; + +// try the directions util one works + for( i = 0 ; i < 5 ; ++i ) + { + if( dirtry[ i ] == dir8_nodir || dirtry[ i ] == turnaround ) + { + continue; + } + + if( AI_ChangeDir( self, dirtry[ i ], r_world ) ) + { + return; + } + } + +// turn around only as a last resort + if( turnaround != dir8_nodir ) + { + if( AI_ChangeDir( self, turnaround, r_world ) ) + { + return; + } + } + + self->dir = dir8_nodir; +} + +/* +----------------------------------------------------------------------------- + Function: AI_Chase() -As AI_Dodge, but doesn't try to dodge. + + Parameters: + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void AI_Chase( entity_t *self ) +{ + int deltax, deltay; + dir8type d[2]; + dir8type tdir, olddir, turnaround; + + olddir = self->dir; + turnaround = opposite8[ olddir ]; + d[ 0 ] = d[ 1 ] = dir8_nodir; + + deltax = POS2TILE( Player.position.origin[ 0 ] ) - POS2TILE( self->x ); + deltay = POS2TILE( Player.position.origin[ 1 ] ) - POS2TILE( self->y ); + + if( deltax > 0 ) + { + d[ 0 ] = dir8_east; + } + else if( deltax < 0 ) + { + d[ 0 ] = dir8_west; + } + + if( deltay > 0 ) + { + d[ 1 ] = dir8_north; + } + else if( deltay < 0 ) + { + d[ 1 ] = dir8_south; + } + + if( ABS( deltay ) > ABS( deltax ) ) + { + tdir = d[ 0 ]; + d[ 0 ] = d[ 1 ]; + d[ 1 ] = tdir; + } // swap d[0] & d[1] + + if( d[ 0 ] == turnaround ) + { + d[ 0 ] = dir8_nodir; + } + + if( d[ 1 ] == turnaround ) + { + d[ 1 ] = dir8_nodir; + } + + if( d[ 0 ] != dir8_nodir ) + { + if( AI_ChangeDir( self, d[ 0 ], r_world ) ) + { + return; + } + } + + if( d[ 1 ] != dir8_nodir ) + { + if( AI_ChangeDir( self, d[ 1 ], r_world ) ) + { + return; + } + } + + // there is no direct path to the player, so pick another direction + if( olddir != dir8_nodir ) + { + if( AI_ChangeDir( self, olddir, r_world ) ) + { + return; + } + } + + if(US_RndT()>128) // randomly determine direction of search + { + for( tdir = dir8_east; tdir <= dir8_south; tdir += 2 ) // * Revision + { + if( tdir != turnaround ) + { + if( AI_ChangeDir(self, tdir, r_world) ) + { + return; + } + } + } + } + else + { + for( tdir = dir8_south; (int)tdir >= dir8_east; tdir -= 2 ) // * Revision (JDC fix for unsigned enums) + { + if( tdir != turnaround ) + { + if( AI_ChangeDir( self, tdir, r_world ) ) + { + return; + } + } + + } + } + + if( turnaround != dir8_nodir ) + { + if( AI_ChangeDir( self, turnaround, r_world ) ) + { + return; + } + } + + self->dir = dir8_nodir; // can't move +} + + +/* +----------------------------------------------------------------------------- + Function: AI_Retreat() -Run Away from player. + + Parameters: + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void AI_Retreat( entity_t *self ) +{ + int deltax, deltay; + dir8type d[2], tdir; + + deltax = POS2TILE( Player.position.origin[ 0 ] ) - POS2TILE( self->x ); + deltay = POS2TILE( Player.position.origin[ 1 ] ) - POS2TILE( self->y ); + + d[ 0 ] = deltax < 0 ? dir8_east : dir8_west; + d[ 1 ] = deltay < 0 ? dir8_north : dir8_south; + + if( ABS( deltay ) > ABS( deltax ) ) + { + tdir = d[ 0 ]; + d[ 0 ] = d[ 1 ]; + d[ 1 ] = tdir; + } // swap d[0] & d[1] + + if( AI_ChangeDir( self, d[ 0 ], r_world) ) + { + return; + } + + if( AI_ChangeDir( self, d[ 1 ], r_world) ) + { + return; + } + +// there is no direct path to the player, so pick another direction + + if( US_RndT() > 128 ) // randomly determine direction of search + { + for(tdir = dir8_east; tdir <= dir8_south; tdir += 2 ) // * Revision + { + if( AI_ChangeDir(self, tdir, r_world) ) + { + return; + } + } + } + else + { + for( tdir = dir8_south; (int)tdir >= dir8_east; tdir -= 2 ) // * Revision (JDC fix for unsigned enums) + { + if( AI_ChangeDir(self, tdir, r_world) ) + { + return; + } + } + } + + self->dir=dir8_nodir; // can't move +} + + +/* +----------------------------------------------------------------------------- + Function: AI_CheckSight() -Checks a straight line between player and + current object. + + Parameters: buf -[out] Storage location for data. + offset -[in] Number of bytes from beginning of file. + length -[in] Maximum number of items to be read. + + Returns: true if the player has been spoted, otherwise false. + + Notes: + If the sight is ok, check alertness and angle to see if they notice. +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean AI_CheckSight( entity_t *self ) +{ + #define MINSIGHT 0x18000 + + + int deltax, deltay; + + +// don't bother tracing a line if the area isn't connected to the player's + if( ! (self->flags & FL_AMBUSH) ) + { + if( ! areabyplayer[ self->areanumber ] ) + { + return false; + } + } + +// if the player is real close, sight is automatic + deltax = Player.position.origin[ 0 ] - self->x; + deltay = Player.position.origin[ 1 ] - self->y; + + if( ABS( deltax ) < MINSIGHT && ABS( deltay ) < MINSIGHT ) + { + return true; + } + +// see if they are looking in the right direction + switch( self->dir ) + { + case dir8_north: + if( deltay < 0 ) + return false; + break; + + case dir8_east: + if( deltax < 0 ) + return false; + break; + + case dir8_south: + if( deltay > 0 ) + return false; + break; + + case dir8_west: + if( deltax > 0 ) + return false; + break; + } + +// trace a line to check for blocking tiles (corners) + return Level_CheckLine( self->x, self->y, Player.position.origin[0], Player.position.origin[1], r_world ); +} + + +/* +----------------------------------------------------------------------------- + Function: AI_FindTarget() -Called by entities that ARE NOT chasing the player. + + Parameters: + + Returns: + If the player is detected (by sight, noise, or proximity), the entity + is put into its combat frame and true is returned. + + Notes: + Incorporates a random reaction delay. +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean AI_FindTarget( entity_t *self ) +{ + if( self->temp2 ) // count down reaction time + { + self->temp2 -= tics; + if( self->temp2 > 0 ) + { + return false; + } + self->temp2 = 0; // time to react + } + else + { + // check if we can/want to see/hear player + if( Player.flags & FL_NOTARGET ) + { + return false; // notarget cheat + } + assert( self->areanumber >= 0 && self->areanumber < NUMAREAS ); + if( ! (self->flags & FL_AMBUSH) && ! areabyplayer[ self->areanumber ] ) + { + return false; + } + + + if( ! AI_CheckSight( self ) ) // Player is visible - normal behavior + { + if( self->flags & FL_AMBUSH || ! Player.madenoise ) + { + return false; + } + } + self->flags &= ~FL_AMBUSH; + +// if we are here we see/hear player!!! + switch( self->type ) + { + case en_guard: + self->temp2 = 1 + US_RndT() / 4; + break; + + case en_officer: + self->temp2 = 2; + break; + + case en_mutant: + self->temp2 = 1 + US_RndT() / 6; + break; + + case en_ss: + self->temp2 = 1 + US_RndT() / 6; + break; + + case en_dog: + self->temp2 = 1 + US_RndT() / 8; + break; + + case en_boss: + case en_schabbs: + case en_fake: + case en_mecha: + case en_hitler: + case en_gretel: + case en_gift: + case en_fat: + case en_spectre: + case en_angel: + case en_trans: + case en_uber: + case en_will: + case en_death: + self->temp2 = 1; + break; + } + + return false; // we are amazed & waiting to understand what to do! + } + + A_FirstSighting( self ); + + return true; +} + + +/* +----------------------------------------------------------------------------- + Function: T_Move() -Moves object for distance in global units, + in ob->dir direction. + + Parameters: + + Returns: + If the player is detected (by sight, noise, or proximity), the entity + is put into its combat frame and true is returned. + + Notes: + ob->x = adjusted for new position + ob->y + + Actors are not allowed to move inside the player. + Does NOT check to see if the move is tile map valid. +----------------------------------------------------------------------------- +*/ +PRIVATE void T_Move( entity_t *self, long dist ) +{ + + if( self->dir == dir8_nodir || ! dist ) + { + return; + } + + self->x += dist * dx8dir[ self->dir ]; + self->y += dist * dy8dir[ self->dir ]; + +// check to make sure it's not on top of player + if( ABS( self->x - Player.position.origin[ 0 ] ) <= MINACTORDIST ) + if( ABS( self->y - Player.position.origin[ 1 ] ) <= MINACTORDIST ) + { + if(self->type==en_blinky|| + self->type==en_clyde || + self->type==en_pinky || + self->type==en_inky || + self->type==en_spectre) PL_Damage(&Player, self, 2); // ghosts hurt player! +// +// back up +// + self->x -= dist * dx8dir[ self->dir ]; + self->y -= dist * dy8dir[ self->dir ]; + return; + } + + self->distance -= dist; + if( self->distance < 0 ) + { + self->distance = 0; + } +} + + +/* +----------------------------------------------------------------------------- + Function: T_Advance() -Move object forward. + + Parameters: + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void T_Advance( entity_t *self, think_t think ) +{ + long move; + + if( ! think ) + { + Com_DPrintf( "Warning: Advance without proc\n" ); + return; + } + + move = self->speed * tics; + while( move > 0) + { + +// waiting for a door to open + if( self->waitfordoorx ) + { + doors_t *door = &r_world->Doors.DoorMap[ self->waitfordoorx ][ self->waitfordoory ]; + + Door_OpenDoor( door ); + if( door->action != dr_open ) + { + return; // not opened yet... + } + self->waitfordoorx = self->waitfordoory = 0; // go ahead, the door is now open + } + + if( move < self->distance ) + { + T_Move( self, move ); + break; + } + +// fix position to account for round off during moving + self->x = TILE2POS( self->tilex ); + self->y = TILE2POS( self->tiley ); + + move -= self->distance; + +// think: Where to go now? + think( self ); + self->angle = dir8angle[ self->dir ]; + if( self->dir == dir8_nodir ) + { + return; // all movement is blocked + } + } +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Stand( entity_t *self ) +{ + AI_FindTarget( self ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Path( entity_t *self ) +{ + + if( AI_FindTarget( self ) ) + { + return; + } + + if( ! self->speed ) + { + return; // if patroling with a speed of 0 + } + + if( self->dir == dir8_nodir ) + { + AI_Path( self ); + if( self->dir == dir8_nodir ) + { + return; // all movement is blocked + } + } + + T_Advance(self, AI_Path); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Ghosts( entity_t *self ) +{ + if( self->dir == dir8_nodir ) + { + AI_Chase( self ); + if( self->dir == dir8_nodir ) + { + return; // object is blocked in + } + + self->angle = dir8angle[ self->dir ]; + } + + T_Advance( self, AI_Chase ); +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Chase( entity_t *self ) +{ + int dx,dy,dist,chance; + char dodge; + + // if (gamestate.victoryflag) return; + + dodge = 0; + if( Level_CheckLine( self->x, self->y, Player.position.origin[0], Player.position.origin[1], r_world ) ) // got a shot at player? + { + dx = ABS( POS2TILE( self->x ) - POS2TILE( Player.position.origin[ 0 ] ) ); + dy = ABS( POS2TILE( self->y ) - POS2TILE( Player.position.origin[ 1 ] ) ); + dist = max_of_2(dx, dy); + if( ! dist || (dist == 1 && self->distance < 16) ) + { + chance = 300; + } + else + { + chance = (tics << 4) / dist;//100/dist; + } + + if( US_RndT() < chance ) + { // go into attack frame + A_StateChange(self, st_shoot1); + return; + } + dodge = 1; + } + + if( self->dir == dir8_nodir ) + { + if( dodge ) + { + AI_Dodge( self ); + } + else + { + AI_Chase( self ); + } + + if( self->dir == dir8_nodir ) + { + return; // object is blocked in + } + self->angle = dir8angle[ self->dir ]; + } + + T_Advance( self, dodge ? AI_Dodge : AI_Chase ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Bite( entity_t *self ) +{ + long dx, dy; + + Sound_StartSound( NULL, 1, CHAN_VOICE, Sound_RegisterSound( "lsfx/076.wav" ), 1, ATTN_NORM, 0 ); + + dx = ABS( Player.position.origin[ 0 ] - self->x ) - TILEGLOBAL; + if( dx <= MINACTORDIST ) + { + dy = ABS( Player.position.origin[ 1 ] - self->y ) - TILEGLOBAL; + if( dy <= MINACTORDIST ) + { + if(US_RndT()<180) + { + PL_Damage(&Player, self, US_RndT()>>4); + return; + } + } + } +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_DogChase( entity_t *self ) +{ + long dx, dy; + + if( self->dir == dir8_nodir ) + { + AI_Dodge( self ); + self->angle = dir8angle[ self->dir ]; + if( self->dir == dir8_nodir ) + { + return; // object is blocked in + } + } + +// +// check for bite range +// + dx = ABS( Player.position.origin[ 0 ] - self->x ) - TILEGLOBAL / 2; + if(dx <= MINACTORDIST) + { + dy = ABS( Player.position.origin[ 1 ] - self->y ) - TILEGLOBAL / 2; + if( dy <= MINACTORDIST ) + { + A_StateChange( self, st_shoot1 ); + return; // bite player! + } + } + + T_Advance( self, AI_Dodge ); +} + + +/* +----------------------------------------------------------------------------- + Function: T_BossChase + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + They retreat if too close to player. +----------------------------------------------------------------------------- +*/ +PUBLIC void T_BossChase( entity_t *self ) +{ + int dx, dy, dist; + W8 dodge; + + dodge = 0; + dx = ABS( self->tilex - POS2TILE( Player.position.origin[ 0 ] ) ); + dy = ABS( self->tiley - POS2TILE( Player.position.origin[ 1 ] ) ); + dist = max_of_2( dx, dy ); + + if( Level_CheckLine( self->x, self->y, Player.position.origin[0], Player.position.origin[1], r_world ) ) // got a shot at player? + { + if( US_RndT() < tics << 3 ) + { // go into attack frame + A_StateChange( self, st_shoot1 ); + return; + } + dodge = 1; + } + + if( self->dir == dir8_nodir ) + { + if(dodge) + { + AI_Dodge(self); + } + else + { + AI_Chase(self); + } + + if( self->dir == dir8_nodir ) + { + return; // object is blocked in + } + } + + T_Advance( self, dist < 4 ? AI_Retreat : (dodge ? AI_Dodge : AI_Chase)); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Fake( entity_t *self ) +{ + + if( Level_CheckLine( self->x, self->y, Player.position.origin[0], Player.position.origin[1], r_world ) ) // got a shot at player? + { + if( US_RndT() < tics << 1 ) + { // go into attack frame + A_StateChange( self, st_shoot1 ); + return; + } + } + + if( self->dir == dir8_nodir ) + { + AI_Dodge( self ); + if( self->dir == dir8_nodir ) + { + return; // object is blocked in + } + } + + T_Advance( self, AI_Dodge ); +} + + + +/* +----------------------------------------------------------------------------- + Function: T_Shoot -Try to damage the player. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Shoot( entity_t *self ) +{ + int dx, dy, dist; + int hitchance, damage; + + if( ! areabyplayer[ self->areanumber ] ) + { + return; + } + + if( ! Level_CheckLine( self->x, self->y, Player.position.origin[0], Player.position.origin[1], r_world ) ) + { + return; // player is behind a wall + } + + dx = ABS( POS2TILE( self->x ) - POS2TILE( Player.position.origin[ 0 ] ) ); + dy = ABS( POS2TILE( self->y ) - POS2TILE( Player.position.origin[ 1 ] ) ); + dist = max_of_2( dx, dy ); + + if( self->type == en_ss || self->type == en_boss ) + { + dist = dist * 2 / 3; // ss are better shots + } + + if( Player.speed >= RUNSPEED ) + { + hitchance = 160; + } + else + { + hitchance = 256; + } + +// if guard is visible by player +// player can see to dodge +// (if CheckLine both player & enemy see each other) +// So left only check if guard is in player's fov: FIXME: not fixed fov! + if( angle_diff( TransformPoint( self->x, self->y, Player.position.origin[0], Player.position.origin[1] ), FINE2DEG( Player.position.angle ) ) < (M_PI/3) ) + { + hitchance -= dist * 16; + } + else + { + hitchance -= dist * 8; + } + +// see if the shot was a hit + if( US_RndT() < hitchance ) + { + if( dist < 2 ) + { + damage = US_RndT() >> 2; + } + else if( dist < 4 ) + { + damage = US_RndT() >> 3; + } + else + { + damage = US_RndT() >> 4; + } + + PL_Damage( &Player, self, damage ); + } + + switch( self->type ) + { + case en_ss: + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "sfx/020.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "sfx/024.wav" ), 1, ATTN_NORM, 0 ); + } + break; + + case en_gift: + case en_fat: + case en_mecha: + case en_hitler: + case en_boss: + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "sfx/022.wav" ), 1, ATTN_NORM, 0 ); + break; + + default: + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "sfx/038.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "sfx/049.wav" ), 1, ATTN_NORM, 0 ); + } + break; + } +} + +/* +----------------------------------------------------------------------------- + Function: T_UShoot -[UberMutant] + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_UShoot( entity_t *self ) +{ + int dx, dy, dist; + + T_Shoot( self ); + + dx = ABS( self->tilex - POS2TILE( Player.position.origin[ 0 ] ) ); + dy = ABS( self->tiley - POS2TILE( Player.position.origin[ 1 ] ) ); + dist = max_of_2( dx, dy ); + + if( dist <= 1 ) + { + PL_Damage( &Player, self, 10 ); + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void T_Launch( entity_t *self ) +{ + entity_t *proj; + float iangle; + + iangle = TransformPoint( self->x, self->y, Player.position.origin[ 0 ], Player.position.origin[ 1 ] ) + M_PI; + if( iangle > 2 * M_PI ) + { + iangle -= 2 * M_PI; + } + + if( self->type == en_death ) + {// death knight launches 2 rockets with 4 degree shift each. + T_Shoot( self ); + if( self->state == st_shoot2 ) + { + iangle = normalize_angle( iangle - DEG2RAD( 4 ) ); + } + else + { + iangle = normalize_angle( iangle + DEG2RAD( 4 ) ); + } + } + + proj = GetNewActor(); + if( proj == NULL ) + { + return; + } + + proj->x = self->x; + proj->y = self->y; + + proj->tilex = self->tilex; + proj->tiley = self->tiley; + + proj->state = st_stand; + proj->ticcount = 1; + proj->dir = dir8_nodir; + + proj->angle = RAD2FINE( iangle ); + proj->speed = 0x2000; + proj->flags = FL_NONMARK; // FL_NEVERMARK; + proj->sprite = Sprite_GetNewSprite(); + + switch( self->type ) + { + case en_death: + proj->type = en_hrocket; + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "lsfx/078.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_angel: + proj->type = en_spark; + proj->state = st_path1; + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "lsfx/069.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_fake: + proj->type = en_fire; + proj->state = st_path1; + proj->flags = FL_NEVERMARK; + proj->speed = 0x1200; + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "lsfx/069.wav" ), 1, ATTN_NORM, 0 ); + break; + + case en_schabbs: + proj->type = en_needle; + proj->state = st_path1; + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "lsfx/008.wav" ), 1, ATTN_NORM, 0 ); + break; + + default: + proj->type = en_rocket; + + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "lsfx/008.wav" ), 1, ATTN_NORM, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_WEAPON, Sound_RegisterSound( "lsfx/085.wav" ), 1, ATTN_NORM, 0 ); + } + } + +} diff --git a/wolf3d/code/wolf/wolf_ai_com.h b/wolf3d/code/wolf/wolf_ai_com.h new file mode 100644 index 0000000..9fb8a1a --- /dev/null +++ b/wolf3d/code/wolf/wolf_ai_com.h @@ -0,0 +1,65 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_ai_com.h: Wolfenstein3-D entity management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by wolf_ai_com.c + +*/ + +#ifndef __WOLF_AI_COM_H__ +#define __WOLF_AI_COM_H__ + +#include "wolf_actors.h" + +// common AI functions + +extern void T_Stand( entity_t *self ); +extern void T_Path( entity_t *self ); +extern void T_Ghosts( entity_t *self ); +extern void T_Chase( entity_t *self ); +extern void T_Bite( entity_t *self ); +extern void T_DogChase( entity_t *self ); +extern void T_BossChase( entity_t *self ); +extern void T_Fake( entity_t *self ); + +extern void T_Shoot( entity_t *self ); +extern void T_UShoot( entity_t *self ); +extern void T_Launch( entity_t *self ); + + +#endif /* __WOLF_AI_COM_H__ */ + diff --git a/wolf3d/code/wolf/wolf_areas.c b/wolf3d/code/wolf/wolf_areas.c new file mode 100644 index 0000000..960a502 --- /dev/null +++ b/wolf3d/code/wolf/wolf_areas.c @@ -0,0 +1,170 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_areas.c: Wolfenstein3-D area management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Acknowledgement: + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + + +/* + Notes: + + Open doors connect two areas, so sounds will travel between them and sight + will be checked when the player is in a connected area. + + Areaconnect is incremented/decremented by each door. If >0 they connect. + + Every time a door opens or closes the areabyplayer matrix gets recalculated. + An area is true if it connects with the player's current spor. + +*/ + +#include "../wolfiphone.h" + + + + +W8 areaconnect[ NUMAREAS ][ NUMAREAS ]; +_boolean areabyplayer[ NUMAREAS ]; + + + +/* +----------------------------------------------------------------------------- + Function: Areas_RecursiveConnect() -Scans outward from playerarea, + marking all connected areas. + + Parameters: areanumber -[in] area. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Areas_RecursiveConnect( int areanumber ) +{ + int i; + + for( i = 0 ; i < NUMAREAS ; ++i ) + { + if( areaconnect[ areanumber ][ i ] && ! areabyplayer[ i ] ) + { + areabyplayer[ i ] = true; + Areas_RecursiveConnect( i ); + } + } +} + +/* +----------------------------------------------------------------------------- + Function: Areas_ConnectAreas() -Connect area. + + Parameters: areanumber -[in] area. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Areas_ConnectAreas( int areanumber ) +{ + int c = 0; + int i; + + assert( areanumber < NUMAREAS ); + memset( areabyplayer, 0, sizeof( areabyplayer ) ); + areabyplayer[ areanumber ] = true; + Areas_RecursiveConnect( areanumber ); + for ( i = 0 ; i < NUMAREAS ; i++ ) { + if ( areabyplayer[i] ) { + c++; + } + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Areas_InitAreas( int areanumber ) +{ + memset( areaconnect, 0, sizeof( areaconnect ) ); + memset( areabyplayer, 0, sizeof( areabyplayer ) ); + areabyplayer[ areanumber ] = true; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Areas_JoinAreas( int area1, int area2 ) +{// FIXME: check for overflow! + areaconnect[ area1 ][ area2 ]++; + areaconnect[ area2 ][ area1 ]++; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Areas_DisconnectAreas( int area1, int area2 ) +{// FIXME: check for underflow! + areaconnect[ area1 ][ area2 ]--; + areaconnect[ area2 ][ area1 ]--; +} diff --git a/wolf3d/code/wolf/wolf_bj.c b/wolf3d/code/wolf/wolf_bj.c new file mode 100644 index 0000000..0f59ae2 --- /dev/null +++ b/wolf3d/code/wolf/wolf_bj.c @@ -0,0 +1,136 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + + + +#define BJRUNSPEED 2048 +#define BJJUMPSPEED 680 + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +void SpawnBJVictory( void ) +{ + entity_t *bj; + + bj = SpawnActor( en_bj, POS2TILE(Player.position.origin[0]), POS2TILE(Player.position.origin[1]), dir4_north, r_world ); + if( ! bj ) + { + return; + } + + bj->x = Player.position.origin[ 0 ]; + bj->y = Player.position.origin[ 1 ]; + bj->state = st_path1; + bj->speed = BJRUNSPEED; + bj->flags = FL_NONMARK; // FL_NEVERMARK; + bj->temp2 = 6; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +void T_BJRun( entity_t *Guard ) +{ +// MoveObj(Guard, Guard->speed); + + if( ! Guard->distance ) + { + Guard->distance = TILEGLOBAL; + if ( !(--Guard->temp2) ) + { + A_StateChange( Guard, st_shoot1 ); + Guard->speed = BJJUMPSPEED; + return; + } + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +void T_BJJump( entity_t *Guard ) +{ +// MoveObj(Guard, Guard->speed); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +void T_BJYell( entity_t *Guard ) +{ + Sound_StartSound( NULL, 0, CHAN_VOICE, Sound_RegisterSound( "sfx/082.wav" ), 1, ATTN_NORM, 0 ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +void T_BJDone( entity_t *Guard ) +{ + Player.playstate = ex_victory; // exit castle tile +} diff --git a/wolf3d/code/wolf/wolf_bj.h b/wolf3d/code/wolf/wolf_bj.h new file mode 100644 index 0000000..d2adcef --- /dev/null +++ b/wolf3d/code/wolf/wolf_bj.h @@ -0,0 +1,59 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_bj.h: Wolfenstein3-D bj code . + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by wolf_bj.c + +*/ + +#ifndef __WOLF_BJ_H__ +#define __WOLF_BJ_H__ + + + +extern void SpawnBJVictory( void ); +extern void T_BJRun( entity_t *Guard ); +extern void T_BJJump( entity_t *Guard ); +extern void T_BJYell( entity_t *Guard ); +extern void T_BJDone( entity_t *Guard ); + + + + + +#endif /* __WOLF_BJ_H__ */ + diff --git a/wolf3d/code/wolf/wolf_client_main.c b/wolf3d/code/wolf/wolf_client_main.c new file mode 100644 index 0000000..3b608d7 --- /dev/null +++ b/wolf3d/code/wolf/wolf_client_main.c @@ -0,0 +1,91 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Client_PrepRefresh( const char *r_mapname ) +{ + char mapname[ 32 ]; + + if( ! r_mapname || ! *r_mapname ) + { + return; + } + + if( g_version->value == SPEAROFDESTINY ) + { + spritelocation = SODSPRITESDIRNAME; + } + else + { + spritelocation = WL6SPRITESDIRNAME; + } + + my_strlcpy( mapname, r_mapname, sizeof( mapname ) ); // skip "maps/" + + // !@# fix crash bug if you type something short... + if ( strlen( mapname ) > 4 && !strcmp( mapname + strlen( mapname ) - 4, ".map" ) ) { + mapname[ strlen( mapname ) - 4 ] = '\0'; // cut off ".map" + } + + // register models, pics, and skins + R_BeginRegistration( mapname ); + + if( r_world == NULL ) + { + return; + } + + + Com_Printf( "Map: %s\n", r_world->mapName ); + + Level_ScanInfoPlane( r_world ); // Spawn items/guards + + Com_Printf( "Spawning Entities\n" ); + PL_Spawn( r_world->pSpawn, r_world ); // Spawn Player + + Com_Printf( "Caching Textures and Sounds\n" ); + Level_PrecacheTextures_Sound( r_world ); + + // clear any lines of console text + Con_ClearNotify(); + + Sound_StartBGTrack( levelData.musicName, levelData.musicName ); + + Player.playstate = ex_playing; +} + +int tics; + + + + diff --git a/wolf3d/code/wolf/wolf_doors.c b/wolf3d/code/wolf/wolf_doors.c new file mode 100644 index 0000000..4874b21 --- /dev/null +++ b/wolf3d/code/wolf/wolf_doors.c @@ -0,0 +1,506 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_doors.c: Wolfenstein 3-D door management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Acknowledgement: + * Portion of this code was derived from Wolfenstein 3-D, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +#define CLOSEWALL MINDIST // Space between wall & player +#define MAXDOORS 64 // max number of sliding doors + + + + +/* +----------------------------------------------------------------------------- + Function: Door_ResetDoors -Resets doors status + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Door_ResetDoors( LevelDoors_t *lvldoors ) +{ + lvldoors->doornum = 0; + + memset( lvldoors->Doors, 0, sizeof( lvldoors->Doors ) ); + memset( lvldoors->DoorMap, 0, sizeof( lvldoors->DoorMap ) ); +} + + + + +/* +----------------------------------------------------------------------------- + Function: Door_SpawnDoor -Spawns door at x, y, position. + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC int Door_SpawnDoor( LevelDoors_t *lvldoors, int x, int y, int type ) +{ + if( lvldoors->doornum >= MAXDOORS ) + { + Com_DPrintf( "[%s]: Too many Doors on level! (%d)\n", "wolf_doors.c", lvldoors->doornum ); + return 0; + } + + switch( type ) + { + case 0x5A: + lvldoors->DoorMap[ x ][ y ].type = DOOR_VERT; + lvldoors->DoorMap[ x ][ y ].vertical= true; + lvldoors->DoorMap[ x ][ y ].texture = TEX_DDOOR + 1; + break; + + case 0x5B: + lvldoors->DoorMap[ x ][ y ].type = DOOR_HORIZ; + lvldoors->DoorMap[ x ][ y ].vertical = false; + lvldoors->DoorMap[ x ][ y ].texture = TEX_DDOOR; + break; + + case 0x5C: + lvldoors->DoorMap[ x ][ y ].type = DOOR_G_VERT; + lvldoors->DoorMap[ x ][ y ].vertical = true; + lvldoors->DoorMap[ x ][ y ].texture = TEX_DLOCK; + break; + + case 0x5D: + lvldoors->DoorMap[ x ][ y ].type = DOOR_G_HORIZ; + lvldoors->DoorMap[ x ][ y ].vertical = false; + lvldoors->DoorMap[ x ][ y ].texture = TEX_DLOCK; + break; + + case 0x5E: + lvldoors->DoorMap[ x ][ y ].type = DOOR_S_VERT; + lvldoors->DoorMap[ x ][ y ].vertical = true; + lvldoors->DoorMap[ x ][ y ].texture = TEX_DLOCK + 1; + break; + + case 0x5F: + lvldoors->DoorMap[ x ][ y ].type = DOOR_S_HORIZ; + lvldoors->DoorMap[ x ][ y ].vertical = false; + lvldoors->DoorMap[ x ][ y ].texture = TEX_DLOCK + 1; + break; + + case 0x64: + lvldoors->DoorMap[ x ][ y ].type = DOOR_E_VERT; + lvldoors->DoorMap[ x ][ y ].vertical = true; + lvldoors->DoorMap[ x ][ y ].texture = TEX_DELEV + 1; + break; + + case 0x65: + lvldoors->DoorMap[ x ][ y ].type = DOOR_E_HORIZ; + lvldoors->DoorMap[ x ][ y ].vertical = false; + lvldoors->DoorMap[ x ][ y ].texture = TEX_DELEV; + break; + + default: + Com_DPrintf( "Door_SpawnDoor: Unknown door type: %d\n", type ); + return 0; + } + + lvldoors->DoorMap[ x ][ y ].tilex = x; + lvldoors->DoorMap[ x ][ y ].tiley = y; + lvldoors->DoorMap[ x ][ y ].action = dr_closed; + + lvldoors->Doors[ lvldoors->doornum ] = &lvldoors->DoorMap[ x ][ y ]; + lvldoors->doornum++; + + return lvldoors->doornum - 1; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Door_SetAreas( LevelDoors_t *lvldoors, int (*areas)[64] ) +{ + int n, x, y; + + for( n = 0 ; n < lvldoors->doornum ; ++n ) + { + x = lvldoors->Doors[ n ]->tilex; + y = lvldoors->Doors[ n ]->tiley; + + if( lvldoors->Doors[ n ]->vertical ) + { + lvldoors->Doors[ n ]->area1 = areas[ x + 1 ][ y ] >= 0 ? areas[ x + 1 ][ y ] : 0; + lvldoors->Doors[ n ]->area2 = areas[ x - 1 ][ y ] >= 0 ? areas[ x - 1 ][ y ] : 0; + } + else + { + lvldoors->Doors[ n ]->area1 = areas[ x ][ y + 1 ] >= 0 ? areas[ x ][ y + 1 ] : 0; + lvldoors->Doors[ n ]->area2 = areas[ x ][ y - 1 ] >= 0 ? areas[ x ][ y - 1 ] : 0; + } + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE W8 CanCloseDoor( int x, int y, char vert ) +{ + int n; + + if( POS2TILE( Player.position.origin[ 0 ] ) == x && + POS2TILE( Player.position.origin[ 1 ] ) == y ) + { + return 0; + } + + if( vert ) + { + if( POS2TILE( Player.position.origin[ 1 ] ) == y ) + { + if( POS2TILE( Player.position.origin[ 0 ] + CLOSEWALL ) == x ) + { + return 0; + } + + if( POS2TILE( Player.position.origin[ 0 ] - CLOSEWALL ) == x ) + { + return 0; + } + } + + for( n = 0 ; n < NumGuards ; ++n ) + { + if( Guards[ n ].tilex == x && Guards[ n ].tiley == y ) + { + return 0; // guard in door + } + + if( Guards[ n ].tilex == x - 1 && + Guards[ n ].tiley == y && + POS2TILE( Guards[ n ].x + CLOSEWALL ) == x ) + { + return 0; // guard in door + } + + if( Guards[ n ].tilex == x + 1 && + Guards[ n ].tiley == y && + POS2TILE( Guards[ n ].x - CLOSEWALL ) == x ) + { + return 0; // guard in door + } + } + } + else + { + if( POS2TILE( Player.position.origin[ 0 ] ) == x ) + { + if( POS2TILE( Player.position.origin[ 1 ] + CLOSEWALL ) == y ) + { + return 0; + } + + if( POS2TILE( Player.position.origin[ 1 ] - CLOSEWALL ) == y ) + { + return 0; + } + } + for( n = 0 ; n < NumGuards ; ++n ) + { + if( Guards[ n ].tilex == x && Guards[ n ].tiley == y ) + { + return 0; // guard in door + } + + if( Guards[ n ].tilex == x && + Guards[ n ].tiley == y - 1 && + POS2TILE( Guards[ n ].y + CLOSEWALL ) == y ) + { + return 0; // guard in door + } + + if( Guards[ n ].tilex == x && + Guards[ n ].tiley == y + 1 && + POS2TILE( Guards[ n ].y - CLOSEWALL ) == y ) + { + return 0; // guard in door + } + } + } + + return 1; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Door_OpenDoor( doors_t *Door ) +{ + if( Door->action == dr_open ) + { + Door->ticcount = 0; // reset opened time + } + else + { + Door->action = dr_opening; // start opening it + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Door_ChangeDoorState( doors_t *Door ) +{ + if( Door->action < dr_opening ) + { + Door_OpenDoor( Door ); + } + else if( Door->action == dr_open && CanCloseDoor( Door->tilex, Door->tiley, Door->vertical ) ) + { + // !@# for the iphone with automatic using, don't allow any door close actions + // Door->action = dr_closing; + // Door->ticcount = DOOR_FULLOPEN; + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Door_ProcessDoors_e( LevelDoors_t *lvldoors, int t_tk ) +{ + int n; + + for( n = 0 ; n < lvldoors->doornum ; ++n ) + { + switch( lvldoors->Doors[ n ]->action ) + { + case dr_closed: // this door is closed! + continue; + + case dr_opening: + if( lvldoors->Doors[ n ]->ticcount >= DOOR_FULLOPEN ) // door fully opened! + { + lvldoors->Doors[ n ]->action = dr_open; + lvldoors->Doors[ n ]->ticcount = 0; + } + else // opening! + { + if( lvldoors->Doors[ n ]->ticcount == 0 ) + { // door is just starting to open, so connect the areas + Areas_JoinAreas( lvldoors->Doors[ n ]->area1, lvldoors->Doors[ n ]->area2 ); + Areas_ConnectAreas( Player.areanumber ); + if( areabyplayer[ lvldoors->Doors[ n ]->area1 ] ) // Door Opening sound! + { + Sound_StartSound( NULL, 1, CHAN_AUTO, Sound_RegisterSound( "sfx/010.wav" ), 1, ATTN_STATIC, 0 ); + } + } + + lvldoors->Doors[n]->ticcount += t_tk; + + if( lvldoors->Doors[ n ]->ticcount > DOOR_FULLOPEN ) + { + lvldoors->Doors[ n ]->ticcount = DOOR_FULLOPEN; + } + } + break; + + case dr_closing: + if( lvldoors->Doors[ n ]->ticcount <= 0 ) // door fully closed! disconnect areas! + { + Areas_DisconnectAreas( lvldoors->Doors[ n ]->area1, lvldoors->Doors[ n ]->area2 ); + Areas_ConnectAreas( Player.areanumber ); + lvldoors->Doors[ n ]->ticcount = 0; + lvldoors->Doors[ n ]->action = dr_closed; + } + else // closing! + { + if( lvldoors->Doors[ n ]->ticcount == DOOR_FULLOPEN ) + { + if( areabyplayer[ lvldoors->Doors[ n ]->area1 ] ) // Door Closing sound! + { + Sound_StartSound( NULL, 1, CHAN_AUTO, Sound_RegisterSound( "sfx/007.wav" ), 1, ATTN_STATIC, 0 ); + } + } + lvldoors->Doors[ n ]->ticcount -= t_tk; + if( lvldoors->Doors[ n ]->ticcount < 0 ) + { + lvldoors->Doors[ n ]->ticcount = 0; + } + } + break; + + case dr_open: + if( lvldoors->Doors[ n ]->ticcount > DOOR_MINOPEN ) + { // If player or something is in door do not close it! + if( ! CanCloseDoor( lvldoors->Doors[ n ]->tilex, lvldoors->Doors[ n ]->tiley, lvldoors->Doors[ n ]->vertical ) ) + { + lvldoors->Doors[ n ]->ticcount = DOOR_MINOPEN; // do not close door immediately! + } + } + if( lvldoors->Doors[ n ]->ticcount >= DOOR_TIMEOUT ) + { // Door timeout, time to close it! + lvldoors->Doors[ n ]->action = dr_closing; + lvldoors->Doors[ n ]->ticcount = DOOR_FULLOPEN; + } + else + { // Increase timeout! + lvldoors->Doors[ n ]->ticcount += t_tk; + } + break; + + } // End switch lvldoors->Doors[ n ].action + + } // End for n = 0 ; n < lvldoors->doornum ; ++n + +} + +/* +----------------------------------------------------------------------------- + Function: Door_Opened -Check to see if a door is open. + + Parameters: + + Returns: DOOR_FULLOPEN Door is opened + 0 Door is closed + >0 DoorMap[ x ][ y ].action == dr_open ? DOOR_FULLOPEN : lvldoors->DoorMap[ x ][ y ].ticcount; +} + +/* +----------------------------------------------------------------------------- + Function: Door_TryUse -Try to use a door with keys that the player has. + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean Door_TryUse( doors_t *Door, int keys ) +{ + switch( Door->type ) + { + case DOOR_VERT: + case DOOR_HORIZ: + case DOOR_E_VERT: + case DOOR_E_HORIZ: + Door_ChangeDoorState( Door ); // does not require key! + break; + + case DOOR_G_VERT: + case DOOR_G_HORIZ: + if( keys & ITEM_KEY_1 ) + { + Door_ChangeDoorState( Door ); + } + else + { + iphoneSetNotifyText( "You need a gold key" ); + } + break; + + case DOOR_S_VERT: + case DOOR_S_HORIZ: + if( keys & ITEM_KEY_2 ) + { + Door_ChangeDoorState( Door ); + } + else + { + iphoneSetNotifyText( "You need a silver key" ); + } + break; + } + + return true; // FIXME + +} diff --git a/wolf3d/code/wolf/wolf_level.c b/wolf3d/code/wolf/wolf_level.c new file mode 100644 index 0000000..617a33b --- /dev/null +++ b/wolf3d/code/wolf/wolf_level.c @@ -0,0 +1,1376 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_level.c: Wolfenstein3-D Level management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Acknowledgement: + * Portion of this code was derived from Wolfenstein 3-D, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + + +statinfo_t static_wl6[]= +{ + {false, -1}, // puddle spr1v + { true, -1}, // Green Barrel " + { true, -1}, // Table/chairs " + { true, -1}, // Floor lamp " + {false, -1}, // Chandelier " + { true, -1}, // Hanged man " + {false, pow_alpo}, // Bad food " + { true, -1}, // Red pillar " + { true, -1}, // Tree spr2v + {false, -1}, // Skeleton flat " + { true, -1}, // Sink " (SOD:gibs) + { true, -1}, // Potted plant " + { true, -1}, // Urn " + { true, -1}, // Bare table " + {false, -1}, // Ceiling light " + {false, -1}, // Kitchen stuff " + { true, -1}, // suit of armor spr3v + { true, -1}, // Hanging cage " + { true, -1}, // SkeletoninCage " + {false, -1}, // Skeleton relax " + {false, pow_key1}, // Key 1 " + {false, pow_key2}, // Key 2 " + { true, -1}, // stuff (SOD:gibs) + {false, -1}, // stuff + {false, pow_food}, // Good food spr4v + {false, pow_firstaid}, // First aid " + {false, pow_clip}, // Clip " + {false, pow_machinegun},// Machine gun " + {false, pow_chaingun}, // Gatling gun " + {false, pow_cross}, // Cross " + {false, pow_chalice}, // Chalice " + {false, pow_bible}, // Bible " + {false, pow_crown}, // crown spr5v + {false, pow_fullheal}, // one up " + {false, pow_gibs}, // gibs " + { true, -1}, // barrel " + { true, -1}, // well " + { true, -1}, // Empty well " + {false, pow_gibs}, // Gibs 2 " + { true, -1}, // flag " + { true, -1}, // Call Apogee spr7v + {false, -1}, // junk " + {false, -1}, // junk " + {false, -1}, // junk " + {false, -1}, // pots " + { true, -1}, // stove " (SOD:gibs) + { true, -1}, // spears " (SOD:gibs) + {false, -1}, // vines " +}; + + +statinfo_t static_sod[] = +{ + {false, -1}, // puddle spr1v + { true, -1}, // Green Barrel " + { true, -1}, // Table/chairs " + { true, -1}, // Floor lamp " + {false, -1}, // Chandelier " + { true, -1}, // Hanged man " + {false, pow_alpo}, // Bad food " + { true, -1}, // Red pillar " + { true, -1}, // Tree spr2v + {false, -1}, // Skeleton flat " + { true, -1}, // Sink " (SOD:gibs) + { true, -1}, // Potted plant " + { true, -1}, // Urn " + { true, -1}, // Bare table " + {false, -1}, // Ceiling light " + { true, -1}, // Gibs! + { true, -1}, // suit of armor spr3v + { true, -1}, // Hanging cage " + { true, -1}, // SkeletoninCage " + {false, -1}, // Skeleton relax " + {false, pow_key1}, // Key 1 " + {false, pow_key2}, // Key 2 " + { true, -1}, // stuff (SOD:gibs) + {false, -1}, // stuff + {false, pow_food}, // Good food spr4v + {false, pow_firstaid}, // First aid " + {false, pow_clip}, // Clip " + {false, pow_machinegun},// Machine gun " + {false, pow_chaingun}, // Gatling gun " + {false, pow_cross}, // Cross " + {false, pow_chalice}, // Chalice " + {false, pow_bible}, // Bible " + {false, pow_crown}, // crown spr5v + {false, pow_fullheal}, // one up " + {false, pow_gibs}, // gibs " + { true, -1}, // barrel " + { true, -1}, // well " + { true, -1}, // Empty well " + {false, pow_gibs}, // Gibs 2 " + { true, -1}, // flag " + {false, -1}, // Red light + {false, -1}, // junk " + {false, -1}, // junk " + {false, -1}, // junk " + { true, -1}, // Gibs! + { true, -1}, // stove " (SOD:gibs) + { true, -1}, // spears " (SOD:gibs) + {false, -1}, // vines " + { true, -1}, // marble pillar + {false, pow_25clip}, // bonus 25 clip + { true, -1}, // truck + {false, pow_spear}, // SPEAR OF DESTINY! +}; + +statinfo_t *statinfo = static_wl6; +int num_statics = sizeof( static_wl6 ) / sizeof( static_wl6[ 0 ] ); + +texture_t *wallTextures[1000]; +texture_t *spriteTextures[1000]; + +PRIVATE W16 cachedGuard = 0; +PRIVATE W16 cachedOfficer = 0; +PRIVATE W16 cachedSS = 0; +PRIVATE W16 cachedDog = 0; +PRIVATE W16 cachedMutant = 0; + +PRIVATE int progress_bar = 0; + +LevelData_t levelData; + + +void CacheTextures( W16 start, W16 end ) +{ + W16 i; + static char texname[ 64 ]; + + for( i = start ; i <= end ; ++i ) + { + if ( !spriteTextures[i] ) { + my_snprintf( texname, sizeof( texname ), "%s/%.3d.tga", spritelocation, i ); + spriteTextures[i] = TM_FindTexture( texname, TT_Sprite ); + } + } +} + +/* +----------------------------------------------------------------------------- + Function: Level_ScanInfoPlane -Spawn all actors and mark down special places. + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Level_ScanInfoPlane( LevelData_t *lvl ) +{ + int x, y; + W16 tile; + + cachedGuard = 0; + cachedOfficer = 0; + cachedSS = 0; + cachedDog = 0; + cachedMutant = 0; + progress_bar = 0; + + for( y = 0 ; y < 64; ++y ) + { + for( x = 0 ; x < 64 ; ++x ) + { + tile = lvl->Plane2[ (63 - y) * 64 + x ]; + if( ! tile ) + { + continue; + } + + switch( tile ) + { +// +// guard +// + case 180: + case 181: + case 182: + case 183: + if( skill->value < gd_hard ) + break; + tile -= 36; + case 144: + case 145: + case 146: + case 147: + if( skill->value < gd_medium ) + break; + tile -= 36; + case 108: + case 109: + case 110: + case 111: + if( ! cachedGuard ) + { + CacheTextures( SPR_GRD_S_1, SPR_GRD_SHOOT3 ); + cachedGuard = 1; + } + SpawnStand( en_guard, x, y, tile - 108, lvl ); + break; + + case 184: + case 185: + case 186: + case 187: + if( skill->value < gd_hard ) + break; + tile -= 36; + case 148: + case 149: + case 150: + case 151: + if( skill->value < gd_medium ) + break; + tile -= 36; + case 112: + case 113: + case 114: + case 115: + if( ! cachedGuard ) + { + CacheTextures( SPR_GRD_S_1, SPR_GRD_SHOOT3 ); + cachedGuard = 1; + } + SpawnPatrol( en_guard, x, y,tile - 112 ); + break; + + case 124: + SpawnDeadGuard( en_guard, x, y ); + break; +// +// officer +// + case 188: + case 189: + case 190: + case 191: + if( skill->value < gd_hard ) + break; + tile -= 36; + case 152: + case 153: + case 154: + case 155: + if( skill->value < gd_medium ) + break; + tile -= 36; + case 116: + case 117: + case 118: + case 119: + if( ! cachedOfficer ) + { + CacheTextures( SPR_OFC_S_1, SPR_OFC_SHOOT3 ); + cachedOfficer = 1; + } + SpawnStand( en_officer, x, y, tile - 116, lvl ); + break; + + + case 192: + case 193: + case 194: + case 195: + if( skill->value < gd_hard ) + break; + tile -= 36; + case 156: + case 157: + case 158: + case 159: + if( skill->value < gd_medium ) + break; + tile -= 36; + case 120: + case 121: + case 122: + case 123: + if( ! cachedOfficer ) + { + CacheTextures( SPR_OFC_S_1, SPR_OFC_SHOOT3 ); + cachedOfficer = 1; + } + SpawnPatrol( en_officer, x, y, tile - 120 ); + break; +// +// SS +// + case 198: + case 199: + case 200: + case 201: + if( skill->value < gd_hard ) + break; + tile -= 36; + case 162: + case 163: + case 164: + case 165: + if( skill->value < gd_medium ) + break; + tile -= 36; + case 126: + case 127: + case 128: + case 129: + if( ! cachedSS ) + { + CacheTextures( SPR_SS_S_1, SPR_SS_SHOOT3 ); + cachedSS = 1; + } + SpawnStand( en_ss, x, y, tile - 126, lvl ); + break; + + case 202: + case 203: + case 204: + case 205: + if( skill->value < gd_hard ) + break; + tile -= 36; + case 166: + case 167: + case 168: + case 169: + if( skill->value < gd_medium ) + break; + tile -= 36; + case 130: + case 131: + case 132: + case 133: + if( ! cachedSS ) + { + CacheTextures( SPR_SS_S_1, SPR_SS_SHOOT3 ); + cachedSS = 1; + } + SpawnPatrol( en_ss, x, y, tile - 130 ); + break; +// +// dogs +// + case 206: + case 207: + case 208: + case 209: + if( skill->value < gd_hard ) + break; + tile -= 36; + case 170: + case 171: + case 172: + case 173: + if( skill->value < gd_medium ) + break; + tile -= 36; + case 134: + case 135: + case 136: + case 137: + if( ! cachedDog ) + { + CacheTextures( SPR_DOG_W1_1, SPR_DOG_JUMP3 ); + cachedDog = 1; + } + SpawnStand( en_dog, x, y, tile - 134, lvl ); + break; + + case 210: + case 211: + case 212: + case 213: + if( skill->value < gd_hard ) + break; + tile -= 36; + case 174: + case 175: + case 176: + case 177: + if( skill->value < gd_medium ) + break; + tile -= 36; + case 138: + case 139: + case 140: + case 141: + if( ! cachedDog ) + { + CacheTextures( SPR_DOG_W1_1, SPR_DOG_JUMP3 ); + cachedDog = 1; + } + SpawnPatrol( en_dog, x, y, tile - 138 ); + break; +// bosses + case 214: + CacheTextures( SPR_BOSS_W1, SPR_BOSS_DIE3 ); + SpawnBoss( en_boss, x, y ); + break; + + case 197: + CacheTextures( SPR_GRETEL_W1, SPR_GRETEL_DIE3 ); + SpawnBoss( en_gretel, x, y ); + break; + + case 215: + CacheTextures( SPR_GIFT_W1, SPR_GIFT_DEAD ); + SpawnBoss( en_gift, x, y ); + break; + + case 179: + CacheTextures( SPR_FAT_W1, SPR_FAT_DEAD ); + SpawnBoss( en_fat, x, y ); + break; + + case 196: + CacheTextures( SPR_SCHABB_W1, SPR_HYPO4 ); + SpawnBoss( en_schabbs, x, y ); + break; + + case 160: + CacheTextures( SPR_FAKE_W1, SPR_FAKE_DEAD ); + SpawnBoss( en_fake, x, y ); + break; + + case 178: + CacheTextures( SPR_MECHA_W1, SPR_HITLER_DIE7 ); + SpawnBoss( en_mecha, x, y ); + break; +// +// Spear +// + case 106: + CacheTextures( SPR_SPECTRE_W1, SPR_SPECTRE_F4 ); + SpawnBoss( en_spectre, x, y ); + break; + + case 107: + CacheTextures( SPR_ANGEL_W1, SPR_ANGEL_DEAD ); + SpawnBoss( en_angel, x, y ); + break; + + case 125: + CacheTextures( SPR_TRANS_W1, SPR_TRANS_DIE3 ); + SpawnBoss( en_trans, x, y ); + break; + + case 142: + CacheTextures( SPR_UBER_W1, SPR_UBER_DEAD ); + SpawnBoss( en_uber, x, y ); + break; + + case 143: + CacheTextures( SPR_WILL_W1, SPR_WILL_DEAD ); + SpawnBoss( en_will, x, y ); + break; + + case 161: + CacheTextures( SPR_DEATH_W1, SPR_DEATH_DEAD ); + SpawnBoss( en_death, x, y ); + break; +// +// mutants +// + case 252: + case 253: + case 254: + case 255: + if( skill->value < gd_hard ) + break; + tile -= 18; + case 234: + case 235: + case 236: + case 237: + if( skill->value < gd_medium ) + break; + tile -= 18; + case 216: + case 217: + case 218: + case 219: + if( ! cachedMutant ) + { + CacheTextures( SPR_MUT_S_1, SPR_MUT_SHOOT4 ); + cachedMutant = 1; + } + SpawnStand( en_mutant, x, y, tile - 216, lvl ); + break; + + case 256: + case 257: + case 258: + case 259: + if (skill->valuevalue < gd_medium ) + break; + tile -= 18; + case 220: + case 221: + case 222: + case 223: + if( ! cachedMutant ) + { + CacheTextures( SPR_MUT_S_1, SPR_MUT_SHOOT4 ); + cachedMutant = 1; + } + SpawnPatrol( en_mutant, x, y, tile - 220 ); + break; + +// +// ghosts +// + case 224: + CacheTextures( SPR_BLINKY_W1, SPR_BLINKY_W2 ); + SpawnGhosts( en_blinky, x, y ); + break; + + case 225: + CacheTextures( SPR_PINKY_W1, SPR_PINKY_W2 ); + SpawnGhosts( en_clyde, x, y ); + break; + + case 226: + CacheTextures( SPR_CLYDE_W1, SPR_CLYDE_W2 ); + SpawnGhosts( en_pinky, x, y ); + break; + + case 227: + CacheTextures( SPR_INKY_W1, SPR_INKY_W2 ); + SpawnGhosts( en_inky, x, y ); + break; + } + } + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Lvl_SpawnStatic( LevelData_t *lvl, int type, int x, int y ) +{ + int spr_id; + + if( statinfo[ type ].powerup == -1 ) + { + if( statinfo[ type ].block ) // blocking static + { + lvl->tilemap[ x ][ y ] |= BLOCK_TILE; + } + else // dressing static + { + lvl->tilemap[ x ][ y ] |= DRESS_TILE; + } + + spr_id = Sprite_GetNewSprite(); + if( spr_id == -1 ) + { + return; + } + + Sprite_SetPos( spr_id, TILE2POS( x ), TILE2POS( y ), 0 ); + Sprite_SetTex( spr_id, 0, SPR_STAT_0 + type ); + } + else + { + Powerup_Spawn( x, y, statinfo[ type ].powerup ); + if( statinfo[ type ].powerup == pow_cross || + statinfo[ type ].powerup == pow_chalice || + statinfo[ type ].powerup == pow_bible || + statinfo[ type ].powerup == pow_crown || + statinfo[ type ].powerup == pow_fullheal ) + { + levelstate.total_treasure++; // FIXME: move this to Powerup_Spawn Function! + } + } +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Lvl_SpawnObj( LevelData_t *lvl, int type, int x, int y ) +{ + if( type >= 23 && type < 23 + num_statics ) + {// static object + Lvl_SpawnStatic( lvl, type - 23, x, y); + return; + } + + switch( type ) + { + case 0x13: // start N + lvl->pSpawn.origin[ 0 ] = TILE2POS( x ); + lvl->pSpawn.origin[ 1 ] = TILE2POS( y ); + lvl->pSpawn.angle = ANG_90; + break; + + case 0x14: // start E + lvl->pSpawn.origin[ 0 ] = TILE2POS( x ); + lvl->pSpawn.origin[ 1 ] = TILE2POS( y ); + lvl->pSpawn.angle = ANG_0; + break; + + case 0x15: // start S + lvl->pSpawn.origin[ 0 ] = TILE2POS( x ); + lvl->pSpawn.origin[ 1 ] = TILE2POS( y ); + lvl->pSpawn.angle = ANG_270; + break; + + case 0x16: // start W + lvl->pSpawn.origin[ 0 ] = TILE2POS( x ); + lvl->pSpawn.origin[ 1 ] = TILE2POS( y ); + lvl->pSpawn.angle = ANG_180; + break; + + case 0x5a: // turn E + lvl->tilemap[ x ][ y ] |= TILE_IS_E_TURN;//FIXME! + break; + + case 0x5b: // turn NE + lvl->tilemap[ x ][ y ] |= TILE_IS_NE_TURN;//FIXME! + break; + + case 0x5c: // turn N + lvl->tilemap[ x ][ y ] |= TILE_IS_N_TURN;//FIXME! + break; + + case 0x5d: // turn NW + lvl->tilemap[ x ][ y ] |= TILE_IS_NW_TURN;//FIXME! + break; + + case 0x5e: // turn W + lvl->tilemap[ x ][ y ] |= TILE_IS_W_TURN;//FIXME! + break; + + case 0x5f: // turn SW + lvl->tilemap[ x ][ y ] |= TILE_IS_SW_TURN;//FIXME! + break; + + case 0x60: // turn S + lvl->tilemap[ x ][ y ] |= TILE_IS_S_TURN;//FIXME! + break; + + case 0x61: // turn SE + lvl->tilemap[ x ][ y ] |= TILE_IS_SE_TURN;//FIXME! + break; + + case 0x62: // pushwall modifier + lvl->tilemap[ x ][ y ] |= SECRET_TILE; + levelstate.total_secrets++; + break; + + case 0x63: // Victory trigger + lvl->tilemap[ x ][ y ] |= EXIT_TILE; + break; + // spawn guards + + } // end of switch( type ) + +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + length -[in] The length of the EXPANDED data. + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Lvl_CarmackExpand( W16 *source, W16 *dest, W16 length ) +{ + #define NEARTAG 0xA7 + #define FARTAG 0xA8 + + + W32 chhigh, offset; + W16 *copyptr, *outptr; + W8 *inptr; + W16 ch, count; + + length /= 2; + + inptr = (W8 *)source; + outptr = dest; + + while( length ) + { + ch = *(W16 *)inptr; + inptr += 2; + chhigh = ch >> 8; + if( chhigh == NEARTAG ) + { + count = ch & 0xff; + if( ! count ) + { // have to insert a word containing the tag byte + ch |= *inptr++; + *outptr++ = (W16)ch; + length--; + } + else + { + offset = *inptr++; + copyptr = outptr - offset; + length -= count; + while( count-- ) + { + *outptr++ = *copyptr++; + } + } + } + else if( chhigh == FARTAG ) + { + count = ch & 0xff; + if( ! count ) + { // have to insert a word containing the tag byte + ch |= *inptr++; + *outptr++ = ch; + length--; + } + else + { + offset = *(W16 *)inptr; + inptr += 2; + copyptr = dest + offset; + length -= count; + while( count-- ) + { + *outptr++ = *copyptr++; + } + } + } + else + { + *outptr++ = ch; + length--; + } + } +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + length -[in] Is EXPANDED length + + Returns: + + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Lvl_RLEWexpand( W16 *source, W16 *dest, + long length, unsigned rlewtag ) +{ + unsigned value,count,i; + W16 *end; + + + +// +// expand it +// + end = dest + (length >> 1); + + do + { + value = *source++; + if( value != rlewtag ) + { + // + // uncompressed + // + *dest++ = value; + } + else + { + // + // compressed string + // + count = *source++; + value = *source++; + + for( i = 1 ; i <= count ; ++i ) + { + *dest++ = value; + } + } + + } while( dest < end ); + +} + + +#define MAPHEADER_SIZE 49 +#define MAP_SIGNATURE 0x21444921 + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC LevelData_t *Level_LoadMap( const char *levelname ) +{ + W16 rle; + W32 offset[ 3 ]; + W16 length[ 3 ]; + W16 w, h; + W32 signature; + W16 *buffer, expanded; + W8 *data; + W32 ceiling, floor; + LevelData_t *newMap; + filehandle_t *fhandle; + W16 mapNameLength; + char *mapName; + W16 musicNameLength; + char *musicName; + SW32 filesize; + + int x, y0, y, layer1, layer2, layer3; + + + + if( g_version->value == SPEAROFDESTINY ) + { + statinfo = static_sod; + num_statics = sizeof( static_sod ) / sizeof( static_sod[ 0 ] ); + } + else + { + statinfo = static_wl6; + num_statics = sizeof( static_wl6 ) / sizeof( static_wl6[ 0 ] ); + } + + + + newMap = &levelData; + memset( newMap, 0, sizeof( LevelData_t ) ); + + + fhandle = FS_OpenFile( levelname, 0 ); + if( ! fhandle ) + { + Com_Printf( "Could not load map (%s)\n", levelname ); + + return NULL; + } + + filesize = FS_GetFileSize( fhandle ); + if( filesize < MAPHEADER_SIZE ) + { + return NULL; + } + + +// +// Process map header +// + FS_ReadFile( &signature, 1, 4, fhandle ); + if( signature != MAP_SIGNATURE ) + { + return NULL; + } + + + + FS_ReadFile( &rle, 2, 1, fhandle ); + + FS_ReadFile( &w, 2, 1, fhandle ); + FS_ReadFile( &h, 2, 1, fhandle ); + + FS_ReadFile( &ceiling, 4, 1, fhandle ); + FS_ReadFile( &floor, 4, 1, fhandle ); + + + FS_ReadFile( &length, 2, 3, fhandle ); + FS_ReadFile( &offset, 4, 3, fhandle ); + + + FS_ReadFile( &mapNameLength, 1, 2, fhandle ); + FS_ReadFile( &musicNameLength, 1, 2, fhandle ); + + FS_ReadFile( &levelstate.fpartime, sizeof( float ), 1, fhandle ); + + FS_ReadFile( levelstate.spartime, sizeof( W8 ), 5, fhandle ); + levelstate.spartime[ 5 ] = '\0'; + + + if( filesize < (MAPHEADER_SIZE + mapNameLength + musicNameLength + + length[ 0 ] + length[ 1 ] + length[ 2 ]) ) + { + return NULL; + } + + mapName = Z_Malloc( mapNameLength + 1 ); + musicName = Z_Malloc( musicNameLength + 1 ); + + + FS_ReadFile( mapName, 1, mapNameLength, fhandle ); + mapName[ mapNameLength ] = '\0'; + + + FS_ReadFile( musicName, 1, musicNameLength, fhandle ); + musicName[ musicNameLength ] = '\0'; + + + if( filesize < (MAPHEADER_SIZE + mapNameLength + musicNameLength) ) + { + return NULL; + } + +// +// Plane1 -Walls +// + data = MM_MALLOC( length[ 0 ] ); + + FS_FileSeek( fhandle, offset[ 0 ], SEEK_SET ); + FS_ReadFile( data, 1, length[ 0 ], fhandle ); + + + expanded = *((unsigned short *)data); + buffer = MM_MALLOC( expanded ); + + Lvl_CarmackExpand( (unsigned short *)data+1, buffer, expanded ); + Lvl_RLEWexpand( buffer+1, newMap->Plane1, 64*64*2, rle ); + + MM_FREE( buffer ); + MM_FREE( data ); + +// +// Plane2 -Objects +// + data = MM_MALLOC( length[ 1 ] ); + + FS_FileSeek( fhandle, offset[ 1 ], SEEK_SET ); + FS_ReadFile( data, 1, length[ 1 ], fhandle ); + + + expanded = *((PW16)data); + buffer = MM_MALLOC( expanded ); + + Lvl_CarmackExpand( (PW16)data+1, buffer, expanded ); + Lvl_RLEWexpand( buffer+1, newMap->Plane2, 64*64*2, rle ); + + MM_FREE( buffer ); + MM_FREE( data ); + +// +// Plane3 -Other +// + data = MM_MALLOC( length[ 2 ] ); + + FS_FileSeek( fhandle, offset[ 2 ], SEEK_SET ); + FS_ReadFile( data, 1, length[ 2 ], fhandle ); + + + expanded = *((PW16)data); + buffer = MM_MALLOC( expanded ); + + Lvl_CarmackExpand( (PW16)data+1, buffer, expanded ); + Lvl_RLEWexpand( buffer+1, newMap->Plane3, 64*64*2, rle ); + + MM_FREE( buffer ); + MM_FREE( data ); + + + FS_CloseFile( fhandle ); + + // HUGE HACK to take out the pushwall maze that occasionally + // gets players stuck in level E4M2 without actually touching + // a map editor... + if ( !strcmp( levelname, "maps/w31.map" ) ) { + for ( x = 22 ; x <= 32 ; x++ ) { + for ( y0 = 30 ; y0 <= 32 ; y0++ ) { + newMap->Plane1[ y0 * 64 + x ] = newMap->Plane1[ 30*64+21 ]; + newMap->Plane2[ y0 * 64 + x ] = newMap->Plane2[ 30*64+21 ]; + newMap->Plane3[ y0 * 64 + x ] = newMap->Plane3[ 30*64+21 ]; + } + } + } + + + for( y0 = 0 ; y0 < 64 ; ++y0 ) + for( x = 0 ; x < 64 ; ++x ) + { + y = 63 - y0; + layer1 = newMap->Plane1[ y0 * 64 + x ]; + layer2 = newMap->Plane2[ y0 * 64 + x ]; + layer3 = newMap->Plane3[ y0 * 64 + x ]; + +// if server, process obj layer! + if( layer2 ) + { + Lvl_SpawnObj( newMap, layer2, x, y ); + } + +// Map data layer + if( layer1 == 0 ) + { + newMap->areas[ x ][ y ] = -3; // unknown area + } + else if( layer1 < 0x6a ) // solid map object + { + if( (layer1 >= 0x5A && layer1 <= 0x5F) || + layer1 == 0x64 || layer1 == 0x65 ) // door + { + newMap->tilemap[ x ][ y ] |= DOOR_TILE; + Door_SpawnDoor( &newMap->Doors, x, y, layer1 ); + newMap->areas[ x ][ y ] = -2; // door area + } + else + { + newMap->tilemap[ x ][ y ] |= WALL_TILE; + + newMap->wall_tex_x[ x ][ y ] = (layer1-1) * 2 + 1; + newMap->wall_tex_y[ x ][ y ] = (layer1-1) * 2; + newMap->areas[ x ][ y ] = -1; // wall area + + if( layer1 == 0x15 ) // elevator + { + newMap->tilemap[ x ][ y ] |= ELEVATOR_TILE; + } + } + } + else if( layer1 == 0x6a ) // Ambush floor tile + { + newMap->tilemap[ x ][ y ] |= AMBUSH_TILE; + newMap->areas[ x ][ y ] = -3; // unknown area + } + else if( layer1 >= FIRSTAREA && + layer1 < (FIRSTAREA + NUMAREAS) ) // area + { + if( layer1 == FIRSTAREA ) // secret level + { + newMap->tilemap[ x ][ y ] |= SECRETLEVEL_TILE; + } + + newMap->areas[ x ][ y ] = layer1 - FIRSTAREA;// spawn area + } + else + { + newMap->areas[ x ][ y ] = -3; // unknown area + } +// End of the map data layer + } + + // JDC: try to replace all the unknown areas with an adjacent area, to + // avoid the silent attack / no damage problem when you get an ambush + // guard stuck on their original tile + for ( x = 1 ; x < 63 ; x++ ) { + for ( y = 1 ; y < 63 ; y++ ) { + if ( newMap->areas[x][y] != -3 ) { + continue; + } + if ( newMap->areas[x-1][y] >= 0 ) { + newMap->areas[x][y] = newMap->areas[x-1][y]; + } else if ( newMap->areas[x+1][y] >= 0 ) { + newMap->areas[x][y] = newMap->areas[x+1][y]; + } else if ( newMap->areas[x][y-1] >= 0 ) { + newMap->areas[x][y] = newMap->areas[x][y-1]; + } else if ( newMap->areas[x+1][y+1] >= 0 ) { + newMap->areas[x][y] = newMap->areas[x][y+1]; + } + } + } + + Door_SetAreas( &newMap->Doors, newMap->areas ); + + my_strlcpy( levelstate.level_name, mapName, sizeof( levelstate.level_name ) ); + + strcpy( newMap->mapName, mapName ); + strcpy( newMap->musicName, musicName ); + + newMap->ceilingColour[ 0 ] = (W8)((ceiling >> 16) & 0xFF); + newMap->ceilingColour[ 1 ] = (W8)((ceiling >> 8) & 0xFF); + newMap->ceilingColour[ 2 ] = (W8)((ceiling ) & 0xFF); + newMap->floorColour[ 0 ] = (W8)((floor >> 16) & 0xFF); + newMap->floorColour[ 1 ] = (W8)((floor >> 8) & 0xFF); + newMap->floorColour[ 2 ] = (W8)((floor ) & 0xFF); + + return newMap; +} + + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Level_PrecacheTextures_Sound( LevelData_t *lvl ) +{ + int x, y; + char texname[ 32 ]; + + + + for( x = 0 ; x < 64 ; ++x ) + for( y = 0 ; y < 64 ; ++y ) + { + if( lvl->tilemap[ x ][ y ] & WALL_TILE ) + { + LoadWallTexture( lvl->wall_tex_x[ x ][ y ] ); + LoadWallTexture( lvl->wall_tex_y[ x ][ y ] ); + } + + if( lvl->tilemap[ x ][ y ] & POWERUP_TILE ) + { + int tex = lvl->tilemap[ x ][ y ] & POWERUP_TILE; + my_snprintf( texname, sizeof( texname ), "%s/%.3d.tga", spritelocation, tex ); + spriteTextures[tex] = TM_FindTexture( texname, TT_Wall ); + } + } + + // Doors + for( x = TEX_DOOR; x < TEX_DLOCK+2 ; ++x ) + { + LoadWallTexture( x ); + } + + + // Items + CacheTextures( 26, 36 ); + + // Weapon frames + CacheTextures( SPR_KNIFEREADY, SPR_CHAINATK4 ); + + // in case the last wall load was a dim copy + pfglColor3f( 1, 1, 1 ); +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: true if a straight line between 2 points is unobstructed, + otherwise false. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean Level_CheckLine( SW32 x1, SW32 y1, SW32 x2, SW32 y2, LevelData_t *lvl ) +{ + SW32 xt1, yt1, xt2, yt2; /* tile positions */ + SW32 x, y; /* current point in !tiles! */ + SW32 xdist, ydist; + SW32 xstep, ystep; /* Step value for each whole xy */ + + SW32 deltafrac; /* current point in !1/256 of tile! */ + + SW32 Frac; /* Fractional xy stepper */ + + SW32 partial; /* how much to move in our direction to border */ + SW32 intercept; /* Temp for door code */ + + + + #define FRACBITS 8 /* Number of bits of fraction */ + + +// get start & end tiles + xt1 = x1 >> TILESHIFT; + yt1 = y1 >> TILESHIFT; + + xt2 = x2 >> TILESHIFT; + yt2 = y2 >> TILESHIFT; + + xdist = ABS( xt2 - xt1 ); // X distance in tiles + ydist = ABS( yt2 - yt1 ); // Y distance in tiles + +// 1/256 tile precision (TILESHIFT is 16) + x1 >>= FRACBITS; y1 >>= FRACBITS; + x2 >>= FRACBITS; y2 >>= FRACBITS; + + + if( xdist ) // always positive check only for 0 + { + if( xt2 > xt1 ) + { + partial = 256 - (x1 & 0xff); + xstep = 1; + } + else + { + partial = x1 & 0xff; + xstep = -1; + } + + deltafrac = ABS( x2 - x1 ); + ystep = ((y2 - y1) << FRACBITS) / deltafrac; + Frac = y1 + ((ystep * partial) >> FRACBITS); + + x = xt1 + xstep; + xt2 += xstep; + do + { + y = Frac >> FRACBITS; + Frac += ystep; + + + assert( x >= 0 && x < 64 && y >= 0 && y < 64 ); + if( lvl->tilemap[ x ][ y ] & WALL_TILE ) + { + return false; // Wall is in path quitting! + } + + if( lvl->tilemap[ x ][ y ] & DOOR_TILE ) + {// door, see if the door is open enough + if( lvl->Doors.DoorMap[ x ][ y ].action != dr_open ) + { + if( lvl->Doors.DoorMap[ x ][ y ].action == dr_closed ) + { + return false; + } + // checking vertical doors in action: ->_I_ + intercept = ((Frac - ystep / 2) & 0xFF) >> 4; // 1/64 of tile + if( intercept < (63 - lvl->Doors.DoorMap[ x ][ y ].ticcount) ) + { + return false; + } + } + } + x += xstep; + + } while( x != xt2 ); + } + + if( ydist ) // always positive check only for 0 + { + if( yt2 > yt1 ) + { + partial = 256 - (y1 & 0xff); + ystep = 1; + } + else + { + partial = y1 & 0xff; + ystep = -1; + } + + deltafrac = ABS( y2 - y1 ); + xstep = ((x2 - x1) << FRACBITS) / deltafrac; + Frac = x1 + ((xstep * partial) >> FRACBITS); + + y = yt1 + ystep; + yt2 += ystep; + do + { + x = Frac >> FRACBITS; + Frac += xstep; + + assert( x >= 0 && x < 64 && y >= 0 && y < 64 ); + if( lvl->tilemap[ x ][ y ] & WALL_TILE ) + { + return false; // Wall is in path quitting! + } + + if( lvl->tilemap[ x ][ y ] & DOOR_TILE ) + {// door, see if the door is open enough + if( lvl->Doors.DoorMap[ x ][ y ].action != dr_open ) + { + if( lvl->Doors.DoorMap[ x ][ y ].action == dr_closed ) + { + return false; + } + // checking vertical doors in action: ->_I_ + intercept = ((Frac - xstep / 2) & 0xFF) >> 4; // 1/64 of tile + if( intercept < lvl->Doors.DoorMap[ x ][ y ].ticcount ) + { + return false; + } + } + } + y += ystep; + + } while( y != yt2 ); + } + + return true; +} diff --git a/wolf3d/code/wolf/wolf_level.h b/wolf3d/code/wolf/wolf_level.h new file mode 100644 index 0000000..a7ecd8b --- /dev/null +++ b/wolf3d/code/wolf/wolf_level.h @@ -0,0 +1,292 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_level.h: Wolfenstein3-D level management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Acknowledgement: + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by wolf_areas.c, wolf_doors.c, wolf_level.c and + wolf_pushwalls.c + + +*/ + +#ifndef __WOLF_LEVEL_H__ +#define __WOLF_LEVEL_H__ + + +/////////////////// +// +// Areas +// +/////////////////// + +#define NUMAREAS 37 // number of areas +#define FIRSTAREA 0x6B // first area in map data (it is by the way a way to the secret floor!) +#define AMBUSHTILE 0x6A // def guard +#define AMBUSH -2 + +/////////////////// +// +// Doors +// +/////////////////// +#define MAX_DOORS 256 +#define DOOR_TIMEOUT 300 +#define DOOR_MINOPEN 50 + +#define DOOR_FULLOPEN 63 + + +#define DOOR_VERT 255 +#define DOOR_HORIZ 254 +#define DOOR_E_VERT 253 +#define DOOR_E_HORIZ 252 + +#define DOOR_G_VERT 251 +#define DOOR_G_HORIZ 250 +#define DOOR_S_VERT 249 +#define DOOR_S_HORIZ 248 + +#define FIRST_DOOR 248 +#define LAST_LOCK 251 + + + + +#define TEX_DOOR 126 + +// texture IDs used by cache routines +#define TEX_DDOOR (0 + TEX_DOOR) // Simple Door +#define TEX_PLATE (2 + TEX_DOOR) // Door Plate +#define TEX_DELEV (4 + TEX_DOOR) // Elevator Door +#define TEX_DLOCK (6 + TEX_DOOR) // Locked Door + + + +/////////////////// +// +// Level +// +/////////////////// +#define WALL_TILE 1 +#define PUSHWALL_TILE (1 << 20) +#define DOOR_TILE 2 +#define SECRET_TILE 4 +#define DRESS_TILE 8 +#define BLOCK_TILE 16 +#define ACTOR_TILE 32 +#define DEADACTOR_TILE 64 +#define POWERUP_TILE 128 +#define AMBUSH_TILE 256 +#define EXIT_TILE 512 +#define SECRETLEVEL_TILE 1024 +#define ELEVATOR_TILE (1 << 11) +#define TILE_IS_E_TURN (1 << 12) +#define TILE_IS_NE_TURN (1 << 13) +#define TILE_IS_N_TURN (1 << 14) +#define TILE_IS_NW_TURN (1 << 15) +#define TILE_IS_W_TURN (1 << 16) +#define TILE_IS_SW_TURN (1 << 17) +#define TILE_IS_S_TURN (1 << 18) +#define TILE_IS_SE_TURN (1 << 19) + +#define SOLID_TILE (WALL_TILE | BLOCK_TILE | PUSHWALL_TILE) +#define BLOCKS_MOVE_TILE (WALL_TILE | BLOCK_TILE | PUSHWALL_TILE | ACTOR_TILE) +#define WAYPOINT_TILE (TILE_IS_E_TURN | TILE_IS_NE_TURN | TILE_IS_N_TURN | TILE_IS_NW_TURN | TILE_IS_W_TURN | TILE_IS_SW_TURN | TILE_IS_S_TURN | TILE_IS_SE_TURN ) + +/////////////////// +// +// Doors +// +/////////////////// +typedef enum +{ + dr_closing = -1, + dr_closed, + dr_opening, + dr_open + +} dr_state; + +typedef struct +{ + int tilex, tiley; + _boolean vertical; + int ticcount; + + dr_state action; + + int area1, area2; +/*DOOR_VERT 255 + DOOR_HORIZ 254 + DOOR_E_VERT 253 + DOOR_E_HORIZ 252 + DOOR_G_VERT 251 + DOOR_G_HORIZ 250 + DOOR_S_VERT 249 + DOOR_S_HORIZ 248*/ + int type; + + int texture; + +} doors_t; + +typedef struct +{ + int doornum; + doors_t *Doors[ 256 ]; + doors_t DoorMap[ 64 ][ 64 ]; + +} LevelDoors_t; + +#define MAX_POWERUPS 1000 + +/////////////////// +// +// Level +// +/////////////////// +typedef struct +{ + char fname[ 32 ]; /* Map filename */ + + W16 Plane1[ 64 * 64 ]; /* walls */ + W16 Plane2[ 64 * 64 ]; /* objects */ + W16 Plane3[ 64 * 64 ]; /* other */ + + + long tilemap[ 64 ][ 64 ]; // wall values only + W8 spotvis[ 64 ][ 64 ]; +// objtype *actorat[ 64 ][ 64 ]; + + // this is an array of references to texture descriptions +// the renderer must know what to draw by this number + int wall_tex_x[ 64 ][ 64 ]; // x_wall + int wall_tex_y[ 64 ][ 64 ]; // y_wall + +// this is a (0-based) array of area numbers! +// must be all filled by level loading sub +// if -1 it is a wall, if -2 it is a door, if -3 it is unknown + int areas[ 64 ][ 64 ]; + + LevelDoors_t Doors; + + placeonplane_t pSpawn; // player spawn place + + powerup_t powerups[MAX_POWERUPS]; + int numPowerups; + + sprite_t sprites[ MAX_SPRITES ]; + int numSprites; + + char mapName[128]; /* Map name */ + char musicName[128]; /* Music file name */ + + colour3_t ceilingColour, floorColour; + + W8 tileEverVisible[ 64 ][ 64 ]; // for automap +} LevelData_t; + + +typedef struct statinfo_t +{ + _boolean block; + int powerup; + +} statinfo_t; + + +extern LevelData_t *r_world; +extern LevelData_t levelData; + +extern LevelData_t *Level_LoadMap( const char *levelname ); +extern void Level_PrecacheTextures_Sound( LevelData_t *lvl ); +extern _boolean Level_CheckLine( SW32 x1, SW32 y1, SW32 x2, SW32 y2, LevelData_t *lvl ); +extern void Level_ScanInfoPlane( LevelData_t *lvl ); + +/////////////////// +// +// Doors +// +/////////////////// +extern void Door_ResetDoors( LevelDoors_t *lvl ); +extern int Door_SpawnDoor( LevelDoors_t *lvl, int x, int y, int type ); +extern void Door_SetAreas( LevelDoors_t *lvl, int (*areas)[64] ); +extern void Door_OpenDoor( doors_t *Door ); +extern void Door_ProcessDoors_e( LevelDoors_t *lvl, int t_tk ); +extern int Door_Opened( LevelDoors_t *lvl, int x, int y ); +extern _boolean Door_TryUse( doors_t *Door, int keys ); + +/////////////////// +// +// Areas +// +/////////////////// +extern _boolean areabyplayer[ NUMAREAS ]; + +extern void Areas_ConnectAreas( int areanumber ); +extern void Areas_InitAreas( int areanumber ); +extern void Areas_JoinAreas( int area1, int area2 ); +extern void Areas_DisconnectAreas( int area1, int area2 ); + + +/////////////////// +// +// Push Walls +// +/////////////////// +typedef struct +{ + _boolean active; + int PWtilesmoved; + int PWpointsmoved; + dir4type dir; + int x, y; + int dx, dy; + int tex_x, tex_y; + +} Pwall_t; + + +extern Pwall_t PWall; + + +extern void PushWall_Reset( void ); +extern _boolean PushWall_Push( int x, int y, dir4type dir ); +extern void PushWall_Process( void ); + + +#endif /* __WOLF_LEVEL_H__ */ diff --git a/wolf3d/code/wolf/wolf_local.h b/wolf3d/code/wolf/wolf_local.h new file mode 100644 index 0000000..0c84640 --- /dev/null +++ b/wolf3d/code/wolf/wolf_local.h @@ -0,0 +1,150 @@ +/* + + Copyright (C) 2004 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_local.h: Wolfenstein3-D init. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by wolf_main.c + +*/ + +#ifndef __WOLF_LOCAL_H__ +#define __WOLF_LOCAL_H__ + + +// Game Version +#define WOLFENSTEINWL6 0x00 +#define SPEAROFDESTINY 0x01 + + + +#define TILEGLOBAL 0x10000 +#define HALFTILE 0x8000 +#define TILESHIFT 16 + +#define MINDIST (0x5800) + + + + + +typedef enum difficulty_e +{ + gd_baby, + gd_easy, + gd_medium, + gd_hard + +} difficulty_t; + +// +// this structure is cleared as each map is entered +// +typedef struct +{ + int framenum; + float time; + + char level_name[ MAX_OSPATH ]; // the descriptive name (Outer Base, etc) + char mapname[ MAX_OSPATH ]; // the server name (base1, etc) + char nextmap[ MAX_OSPATH ]; // go here when fraglimit is hit + + // intermission state + W32 levelCompleted; // in case the game was saved at the intermission + + W32 floornum; + float fpartime; + char spartime[6]; + + W32 total_secrets; + W32 found_secrets; + + W32 total_treasure; + W32 found_treasure; + + W32 total_monsters; + W32 killed_monsters; + + +} level_locals_t; + + + +extern level_locals_t levelstate; + + + +typedef struct +{ + W32 total_secrets; + W32 found_secrets; + + W32 total_treasure; + W32 found_treasure; + + W32 total_monsters; + W32 killed_monsters; + W32 time; + +} LRstruct; + + +extern LRstruct LevelRatios; + + + +extern cvar_t *g_version; +extern cvar_t *episode; +extern cvar_t *skill; + +extern int tics; + + +W32 floornumber; + + +extern void Game_Init( void ); +extern void Game_Reset( void ); + + + +extern void ProcessGuards( void ); + + +#define WL6SPRITESDIRNAME "sprites" +#define SODSPRITESDIRNAME "sodsprites" + + +extern char *spritelocation; + + + +#endif /* __WOLF_LOCAL_H__ */ diff --git a/wolf3d/code/wolf/wolf_main.c b/wolf3d/code/wolf/wolf_main.c new file mode 100644 index 0000000..141b829 --- /dev/null +++ b/wolf3d/code/wolf/wolf_main.c @@ -0,0 +1,87 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + +level_locals_t levelstate; + +LRstruct LevelRatios; + +cvar_t *g_version; // Wolfenstein or Spear of Destiny +cvar_t *episode; +cvar_t *skill; + + +char *spritelocation = WL6SPRITESDIRNAME; + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Game_Reset( void ) +{ + memset( &levelstate, 0, sizeof( levelstate ) ); +} + +extern void Map_f( void ); + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Game_Init( void ) +{ + Com_Printf( "\n------ Game Init ------\n" ); + + episode = Cvar_Get( "episode", "0", CVAR_ARCHIVE ); + skill = Cvar_Get( "skill", "1", CVAR_ARCHIVE ); + g_version = Cvar_Get( "g_version", "0", CVAR_ARCHIVE ); + +#ifndef LITE + Cmd_AddCommand( "map", Map_f ); +#endif + + G_Build_Tables(); + Powerup_Reset(); + Sprite_Reset(); + Game_Reset(); + PL_Init(); + + Com_Printf( "\n-----------------------\n" ); + +} diff --git a/wolf3d/code/wolf/wolf_math.c b/wolf3d/code/wolf/wolf_math.c new file mode 100644 index 0000000..ef14f07 --- /dev/null +++ b/wolf3d/code/wolf/wolf_math.c @@ -0,0 +1,341 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_math.c: Wolfenstein 3-D math routines. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * + */ + +#include "../wolfiphone.h" + +#define XRES 640 +#define YRES 480 + +// ------------------------- * LUTs * ------------------------- +double SinTable[ ANG_360 + ANG_90 + 1 ], + *CosTable = SinTable + ANG_90, + TanTable[ ANG_360 + 1 ]; + +int XnextTable[ ANG_360 + 1 ], + YnextTable[ ANG_360 + 1 ]; + +int ColumnAngle[ 640 ]; // ViewAngle=PlayerAngle+ColumnAngle[curcolumn]; /in fines/ + +char dx4dir[5]={1, 0, -1, 0, 0}; // dx & dy based on direction +char dy4dir[5]={0, 1, 0, -1, 0}; +char dx8dir[9]={1, 1, 0, -1, -1, -1, 0, 1, 0}; // dx & dy based on direction +char dy8dir[9]={0, 1, 1, 1, 0, -1, -1, -1, 0}; +dir4type opposite4[5]={2, 3, 0, 1, 4}; +dir8type opposite8[9]={4, 5, 6, 7, 0, 1, 2, 3, 8}; +dir8type dir4to8[5]={0, 2, 4, 6, 8}; +dir8type diagonal[9][9]= +{ +/* east */ {dir8_nodir, dir8_nodir, dir8_northeast, dir8_nodir, dir8_nodir, dir8_nodir, dir8_southeast, dir8_nodir, dir8_nodir}, + {dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir}, +/* north */ {dir8_northeast, dir8_nodir, dir8_nodir, dir8_nodir, dir8_northwest, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir}, + {dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir}, +/* west */ {dir8_nodir, dir8_nodir, dir8_northwest, dir8_nodir, dir8_nodir, dir8_nodir, dir8_southwest, dir8_nodir, dir8_nodir}, + {dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir}, +/* south */ {dir8_southeast, dir8_nodir, dir8_nodir, dir8_nodir, dir8_southwest, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir}, + {dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir}, + {dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir, dir8_nodir} +}; +// dir of delta tooks dx{-1|0|1}+1 & dy{-1|0|1}+1 and give direction +dir4type dir4d[3][3]={{dir4_nodir, dir4_west , dir4_nodir}, + {dir4_south, dir4_nodir, dir4_north}, + {dir4_nodir, dir4_east , dir4_nodir}}; +int dir8angle[9]={ANG_0, ANG_45, ANG_90, ANG_135, ANG_180, ANG_225, ANG_270, ANG_315, ANG_0}; +int dir4angle[5]={ANG_0, ANG_90, ANG_180, ANG_270, ANG_0}; + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC int G_Build_Tables( void ) +{ + double angle, tanfov2, tanval, value; + int n; + + for( n = 0 ; n <= ANG_90 ; ++n ) + { + angle = FINE2RAD( n ); + + value = sin( angle ); + SinTable[ n ] = SinTable[ ANG_180 - n ] = SinTable[ n + ANG_360 ] = value; + SinTable[ ANG_180 + n ] = SinTable[ ANG_360 - n ] = -value; + } + + for( n = 0 ; n <= ANG_360 ; ++n ) + { + angle = FINE2RAD( n ); //angle is in radians, n is in FINEs + + if( n == ANG_90 || n == ANG_270 ) + { + TanTable[ n ] = tan( FINE2RAD( n - 0.5 ) ); // infinity + YnextTable[ n ] = (int)(FLOATTILE * tan( FINE2RAD( n - 0.5 ) )); // infinity + } + else + { + TanTable[ n ] = tan( angle ); + YnextTable[ n ] = (int)(FLOATTILE * tan( angle )); + } + + if( n == ANG_0 || n == ANG_360 ) + XnextTable[ n ] = (int)(FLOATTILE / tan( FINE2RAD( n + 0.5 ) )); // infinity + else if( n == ANG_180 ) + XnextTable[ n ] = (int)(FLOATTILE / tan(FINE2RAD( n - 0.5 ) )); // -infinity + else if( n == ANG_90 || n == ANG_270 ) + XnextTable[ n ] = 0; + else + XnextTable[ n ] = (int)(FLOATTILE / tan( angle )); + } + + tanfov2 = TanDgr( CalcFov( 75, XRES, YRES) / 2.0 ) * ((float)XRES / (float)YRES ); + for( n = 0 ; n < XRES ; ++n ) + { + tanval = tanfov2 * (-1.0 + 2.0 * (double)n / (double)(XRES-1) ); + ColumnAngle[ n ] = (int)RAD2FINE( atan( tanval ) ); + } + + US_InitRndT( 1 ); // random number generators + + + return 1; +} + + + +/* +----------------------------------------------------------------------------- + Function: NormalizeAngle -clips angle to [0..360] bounds. + + Parameters: + + Returns: + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC int NormalizeAngle( int alpha ) +{ + if( alpha > ANG_360 ) + alpha %= ANG_360; + + if(alpha x + point1 = {x, y} +----------------------------------------------------------------------------- +*/ +PUBLIC float TransformPoint( double Point1X, double Point1Y, double Point2X, double Point2Y ) +{ + float angle; + + angle = atan2( Point1Y - Point2Y, Point1X - Point2X ); + + return normalize_angle( angle ); +} + diff --git a/wolf3d/code/wolf/wolf_math.h b/wolf3d/code/wolf/wolf_math.h new file mode 100644 index 0000000..39f6925 --- /dev/null +++ b/wolf3d/code/wolf/wolf_math.h @@ -0,0 +1,147 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_math.h: Wolfenstein 3-D math routines. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * + */ + +/* + Notes: + This module is implemented by wolf_math.c + +*/ +#ifndef __WOLF_MATH_H__ +#define __WOLF_MATH_H__ + + +#define FLOATTILE 65536.0f + + +// Angle Direction Types & LUTs (Hard Coded! Please do not mess them) +typedef enum {q_first, q_second, q_third, q_fourth} quadrant; +typedef enum {dir4_east, dir4_north, dir4_west, dir4_south, dir4_nodir} dir4type; +typedef enum { dir8_east, dir8_northeast, dir8_north, dir8_northwest, dir8_west, + dir8_southwest, dir8_south, dir8_southeast, dir8_nodir} dir8type; + +extern char dx4dir[5], dy4dir[5], dx8dir[9], dy8dir[9]; +extern dir4type opposite4[5], dir4d[3][3]; +extern dir8type opposite8[9], dir4to8[5], diagonal[9][9]; +extern int dir8angle[9], dir4angle[5]; +// ------------------------- * Vectors * ------------------------- +// Vectors & angles for 3D-Space + + + +typedef struct +{ + long origin[2]; + long angle; + +} placeonplane_t; + + +// ------------------------- * Some Macroses * ------------------------- + + +#define max_of_2(a, b) ((a)>(b)?(a):(b)) + + + +#define LABS(x) ((long)(x)>0?(x):-(x)) + + +#define TILE2POS(a) (((a)<>TILESHIFT) +#define POS2TILEf(a) ((a)/FLOATTILE) +// ------------------------- * vvv FINE angles vvv * ------------------------- +#define ASTEP 0.0078125f // 1 FINE=x DEGREES +#define ASTEPRAD 0.000136354f // 1 FINE=x RADIANS +#define ANG_1RAD 7333.8598 // 1 RADIAN=x FINES +#define ANG_0 0 //(int)((float)0/ASTEP) +#define ANG_1 128 //(int)((float)1/ASTEP) +#define ANG_6 768 //(int)((float)6/ASTEP) +#define ANG_15 1920 //(int)((float)15/ASTEP) +#define ANG_22_5 2880 //(int)((float)22.5/ASTEP) +#define ANG_30 3840 //(int)((float)30/ASTEP) +#define ANG_45 5760 //(int)((float)45/ASTEP) +#define ANG_67_5 8640 //(int)((float)67.5/ASTEP) +#define ANG_90 11520 //(int)((float)90/ASTEP) +#define ANG_112_5 14400 //(int)((float)112.5/ASTEP) +#define ANG_135 17280 //(int)((float)135/ASTEP) +#define ANG_157_5 20160 //(int)((float)157.5/ASTEP) +#define ANG_180 23040 //(int)((float)180/ASTEP) +#define ANG_202_5 25920 //(int)((float)202.5/ASTEP) +#define ANG_225 28800 //(int)((float)225/ASTEP) +#define ANG_247_5 31680 //(int)((float)247.5/ASTEP) +#define ANG_270 34560 //(int)((float)270/ASTEP) +#define ANG_292_5 37440 //(int)((float)292.5/ASTEP) +#define ANG_315 40320 //(int)((float)225/ASTEP) +#define ANG_337_5 43200 //(int)((float)337.5/ASTEP) +#define ANG_360 46080 //(int)((float)360/ASTEP) +// ------------------------- * ^^^ FINE angles ^^^ * ------------------------- + + + +#define FINE2RAD( a ) (((a) * M_PI ) / ANG_180) +#define RAD2FINE( a ) (((a) * ANG_180) / M_PI) +#define FINE2DEG( a ) ((float)(a) / ANG_1) // !@# don't lose precision bits +#define FINE2DEGf( a ) ((a) / (float)ANG_1) +#define DEG2FINE( a ) ((a) * ANG_1) + +extern double SinTable[], *CosTable, TanTable[ ANG_360 + 1 ]; +extern int XnextTable[ ANG_360 + 1], YnextTable[ ANG_360 + 1 ]; +extern int ColumnAngle[640]; // + +extern int G_Build_Tables(void); + +#define TanDgr( x ) (tan( DEG2RAD( x ) )) +#define SinDgr( x ) (sin( DEG2RAD( x ) )) +#define CosDgr( x ) (cos( DEG2RAD( x ) )) + +#define ArcTanDgr( x ) (RAD2DEG( atan( x ) )) +#define ArcSinDgr( x ) (RAD2DEG( asin( x ) )) +#define ArcCosDgr( x ) (RAD2DEG( acos( x ) )) + + + +extern int NormalizeAngle( int angle ); +extern int Point2LineDist( int x, int y, int a ); +extern int LineLen2Point( int x, int y, int a ); + +extern quadrant GetQuadrant( float angle ); +extern dir4type Get4dir( float angle ); +extern dir8type Get8dir( float angle ); + +extern float TransformPoint( double Point1X, double Point1Y, double Point2X, double Point2Y ); + + + + + +#endif /* __WOLF_MATH_H__ */ diff --git a/wolf3d/code/wolf/wolf_opengl.c b/wolf3d/code/wolf/wolf_opengl.c new file mode 100644 index 0000000..34582d1 --- /dev/null +++ b/wolf3d/code/wolf/wolf_opengl.c @@ -0,0 +1,518 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_opengl.c: Wolfenstein3-D OpenGL renderer. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +// width and height in 2D +#define WIDTH_2D 640 +#define HEIGHT_2D 480 + + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void GL_SetDefaultState( void ) +{ + pfglClearColor( 1,0, 0.5 , 0.5 ); + pfglCullFace( GL_FRONT ); + pfglEnable( GL_TEXTURE_2D ); + pfglDisable( GL_DEPTH_TEST ); + pfglDisable( GL_CULL_FACE ); + pfglDisable( GL_BLEND ); + pfglColor4f( 1, 1, 1, 1 ); + pfglShadeModel( GL_FLAT ); + pfglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); +} + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_DrawBox( int x, int y, int w, int h, W32 color ) +{ + pfglDisable( GL_TEXTURE_2D ); + +// pfglEnable( GL_BLEND ); +// pfglBlendFunc( GL_SRC_COLOR, GL_DST_COLOR ); + + pfglColor4ubv( (GLubyte *) & color ); + + pfglBegin( GL_QUADS ); + + pfglVertex2i( x, y ); + pfglVertex2i( x, y + h); + pfglVertex2i( x + w, y + h ); + pfglVertex2i( x + w, y ); + + pfglEnd(); + + pfglColor3f( 1, 1, 1 ); +// pfglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); +// pfglDisable( GL_BLEND ); + pfglEnable( GL_TEXTURE_2D ); +} + + +/* + ==================== + LoadWallTexture + + Returns with the texture bound and glColor set to the right intensity. + Loads an image from the filesystem if necessary. + Used both during gameplay and for preloading during level parse. + + Wolfenstein was very wasteful with texture usage, making almost half of + the textures just dim versions to provide "lighting" on the different + wall sides. With only a few exceptions for things like the elevator tiles + and outdoor tiles that could only be used in particular orientations + ==================== +*/ +float wallBrightness[1000]; +void LoadWallTexture( int wallPicNum ) { + assert( wallPicNum >= 0 && wallPicNum < 1000 ); + texture_t *twall = wallTextures[wallPicNum]; + if ( !twall ) { + if ( ( wallPicNum & 1 ) && + wallPicNum != 31 && + wallPicNum != 41 && + wallPicNum != 43 && + wallPicNum != 133 ) { + // this wallPicNum is just a dim version of another image + + // load the brighter version + LoadWallTexture( wallPicNum - 1 ); + // use the same texture + twall = wallTextures[wallPicNum] = wallTextures[wallPicNum - 1]; + // at a dimmer intensity + wallBrightness[wallPicNum] = 0.7f; + } else { + // this wallPicNum has a real image associated with it + char name[1024]; + my_snprintf( name, sizeof( name ), "walls/%.3d.tga", wallPicNum ); + twall = wallTextures[wallPicNum] = TM_FindTexture( name, TT_Wall ); + wallBrightness[wallPicNum] = 1.0f; + } + } + + R_Bind( twall->texnum ); + + // almost half of the walls are just slightly dimmer versions of + // the "bright side", and are not stored as separate textures + float f = wallBrightness[wallPicNum]; + pfglColor3f( f, f, f ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + + north (y) + __________ + | | + west (x) | | east (x) + |________| + south (y) + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Draw_Wall( float x, float y, float z1, float z2, int type, int tex ) +{ + float x1, x2, y1, y2; + + switch( type ) + { + // X wall + case dir4_east: + x1 = x2 = x + 1; + y1 = -1 - y; + y2 = -y; + break; + + case dir4_west: + x1 = x2 = x; + y1 = -y; + y2 = -1 - y; + break; + + // Y wall + case dir4_north: + y1 = y2 = -y - 1; + x1 = x; + x2 = x + 1; + break; + + case dir4_south: + y1 = y2 = -y; + x1 = x + 1; + x2 = x; + break; + } + + LoadWallTexture( tex ); + + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( 1.0, 0.0 ); pfglVertex3f( x1, z2, y1 ); + pfglTexCoord2f( 0.0, 0.0 ); pfglVertex3f( x2, z2, y2 ); + pfglTexCoord2f( 0.0, 1.0 ); pfglVertex3f( x2, z1, y2 ); + pfglTexCoord2f( 1.0, 1.0 ); pfglVertex3f( x1, z1, y1 ); + + pfglEnd(); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Draw_Door( int x, int y, float z1, float z2, _boolean vertical, _boolean backside, int tex, int amount ) +{ + float x1, x2, y1, y2, amt; + + if( amount == DOOR_FULLOPEN ) + { + return; + } + + amt = (float)amount / DOOR_FULLOPEN; + + + if( vertical ) + { + x1 = x2 = (float)x + 0.5f; + y1 = -((float)y - amt); + y2 = -((float)y - amt); // -1 + if( backside ) + { + y1 -= 1; + } + else + { + y2 -= 1; + } + } + else + { + y1 = y2 = -(float)y - 0.5f; + x1 = (float)x + amt; // +1 + x2 = (float)x + amt; + if( backside ) + { + x2 += 1; + } + else + { + x1 += 1; + } + } + + LoadWallTexture( tex ); + + pfglBegin( GL_QUADS ); + + pfglTexCoord2f( backside ? 0.0f : 1.0f, 0.0 ); pfglVertex3f( x1, z2, y1 ); + pfglTexCoord2f( backside ? 1.0f : 0.0f, 0.0 ); pfglVertex3f( x2, z2, y2 ); + pfglTexCoord2f( backside ? 1.0f : 0.0f, 1.0 ); pfglVertex3f( x2, z1, y2 ); + pfglTexCoord2f( backside ? 0.0f : 1.0f, 1.0 ); pfglVertex3f( x1, z1, y1 ); + + pfglEnd(); +} + + +/* +----------------------------------------------------------------------------- + Function: R_DrawSprites -Draws all visible sprites. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_DrawSprites( void ) +{ + float sina, cosa; + float Ex, Ey, Dx, Dy; + int n_sprt, n, ang; + texture_t *twall; + extern cvar_t *cropSprites; + +// build visible sprites list + n_sprt = Sprite_CreateVisList(); + if( ! n_sprt ) + { + return; // nothing to draw + } + +// prepare values for billboarding + ang = NormalizeAngle( Player.position.angle + ANG_90 ); + sina = (float)(0.5 * SinTable[ ang ]); + cosa = (float)(0.5 * CosTable[ ang ]); + + pfglEnable( GL_BLEND ); + qglDepthMask( GL_FALSE ); + for( n = 0; n < n_sprt; ++n ) + { + int texnum = vislist[ n ].tex; + if( vislist[ n ].dist < MINDIST / 2 ) + { + continue; // little hack to save speed & z-buffer + } + + + + assert( texnum >= 0 && texnum < 1000 ); + twall = spriteTextures[texnum]; + if ( !twall ) { + char name[1024]; + my_snprintf( name, sizeof( name ), "%s/%.3d.tga", spritelocation, (vislist[ n ].tex) ); + twall = spriteTextures[texnum] = TM_FindTexture( name, TT_Wall ); + } + R_Bind( twall->texnum ); + + pfglBegin( GL_QUADS ); + + if ( cropSprites->value && twall->header.numBounds > 0 ) { + // draw one or two subrects to avoid blending all the empty space + int b; + + for ( b = 0 ; b < twall->header.numBounds ; b++ ) { + // include a bit extra for filtering + float x1 = (float)(twall->header.bounds[b][0][0]-1) / (twall->header.uploadWidth-1); + float y1 = (float)(twall->header.bounds[b][0][1]-1) / (twall->header.uploadHeight-1); + float x2 = (float)(twall->header.bounds[b][1][0]+1) / (twall->header.uploadWidth-1); + float y2 = (float)(twall->header.bounds[b][1][1]+1) / (twall->header.uploadHeight-1); + if ( x1 < 0 ) { + x1 = 0; + } else if ( x2 > 1.0 ) { + x2 = 1.0; + } + if ( y1 < 0 ) { + y1 = 0; + } else if ( y2 > 1.0 ) { + y2 = 1.0; + } + Ex = vislist[ n ].x / FLOATTILE + cosa; + Ey = vislist[ n ].y / FLOATTILE + sina; + + pfglTexCoord2f( x1, y1 ); pfglVertex3f( Ex - x1 * 2*cosa, -(LOWERZCOORD + (UPPERZCOORD - LOWERZCOORD) * y1), -Ey + x1 * 2*sina ); + pfglTexCoord2f( x1, y2 ); pfglVertex3f( Ex - x1 * 2*cosa, -(LOWERZCOORD + (UPPERZCOORD - LOWERZCOORD) * y2), -Ey + x1 * 2*sina ); + pfglTexCoord2f( x2, y2 ); pfglVertex3f( Ex - x2 * 2*cosa, -(LOWERZCOORD + (UPPERZCOORD - LOWERZCOORD) * y2), -Ey + x2 * 2*sina ); + pfglTexCoord2f( x2, y1 ); pfglVertex3f( Ex - x2 * 2*cosa, -(LOWERZCOORD + (UPPERZCOORD - LOWERZCOORD) * y1), -Ey + x2 * 2*sina ); + } + } else { + Ex = Dx = vislist[ n ].x / FLOATTILE; + Ey = Dy = vislist[ n ].y / FLOATTILE; + Ex += cosa; Ey += sina; + Dx -= cosa; Dy -= sina; + + pfglTexCoord2f( 0.0, 0.0 ); pfglVertex3f( Ex, UPPERZCOORD, -Ey ); + pfglTexCoord2f( 0.0, 1.0 ); pfglVertex3f( Ex, LOWERZCOORD, -Ey ); + pfglTexCoord2f( 1.0, 1.0 ); pfglVertex3f( Dx, LOWERZCOORD, -Dy ); + pfglTexCoord2f( 1.0, 0.0 ); pfglVertex3f( Dx, UPPERZCOORD, -Dy ); + } + + pfglEnd(); + } +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_DrawNumber( int x, int y, int number ) +{ + texture_t *tex; + int col; + float fcol; + static float w = 0.1f; + int i; + char string[ 20 ]; + W32 length; + + + my_snprintf( string, sizeof( string ), "%d", number ); + length = strlen( string ); + + tex = TM_FindTexture( "pics/N_NUMPIC.tga", TT_Pic ); + + + pfglEnable( GL_TEXTURE_2D ); + + R_Bind( tex->texnum ); + + pfglBegin( GL_QUADS ); + + for( i = length-1 ; i >= 0 ; --i ) + { + col = string[ i ] - 48; + + fcol = col * w; + + pfglTexCoord2f( fcol, 0 ); pfglVertex2i( x, y ); + pfglTexCoord2f( fcol+w, 0 ); pfglVertex2i( x+18, y ); + pfglTexCoord2f( fcol+w, 1 ); pfglVertex2i( x+18, y+32 ); + pfglTexCoord2f( fcol, 1 ); pfglVertex2i( x, y+32 ); + + x -= 18; + } + + pfglEnd(); + +} + + +W8 wfont[ ] = { + 32, 15, 32, 32, 32, 32, 32, 12, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 16, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 }; + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_put_line( int x, int y, const char *string ) +{ + texture_t *tex; + int mx = x; + int num; + float frow, fcol; + static float h = 0.25f; // (32 / 128.0f); + static float w = 0.0625f; // (32 / 512.0f); + + + tex = TM_FindTexture( "pics/L_FONTPIC.tga", TT_Pic ); + + + R_Bind( tex->texnum ); + + pfglBegin( GL_QUADS ); + + while( *string ) + { + if( *string == '\n' ) + { + mx = x; + y += 32; + ++string; + continue; + } + + num = *string; + + num &= 255; + + if( (num & 127) == 32 ) + { + mx += 32; + ++string; + continue; // space + } + + + frow = ((num >> 4) - 2) * h; + fcol = (num & 15) * w; + + + pfglTexCoord2f( fcol, frow ); pfglVertex2i( mx, y ); + pfglTexCoord2f( fcol+w, frow ); pfglVertex2i( mx+32, y ); + pfglTexCoord2f( fcol+w, frow+h ); pfglVertex2i( mx+32, y+32 ); + pfglTexCoord2f( fcol, frow+h ); pfglVertex2i( mx, y+32 ); + + + + mx += wfont[ (num & 127) - 32 ]; + ++string; + } + + pfglEnd(); +} + diff --git a/wolf3d/code/wolf/wolf_player.c b/wolf3d/code/wolf/wolf_player.c new file mode 100644 index 0000000..db10119 --- /dev/null +++ b/wolf3d/code/wolf/wolf_player.c @@ -0,0 +1,982 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_player.c: Wolfenstein3-D player management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +#include "../wolfiphone.h" + +player_t Player; // player struct (pos, health etc...) + + +#define PLAYERSIZE MINDIST // player radius + + + +struct atkinf +{ + char tics, attack, frame; // attack is 1 for gun, 2 for knife + +} attackinfo[ 4 ][ 14 ] = // 4 guns, 14 frames max for every gun! +{ + { {6,0,1},{6,2,2},{6,0,3},{6,-1,0} }, + { {6,0,1},{6,1,2},{6,0,3},{6,-1,0} }, + { {6,0,1},{6,1,2},{6,3,3},{6,-1,0} }, + { {6,0,1},{6,1,2},{6,4,3},{6,-1,0} }, +}; + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: true if player can change weapons, otherwise false. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean PL_ChangeWeapon( player_t *self, int weapon ) +{ + unsigned itemflag; + + itemflag = ITEM_WEAPON_1 << weapon; + + if( self->ammo[ AMMO_BULLETS ] == 0 && weapon != WEAPON_KNIFE ) + { +// Com_Printf("Not enough ammo.\n"); + return false; + } + + if( ! (self->items & itemflag) ) + { +// Com_Printf( "No weapon.\n" ); + return false; + } + + self->weapon = + self->pendingweapon = weapon; + + self->attackframe = + self->attackcount = + self->weaponframe = 0; + + return true; +} + + +/* +----------------------------------------------------------------------------- + Function: Called if player pressed USE button + + Parameters: + + Returns: returns true if player used something + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean PL_Use( player_t *self, LevelData_t *lvl ) +{ + int x, y, dir; + + dir = Get4dir( FINE2RAD( self->position.angle ) ); + x = self->tilex + dx4dir[ dir ]; + y = self->tiley + dy4dir[ dir ]; + + if( lvl->tilemap[ x ][ y ] & DOOR_TILE ) + { + return Door_TryUse( &lvl->Doors.DoorMap[ x ][ y ], Player.items ); + } + + if( lvl->tilemap[ x ][ y ] & SECRET_TILE ) + { + return PushWall_Push( x, y, dir ); + } + + if( lvl->tilemap[ x ][ y ] & ELEVATOR_TILE ) + { + int newtex; + + switch( dir ) + { + case dir4_east: + case dir4_west: + newtex = lvl->wall_tex_x[ x ][ y ] += 2; + break; + + case dir4_north: + case dir4_south: + return false; // don't allow to press elevator rails + } + + if( lvl->tilemap[ self->tilex ][ self->tiley ] & SECRETLEVEL_TILE ) + { + self->playstate = ex_secretlevel; + } + else + { + self->playstate = ex_complete; + } + Sound_StartSound( NULL, 0, CHAN_BODY, Sound_RegisterSound( "lsfx/040.wav" ), 1, ATTN_NORM, 0 ); + + iphoneStartIntermission( 0 ); + + return true; + } + + //Sound_StartSound( NULL, 0, CHAN_BODY, Sound_RegisterSound( "lsfx/020.wav" ), 1, ATTN_NORM, 0 ); + return false; +} + + + +#define STOPSPEED 0x0D00 +#define FRICTION 0.25f +#define MAXMOVE (MINDIST*2-1) + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: returns true if move ok + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean PL_TryMove( player_t *self, LevelData_t *lvl ) +{ + int xl, yl, xh, yh, x, y; + int d, n; + + xl = POS2TILE( Player.position.origin[ 0 ] - PLAYERSIZE ); + yl = POS2TILE( Player.position.origin[ 1 ] - PLAYERSIZE ); + xh = POS2TILE( Player.position.origin[ 0 ] + PLAYERSIZE ); + yh = POS2TILE( Player.position.origin[ 1 ] + PLAYERSIZE ); + + // Cheching for solid walls: + for( y = yl ; y <= yh ; ++y ) + for( x = xl ; x <= xh ; ++x ) + { + if( lvl->tilemap[ x ][ y ] & SOLID_TILE ) + return 0; + + if( lvl->tilemap[ x ][ y ] & DOOR_TILE && + Door_Opened( &lvl->Doors, x, y) != DOOR_FULLOPEN ) { + // iphone hack to allow player to move halfway into door tiles + // if the player bounds doesn't cross the middle of the tile, let the move continue + if ( abs( Player.position.origin[0] - TILE2POS( x ) ) <= 0x9000 + && abs( Player.position.origin[1] - TILE2POS( y ) ) <= 0x9000 ) { + return 0; + } + } + } + +// check for actors + for( n = 0 ; n < NumGuards ; ++n ) + { + if( Guards[ n ].state >= st_die1 ) + continue; + + d = self->position.origin[ 0 ] - Guards[ n ].x; + + if( d < -MINACTORDIST || d > MINACTORDIST ) + continue; + + d = self->position.origin[ 1 ] - Guards[ n ].y; + + if( d < -MINACTORDIST || d > MINACTORDIST) + continue; + + return false; + } + + return true; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void PL_ClipMove( player_t *self, int xmove, int ymove ) +{ + int basex, basey; + + basex = self->position.origin[ 0 ]; + basey = self->position.origin[ 1 ]; + + self->position.origin[ 0 ] += xmove; + self->position.origin[ 1 ] += ymove; + if( PL_TryMove( self, r_world ) ) + { + return; // we moved as we wanted + } + + //Sound_StartSound( NULL, 0, CHAN_BODY, Sound_RegisterSound( "lsfx/000.wav" ), 1, ATTN_NORM, 0 ); + + if( xmove ) // don't bother if we don't move x! + { + self->position.origin[ 0 ] = basex + xmove; + self->position.origin[ 1 ] = basey; + if( PL_TryMove( self, r_world ) ) + { + return; // May be we'll move only X direction? + } + } + if( ymove ) // don't bother if we don't move y! + { + self->position.origin[ 0 ] = basex; + self->position.origin[ 1 ] = basey + ymove; + if( PL_TryMove( self, r_world ) ) + { + return; // May be we'll move only Y direction? + } + } + +// movement blocked; we must stay on one place... :( + self->position.origin[ 0 ] = basex; + self->position.origin[ 1 ] = basey; +} + + +/* +----------------------------------------------------------------------------- + Function: Changes player's angle and position + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void PL_ControlMovement( player_t *self, LevelData_t *lvl ) +{ + int angle, speed; + +// rotation + angle = self->position.angle; + +// if(cmd->forwardmove || cmd->sidemove) + self->movx = self->movy = 0; // clear accumulated movement + + if( Player.cmd.forwardmove ) + { + speed = tics * Player.cmd.forwardmove; + self->movx+=(int)(speed * CosTable[ angle ] ); + self->movy+=(int)(speed * SinTable[ angle ] ); + } + if( Player.cmd.sidemove ) + { + speed = tics * Player.cmd.sidemove; + self->movx += (int)( speed * SinTable[ angle ] ); + self->movy -= (int)( speed * CosTable[ angle ] ); + } + + if( ! self->movx && ! self->movy ) + return; + +#ifdef SPEAR + + funnyticount = 0; // ZERO FUNNY COUNTER IF MOVED! // FIXME! + +#endif + self->speed = self->movx + self->movy; + +// bound movement + if( self->movx > MAXMOVE ) + self->movx = MAXMOVE; + else if( self->movx < -MAXMOVE ) + self->movx = -MAXMOVE; + + if( self->movy > MAXMOVE ) + self->movy = MAXMOVE; + else if( self->movy < -MAXMOVE ) + self->movy = -MAXMOVE; + +// move player and clip movement to walls (check for no-clip mode here) + PL_ClipMove( self, self->movx, self->movy ); + self->tilex = POS2TILE( self->position.origin[ 0 ] ); + self->tiley = POS2TILE( self->position.origin[ 1 ] ); + + // pick up items easier -- any tile you touch, instead of + // just the midpoint tile + { + int x, y; + + for ( x = -1 ; x <= 1 ; x+= 2 ) { + int tilex = POS2TILE( self->position.origin[0] + x * PLAYERSIZE ); + for ( y = -1 ; y <= 1 ; y+= 2 ) { + int tiley = POS2TILE( self->position.origin[1] + y * PLAYERSIZE ); + Powerup_PickUp( tilex, tiley ); + } + } + } +// Powerup_PickUp( self->tilex, self->tiley ); + +// Checking for area change, ambush tiles and doors will have negative values + if( lvl->areas[ self->tilex ][ self->tiley ] >= 0 && + lvl->areas[ self->tilex ][ self->tiley ] != Player.areanumber ) + { + Player.areanumber = lvl->areas[ self->tilex ][ self->tiley ]; + assert( Player.areanumber >= 0 && Player.areanumber < NUMAREAS ); + Areas_ConnectAreas( Player.areanumber ); + } + + if( lvl->tilemap[ self->tilex ][ self->tiley ] & EXIT_TILE ) + { + iphoneStartIntermission( 0 ); + } + + +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void PL_PlayerAttack( player_t *self, _boolean re_attack ) +{ + struct atkinf *cur; + + self->attackcount -= tics; + while( self->attackcount <= 0 ) + { + cur = &attackinfo[ self->weapon ][ self->attackframe ]; + switch( cur->attack ) + { + case -1: + self->flags &= ~PL_FLAG_ATTCK; + if( ! self->ammo[ AMMO_BULLETS ] ) + { + self->weapon = WEAPON_KNIFE; + } + else if( self->weapon != self->pendingweapon ) + { + self->weapon = self->pendingweapon; + } + self->attackframe = self->weaponframe = 0; + return; + + case 4: + if( ! self->ammo[ AMMO_BULLETS ] ) + { + break; + } + + if( re_attack ) + { + self->attackframe -= 2; + } + + case 1: + if( ! self->ammo[ AMMO_BULLETS ] ) // can only happen with chain gun + { + self->attackframe++; + break; + } + fire_lead( self ); + self->ammo[ AMMO_BULLETS ]--; + break; + + case 2: + fire_hit( self ); + break; + + case 3: + if(self->ammo[AMMO_BULLETS] && re_attack) + self->attackframe-=2; + break; + } + + self->attackcount += cur->tics; + self->attackframe++; + self->weaponframe = attackinfo[ self->weapon ][ self->attackframe ].frame; + } + +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_Process( player_t *self, LevelData_t *lvl ) +{ + int n; + + self->madenoise = false; + + PL_ControlMovement( self, lvl ); + + if( self->flags & PL_FLAG_ATTCK ) + { + PL_PlayerAttack( self, Player.cmd.buttons & BUTTON_ATTACK ); + } + else + { + if( Player.cmd.buttons & BUTTON_USE ) + { + if(!(self->flags & PL_FLAG_REUSE) && PL_Use( self, lvl ) ) + { + self->flags|=PL_FLAG_REUSE; + } + } + else + { + self->flags &= ~PL_FLAG_REUSE; + } + + if( Player.cmd.buttons & BUTTON_ATTACK ) + { + self->flags |= PL_FLAG_ATTCK; + + self->attackframe = 0; + self->attackcount = attackinfo[ self->weapon ][ 0 ].tics; + self->weaponframe = attackinfo[ self->weapon ][ 0 ].frame; + } else if ( Player.cmd.buttons & BUTTON_CHANGE_WEAPON ) { + self->pendingweapon=self->weapon; + for( n = 0 ; n < 4; ++n ) + { + if( ++self->weapon > WEAPON_CHAIN ) + { + self->weapon = WEAPON_KNIFE; + } + + if( PL_ChangeWeapon( self, self->weapon ) ) + { + break; + } + } + self->weapon = self->pendingweapon; + } + + } +} + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_Reset(void) +{ + memset( &Player, 0, sizeof( Player ) ); + Player.playstate = ex_notingame; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_Spawn( placeonplane_t location, LevelData_t *lvl ) +{ + Player.position = location; + Player.tilex = POS2TILE( location.origin[ 0 ] ); + Player.tiley = POS2TILE( location.origin[ 1 ] ); + Player.areanumber = lvl->areas[ Player.tilex ][ Player.tiley ]; + assert( Player.areanumber >= 0 && Player.areanumber < NUMAREAS ); + if( Player.areanumber < 0 ) + { + Player.areanumber = 36; + } + + Areas_ConnectAreas( Player.areanumber ); + + char str[128]; + sprintf( str, "Entering level E%iM%i", currentMap.episode + 1, currentMap.map + 1 ); + iphoneSetNotifyText( str ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cmd_Give_f( void ) +{ + Com_Printf( "Giving stuff.\n" ); + PL_GiveHealth( &Player, 999, 0 ); + PL_GiveAmmo( &Player, AMMO_BULLETS, 99 ); + PL_GiveWeapon( &Player, WEAPON_AUTO ); + PL_GiveWeapon( &Player, WEAPON_CHAIN ); + PL_GiveKey( &Player, KEY_GOLD ); + PL_GiveKey( &Player, KEY_SILVER ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Cmd_God_f( void ) +{ + Player.flags ^= FL_GODMODE; + + Com_Printf( "God mode %s\n", Player.flags & FL_GODMODE ? "ON":"OFF" ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void PL_notarget_f( void ) +{ + Player.flags ^= FL_NOTARGET; + Com_Printf( "Notarget mode %s\n", Player.flags & FL_NOTARGET ? "ON":"OFF" ); +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_Init(void) +{ + PL_Reset(); + PL_NewGame( &Player ); + + Cmd_AddCommand( "god", Cmd_God_f ); + Cmd_AddCommand( "notarget", PL_notarget_f ); + Cmd_AddCommand( "give", Cmd_Give_f ); +} + +// ------------------------- * environment interraction * ------------------------- +#define EXTRAPOINTS 40000 // points for an extra life + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_Damage( player_t *self, entity_t *attacker, int points ) +{ + + if( self->playstate == ex_dead ) + { + return; + } + + self->LastAttacker = attacker; + + if( skill->value == gd_baby ) + { + points >>= 2; + } + + // vibe the phone + SysIPhoneVibrate(); + + // note the direction of the last hit for the directional blends + { + int dx = attacker->x - self->position.origin[0]; + int dy = attacker->y - self->position.origin[1]; + + // probably won't ever have damage from self, but check anyway + if ( dx != 0 || dy != 0 ) { + float angle = atan2f( dy, dx ); + float playerAngle = self->position.angle * 360.0f / (float)ANG_360; + float deltaAngle; + angle = angle * 180.0f / M_PI; + if ( angle < 0 ) { + angle = 360 + angle; + } + deltaAngle = angle - playerAngle; + if ( deltaAngle > 180 ) { + deltaAngle = deltaAngle - 360; + } + if ( deltaAngle < -180 ) { + deltaAngle = 360 + deltaAngle; + } +// Com_Printf( "damage: player angle: %4.0f shotAngle: %4.0f deltaAngle:%4.0f\n", playerAngle, angle, deltaAngle ); + if ( deltaAngle > 40 ) { + iphoneSetAttackDirection( 1 ); + } else if ( deltaAngle < -40 ) { + iphoneSetAttackDirection( -1 ); + } + } + } + + // do everything else but subtract health in god mode, to ease + // testing of damage feedback + if( !(self->flags & FL_GODMODE) ) + { + self->health -= points; + } + + if( self->health <= 0 ) + { + // dead + self->health = 0; + self->playstate = ex_dead; + + Sound_StartSound( NULL, 0, CHAN_BODY, Sound_RegisterSound( "lsfx/009.wav" ), 1, ATTN_NORM, 0 ); + } + + // red screen flash + iphoneStartDamageFlash( points ); + + // stop the happy grin face if shot before it times out + Player.face_gotgun = false; + + // make BJ's eyes bulge on huge hits + if( points > 30 && Player.health != 0 ) + { + Player.face_ouch = true; + Player.facecount = 0; + } +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: returns true if player needs this health. + + Notes: + gives player some HP + max can be: + 0 - natural player's health limit (100 or 150 with augment) + >0 - indicates the limit +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean PL_GiveHealth( player_t *self, int points, int max ) +{ + if( max == 0 ) + { + max = (self->items & ITEM_AUGMENT) ? 150 : 100; + } + + if( self->health >= max ) + { + return false; // doesn't need this health + } + + self->health += points; + + if( self->health > max ) + { + self->health = max; + } + + Player.face_gotgun = false; + + return true; // took it +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: returns true if player needs this ammo + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean PL_GiveAmmo( player_t *self, int type, int ammo ) +{ + int max_ammo[ AMMO_TYPES ] = { 99 }; + int max; + + max = max_ammo[ type ]; + if( self->items & ITEM_BACKPACK ) + { + max *= 2; + } + + if( self->ammo[ type ] >= max ) + { + return false; // don't need + } + + if( ! self->ammo[ type ] && ! self->attackframe ) // knife was out + { + self->weapon = self->pendingweapon; + } + + self->ammo[ type ] += ammo; + if( self->ammo[ type ] > max ) + { + self->ammo[ type ] = max; + } + + return true; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_GiveWeapon( player_t *self, int weapon ) +{ + unsigned itemflag; + + PL_GiveAmmo( self, AMMO_BULLETS, 6 ); // give some ammo with a weapon + + itemflag = ITEM_WEAPON_1 << weapon; + if( self->items & itemflag ) + { + return; // player owns this weapon + } + else + { + self->items |= itemflag; + if ( self->weapon < weapon ) { // don't switch if already using better weapon + self->weapon = self->pendingweapon = weapon; + } + } +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_GivePoints( player_t *self, W32 points ) +{ +#if 0 // no score on iphone + self->score += points; + while( self->score >= self->next_extra ) + { + self->next_extra += EXTRAPOINTS; + PL_GiveLife( self ); + } +#endif +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_GiveKey( player_t *self, int key ) +{ + self->items |= ITEM_KEY_1 << key; +} + + +/* +----------------------------------------------------------------------------- + Function: Set up player for the new game + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_NewGame( player_t *self ) +{ + memset( self, 0, sizeof( player_t ) ); + + self->health = 100; + self->ammo[ AMMO_BULLETS ] = 16; // JDC: changed for iphone 8; + self->lives = 3; + + self->weapon = self->pendingweapon = WEAPON_PISTOL; + self->items = ITEM_WEAPON_1 | ITEM_WEAPON_2; + self->next_extra = EXTRAPOINTS; +} + +/* +----------------------------------------------------------------------------- + Function: Set up player for level transition + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PL_NextLevel( player_t *self ) +{ + self->old_score = self->score; + self->attackcount = self->attackframe = self->weaponframe = 0; + self->flags = 0; + + self->items &= ~(ITEM_KEY_1 | ITEM_KEY_2 | ITEM_KEY_3 | ITEM_KEY_4); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: self -[in] Player to respawn in game world. + + Returns: returns false if no lives left + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean PL_Reborn( player_t *self ) +{ +#if 0 // removed game over from iphone version + if( --self->lives < 1 ) + { + return false; + } +#endif + + self->health = 100; + self->ammo[ AMMO_BULLETS ] = 16; // JDC: changed for iphone 8; + self->score = self->old_score; + self->attackcount = 0; + self->attackframe = 0; + self->weaponframe = 0; + self->flags = 0; + + self->weapon = self->pendingweapon = WEAPON_PISTOL; + self->items = ITEM_WEAPON_1 | ITEM_WEAPON_2; + + self->playstate = ex_playing; + + return true; +} diff --git a/wolf3d/code/wolf/wolf_player.h b/wolf3d/code/wolf/wolf_player.h new file mode 100644 index 0000000..fb4eff5 --- /dev/null +++ b/wolf3d/code/wolf/wolf_player.h @@ -0,0 +1,179 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_player.h: Wolfenstein3-D player management. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +/* + Notes: + This module is implemented by wolf_player.c + +*/ + +#ifndef __WOLF_PLAYER_H__ +#define __WOLF_PLAYER_H__ + +#define ITEM_KEY_1 1 +#define ITEM_KEY_2 2 +#define ITEM_KEY_3 4 +#define ITEM_KEY_4 8 +#define ITEM_WEAPON_1 16 +#define ITEM_WEAPON_2 32 +#define ITEM_WEAPON_3 64 +#define ITEM_WEAPON_4 128 +#define ITEM_WEAPON_5 256 +#define ITEM_WEAPON_6 512 +#define ITEM_WEAPON_7 1024 +#define ITEM_WEAPON_8 2048 +#define ITEM_BACKPACK (1<<12) // doubles carrying capacity +#define ITEM_AUGMENT (1<<13) // adds 50 to maximum health +#define ITEM_UNIFORM (1<<14) // allows you to pass guards +#define ITEM_AUTOMAP (1<<15) // shows unknown map ares in other color (as in DooM) +#define ITEM_FREE (1<<16) // - unused - + + +enum weapon_e +{ + WEAPON_KNIFE, + WEAPON_PISTOL, + WEAPON_AUTO, + WEAPON_CHAIN, + + WEAPON_TYPES +}; + +enum key_e +{ + KEY_GOLD, + KEY_SILVER, + KEY_FREE1, + KEY_FREE2, + + KEY_TYPES +}; + +enum ammo_e +{ + AMMO_BULLETS, + + AMMO_TYPES +}; + + + +// flags +#define PL_FLAG_REUSE 1 // use button pressed +#define PL_FLAG_ATTCK 2 // attacking +// debug (cheat codes) flags +#define FL_GODMODE (1<<4) +#define FL_NOTARGET (1<<6) + + +typedef enum state_e +{ + ex_notingame, + ex_playing, + ex_dead, + ex_secretlevel, + ex_victory, + ex_complete +/* + ex_stillplaying, + ex_completed, + ex_died, + ex_warped, + ex_resetgame, + ex_loadedgame, + ex_victorious, + ex_abort, + ex_demodone, + ex_secretlevel +*/ +} state_t; + +// ------------------------- * types * ------------------------- +// Player structure: Holds all info about player +typedef struct player_s +{ + usercmd_t cmd; // movement / action command + + placeonplane_t position; // player position + int movx, movy, speed; + int tilex, tiley; + +// stats + int health, lives, frags; + int armor; // there are 2 types. The better one is indicated by high bit set + int ammo[AMMO_TYPES]; + int old_score, score, next_extra; + unsigned items; // (keys, weapon) + int weapon, pendingweapon; +// additional info + int attackframe, attackcount, weaponframe; // attack info + unsigned flags; + int areanumber; + + _boolean madenoise; // FIXME: move to flags? + entity_t *LastAttacker; + int faceframe, facecount; // bj's face in the HUD // FIXME decide something! + _boolean face_gotgun, face_ouch; + state_t playstate; // fixme: move to gamestate + +} player_t; + +extern player_t Player; + + + + +extern void PL_Spawn( placeonplane_t location, LevelData_t *lvl ); + +extern void PL_Process( player_t *self, LevelData_t *lvl ); + +extern void PL_Damage( player_t *self, entity_t *attacker, int points ); +extern _boolean PL_GiveHealth( player_t *self, int points, int max ); +extern _boolean PL_GiveAmmo( player_t *self, int type, int ammo ); +extern void PL_GiveWeapon( player_t *self, int weapon ); +extern void PL_GivePoints( player_t *self, W32 points ); +extern void PL_GiveKey( player_t *self, int key ); + +extern void PL_NewGame( player_t *self ); +extern void PL_NextLevel( player_t *self ); +extern _boolean PL_Reborn( player_t *self ); + +extern void PL_Init( void ); +extern void PL_Reset( void ); + + +extern void fire_hit( player_t *self ); +extern void fire_lead( player_t *self ); + + +#endif /* __WOLF_PLAYER_H__ */ diff --git a/wolf3d/code/wolf/wolf_powerups.c b/wolf3d/code/wolf/wolf_powerups.c new file mode 100644 index 0000000..508e63f --- /dev/null +++ b/wolf3d/code/wolf/wolf_powerups.c @@ -0,0 +1,385 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2001 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_pushwalls.c: Wolfenstein3-D power-up handler. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +#include "../wolfiphone.h" + +int Pow_Texture[ pow_last ] = +{ + SPR_STAT_34, // pow_gibs + SPR_STAT_38, // pow_gibs2 + SPR_STAT_6, // pow_alpo + SPR_STAT_25, // pow_firstaid + SPR_STAT_20, // pow_key1 + SPR_STAT_21, // pow_key2 +// not used + SPR_STAT_20, // pow_key3 + SPR_STAT_20, // pow_key4 + + SPR_STAT_29, // pow_cross + SPR_STAT_30, // pow_chalice + SPR_STAT_31, // pow_bible + SPR_STAT_32, // pow_crown + SPR_STAT_26, // pow_clip + SPR_STAT_26, // pow_clip2 + SPR_STAT_27, // pow_machinegun + SPR_STAT_28, // pow_chaingun + SPR_STAT_24, // pow_food + SPR_STAT_33, // pow_fullheal +// spear + SPR_STAT_49, // pow_25clip + SPR_STAT_51, // pow_spear +}; + + + + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE void Pow_Remove( powerup_t *powerup ) +{ + powerup->x = -1; + powerup->y = -1; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE powerup_t *Pow_AddNew( void ) +{ + for ( int i = 0 ; i < levelData.numPowerups ; i++ ) { + if ( levelData.powerups[i].x == -1 ) { + return &levelData.powerups[i]; + } + } + + if ( levelData.numPowerups == MAX_POWERUPS ) { + return &levelData.powerups[0]; + } + levelData.numPowerups++; + return &levelData.powerups[levelData.numPowerups-1]; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Powerup_Reset( void ) +{ + levelData.numPowerups = 0; +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: 1 if powerup is picked up, otherwise 0. + + Notes: + +----------------------------------------------------------------------------- +*/ +PRIVATE int Pow_Give( pow_t type ) +{ + static const char *keynames[] = { "Gold", "Silver", "?", "?" }; + + switch( type ) + { +// +// Keys +// + case pow_key1: + case pow_key2: + case pow_key3: + case pow_key4: + type -= pow_key1; + PL_GiveKey( &Player, type ); + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/012.wav" ), 1, ATTN_NORM, 0 ); + iphoneSetNotifyText( "%s key\n", keynames[ type ] ); + break; +// +// Treasure +// + case pow_cross: + PL_GiveHealth( &Player, 1, 150 ); // iphone -- trasure acts as health crumbs + PL_GivePoints( &Player, 100 ); + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/035.wav" ), 1, ATTN_NORM, 0 ); + if ( ++levelstate.found_treasure == levelstate.total_treasure ) { + iphoneSetNotifyText( "You found the last treasure!" ); + } + break; + + case pow_chalice: + PL_GiveHealth( &Player, 1, 150 ); // iphone -- trasure acts as health crumbs + PL_GivePoints( &Player, 500 ); + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/036.wav" ), 1, ATTN_NORM, 0 ); + if ( ++levelstate.found_treasure == levelstate.total_treasure ) { + iphoneSetNotifyText( "You found the last treasure!" ); + } + break; + + case pow_bible: + PL_GiveHealth( &Player, 1, 150 ); // iphone -- trasure acts as health crumbs + PL_GivePoints( &Player, 1000 ); + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/037.wav" ), 1, ATTN_NORM, 0 ); + if ( ++levelstate.found_treasure == levelstate.total_treasure ) { + iphoneSetNotifyText( "You found the last treasure!" ); + } + break; + + case pow_crown: + PL_GiveHealth( &Player, 1, 150 ); // iphone -- trasure acts as health crumbs + PL_GivePoints( &Player, 5000 ); + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/045.wav" ), 1, ATTN_NORM, 0 ); + if ( ++levelstate.found_treasure == levelstate.total_treasure ) { + iphoneSetNotifyText( "You found the last treasure!" ); + } + break; + +// +// Health +// + case pow_gibs: + if( ! PL_GiveHealth( &Player, 1, 11 ) ) + { + return 0; + } + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/061.wav" ), 1, ATTN_NORM, 0 ); + break; + + case pow_alpo: + if( ! PL_GiveHealth( &Player, 4, 0 ) ) + { + return 0; + } + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/033.wav" ), 1, ATTN_NORM, 0 ); + break; + + case pow_food: + if( ! PL_GiveHealth( &Player, 10, 0 ) ) + { + return 0; + } + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/033.wav" ), 1, ATTN_NORM, 0 ); + break; + + case pow_firstaid: + if( ! PL_GiveHealth( &Player, 25, 0 ) ) + { + return 0; + } + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/034.wav" ), 1, ATTN_NORM, 0 ); + break; + +// +// Weapon & Ammo +// + case pow_clip: + if( ! PL_GiveAmmo( &Player, AMMO_BULLETS, 8 ) ) + { + return 0; + } + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/031.wav" ), 1, ATTN_NORM, 0 ); + break; + + case pow_clip2: + if( ! PL_GiveAmmo( &Player, AMMO_BULLETS, 4 ) ) + { + return 0; + } + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/031.wav" ), 1, ATTN_NORM, 0 ); + break; + + case pow_25clip: + if( ! PL_GiveAmmo( &Player, AMMO_BULLETS, 25 ) ) + { + return 0; + } + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/064.wav" ), 1, ATTN_NORM, 0 ); + break; + + case pow_machinegun: + PL_GiveWeapon( &Player, WEAPON_AUTO ); + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/030.wav" ), 1, ATTN_NORM, 0 ); + iphoneSetNotifyText( "Machinegun" ); + break; + + case pow_chaingun: + PL_GiveWeapon( &Player, WEAPON_CHAIN ); + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/038.wav" ), 1, ATTN_NORM, 0 ); + iphoneSetNotifyText( "Chaingun" ); + + Player.facecount = -100; + Player.face_gotgun = true; + break; + +// +// Artifacts +// + case pow_fullheal: + // go to 150 health + PL_GiveHealth( &Player, 150, 150 ); + PL_GiveAmmo( &Player, AMMO_BULLETS, 25 ); + if ( ++levelstate.found_treasure == levelstate.total_treasure ) { + iphoneSetNotifyText( "You found the last treasure!" ); + } else { + iphoneSetNotifyText( "Full Heal" ); + } + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "lsfx/034.wav" ), 1, ATTN_NORM, 0 ); + // no extra lives on iPhone Com_Printf( "Extra life!\n" ); + break; + + case pow_spear: + { + char szTextMsg[ 256 ]; + + Sound_StartSound( NULL, 0, CHAN_ITEM, Sound_RegisterSound( "sodsfx/109.wav" ), 1, ATTN_NORM, 0 ); + iphoneSetNotifyText( "Spear of Destiny" ); + + my_snprintf( szTextMsg, sizeof( szTextMsg ), + "loading ; map s%.2d.map\n", 20 ); + Cbuf_AddText( szTextMsg ); + } + break; + + default: + Com_DPrintf( "Warning: Unknown item type: %d\n", type ); + break; + } + + iphoneStartBonusFlash(); + + return 1; +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: x, y -[in] In are in TILES. + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Powerup_Spawn( int x, int y, int type ) +{ + powerup_t *newp; + + levelData.tilemap[ x ][ y ] |= POWERUP_TILE; + newp = Pow_AddNew(); + newp->sprite = Sprite_GetNewSprite(); + Sprite_SetPos( newp->sprite, TILE2POS( newp->x = x ), TILE2POS( newp->y = y ), 0 ); + newp->type = type; + Sprite_SetTex( newp->sprite, -1, Pow_Texture[ type ] ); + levelData.tilemap[ x ][ y ] |= POWERUP_TILE; +// good place to update total treasure count! +} + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: x, y -[in] In are in TILES. + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Powerup_PickUp( int x, int y ) +{ + int i; + powerup_t *pow; + _boolean p_left = false, p_pick = false; + + for ( i = 0, pow = levelData.powerups ; i < levelData.numPowerups ; i++, pow++ ) { + if( pow->x == x && pow->y == y) + {// got a powerup here + if( Pow_Give( pow->type ) ) //FIXME script + {// picked up this stuff, remove it! + p_pick = true; + Sprite_RemoveSprite( pow->sprite ); + Pow_Remove( pow ); + } + else + {// player do not need it, so may be next time! + p_left = true; + } + } + } + + if( p_left ) + { + levelData.tilemap[ x ][ y ] |= POWERUP_TILE; + } + else + { + levelData.tilemap[ x ][ y ] &= ~POWERUP_TILE; + } +} + diff --git a/wolf3d/code/wolf/wolf_powerups.h b/wolf3d/code/wolf/wolf_powerups.h new file mode 100644 index 0000000..70e761c --- /dev/null +++ b/wolf3d/code/wolf/wolf_powerups.h @@ -0,0 +1,85 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_powerups.h: Wolfenstein3-D power-up handler. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +/* + Notes: + This module is implemented by wolf_powerups.c + +*/ + +#ifndef __WOLF_POWERUPS_H__ +#define __WOLF_POWERUPS_H__ + +typedef enum +{ +//please provide description + pow_gibs, // 1% if <=10%; SLURPIESND + pow_gibs2, // 1% if <=10%; SLURPIESND + pow_alpo, // 4% if <100%; HEALTH1SND + pow_firstaid, // 25% if <100%; HEALTH2SND + pow_key1, // gold key; GETKEYSND + pow_key2, // silver key; GETKEYSND + pow_key3, // not used + pow_key4, // not used + pow_cross, // 100pts; BONUS1SND + pow_chalice, // 500pts; BONUS2SND + pow_bible, // 1000pts; BONUS3SND + pow_crown, // 5000pts; BONUS4SND + pow_clip, // 8bul if <99bul; GETAMMOSND + pow_clip2, // 4bul if <99bul; GETAMMOSND + pow_machinegun, // machine gun; GETMACHINESND + pow_chaingun, // gatling gun; GETGATLINGSND + pow_food, // 10% if <100%; HEALTH1SND + pow_fullheal, // 99%, 25bul; BONUS1UPSND + pow_25clip, // 25bul if <99bul; GETAMMOBOXSND + pow_spear, // spear of destiny! + + pow_last +// add new types here (after last) + +} pow_t; + +typedef struct powerup_s +{ + int x, y; + pow_t type; + int sprite; +} powerup_t; + +extern void Powerup_Reset( void ); +extern void Powerup_Spawn( int x, int y, int type ); +extern void Powerup_PickUp( int x, int y ); + + +#endif /* __WOLF_POWERUPS_H__ */ + diff --git a/wolf3d/code/wolf/wolf_pushwalls.c b/wolf3d/code/wolf/wolf_pushwalls.c new file mode 100644 index 0000000..b040d7d --- /dev/null +++ b/wolf3d/code/wolf/wolf_pushwalls.c @@ -0,0 +1,175 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_pushwalls.c: Wolfenstein3-D push-wall handler. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +#include "../wolfiphone.h" + +Pwall_t PWall; + + +/* +----------------------------------------------------------------------------- + Function: PushWall_Reset() -Reset pushwall status. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PushWall_Reset(void) +{ + memset( &PWall, 0, sizeof( Pwall_t ) ); +} + + +/* +----------------------------------------------------------------------------- + Function: PushWall_Push() -Try to move push-wall. + + Parameters: x, y -[in] Coordinates in tilemap. + dir -[in] Direction in which push-wall is intended to move. + + Returns: true if push successful, otherwise false. + + Notes: Called whenever someone tries to push a secret wall. + +----------------------------------------------------------------------------- +*/ +PUBLIC _boolean PushWall_Push( int x, int y, dir4type dir ) +{ + int dx, dy; + + + if( PWall.active ) + { + return false; // another PWall is moving [only one at a time!] + } + + dx = dx4dir[ dir ]; + dy = dy4dir[ dir ]; + + if( r_world->tilemap[ x + dx ][ y + dy ] & (SOLID_TILE | DOOR_TILE) ) + { // noway (smth is blocking) + return true; + } + +// remove secret flag & make everything needed when pushwall used! + r_world->tilemap[ x ][ y ] &= (~SECRET_TILE); + r_world->tilemap[ x ][ y ] &= (~WALL_TILE); + r_world->tilemap[ x ][ y ] |= PUSHWALL_TILE; + + if ( ++levelstate.found_secrets == levelstate.total_secrets ) { + iphoneSetNotifyText( "You found the last secret!" ); + } else { + iphoneSetNotifyText( "You found a secret!" ); + } + + if( g_version->value == SPEAROFDESTINY ) + { + Sound_StartSound( NULL, 1, CHAN_AUTO, Sound_RegisterSound( "sfx/030.wav" ), 1, ATTN_STATIC, 0 ); + } + else + { + Sound_StartSound( NULL, 1, CHAN_AUTO, Sound_RegisterSound( "sfx/034.wav" ), 1, ATTN_STATIC, 0 ); + } + +// good way to avoid stuckness; [un]comment one more down! +// it makes a tile behind pushwall unpassable + r_world->tilemap[ x + dx ][ y + dy ] |= PUSHWALL_TILE; + r_world->wall_tex_x[ x + dx ][ y + dy ] = r_world->wall_tex_x[ x ][ y ]; + r_world->wall_tex_y[ x + dx ][ y + dy ] = r_world->wall_tex_y[ x ][ y ]; + +// write down PWall info + PWall.active = true; + PWall.PWtilesmoved = PWall.PWpointsmoved = 0; + PWall.dir = dir; + PWall.x = x; PWall.y = y; + PWall.dx = dx; PWall.dy = dy; + PWall.tex_x = r_world->wall_tex_x[ x ][ y ]; + PWall.tex_y = r_world->wall_tex_y[ x ][ y ]; + + return true; +} + +/* +----------------------------------------------------------------------------- + Function: PushWall_Process() -Process push-walls. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void PushWall_Process( void ) +{ + if( ! PWall.active ) + { + return; // no active PWall to work with + } + + PWall.PWpointsmoved += tics; + + if( PWall.PWpointsmoved < 128 ) + { + return; + } + + PWall.PWpointsmoved -= 128; + PWall.PWtilesmoved++; +// Free tile + r_world->tilemap[ PWall.x ][ PWall.y ] &= (~PUSHWALL_TILE); +// Occupy new tile + PWall.x += PWall.dx; + PWall.y += PWall.dy; + +// Shall we move further? + if( r_world->tilemap[ PWall.x + PWall.dx ][ PWall.y + PWall.dy ] & (SOLID_TILE | DOOR_TILE | ACTOR_TILE | POWERUP_TILE) || + PWall.PWtilesmoved == 3 ) + { + r_world->tilemap[ PWall.x ][ PWall.y ] &= (~PUSHWALL_TILE); // wall now + r_world->tilemap[ PWall.x ][ PWall.y ] |= WALL_TILE; // wall now + r_world->wall_tex_x[ PWall.x ][ PWall.y ] = PWall.tex_x; + r_world->wall_tex_y[ PWall.x ][ PWall.y ] = PWall.tex_y; + PWall.active = false; // Free Push Wall + } + else + { + r_world->tilemap[ PWall.x + PWall.dx ][ PWall.y + PWall.dy ] |= PUSHWALL_TILE; + } + +} diff --git a/wolf3d/code/wolf/wolf_raycast.c b/wolf3d/code/wolf/wolf_raycast.c new file mode 100644 index 0000000..f8f2ec4 --- /dev/null +++ b/wolf3d/code/wolf/wolf_raycast.c @@ -0,0 +1,373 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_raycast.c: Wolfenstein3-D ray-casting. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +#include "../wolfiphone.h" + + +W8 tile_visible[ 64 ][ 64 ]; // can player see this tile? + + +/* +----------------------------------------------------------------------------- + Function: R_RayCast() -Ray cast viewport. + + Parameters: viewport -[in] Position of camera. + lvl -[in] Pointer to valid LevelData_t structure. + + Returns: Nothing. + + Notes: Marks all visible tiles in tile_visible[] array. + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_RayCast( placeonplane_t viewport, LevelData_t *lvl ) +{ + int n, x, y, angle, vx, vy; + r_trace_t trace; + + memset( tile_visible, 0, sizeof( tile_visible ) ); // clear tile visible flags + +// viewport tile coordinates + x = viewport.origin[ 0 ]; + y = viewport.origin[ 1 ]; + angle = viewport.angle; + + vx = POS2TILE( viewport.origin[ 0 ] ); + vy = POS2TILE( viewport.origin[ 1 ] ); + + trace.tile_vis = tile_visible; + trace.flags = TRACE_SIGHT | TRACE_MARK_MAP; + +// +// Ray casting +// + + // FIXME: control ray count and make angle init + for( n = 0 ; n < 640 ; ++n ) + { + trace.x = x; + trace.y = y; + trace.a = NormalizeAngle( angle + ColumnAngle[ n ] ); + + R_Trace( &trace, lvl ); + } + +// +// Rendering +// + for( x = 0 ; x < 64; ++x ) + for( y = 0 ; y < 64; ++y ) + if( tile_visible[ x ][ y ] ) + { + lvl->tileEverVisible[x][y] = 1; // for automap + if( lvl->tilemap[ x ][ y ] & DOOR_TILE ) + { + /* door */ + if( lvl->Doors.DoorMap[ x ][ y ].action != dr_open ) + { + _boolean backside = false; + + if( lvl->Doors.DoorMap[ x ][ y ].vertical ) + { + if( x < vx ) + backside = true; + } + else + { + if( y < vy ) + backside = true; + } + + R_Draw_Door( x, y, LOWERZCOORD, UPPERZCOORD, + lvl->Doors.DoorMap[ x ][ y ].vertical, + backside, + lvl->Doors.DoorMap[ x ][ y ].texture, + Door_Opened( &lvl->Doors, x, y ) ); + } + /* door sides */ + if( lvl->Doors.DoorMap[ x ][ y ].vertical ) + { + if( y <= vy ) + R_Draw_Wall( (float)x, (float)(y-1), LOWERZCOORD, UPPERZCOORD, dir4_north, TEX_PLATE ); + + if( y >= vy ) + R_Draw_Wall( (float)x, (float)(y+1), LOWERZCOORD, UPPERZCOORD, dir4_south, TEX_PLATE ); + + if( x <= vx && lvl->tilemap[ x - 1 ][ y ] & WALL_TILE ) + R_Draw_Wall( (float)(x-1), (float)y, LOWERZCOORD, UPPERZCOORD, dir4_east, lvl->wall_tex_x[ x - 1 ][ y ] ); + + if( x >= vx && lvl->tilemap[ x + 1 ][ y ] & WALL_TILE ) + R_Draw_Wall( (float)(x+1), (float)y, LOWERZCOORD, UPPERZCOORD, dir4_west, lvl->wall_tex_x[ x + 1 ][ y ] ); + } + else + { + if( x <= vx ) + R_Draw_Wall((float)(x-1), (float)y, LOWERZCOORD, UPPERZCOORD, dir4_east, TEX_PLATE+1); + + if( x >= vx ) + R_Draw_Wall((float)(x+1), (float)y, LOWERZCOORD, UPPERZCOORD, dir4_west, TEX_PLATE+1); + + if( y <= vy && lvl->tilemap[ x ][ y - 1 ] & WALL_TILE ) + R_Draw_Wall( (float)x, (float)(y-1), LOWERZCOORD, UPPERZCOORD, dir4_north, lvl->wall_tex_y[x][y-1]); + + if( y >= vy && lvl->tilemap[ x ][ y + 1 ] & WALL_TILE ) + R_Draw_Wall( (float)x, (float)(y+1), LOWERZCOORD, UPPERZCOORD, dir4_south, lvl->wall_tex_y[x][y+1]); + } + } + else + { + /* Push-Wall */ + if( (r_world->tilemap[ x ][ y ] & PUSHWALL_TILE) ) + { + float dx, dy; + + dx = PWall.dx * PWall.PWpointsmoved / 128.0f; + dy = PWall.dy * PWall.PWpointsmoved / 128.0f; + + if( PWall.x <= vx ) + R_Draw_Wall( (float)PWall.x + dx, (float)PWall.y + dy, LOWERZCOORD, UPPERZCOORD, dir4_east, PWall.tex_x ); + + if( PWall.x >= vx ) + R_Draw_Wall( (float)PWall.x + dx, (float)PWall.y + dy, LOWERZCOORD, UPPERZCOORD, dir4_west, PWall.tex_x ); + + if( PWall.y <= vy ) + R_Draw_Wall( (float)PWall.x + dx, (float)PWall.y + dy, LOWERZCOORD, UPPERZCOORD, dir4_north, PWall.tex_y ); + + if( PWall.y >= vy ) + R_Draw_Wall( (float)PWall.x + dx, (float)PWall.y + dy, LOWERZCOORD, UPPERZCOORD, dir4_south, PWall.tex_y ); + + } + /* x-wall */ + if( x <= vx && r_world->tilemap[ x - 1 ][ y ] & WALL_TILE ) + R_Draw_Wall( (float)(x-1), (float)y, LOWERZCOORD, UPPERZCOORD, dir4_east, r_world->wall_tex_x[x-1][y]); + + if( x >= vx && r_world->tilemap[ x + 1 ][ y ] & WALL_TILE ) + R_Draw_Wall( (float)(x+1), (float)y, LOWERZCOORD, UPPERZCOORD, dir4_west, r_world->wall_tex_x[x+1][y]); + + /* y-wall */ + if( y <= vy && r_world->tilemap[ x ][ y - 1 ] & WALL_TILE ) + R_Draw_Wall( (float)x, (float)(y-1), LOWERZCOORD, UPPERZCOORD, dir4_north, r_world->wall_tex_y[x][y-1]); + + if( y >= vy && r_world->tilemap[ x ][ y + 1 ] & WALL_TILE ) + R_Draw_Wall( (float)x, (float)(y+1), LOWERZCOORD, UPPERZCOORD, dir4_south, r_world->wall_tex_y[x][y+1]); + } + + + } + + // back to full brightness in case the last draw was a dim wall + pfglColor3f( 1, 1, 1 ); +} + + +int x_tile_step[ 4 ] = { 1, -1, -1, 1 }; +int y_tile_step[ 4 ] = { 1, 1, -1, -1 }; + + +/* +----------------------------------------------------------------------------- + Function: R_TraceCheck() -Trace ray check. + + Parameters: + lvl -[in] Pointer to valid LevelData_t structure. + x, y -[in] In tiles. + + Returns: true to stop tracing, false otherwise. + + Notes: Tells ray casting if we hit a wall or door and to stop tracing. + +----------------------------------------------------------------------------- +*/ +PRIVATE _boolean R_TraceCheck( LevelData_t *lvl, int x, int y, int frac, int dfrac, _boolean vert, _boolean flip, r_trace_t *trace ) +{ + if( lvl->tilemap[ x ][ y ] & WALL_TILE ) + { + if( vert ) + { + trace->x = (x << TILESHIFT) + (flip ? TILEGLOBAL : 0); + trace->y = (y << TILESHIFT) + frac; + trace->flags |= TRACE_HIT_VERT; + } + else + { + trace->x = (x << TILESHIFT) + frac; + trace->y = (y << TILESHIFT) + (flip ? TILEGLOBAL : 0); + trace->flags &= ~TRACE_HIT_VERT; + } + + return true; // wall, stop tracing + } + + if( trace->tile_vis ) + { + trace->tile_vis[ x ][ y ] = true; // this tile is visible + } + + + if( lvl->tilemap[ x ][ y ] & DOOR_TILE && + lvl->Doors.DoorMap[ x ][ y ].action != dr_open ) + { + frac += dfrac >> 1; + if( POS2TILE( frac ) ) + return false; + + if( vert ) + { + if( lvl->Doors.DoorMap[ x ][ y ].action != dr_closed && + (frac >> 10) > DOOR_FULLOPEN - Door_Opened( &lvl->Doors, x, y ) ) + { + return false; // opened enough + } + + trace->x = TILE2POS( x ); + trace->y = (y << TILESHIFT) + frac; + trace->flags |= TRACE_HIT_VERT; + } + else + { + if( lvl->Doors.DoorMap[ x ][ y ].action != dr_closed && + (frac >> 10) < Door_Opened( &lvl->Doors, x, y ) ) + { + return false; // opened enough + } + + trace->y = TILE2POS( y ); + trace->x = (x << TILESHIFT) + frac; + trace->flags &= ~TRACE_HIT_VERT; + } + trace->flags |= TRACE_HIT_DOOR; + + return true; // closed door, stop tracing + } + + return false; // no intersection, go on! +} + +/* +----------------------------------------------------------------------------- + Function: R_Trace() -Trace ray. + + Parameters: + trace -[in] Pointer to valid r_trace_t structure. + lvl -[in] Pointer to valid LevelData_t structure. + + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_Trace( r_trace_t *trace, LevelData_t *lvl ) +{ + int xtilestep, ytilestep; + int xstep, ystep; + int xtile, ytile; + int xintercept, yintercept; + int YmapPos, XmapPos; + quadrant q; + +// Setup for ray casting + q = GetQuadrant( FINE2RAD( trace->a ) ); + + xtilestep = x_tile_step[ q ]; + ytilestep = y_tile_step[ q ]; + + xtile = POS2TILE( trace->x ) + xtilestep; + ytile = POS2TILE( trace->y ) + ytilestep; + + xstep = ytilestep * XnextTable[ trace->a ]; + ystep = xtilestep * YnextTable[ trace->a ]; + + xintercept = (int)( ( ((ytilestep == -1 ? ytile+1 : ytile) << TILESHIFT) - trace->y ) / TanTable[ trace->a ]) + trace->x; + yintercept = (int)( ( ((xtilestep == -1 ? xtile+1 : xtile) << TILESHIFT) - trace->x ) * TanTable[ trace->a ]) + trace->y; + + YmapPos = yintercept >> TILESHIFT; // toXray + XmapPos = xintercept >> TILESHIFT; // toYray + + if( trace->tile_vis ) + { + // this tile is visible + trace->tile_vis[ POS2TILE( trace->x ) ][ POS2TILE( trace->y ) ] = true; + } + +// +// Start of ray-casting +// + while( 1 ) + { +// +// Vertical loop // an anologue for X-Ray +// + while( ! (ytilestep == -1 && YmapPos <= ytile) && ! (ytilestep == 1 && YmapPos >= ytile) ) + { + if( xtile < 0 || xtile >= 64 || YmapPos < 0 || YmapPos >= 64 ) + { + return; + } + + if( R_TraceCheck( lvl, xtile, YmapPos, yintercept % TILEGLOBAL, ystep, true, (_boolean)(xtilestep == -1), trace ) ) + { + return; + } + + // prepare for next step + xtile += xtilestep; + yintercept += ystep; + YmapPos = yintercept >> TILESHIFT; + } + +// +// Horizontal loop // an anologue for Y-Ray +// + while( ! (xtilestep == -1 && XmapPos <= xtile) && ! (xtilestep == 1 && XmapPos >= xtile) ) + { + if( ytile < 0 || ytile >= 64 || XmapPos < 0 || XmapPos >= 64 ) + { + return; + } + + if( R_TraceCheck( lvl, XmapPos, ytile, xintercept % TILEGLOBAL, xstep, false, (_boolean)(ytilestep == -1), trace ) ) + { + return; + } + + // prepare for next step + ytile += ytilestep; + xintercept += xstep; + XmapPos = xintercept >> TILESHIFT; + } + + } // end of while( 1 ) + +} diff --git a/wolf3d/code/wolf/wolf_raycast.h b/wolf3d/code/wolf/wolf_raycast.h new file mode 100644 index 0000000..8a74c7a --- /dev/null +++ b/wolf3d/code/wolf/wolf_raycast.h @@ -0,0 +1,74 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_raycast.h: Wolfenstein3-D ray-casting. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +/* + Notes: + This module is implemented by wolf_raycast.c + +*/ + +#ifndef __WOLF_RAYCAST_H__ +#define __WOLF_RAYCAST_H__ + +// marks +#define TRACE_MARK_MAP 1 // marks traced area in 'AM_AutoMap.vis' array +// obstacle levels +#define TRACE_SIGHT 2 // player sight +#define TRACE_SIGHT_AI 4 // enemy sight +#define TRACE_BULLET 8 // bullet +#define TRACE_OBJECT 16 // object + +#define TRACE_HIT_VERT 32 // vertical wall was hit +#define TRACE_HIT_DOOR 64 // door was hit +#define TRACE_HIT_PWALL 128 // pushwall was hit + +typedef struct r_trace_s +{ + int x, y; // origin + int a; // trace angle + int flags; + W8 (*tile_vis)[ 64 ]; // should point to [ 64 ][ 64 ] array + +} r_trace_t; + +#define UPPERZCOORD 0.6f +#define LOWERZCOORD -0.6f + +extern W8 tile_visible[ 64 ][ 64 ]; // can player see this tile? + + +extern void R_RayCast( placeonplane_t viewport, LevelData_t *lvl ); +extern void R_Trace( r_trace_t *trace, LevelData_t *lvl ); + + +#endif /* __WOLF_RAYCAST_H__ */ diff --git a/wolf3d/code/wolf/wolf_renderer.c b/wolf3d/code/wolf/wolf_renderer.c new file mode 100644 index 0000000..cf11bad --- /dev/null +++ b/wolf3d/code/wolf/wolf_renderer.c @@ -0,0 +1,96 @@ +/* + + Copyright (C) 2004-2005 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_renderer.c: Wolfenstein 3-D renderer. + * + * Author: Michael Liebscher + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +#include "../wolfiphone.h" + +LevelData_t *r_world; + + +/* +----------------------------------------------------------------------------- + Function: R_BeginRegistration -Start the rendering registration sequence. + + Parameters: map -[in] The name of the map to load. + + Returns: Nothing. + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void R_BeginRegistration( const char *map ) +{ + char fullname[ MAX_GAMEPATH ]; + + if( ! map || ! *map ) + { + return; + } + + ++texture_registration_sequence; + + + my_snprintf( fullname, sizeof( fullname ), "maps/%s.map", map ); + +// Door_ResetDoors( &r_world->Doors ); + Powerup_Reset(); + Sprite_Reset(); + Areas_InitAreas( Player.areanumber ); + PushWall_Reset(); + + memset( &levelstate, 0, sizeof( levelstate ) ); // Reset gamestate + ResetGuards(); + + r_world = Level_LoadMap( fullname ); + + if( r_world == NULL ) + { + Com_Printf( "Could not load map (%s)\n", map ); + return; + } + + levelstate.floornum = floornumber; + + if( g_version->value == SPEAROFDESTINY ) + { + if( strlen( map ) >= 2 ) + { + levelstate.floornum = atoi( map+1 ); + + if( levelstate.floornum == 20 ) + { + levelstate.floornum = 17; + } + } + } + +} diff --git a/wolf3d/code/wolf/wolf_renderer.h b/wolf3d/code/wolf/wolf_renderer.h new file mode 100644 index 0000000..dd02be7 --- /dev/null +++ b/wolf3d/code/wolf/wolf_renderer.h @@ -0,0 +1,61 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 1997-2001 Id Software, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_renderer.h: Wolfenstein3-D renderer. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from Quake II, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by wolf_renderer.c and wolf_opengl.c + +*/ + +#ifndef __WOLF_RENDERER_H__ +#define __WOLF_RENDERER_H__ + +extern void R_DrawBox( int x, int y, int w, int h, W32 color ); + +extern void R_Draw_Door( int x, int y, float z1, float z2, _boolean vertical, _boolean backside, int tex, int amount ); +extern void R_Draw_Wall( float x, float y, float z1, float z2, int type, int tex ); + + + +extern void R_DrawSprites( void ); + +extern void R_DrawPsyched( W32 percent ); + +extern void R_DrawHUD( void ); +extern void R_DrawNumber( int x, int y, int number ); + + +extern void R_put_line( int x, int y, const char *string ); + + +#endif /* __WOLF_RENDERER_H__ */ diff --git a/wolf3d/code/wolf/wolf_sprites.c b/wolf3d/code/wolf/wolf_sprites.c new file mode 100644 index 0000000..7aee718 --- /dev/null +++ b/wolf3d/code/wolf/wolf_sprites.c @@ -0,0 +1,287 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_sprites.c: Wolfenstein3-D sprite handling. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * This code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + */ + +#include "../wolfiphone.h" + + +/* +----------------------------------------------------------------------------- + Function: Sprite_Reset -Reset sprite status. + + Parameters: Nothing. + + Returns: Nothing. + + Notes: Called only when client must reconnect will not set remove flag! +----------------------------------------------------------------------------- +*/ +PUBLIC void Sprite_Reset( void ) +{ + levelData.numSprites = 0; + memset( levelData.sprites, 0, sizeof( levelData.sprites ) ); +} + +/* +----------------------------------------------------------------------------- + Function: Sprite_RemoveSprite -Remove sprite. + + Parameters: sprite_id -[in] sprite id to remove. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Sprite_RemoveSprite( int sprite_id ) +{ + if( sprite_id == -1 ) + { + return; + } + + levelData.sprites[ sprite_id ].flags |= SPRT_REMOVE; +} + + +/* +----------------------------------------------------------------------------- + Function: Sprite_GetNewSprite -Get sprite index. + + Parameters: Nothing. + + Returns: "sprite id" index. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC int Sprite_GetNewSprite( void ) +{ + W32 n; + sprite_t* sprt; + + for( n = 0, sprt = levelData.sprites ; n < levelData.numSprites ; ++n, ++sprt ) + { + if( sprt->flags & SPRT_REMOVE ) + { // free spot: clear it first + memset( sprt, 0, sizeof( sprite_t ) ); + return n; + } + } + + if( levelData.numSprites >= MAX_SPRITES ) + { + Com_Printf( "Warning n_of_sprt == MAX_SPRITES\n" ); + return -1; + } + + return levelData.numSprites++; +} + + + +/* +----------------------------------------------------------------------------- + Function: Sprite_SetPos -Set sprite position. + + Parameters: sprite_id -[in] sprite id to change. + x, y -[in] new x, y. + angle -[in] new angle to set. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +PUBLIC void Sprite_SetPos( int sprite_id, int x, int y, int angle ) +{ + if( sprite_id == -1 ) + { + return; + } + + levelData.sprites[ sprite_id ].x = x; + levelData.sprites[ sprite_id ].y = y; + levelData.sprites[ sprite_id ].ang = angle; + levelData.sprites[ sprite_id ].tilex = POS2TILE( x ); + levelData.sprites[ sprite_id ].tiley = POS2TILE( y ); + levelData.sprites[ sprite_id ].flags |= SPRT_CHG_POS; + + if( ! (x & HALFTILE) ) // (x%TILEGLOBAL>=HALFTILE) + { + levelData.sprites[ sprite_id ].tilex--; + } + + if( ! (y & HALFTILE) ) + { + levelData.sprites[ sprite_id ].tiley--; + } +} + +/* +----------------------------------------------------------------------------- + Function: Sprite_SetTex -Set sprite texture. + + Parameters: sprite_id -[in] sprite id to change. + index -[in] texture index. + tex -[in] texture to set as. + + Returns: Nothing. + + Notes: +----------------------------------------------------------------------------- +*/ +void CacheTextures( W16 start, W16 end ); +PUBLIC void Sprite_SetTex( int sprite_id, int index, int tex ) +{ + if( sprite_id == -1 ) + { + return; + } + CacheTextures( tex, tex ); + + if( index == -1 ) // one texture for each phase + { + levelData.sprites[ sprite_id ].tex[ 0 ] = tex; + levelData.sprites[ sprite_id ].flags |= SPRT_ONE_TEX; + } + else + { + levelData.sprites[ sprite_id ].tex[ index ] = tex; + } + + levelData.sprites[ sprite_id ].flags |= SPRT_CHG_TEX; +} + + +#define MAXVISABLE 128 +visobj_t vislist[ MAXVISABLE ]; + + +/* +----------------------------------------------------------------------------- + Function: Sprite_CreateVisList -Compare function for vislist sorting. + + Parameters: vis1, vis2 -[in] Two values to compare. + + Returns: + <0 elem1 further than elem2 + 0 elem1 equal distance to elem2 + >0 elem1 closer than elem2 + + Notes: +----------------------------------------------------------------------------- +*/ +PRIVATE int Sprite_cmpVis( const void *elem1, const void *elem2 ) +{ + // macro to get distance from a void pointer to visobj_t + #define vis_dist( vis ) ( ((visobj_t *)vis)->dist ) + + if( vis_dist( elem1 ) == vis_dist( elem2 ) ) + { + return 0; // process equal distance + } + else + { + // if dist > sprite must be first + return vis_dist( elem1 ) < vis_dist( elem2 ) ? 1 : -1; + } +} + + +/* +----------------------------------------------------------------------------- + Function: Sprite_CreateVisList -Build and sort visibility list of sprites. + + Parameters: Nothing. + + Returns: Number of visible sprites. + + Notes: + List is sorted from far to near. + List is based on tile visibility array, made by raycaster. + Called only by client. +----------------------------------------------------------------------------- +*/ +PUBLIC int Sprite_CreateVisList( void ) +{ + W32 tx, ty, n, num_visible; + visobj_t *visptr; + sprite_t* sprt; + + visptr = vislist; + num_visible = 0; + + for( n = 0, sprt = levelData.sprites; n < levelData.numSprites; ++n, ++sprt ) + { + if( sprt->flags & SPRT_REMOVE ) + { + continue; + } + + tx = sprt->tilex; + ty = sprt->tiley; + + if( tx > 63 ) + tx = 63; + if( ty > 63 ) + ty = 63; + + // can be in any of 4 surrounding tiles; not 9 - see definition of tilex & tiley + if( tile_visible[ tx ][ ty ] || tile_visible[ tx + 1 ][ ty ] || + tile_visible[ tx ][ ty + 1 ] || tile_visible[ tx + 1 ][ ty + 1 ] ) + { // player spoted it + visptr->dist = LineLen2Point( sprt->x - Player.position.origin[ 0 ], + sprt->y-Player.position.origin[ 1 ], + Player.position.angle ); //FIXME viewport + visptr->x = sprt->x; + visptr->y = sprt->y; + visptr->ang = sprt->ang; + visptr->tex = sprt->tex[ 0 ]; //FIXME! + if( ++num_visible > MAXVISABLE ) + { + break; // vislist full + } + + visptr++; + } + } + +// sorting list + if( num_visible ) // do not sort if no entries + { + qsort( vislist, num_visible, sizeof( visobj_t ), Sprite_cmpVis ); + } + + return num_visible; +} + diff --git a/wolf3d/code/wolf/wolf_sprites.h b/wolf3d/code/wolf/wolf_sprites.h new file mode 100644 index 0000000..fcb11bc --- /dev/null +++ b/wolf3d/code/wolf/wolf_sprites.h @@ -0,0 +1,429 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * wolf_sprites.h: Wolfenstein3-D sprite handling. + * + * Author: Michael Liebscher + * Date: 2004 + * + * Acknowledgement: + * Portion of this code was derived from NewWolf, and was originally + * written by DarkOne the Hacker. + * + * Portion of this code was derived from Wolfenstein3-D, and was originally + * written by Id Software, Inc. + * + */ + +/* + Notes: + This module is implemented by wolf_sprites.c + +*/ + +#ifndef __WOLF_SPRITES_H__ +#define __WOLF_SPRITES_H__ + + +// +// sprite constants +// + +enum { + SPR_DEMO, + SPR_DEATHCAM, +// +// static sprites +// + SPR_STAT_0, SPR_STAT_1,SPR_STAT_2, SPR_STAT_3, + SPR_STAT_4, SPR_STAT_5,SPR_STAT_6, SPR_STAT_7, + + SPR_STAT_8, SPR_STAT_9,SPR_STAT_10,SPR_STAT_11, + SPR_STAT_12,SPR_STAT_13,SPR_STAT_14,SPR_STAT_15, + + SPR_STAT_16,SPR_STAT_17,SPR_STAT_18,SPR_STAT_19, + SPR_STAT_20,SPR_STAT_21,SPR_STAT_22,SPR_STAT_23, + + SPR_STAT_24,SPR_STAT_25,SPR_STAT_26,SPR_STAT_27, + SPR_STAT_28,SPR_STAT_29,SPR_STAT_30,SPR_STAT_31, + + SPR_STAT_32,SPR_STAT_33,SPR_STAT_34,SPR_STAT_35, + SPR_STAT_36,SPR_STAT_37,SPR_STAT_38,SPR_STAT_39, + + SPR_STAT_40,SPR_STAT_41,SPR_STAT_42,SPR_STAT_43, + SPR_STAT_44,SPR_STAT_45,SPR_STAT_46,SPR_STAT_47, + + + + + SPR_STAT_48,SPR_STAT_49,SPR_STAT_50,SPR_STAT_51, + + + + + +// +// Guard +// + SPR_GRD_S_1,SPR_GRD_S_2,SPR_GRD_S_3,SPR_GRD_S_4, + SPR_GRD_S_5,SPR_GRD_S_6,SPR_GRD_S_7,SPR_GRD_S_8, + + SPR_GRD_W1_1,SPR_GRD_W1_2,SPR_GRD_W1_3,SPR_GRD_W1_4, + SPR_GRD_W1_5,SPR_GRD_W1_6,SPR_GRD_W1_7,SPR_GRD_W1_8, + + SPR_GRD_W2_1,SPR_GRD_W2_2,SPR_GRD_W2_3,SPR_GRD_W2_4, + SPR_GRD_W2_5,SPR_GRD_W2_6,SPR_GRD_W2_7,SPR_GRD_W2_8, + + SPR_GRD_W3_1,SPR_GRD_W3_2,SPR_GRD_W3_3,SPR_GRD_W3_4, + SPR_GRD_W3_5,SPR_GRD_W3_6,SPR_GRD_W3_7,SPR_GRD_W3_8, + + SPR_GRD_W4_1,SPR_GRD_W4_2,SPR_GRD_W4_3,SPR_GRD_W4_4, + SPR_GRD_W4_5,SPR_GRD_W4_6,SPR_GRD_W4_7,SPR_GRD_W4_8, + + SPR_GRD_PAIN_1,SPR_GRD_DIE_1,SPR_GRD_DIE_2,SPR_GRD_DIE_3, + SPR_GRD_PAIN_2,SPR_GRD_DEAD, + + SPR_GRD_SHOOT1,SPR_GRD_SHOOT2,SPR_GRD_SHOOT3, + +// +// Dog +// + SPR_DOG_W1_1,SPR_DOG_W1_2,SPR_DOG_W1_3,SPR_DOG_W1_4, + SPR_DOG_W1_5,SPR_DOG_W1_6,SPR_DOG_W1_7,SPR_DOG_W1_8, + + SPR_DOG_W2_1,SPR_DOG_W2_2,SPR_DOG_W2_3,SPR_DOG_W2_4, + SPR_DOG_W2_5,SPR_DOG_W2_6,SPR_DOG_W2_7,SPR_DOG_W2_8, + + SPR_DOG_W3_1,SPR_DOG_W3_2,SPR_DOG_W3_3,SPR_DOG_W3_4, + SPR_DOG_W3_5,SPR_DOG_W3_6,SPR_DOG_W3_7,SPR_DOG_W3_8, + + SPR_DOG_W4_1,SPR_DOG_W4_2,SPR_DOG_W4_3,SPR_DOG_W4_4, + SPR_DOG_W4_5,SPR_DOG_W4_6,SPR_DOG_W4_7,SPR_DOG_W4_8, + + SPR_DOG_DIE_1,SPR_DOG_DIE_2,SPR_DOG_DIE_3,SPR_DOG_DEAD, + SPR_DOG_JUMP1,SPR_DOG_JUMP2,SPR_DOG_JUMP3, + + + +// +// SS +// + SPR_SS_S_1,SPR_SS_S_2,SPR_SS_S_3,SPR_SS_S_4, + SPR_SS_S_5,SPR_SS_S_6,SPR_SS_S_7,SPR_SS_S_8, + + SPR_SS_W1_1,SPR_SS_W1_2,SPR_SS_W1_3,SPR_SS_W1_4, + SPR_SS_W1_5,SPR_SS_W1_6,SPR_SS_W1_7,SPR_SS_W1_8, + + SPR_SS_W2_1,SPR_SS_W2_2,SPR_SS_W2_3,SPR_SS_W2_4, + SPR_SS_W2_5,SPR_SS_W2_6,SPR_SS_W2_7,SPR_SS_W2_8, + + SPR_SS_W3_1,SPR_SS_W3_2,SPR_SS_W3_3,SPR_SS_W3_4, + SPR_SS_W3_5,SPR_SS_W3_6,SPR_SS_W3_7,SPR_SS_W3_8, + + SPR_SS_W4_1,SPR_SS_W4_2,SPR_SS_W4_3,SPR_SS_W4_4, + SPR_SS_W4_5,SPR_SS_W4_6,SPR_SS_W4_7,SPR_SS_W4_8, + + SPR_SS_PAIN_1,SPR_SS_DIE_1,SPR_SS_DIE_2,SPR_SS_DIE_3, + SPR_SS_PAIN_2,SPR_SS_DEAD, + + SPR_SS_SHOOT1,SPR_SS_SHOOT2,SPR_SS_SHOOT3, + +// +// Mutant +// + SPR_MUT_S_1,SPR_MUT_S_2,SPR_MUT_S_3,SPR_MUT_S_4, + SPR_MUT_S_5,SPR_MUT_S_6,SPR_MUT_S_7,SPR_MUT_S_8, + + SPR_MUT_W1_1,SPR_MUT_W1_2,SPR_MUT_W1_3,SPR_MUT_W1_4, + SPR_MUT_W1_5,SPR_MUT_W1_6,SPR_MUT_W1_7,SPR_MUT_W1_8, + + SPR_MUT_W2_1,SPR_MUT_W2_2,SPR_MUT_W2_3,SPR_MUT_W2_4, + SPR_MUT_W2_5,SPR_MUT_W2_6,SPR_MUT_W2_7,SPR_MUT_W2_8, + + SPR_MUT_W3_1,SPR_MUT_W3_2,SPR_MUT_W3_3,SPR_MUT_W3_4, + SPR_MUT_W3_5,SPR_MUT_W3_6,SPR_MUT_W3_7,SPR_MUT_W3_8, + + SPR_MUT_W4_1,SPR_MUT_W4_2,SPR_MUT_W4_3,SPR_MUT_W4_4, + SPR_MUT_W4_5,SPR_MUT_W4_6,SPR_MUT_W4_7,SPR_MUT_W4_8, + + SPR_MUT_PAIN_1,SPR_MUT_DIE_1,SPR_MUT_DIE_2,SPR_MUT_DIE_3, + SPR_MUT_PAIN_2,SPR_MUT_DIE_4,SPR_MUT_DEAD, + + SPR_MUT_SHOOT1,SPR_MUT_SHOOT2,SPR_MUT_SHOOT3,SPR_MUT_SHOOT4, + +// +// Officer +// + SPR_OFC_S_1,SPR_OFC_S_2,SPR_OFC_S_3,SPR_OFC_S_4, + SPR_OFC_S_5,SPR_OFC_S_6,SPR_OFC_S_7,SPR_OFC_S_8, + + SPR_OFC_W1_1,SPR_OFC_W1_2,SPR_OFC_W1_3,SPR_OFC_W1_4, + SPR_OFC_W1_5,SPR_OFC_W1_6,SPR_OFC_W1_7,SPR_OFC_W1_8, + + SPR_OFC_W2_1,SPR_OFC_W2_2,SPR_OFC_W2_3,SPR_OFC_W2_4, + SPR_OFC_W2_5,SPR_OFC_W2_6,SPR_OFC_W2_7,SPR_OFC_W2_8, + + SPR_OFC_W3_1,SPR_OFC_W3_2,SPR_OFC_W3_3,SPR_OFC_W3_4, + SPR_OFC_W3_5,SPR_OFC_W3_6,SPR_OFC_W3_7,SPR_OFC_W3_8, + + SPR_OFC_W4_1,SPR_OFC_W4_2,SPR_OFC_W4_3,SPR_OFC_W4_4, + SPR_OFC_W4_5,SPR_OFC_W4_6,SPR_OFC_W4_7,SPR_OFC_W4_8, + + SPR_OFC_PAIN_1,SPR_OFC_DIE_1,SPR_OFC_DIE_2,SPR_OFC_DIE_3, + SPR_OFC_PAIN_2,SPR_OFC_DIE_4,SPR_OFC_DEAD, + + SPR_OFC_SHOOT1,SPR_OFC_SHOOT2,SPR_OFC_SHOOT3, + + + +// +// Ghosts +// + SPR_BLINKY_W1,SPR_BLINKY_W2,SPR_PINKY_W1,SPR_PINKY_W2, + SPR_CLYDE_W1,SPR_CLYDE_W2,SPR_INKY_W1,SPR_INKY_W2, + +// +// Hans +// + SPR_BOSS_W1,SPR_BOSS_W2,SPR_BOSS_W3,SPR_BOSS_W4, + SPR_BOSS_SHOOT1,SPR_BOSS_SHOOT2,SPR_BOSS_SHOOT3,SPR_BOSS_DEAD, + + SPR_BOSS_DIE1,SPR_BOSS_DIE2,SPR_BOSS_DIE3, + +// +// Schabbs +// + SPR_SCHABB_W1,SPR_SCHABB_W2,SPR_SCHABB_W3,SPR_SCHABB_W4, + SPR_SCHABB_SHOOT1,SPR_SCHABB_SHOOT2, + + SPR_SCHABB_DIE1,SPR_SCHABB_DIE2,SPR_SCHABB_DIE3,SPR_SCHABB_DEAD, + SPR_HYPO1,SPR_HYPO2,SPR_HYPO3,SPR_HYPO4, + +// +// Fake +// + SPR_FAKE_W1,SPR_FAKE_W2,SPR_FAKE_W3,SPR_FAKE_W4, + SPR_FAKE_SHOOT,SPR_FIRE1,SPR_FIRE2, + + SPR_FAKE_DIE1,SPR_FAKE_DIE2,SPR_FAKE_DIE3,SPR_FAKE_DIE4, + SPR_FAKE_DIE5,SPR_FAKE_DEAD, + +// +// Hitler +// + SPR_MECHA_W1,SPR_MECHA_W2,SPR_MECHA_W3,SPR_MECHA_W4, + SPR_MECHA_SHOOT1,SPR_MECHA_SHOOT2,SPR_MECHA_SHOOT3,SPR_MECHA_DEAD, + + SPR_MECHA_DIE1,SPR_MECHA_DIE2,SPR_MECHA_DIE3, + + SPR_HITLER_W1,SPR_HITLER_W2,SPR_HITLER_W3,SPR_HITLER_W4, + SPR_HITLER_SHOOT1,SPR_HITLER_SHOOT2,SPR_HITLER_SHOOT3,SPR_HITLER_DEAD, + + SPR_HITLER_DIE1,SPR_HITLER_DIE2,SPR_HITLER_DIE3,SPR_HITLER_DIE4, + SPR_HITLER_DIE5,SPR_HITLER_DIE6,SPR_HITLER_DIE7, + +// +// Giftmacher +// + SPR_GIFT_W1,SPR_GIFT_W2,SPR_GIFT_W3,SPR_GIFT_W4, + SPR_GIFT_SHOOT1,SPR_GIFT_SHOOT2, + + SPR_GIFT_DIE1,SPR_GIFT_DIE2,SPR_GIFT_DIE3,SPR_GIFT_DEAD, + + +// +// Rocket, smoke and small explosion +// + SPR_ROCKET_1,SPR_ROCKET_2,SPR_ROCKET_3,SPR_ROCKET_4, + SPR_ROCKET_5,SPR_ROCKET_6,SPR_ROCKET_7,SPR_ROCKET_8, + + SPR_SMOKE_1,SPR_SMOKE_2,SPR_SMOKE_3,SPR_SMOKE_4, + SPR_BOOM_1,SPR_BOOM_2,SPR_BOOM_3, + +// +// Angel of Death's DeathSparks(tm) +// + SPR_HROCKET_1,SPR_HROCKET_2,SPR_HROCKET_3,SPR_HROCKET_4, + SPR_HROCKET_5,SPR_HROCKET_6,SPR_HROCKET_7,SPR_HROCKET_8, + + SPR_HSMOKE_1,SPR_HSMOKE_2,SPR_HSMOKE_3,SPR_HSMOKE_4, + SPR_HBOOM_1,SPR_HBOOM_2,SPR_HBOOM_3, + + SPR_SPARK1,SPR_SPARK2,SPR_SPARK3,SPR_SPARK4, + + + +// +// Gretel +// + SPR_GRETEL_W1,SPR_GRETEL_W2,SPR_GRETEL_W3,SPR_GRETEL_W4, + SPR_GRETEL_SHOOT1,SPR_GRETEL_SHOOT2,SPR_GRETEL_SHOOT3,SPR_GRETEL_DEAD, + + SPR_GRETEL_DIE1,SPR_GRETEL_DIE2,SPR_GRETEL_DIE3, + +// +// Fat Face +// + SPR_FAT_W1,SPR_FAT_W2,SPR_FAT_W3,SPR_FAT_W4, + SPR_FAT_SHOOT1,SPR_FAT_SHOOT2,SPR_FAT_SHOOT3,SPR_FAT_SHOOT4, + + SPR_FAT_DIE1,SPR_FAT_DIE2,SPR_FAT_DIE3,SPR_FAT_DEAD, + +// +// bj +// + SPR_BJ_W1,SPR_BJ_W2,SPR_BJ_W3,SPR_BJ_W4, + SPR_BJ_JUMP1,SPR_BJ_JUMP2,SPR_BJ_JUMP3,SPR_BJ_JUMP4, + + +// +// SPEAR OF DESTINY +// + +// +// Trans Grosse +// + SPR_TRANS_W1,SPR_TRANS_W2,SPR_TRANS_W3,SPR_TRANS_W4, + SPR_TRANS_SHOOT1,SPR_TRANS_SHOOT2,SPR_TRANS_SHOOT3,SPR_TRANS_DEAD, + + SPR_TRANS_DIE1,SPR_TRANS_DIE2,SPR_TRANS_DIE3, + +// +// Wilhelm +// + SPR_WILL_W1,SPR_WILL_W2,SPR_WILL_W3,SPR_WILL_W4, + SPR_WILL_SHOOT1,SPR_WILL_SHOOT2,SPR_WILL_SHOOT3,SPR_WILL_SHOOT4, + + SPR_WILL_DIE1,SPR_WILL_DIE2,SPR_WILL_DIE3,SPR_WILL_DEAD, + +// +// UberMutant +// + SPR_UBER_W1,SPR_UBER_W2,SPR_UBER_W3,SPR_UBER_W4, + SPR_UBER_SHOOT1,SPR_UBER_SHOOT2,SPR_UBER_SHOOT3,SPR_UBER_SHOOT4, + + SPR_UBER_DIE1,SPR_UBER_DIE2,SPR_UBER_DIE3,SPR_UBER_DIE4, + SPR_UBER_DEAD, + +// +// Death Knight +// + SPR_DEATH_W1,SPR_DEATH_W2,SPR_DEATH_W3,SPR_DEATH_W4, + SPR_DEATH_SHOOT1,SPR_DEATH_SHOOT2,SPR_DEATH_SHOOT3,SPR_DEATH_SHOOT4, + + SPR_DEATH_DIE1,SPR_DEATH_DIE2,SPR_DEATH_DIE3,SPR_DEATH_DIE4, + SPR_DEATH_DIE5,SPR_DEATH_DIE6,SPR_DEATH_DEAD, + +// +// Ghost +// + SPR_SPECTRE_W1,SPR_SPECTRE_W2,SPR_SPECTRE_W3,SPR_SPECTRE_W4, + SPR_SPECTRE_F1,SPR_SPECTRE_F2,SPR_SPECTRE_F3,SPR_SPECTRE_F4, + +// +// Angel of Death +// + SPR_ANGEL_W1,SPR_ANGEL_W2,SPR_ANGEL_W3,SPR_ANGEL_W4, + SPR_ANGEL_SHOOT1,SPR_ANGEL_SHOOT2,SPR_ANGEL_TIRED1,SPR_ANGEL_TIRED2, + + SPR_ANGEL_DIE1,SPR_ANGEL_DIE2,SPR_ANGEL_DIE3,SPR_ANGEL_DIE4, + SPR_ANGEL_DIE5,SPR_ANGEL_DIE6,SPR_ANGEL_DIE7,SPR_ANGEL_DEAD, + + + +// +// player attack frames +// + SPR_KNIFEREADY,SPR_KNIFEATK1,SPR_KNIFEATK2,SPR_KNIFEATK3, + SPR_KNIFEATK4, + + SPR_PISTOLREADY,SPR_PISTOLATK1,SPR_PISTOLATK2,SPR_PISTOLATK3, + SPR_PISTOLATK4, + + SPR_MACHINEGUNREADY,SPR_MACHINEGUNATK1,SPR_MACHINEGUNATK2,MACHINEGUNATK3, + SPR_MACHINEGUNATK4, + + SPR_CHAINREADY,SPR_CHAINATK1,SPR_CHAINATK2,SPR_CHAINATK3, + SPR_CHAINATK4, + +}; + + + + +#define SPRT_ONE_TEX 1 +#define SPRT_NO_ROT 2 +#define SPRT_CHG_POS 4 +#define SPRT_CHG_TEX 8 +#define SPRT_REMOVE 16 + +typedef struct sprite_s +{ + vec3_t position; + int x, y, ang; +// very clever to make it not just (x>>TILESHIFT) +// but also (x>>TILESHIFT)-1 if (x%TILEWIDTH)\n" ); + return; + } + +// Com_DPrintf( "SV_GameMap( %s )\n", Cmd_Argv( 1 ) ); + + FS_CreatePath( va( "%s/save/current/", FS_Gamedir() ) ); + + // check for clearing the current savegame + map = Cmd_Argv( 1 ); + + // start up the next map + my_strlcpy( r_mapname, Cmd_Argv( 1 ), sizeof( r_mapname ) ); + + Client_PrepRefresh( r_mapname ); +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void Map_f( void ) +{ + char *map; + char expanded[ MAX_GAMEPATH ]; + + // Check to make sure the level exists. + map = Cmd_Argv( 1 ); + if( ! strstr( map, "." ) ) + { + my_snprintf( expanded, sizeof( expanded ), "maps/%s.map", map ); + } + else + { + my_snprintf( expanded, sizeof( expanded ), "maps/%s", map ); + } + + +//sv.state = ss_dead; // don't save current level when changing +// SV_WipeSavegame( "current" ); + SV_GameMap_f(); +} + diff --git a/wolf3d/code/wolf/wolf_weapon.c b/wolf3d/code/wolf/wolf_weapon.c new file mode 100644 index 0000000..4953dfa --- /dev/null +++ b/wolf3d/code/wolf/wolf_weapon.c @@ -0,0 +1,194 @@ +/* + + Copyright (C) 2004 Michael Liebscher + Copyright (C) 2000-2002 by DarkOne the Hacker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "../wolfiphone.h" + + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void fire_hit( player_t *self ) +{ + entity_t *closest; + int dist, d1, n, shot_dist, damage; + + Sound_StartSound( NULL, 0, CHAN_WEAPON, Sound_RegisterSound( "lsfx/023.wav" ), 1, ATTN_NORM, 0 ); + +// actually fire + dist = 0x7fffffff; + closest = NULL; + + for( n = 0 ; n < NumGuards ; ++n ) + { + if( Guards[ n ].flags & FL_SHOOTABLE ) // && Guards[n].flags&FL_VISABLE + { + shot_dist = Point2LineDist( Guards[ n ].x - self->position.origin[ 0 ], Guards[ n ].y - self->position.origin[ 1 ], self->position.angle ); + + if( shot_dist > (2 * TILEGLOBAL / 3) ) + { + continue; // miss + } + + d1 = LineLen2Point( Guards[ n ].x - self->position.origin[ 0 ], Guards[ n ].y - self->position.origin[ 1 ], self->position.angle ); + + if( d1 < 0 || d1 > dist ) + { + continue; + } + + if( ! Level_CheckLine( Guards[ n ].x, Guards[ n ].y, Player.position.origin[0], Player.position.origin[1], r_world ) ) + { + //if( ! CheckLine( &Guards[ n ] ) ) + continue; // obscured + } + + dist = d1; + closest = &Guards[ n ]; + } + } + + if( ! closest || dist > TILE2POS( 1 ) ) + { + return; // missed if further than 1.5 tiles + } + + damage = US_RndT() >> 4; + + A_DamageActor( closest, damage ); // hit something +} + +/* +----------------------------------------------------------------------------- + Function: + + Parameters: + + Returns: + + Notes: + +----------------------------------------------------------------------------- +*/ +PUBLIC void fire_lead( player_t *self ) +{ + entity_t *closest; + int damage; + int dx, dy, dist; + int d1, shot_dist, n; + + switch( self->weapon ) + { + case WEAPON_PISTOL: + Sound_StartSound( NULL, 0, CHAN_WEAPON, Sound_RegisterSound( "sfx/012.wav" ), 1, ATTN_NORM, 0 ); + break; + + case WEAPON_AUTO: + Sound_StartSound( NULL, 0, CHAN_WEAPON, Sound_RegisterSound( "sfx/011.wav" ), 1, ATTN_NORM, 0 ); + break; + + case WEAPON_CHAIN: + Sound_StartSound( NULL, 0, CHAN_WEAPON, Sound_RegisterSound( "sfx/013.wav" ), 1, ATTN_NORM, 0 ); + break; + } + self->madenoise = true; + + dist = 0x7fffffffl; + closest = NULL; + + for( n = 0 ; n < NumGuards; ++n ) + { + if( Guards[ n ].flags & FL_SHOOTABLE ) // && Guards[n].flags&FL_VISABLE + { + shot_dist = Point2LineDist( Guards[ n ].x - self->position.origin[ 0 ], Guards[ n ].y - self->position.origin[ 1 ], self->position.angle ); + if( shot_dist > (2 * TILEGLOBAL / 3) ) + { + continue; // miss + } + + d1 = LineLen2Point( Guards[ n ].x - self->position.origin[ 0 ], Guards[ n ].y - self->position.origin[ 1 ], self->position.angle ); + if( d1 < 0 || d1 > dist ) + { + continue; + } + + if( ! Level_CheckLine( Guards[ n ].x, Guards[ n ].y, Player.position.origin[0], Player.position.origin[1], r_world ) ) + { + //if( ! CheckLine( &Guards[ n ] ) ) + continue; // obscured + } + + dist = d1; + closest = &Guards[ n ]; + } + } + + if( ! closest ) // missed + { + r_trace_t trace; + + trace.a = NormalizeAngle( self->position.angle - DEG2FINE( 2 ) + rand() % (DEG2FINE( 4 ) ) ); + trace.x = self->position.origin[ 0 ]; + trace.y = self->position.origin[ 1 ]; + trace.flags = TRACE_BULLET; + trace.tile_vis = NULL; + R_Trace( &trace, r_world ); + + if( trace.flags & TRACE_HIT_DOOR ) + { + Sound_StartSound( NULL, 0, CHAN_AUTO, Sound_RegisterSound( "lsfx/028.wav" ), 1, ATTN_NORM, 0 ); + } + return; + } + +// hit something + dx = ABS( closest->tilex - self->tilex ); + dy = ABS( closest->tiley - self->tiley ); + dist = max_of_2( dx, dy ); + + if( dist < 2 ) + { + damage = US_RndT() / 4; + } + else if( dist < 4 ) + { + damage = US_RndT() / 6; + } + else + { + if( US_RndT() / 12 < dist ) + { + return; // missed + } + + damage = US_RndT() / 6; + } + + A_DamageActor( closest, damage ); +} diff --git a/wolf3d/code/wolfiphone.h b/wolf3d/code/wolfiphone.h new file mode 100644 index 0000000..e44404f --- /dev/null +++ b/wolf3d/code/wolfiphone.h @@ -0,0 +1,87 @@ +/* + * wolfiphone.h + * wolf3d + * + * Created by John Carmack on 3/13/09. + * Copyright 2009 idSoftware. All rights reserved. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include "iphone/gles_glue.h" + +#include +#include +#include +#undef ALCAPI +#define ALCAPI + +#include "Tremor/ivorbisfile.h" + +#include "env/arch.h" +#include "env/angle.h" +#include "env/matrix.h" +#include "env/vector.h" +#include "env/mymath.h" +#include "env/common_utils.h" +#include "env/cvar.h" +#include "env/zmem.h" +#include "env/mymath.h" +#include "env/cmd.h" +#include "env/num_type.h" +#include "env/filestring.h" +#include "env/filesystem.h" +#include "env/app_def.h" +#include "env/common.h" +#include "env/video.h" +#include "env/texture_manager.h" +#include "env/font_manager.h" +#include "env/renderer.h" +#include "env/opengl_local.h" +#include "env/timer.h" +#include "env/com_string.h" +#include "env/console.h" +#include "env/sound_local.h" +#include "env/sound.h" +#include "env/memory.h" +#include "env/random_number.h" +#include "env/openal_binding.h" +#include "env/glob.h" +#include "env/opengl_local.h" +#include "env/tga.h" +#include "env/wavfile.h" +#include "env/oggfile.h" + + +#include "wolf/wolf_math.h" +#include "wolf/wolf_powerups.h" +#include "wolf/wolf_sprites.h" +#include "wolf/wolf_level.h" +#include "wolf/wolf_local.h" +#include "wolf/wolf_actors.h" +#include "wolf/wolf_actor_ai.h" +#include "wolf/wolf_player.h" +#include "wolf/wolf_raycast.h" +#include "wolf/wolf_renderer.h" + +#include "iphone/iphone_wolf.h" + diff --git a/wolf3d/scripts/scrubBase.pl b/wolf3d/scripts/scrubBase.pl new file mode 100644 index 0000000..00ce786 --- /dev/null +++ b/wolf3d/scripts/scrubBase.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl +$src = $ARGV[0]; +$dst = $ARGV[1]; + +$prod = $ENV{"PRODUCT_NAME"}; + +if ( $prod eq "wolf3d" ) { + print "We don't scrub the non-lite app.\n"; + exit 0; +} + +if ( -d "$dst/base/maps" ) { + print "Scrubbing maps for $prod.\n"; + chdir "$dst/base/maps"; + opendir( DIR, "." ); + my @files = readdir( DIR ); + closedir( DIR ); + #print "Candidates are: " . join( " ", @files ) . "\n"; + @files = grep { /^w[1-9]\d\.map$/ || /^w0[3-9]\.map$/ } @files; + #print "Filtered are: " . join( " ", @files ) . "\n"; + unlink @files; + + # copy appropriate splash image + if ( -f "$src/../code/iphone/default_$prod.png" ) { + print "Copying default_$prod.png as default splash image.\n"; + `cp $src/../code/iphone/default_$prod.png $dst/Default.png`; + } + + # copy appropriate victory image + if ( -f "$src/../code/iphone/victory_$prod.tga" ) { + print "Copying victory_$prod.tga as victory image.\n"; + `rm $dst/base/iphone/victory_256.5551`; + `cp $src/../code/iphone/victory_$prod.tga $dst/base/iphone/victory_256.tga`; + } +}

    {-tkN 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%0AnSm>j$Wse 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 literal 10978 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 I7ynQE-?l)a-2eap literal 10978 zcmcgxziS*v6qY3?!2}l~2y^9?YMn}Ukw{JmI>iXz5sddzX;bCOb$4zQs|gYWBOfM_ zwuy0LlO`%%g%FGpL4;tI6yZw!8Ogl;^y$5s{c(G;WIayvW@p}f-}m0k?rAkMGc)sP z@VVsr{Q1N=@(F*AmM+%T7VE9oiFeeF_v0OWj`ypLa~L-s#ykFJJhYZ3zUv9;M zAMc1ieb(Pj`}}M+OZ{~jmuzTmh)Jzs+f2KyzvRE(%FxLJ74T8Ro?mtJzySH59{sF! z7i`roKK5TV18ApOzip;nPM&Yn-iqt+tFnH6+Eu@tKR*Xm=#l|t5LVjn^R)TuSpm2E z=cpg&PZ^YdK;sYOmC5m&(KZ{a2>j&-k?3b@zq( z(YN?j=+u8c+NJ(#z^_AA)brFX47mU6(9cV|>_H%^cJZJe&p%>mdokKk0X=_s{wb>U zd$O+w&peT-Us^o>ef*2n zP8Q5Zm42UvRax#=Y1ax^-Sk8KKI+@mU6HAk+L3we0q9TXlJ~U=K8td__UdHq7Ma@R znMeKe?pf%gPS!3AfNWcyH>;UGkOlQuFzSxFo6&Fk%ZYfSZm&~sm@9Ldyu-xoqa~Ry`-1pH zm$nseMsNOGcJB+-boXJ;@^`O;x$I+S*&Szn&L%RVaQ+kv4A@s>KIe&rR@M~H?&)$C zGDl_u9oi+bh)-;^%D_hsd&sctWu5K~m+cEXQqptp7LB7?kvM6Hfl@PfK|9rIzz9L({ z3g7PgYRw$c6;)}`QwEGn_oXZ2b`1j;T*{Isbz1pTDMcR~8{^*e^ro`4fDc z1-sYjD^u$=(=IF&+4`~;&!5ddQKg-1x?-p|>?@0KRjq$<--mOxugJP`h*>@d^K~V~ zfA`vj1@O;bdwuQe^y^rir`av$-M^w0DqD}|Pu_)0u7INIsy>?S**WTyMR@+2?Rkk- z78b3{w{wZh)}Fs6+I?iZ@?>OXOmw!Ae?{lj`c_vfL$=qzvTn5|-&-$sj(iiR^#|5? zHH)m_n>oLoA1$TH;^)sEi|K!nj`wi|?-bixV)~ThPIFivOZMAemc>4MJTZEZU6*)^ z>m$cIRoH0)rGC6+E$EY?`vZx8=Kgms=0_v8OgFLngKU=gek_s8qc#2nKhHk%rMxFa zw_?OE-nOyLvEBa2>o>lIN?Bwdn-!Onz#S&&sNY$l`vZvwf5tQ8)z}tY(r^A)4&7>k>aX z+UL$_S(EW~*c$DlGd`VLf4X{jYA;t`UO70m7q6c?`?+XW4tjg7Il&(f?(@Gsua0KsZ0_Cpy8->g591Y!=zhHLZ^c#7#kz&j zh;O<7{rJ1hSFYT{c&Q)oL*~*ivezql_S_uAH;WF@B}(Gco5grV(#(~_yZX8DhVi;4 z*-QO;9epAfz3}~6IAeY#?MwFc3^Q}WJBxZN?fd$4!+jF<#=KFd{SBUdyocIRcRp^k zx8&JY97TPysQtB!;U0=u>;=)-ibpr(-FW$^jAzlfuiPabwLrAPUm553C%ZC`MV~tX z-PDa2N3rMf@!pfY(Nkx8yHtwzHKqxtH8dt_|L7IE((=_$%7&-pTE? z>pP5|va-2FH6`ATgEzRHXmIh+#2qc8+)LR?zt2(C#ZmYDvzO)XIuT>P$7T7uKv%y9 z$giM?-q_Vk@_o{eWE>gF$D{Ur?YUL^|0e(J{3-r(9GbLu~G w+U801C)phRR910 diff --git a/wolf3d/base/walls/041.5551 b/wolf3d/base/walls/041.5551 index 57fc25da6ffc29c146de1d56f20ef65849d51ebf..f731ba1b40871cb8f4322f592a6dccf5ecd8560f 100644 GIT binary patch literal 11064 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 literal 10978 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 BUhx0` diff --git a/wolf3d/base/walls/042.5551 b/wolf3d/base/walls/042.5551 index cca4154624142d4a5bbb4307375ba838be482f9b..bc9bd395040d943a587c3c65601bb31cf651058b 100644 GIT binary patch literal 2872 zcmZQ(U|?`S!$2-U@M>Mwx??kzPI(m;7QST4u^C~EhKx(5ES(ZId(}IT__~)XUxMlI zurQGPsxT=1Zq;mv{8GH~gv=)-zwRY|^I`IN;nSu;-Iofc|Gm4v4Cs$nd8qz7Z-DAQ zYT3UIGkjKq!*$&%wD45~h3|~8)sXN7+P@a0?pat=G`8?x|AaXIW3e9`KZN{8NPaZ_ z$qxU~_y?6M1j-je^054kD}BS{NAo}S@|jTh5|SUy|D*YTwEhRSgD~rNLhYYnQvQ>j d{)uXTyjz*N5|qB)g=4fo!TMJL0Z5)!GyrD=g((04 literal 10978 zcmeIup%DNe3mKk5FkK+009C72oNAZ nfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72>cM(1GcP- diff --git a/wolf3d/base/walls/043.5551 b/wolf3d/base/walls/043.5551 index e89953e3ec743fceb53b99a79b04dd63b87e9db0..37fc0cbfda3e9f9d7faf3c41e76af363bf960618 100644 GIT binary patch literal 11064 zcmaia4RjONweHBoV2jogy*Q!dCXl|DTX1rVpdl|WFTrveXb^cIRFBCuEl!)zm&hbg zLvEThLFTVF55$c_<%Ti*cQOVdiST}L=z!Z!@P9+&^evHw1 z-=49_&s$w@*3vp_&pBt$Is5FNZ||c?9LLpu?FaJz`{bC>XpRju8jXcUhbp)kD=$wT zFYsEqIV>Ii)i#^0sK}96CojLXsHjF&L+t+I{FBcfgVt(ApWwVxewS2nouYXO4;|=!djMa3zWiG$6vNb6wMR z(P*?e)a`Y&;2O1Z+kK2JsyVJ~HLh8+=2)^bjOO>r-j71Xc?^X>7o zO%wCitReYV`<5@qcN5jJfxDAg;xo3f7mGQI8rVYTvmma9ik9DMbfBNB-M~5GnJAr; zId*X?$Mw}YAU8W`O9K1jS*|tdNcc8=gR{i5(RRx%lN^amw6A$~tvU9$aJ%Kcmo0Hq z><@?UU5@wR!unLLgVr^=9pW?x!C1nj1BpaRk zyOrgYhHTgrV4B-GH*<&Jv#^v}eb1P066Lc}+$A>;XY3HBGWUs_v58hp#a%_OS1Cmh)wgA5;XPb<+mu zv#W~ZTayPAKHq@zk!09A^b-2aGv3p^Q6+nRWU$c7^OK>!KZ5>?%&zG_^mhRA0ZqCK~z%yr_0Jc!BrQ7`x)ZxGU{uyCqKJ^B0r)4sZlfGzSI3ZmRPmC8XL=o zmqOoQZ*5OXUGQ`1s9Wgk>q2W21W2ScX_K;9w7qWM$Te!`!#=q7)+BeBGn=g!laICA z?RN8~_?ZLQu^@{#bHmst7f`s`mA=S{nr?IK(pZKkdszvIkp8pCKNP3Kum>2l8k!?; zhaclAc?DDDC z%rU|9mYmI+W6OM5JeIgq>UpLzQ50)YE?!#>?*mJ-tyn>Pmo3-Z^Jn=T>2Qnkil@Fl z9o{YL@6+KGcxu#ixR?({%rR3e;&S0!AosqJljMg^9z9w|>n8uNh6GQrYO2xZD}Wv9 zv{=t^HXr%ZgMF3+g-Cm<^Z#09ZI78#zir~rRuB;6xr1y*k6rsW2d$f!A z8AUPWmIoSBy}e0|zvyI6sldyasp_H3_PUN8J9f+w1kaB8`ucT}^(ENsu*ELx+ns0jRJ`VQ<-DhB_eHm<>H|7E^8_EE@IIn!uKOsS`Js-Ys$$b`lLOX{UC0_^$Wq{e>}C zCymGc+2fQvyGc( zb7o6?e%!L*;G>R&BZ1?$*CYm-tXwo$UqthY;BeIt>1R9Ukz8ng%~q3X#R~BA(tfEQ=e|ho z*tnI>38NZ^udrbid=73PS`9@aD}WZ%kU{IujPtR*4zhimuhzD=w?~McRaI3*expj` zZxc9!(V&J1U);yk@W!nxR#chb=cFPd>;`s1`q>hNe$u{y`@pA`_*n6vRU(myNc$pv zgucmk`;QH(B7q;|0{mC+YpF2D0>EEnhXak3m3(D7)Dl|#V|{%cc!*y|2dAxXVx1Fw zC)&yi;=dd5Qym*4%Z)=*fQw{Bs|Ksy{Cy4*0Yi+Qz zfU*+fcVhn4Tx2iVInhoj-Z0pfZ!pK=4aH0U_<|#0ijiM6$80{p>MZGz%QbHv*>S1M zRZO^w`bpm=TDYZt@~fQ*Vj(&Wi^xz8;p~nkC|}wxctG^s)i(`_R-eUgzurQzyq1^y8+*RicfZ~V3Mxa zg}X>D`^vw8RUv*|E&*zE%dhS{k#R~k-{1ZwNp9KZdt$wb%{Uc+e-uTcB|HJ8M3AJP zw78|YKCx2VXY*A{`vl)8wcepDYrOEq`1~LPUa}#IuJ_xdYAIDOiZsqyS;1_+b+S(s z_Y%$LPlNo|Ni8{!bHLx=oHI45TOMV=(XjtRImV9lwkV_5TsTKbxpb}c4LaYeId-+E z&8?h2eYD@L*j^uGR^Y5cuh{0&^b7cd+XMWv&v!?aJ0!s$WPuY($o>$Ao4amU`y@Z( z&&xtQ0K27)YpvAmMAOr+>nG&xmZ4u-`yUf}b)ZDkuQ#>UEqkT${;$2C=>KZFOTJE@ z)#VQw=i!zwjFoEp)cc{ofq9+up7a&CS)S0>OF0+fhos~~f7d~uuk$-l(%FLX6SSBr z(dIMevSB>sTiSTgi&f0mXz2eR4%2?VnCER41T|Xl`pMJ%Bc%V}_wUq?cmg>{$_O5M zKQdChgj$Hztjb)oS<~OgwllWc&jq-#&$I1ZiNG}-?9==t-hX-}pwM@Trg3~li&8B| z+VuUCA0hq~;tAL_{C?1%2`Fy(mki$pKSt{%d&MyL86Y>%Zn>jjbTpVzY22#Soo-oD zCX1_nOYLi-PYfu#Uv>H?tH_Reo*8e) zN;Bwh1N|Q1;cR1&rNfyh&7W}!cy8@e7_a5Sh6RY5Ww(8^lki{92=aaK0o=fNbL>KZ z;#wx`_a8tU%7m}xcGOmt;moS-*ggDBBxynpuczC$ke*6OA@oaYQ1&8=r3$oc{FU7?hP^T#H+RKAM!l$&K)+BHeFN%~e`XMk{=b^UXdicLKm}P|g zVCv%L6M7uwkvC0&{H90J;c2J`jL%;iOi_Ht{FDQphU}QeU%UoUAzKGwXC+Tro=cA8(}S5?(@u=WtvHG4}3K_qd}b2sm#V^nz;WfcdctTQkJzZ?2xMXkMbd2yw_Vn!^ zl3kyNK9C=S`#9v39`@x}c4*y&UGkMHqoc(4>fqpD!Rx47;rYi?)zVP5uj%>Bjyk+f zO~!sxcnZADp6u`@5Akhke*75KB`#gl{h5OwWJf|Jh|`ycX}QLWUy|(A^IuDRpmFBZs`af&x4angt5I#(-z!*WfwyWV)laDYHmfQi zPw~23ge%q1B+V~o!oK#dE;Uprbm1YqhSz3_`_qeWpWdRR!}OlyskiVmOKdi(BO*OP zn+ZR?p6WSnIRd>Rc}%=tf`{TO>D!*}0xz|c=hJ=(=QpAcCGQ(kyK3xuX^CI6#__BD`y2`G@y=HmQ7 z)V5{i6N_xn2hHyUaK2i-Qhwm2X6XB|UP&2lZEd}H9Jr#bbQ$T*jrmKK0N=Usx|Q}p zE!8n5+kSs20RMhS6mKLwGC)9XdA^p9Iiu>9alUT)zA6ngmK5{FX{AspE}4#TA1PT3 zSSSDNB^nn{9(ZYz%atPieLGxQMS9eC`beu|J+wPVt*qK*I zPr>%-EauVqlD^yP>Qj`zV;#U%Hs8&&BJlI*U%kXibv=^n0?ga6f&7$Bn2bCspv-xt z%sOdOK-mWU7MdtO-_-ifI}0#>5){>~%<<;mYnmKT$iLl*dGoj8oH=)R=@!DxZduUJ zALk79QCU~;h;h}WLKof_6wt(tmtpAD=xD@6JdnLMJuTxs)Yx(V}Rph4^ zofCqDTT{7QZXIx~&$9~Wg?b#ue}Xu`Sn6Zy|8^DOXTmMP2;@or5I6owZXMAV^xSFbVNa!67{#D8SfQ)KzTxuE?lRRsUVaoH^Dl|FlUxjh-H?jgB*;KwLVSkQXOagz9FwunkzKpA-&UEr*E<|m!osdy4R42}k@Wl&I zr-m1`()ve+D1U^!p-0s6^;ieipR26@A+6gmI;&K}zk?I_mjV9aKLo=xQc4ErBw^zW_k&k=s`604YLbR!T;n6Ei&9r}R zLVq6B<$PsAK7K#)3)C${CK4aYmo+-YQV*dn8e#f6ME|^(we^heJCz!LuhUYi&+nso zt*57-ru~a}=-fncTz(VsXQkNZSN3Njz7zZXQVYL{_bENUye{wY?@#21Z;t1muBw?u zgpc-zbpG}A@T;M-ft3eJ!9PH9)xN9ciHcjfaCjccS8I}QXnqNhnqL$*76%I^Q%v z@8G*HYwdl6lO)Az&M#BL)vs8sHvp%^8=Y&N)eF>}@{?;hjHkS2C>wyD=-;9HLe$Yh z=B@004u1Cf_nW9c3mnCmF6RmP`6u-A@3hzDH=h4rr~lu4Ufa*t`!C#Q)c5%(}Dx{}3o6SZr7Em}R6vvR06 z6>Q-aQymuhW%*_&>dIjrkNRn5$AsLeO~Wo;Wb8%Thvuz3Us7pFxN%Q|`r2CqkpGaT zA3mQ1z5&H2fim-ME-o-eZ`=15ko|48U;U zR>B{Irt>c{^;0wAJJs)W{la$|+2)GkBRwr!X#bYC&uV&Md7Jt%KZ^cIlfL7KbqY1# z%F9EZ{yT&t;HtCD+<|Z2f_ro+FYjA5t#P#;-QU7JQQIweEHR<+mNhxx3ZX$C4;+Aa zu%{dA=gRG#Zq)r5XKqcZp=ZCp;5NdATs`7D@`7id{r-2TKF0YNZ;lms^Uj~ovn1y4 z&BJ4f*T0F+1E+0_Q$58TQ&e>46~)xwq5C{;clV;)TWgM4;uzp&k+c zmrHlut$k-D6YZ!^`0#z)|4Vl-T)5EFUFco7@VRFQ*WB~XSk{{GE5F1A$2-ZLGSWok z`-nr>2(4GAk2o+d-VoGQEZOT`0~F+Q@9uTKkXfzgm3e2pL;Le$1gJ83cqEF_4oJG z!X82#tK{ACjympPtKX7X`Z~wz>utiH8uzB#O7D!v8vtWmcMsy8iLtUH$8n$BJT|rn z_r4b$d3om8LtcpYVmfNx3wO0R8{Mc*f4}ZQ_>Gt&?*a7h67tUfH7^jFzsK{8@C@Cf z4A*iukp3^c8**>6`5@+n7UY2*kKMjWO@|(R{2v>h#Q z?xIEa+HntfZ%IjsryKX^jP4cie-J)$i1?Sx^|d$>PU*>gXWk_~^GXRn1LwB2))eH6Ubbr8$86NdQZU00wuDG~HmBJ5l)>l#IBKw~PyegIZMsqdYxYy%u zan1No?sLGSQb_yAX#1bKp3gX9M?e0!t8!3{!ro!myJTFVU!^)3%m(*m)l&U)5f|0J zf>kS4rxC}hs)AK&SXJ8ELdfRTP$;x>DV@-Sx=<(`204Q z8}F3X*8SUG*lf$d93RS^>@f04GzE8N{z}IqPWGJ)ARaS* z_H5u-;Zep8d617C?dVBT-U~7JSYV&B{MK6@)EC}*>n*tk_Q?41atH8j`Mi0z29O7^ z_Vy_9`v$00yIX#&;fWUxk5L|T_=OkNsnOj^do=oi+qd0=ZtAZ)+EuH4H+!;f3w{3= zzxW069q7~BKm94ynLItIAmtaPDu#U(c;$mii1LYFw#|coEbu<^$RqPq>tQ*vlX|hr5CASDd!@WO$5MO?@V#cg@|mWo!4oH_|Bb4fce&-=$~n>qVj_^*lmWBuD^8}zyZ`M-h2S^r~msS1C% z`B(q_SFo=M{&jII1p2ZA_wk5BYRInn%d_;|j&x|?CFm#W$aB3{4QJ$5)aQp}d8mf` z7RT~E_&*f#bygHxCQYmGLeI^yH_z;Q)ADwY5$vV zo-!XwNB8Y}bHAlUiqiiw9Eld-AWjHgC?#YG@l^U5iBj8!~W5!rc4MFDku}zMHR&KigPq<+ybcGG2|I;`MW{ ziVig`ag%4wy64nmpX9h#eUMl9Q0mOWfRqVM;c{20j&YIWTz2(rW4?JF{Fu$RrZEt3 zB;p>H-;$&H=9=aI^C7C2rrz)Q3+ip&PtKnE)B?QlP~+HAH{!rj+x|Of{l|J@?E!h9 z;n@4QXIAEVOT>s6c-`jXIc|z2@w3kYzyD^D8~Rgt*T{%laLco%YX8&u6Rj6|iF>D! z<}~!b+)n$4zqx9DT+5$Ou~ws!l8m zdeVHTS~-`h2VE@*<=)5ef60);wKjSrJlC7-O-6x>e97bRbBKq75#de9!MEQpGRvWA z`Oh8kIMyr06H79hT|RPJa3lgszc0lsF}KpyK6nlJjl_QM4<1o=D?L|6b2s9DQGc&} Xisf*tBq@Kd)$>WRV?96pdi#F?p!3KQ literal 10978 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 diff --git a/wolf3d/base/walls/044.5551 b/wolf3d/base/walls/044.5551 index 60cf93710880db4153671c177ebe39bf3b8c49b7..d537a13ddcc01b09b8d36274b0787773ea6bc0c8 100644 GIT binary patch literal 11064 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%0DAh4 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 Q@vFVsyV|LJYM0&r0B&PVn*aa+ diff --git a/wolf3d/base/walls/046.5551 b/wolf3d/base/walls/046.5551 index 540301b6c3cb4906f01d1ec8d2980b55e3a7ae3d..f3ff60aa6dc85791d0fa1121034d16a474076f7e 100644 GIT binary patch literal 11064 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 diff --git a/wolf3d/base/walls/050.5551 b/wolf3d/base/walls/050.5551 index 4f2fb05b2c29470c8879256fd206482e53d12dd0..4e98e25c1111f4014914fe711c4b5dcbfc017da8 100644 GIT binary patch literal 11064 zcmaiae^e7^+V&IVmxzF^*dJENTH7jGu-0~4x0Pr?Em8@{pyC!%i&Uc(+eK^bu0%zp z$ZB+hW@%P3mY_2jF}}naG$f96bVobVRMR%@8zTt>6H8EoLeMfa&8d?*N5eLtGWdfsEAukp>dW# zxAPVDgP5T|Jj;AZ0$Q=I#&8+F2NA6Ly&8fJR^?JLBo3gcCe^CCsA!B8hC7-`QS+3u*h{8!*^=9c ztX8fq%v>whb!)ce+Kh?u2;gtRF z28^Xh;un$Qm#cq4?)5x|bx=HrB1dnpi&xm*W`}|Um1k`-zOTvCH{^7gjXzv_G+;)| zqf4)UR>=K<-Lq%UrB3yNnoE~{_FYytsS;9BQihzhhLn^~_+GX{xU0c31s+7o)iT?d=hx#NNeRPU*rdh0SGdOkFUxl6RSvg+I+6@7`hijwCl}?P7L9 za>X|t_Q|aO*cXjcAwE_IM}qFL!(HB`|tpxIBtx)VtyNBI2yQQ;n42aG/M>?I^KK2IEqG&K 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 L_{^N?e>?vl#;lgn literal 10978 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 R!#}krmn`BqZ~Gg;e*;EdJh=b> diff --git a/wolf3d/base/walls/052.5551 b/wolf3d/base/walls/052.5551 index fde40e75685ac2d39e50bf15652940218c8bf060..68aa6de9da1401387b38d10c06036189323fbdf3 100644 GIT binary patch literal 11064 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 E04pw6mjD0& literal 10978 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 diff --git a/wolf3d/base/walls/054.5551 b/wolf3d/base/walls/054.5551 index cb82f09e15b2133f0677b9d5e8882e66a5270b34..e24a10e98293c506785550ff50d47901d888ce73 100644 GIT binary patch literal 11064 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 z%0ALV%HY0o+PQ&i8b0GH{}(d<`1}9F|E?X?j^Yomx-So29{lAAc8#m-@6+}0P5hzq zk+ov_uHLPD92~vslB0&Bqz51I-yggi{{TH`J!lno$3ML4;*Vjc(X4L-$>7J6x3!(( zPP|h~DNf`5gDLSg+CC O+PlAZzde0=Kl(2QZ?#AO diff --git a/wolf3d/base/walls/056.5551 b/wolf3d/base/walls/056.5551 index 972917bdb1e7f5dade88e64b68c77f253d0f23f4..fc84ff9f5d9bc16f98a9e1ac54d15680dda55c88 100644 GIT binary patch literal 11064 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 diff --git a/wolf3d/base/walls/058.5551 b/wolf3d/base/walls/058.5551 index 4ba7c7c6765fdf082073a123cc8c1c1cb719e205..a5a4c2696379f7e3f8df6bbdbf03a760c5bcc6af 100644 GIT binary patch literal 11064 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 literal 10978 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 diff --git a/wolf3d/base/walls/060.5551 b/wolf3d/base/walls/060.5551 index a00b617c2c4521dc8fd2c593eb00b233a2116b17..abfd2fef2b94aad0ac74e61871f6a917c07c3d0f 100644 GIT binary patch literal 11064 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 literal 10978 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 RsjCdgFM1dGh5GBo{{j^}%mDxZ diff --git a/wolf3d/base/walls/062.5551 b/wolf3d/base/walls/062.5551 index 96567b2339a6e508f70e405a0082307ddada8359..1be16f0e8af0162e32cd6fe707836a94193b385b 100644 GIT binary patch literal 11064 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 DTf(c+ literal 10978 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 diff --git a/wolf3d/base/walls/064.5551 b/wolf3d/base/walls/064.5551 index 4e26f6beb645df6f0d3d63559be393ac0cc65b19..d365459df942983a2267acb5a388a55b30c6c151 100644 GIT binary patch literal 11064 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 literal 10978 zcmc(kVTKaNic8oS1i6}!`TX-V3*#*f|h!F_n4EMKE`jl1ok zBui@lcl&qi!+6&6zT^RER7RleQgUfgd+L82zbTrw;Zw;*%l6c!a$1&sm4DXJH{0&P zZvu}5T}VTU|J|+@_n~I}kK$7UW0nSK&$`=vN2m3>jovPQ9KULyMcE5xA@lhP!Gq?} zR~YGk1dq0-yXm=DdoLdJ*U~(E`IV#{kA0t#_WwUkKlyYZOdFZC;}!Iu^V!0hxM$XM zO?gYZfHEq*oLS8^GTYr}j2v=eN>IspGA*mEQ10!+^tIjEKfBVLvysImzOp?nvaPnv zyuP;E`={mGcFWhEcYWWhwHedbc1zCgi&r1nYdo!*b;;1)k2Xrq6WT}OV$ z=f~!sLdOy(+hPOUDM=$oJGnwxg3Ljr$_rC##{&7?*-BBmE8}M#rn5l1ocxashwy;4 z+yB$*XV-P?X$J7VPAZID{HZ*kU0>06IseCDZxIX%YIT-g|OR(L^NFM9cJJ zw+(1UW77DOoMmP9prnZIfBI@aKM5y<%VY4)VtHyu3bp#FgSC}c%~jtnroUCVVM+86 zTF(=f)WyPe&n#VURi;QpS|L3tLz+@MJtY?oCDysyWM7TBN0Q}Rn&o4)u58h%mw##P zV)|QeNxJvV$!Fo5L%!->XOXWcYsGi}6?>ocbtO;iT|GQII&RU~zVhv2W|($K=q}Fn zVZ5=I7TBUT9;wbZj{THTTYej#IF-6+t@6}wiLyZ$uS4@JBe~b{HCEngOVO&Y@i}6Z z)I(+Sxa;}|KCx*HC1*LGX*h4#I*m=3dn77L$(0=buj6GOUkZ?*|J2TTlJ**(ZPHmI z@56(V7Bu<7YRYZ>kA7Y0;;o_nT4D=)|Gcj&Ik7|o*T2rJ znwMr7k@c(jeWG7cHXWMx5AYWyD=V8QKV+WX2L3j`&MLJWVgUR{_=?`{f8x6w)y3b& zIJw><>hhnKx1#?Re-r&o+jEJQO~DWIf5r^`Y<{#N;W_F*q8%FIzl8k9=y0BGM*w#s zK(nYj^-KP*^UNq4w&$*%HI>P7?LNFQd5uf-T9s+3IoJ9uBYyjdHO5GIHeOumvpnmz zeBF7LWOw;Hp2+qwk7J)Lmw_O^@uuiK#zDQUVYoIgS#TTH?@BzaLc%bj&7FtN@9|EM z`28M{#M^>)kKx*~=w;-}kUZ}XBih_~j2hc{Rwu%kfp(AK8d+-}GO%DD$l1v8lh@vg z=lNfb)Q)ZB%z0T`MAvm|l{d&7j(6^47p;1-J~mwPwQCB+s&EgTakEAb_}Ry`deynV zwNs~G%9T}afsd8snMcU+LEd`}Kfi>p*ugKUpRdtr%!lywOCXhb)HcM2m%d><;NJ$k z)#eK?PskhMyInrL&Zi$U3u*5VK3mk@&sS^uNs;;z-ot;aJa(m|E?;|=-a$D=<$pyl z@5qRJsE-eq7-xOj-ax6=;xGj=idG4E)uznnE=1Db4! z?tEWK;v7XTt|?dMD*X04@VRRwj}oI*ChpJ0e9@5KukqJ0{`c@^Ew|p=Uqb`Cmd^s* zYwuAO*?&YVM5d|tsI061CM4&2;5!F(c#1XZDs}7FgGZL-PN`kj*8{SZr12gVPx-DL vz>)Y?#=eSi)n2B~H#rCoac**6+?1ZgGzh#!NoS+i=tY@J9QuhzsZIX_Ex7gZ diff --git a/wolf3d/base/walls/068.5551 b/wolf3d/base/walls/068.5551 index 21dda5ada6ea9d26f3ccfb3dbe76de17054620ec..714fbad69521bc2dbbf563006c1d01b93ba87afc 100644 GIT binary patch literal 11064 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 diff --git a/wolf3d/base/walls/070.5551 b/wolf3d/base/walls/070.5551 index 56a6759f70b48ce6201718a116ad9afe24ff4516..eee6a2cecb265ba65512e02addecd2a7e0cd6cee 100644 GIT binary patch literal 11064 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 L#lD}up|boB3C{t* diff --git a/wolf3d/base/walls/072.5551 b/wolf3d/base/walls/072.5551 index 4c617381a384a9a10bdbdb0948a70e53abdc77f6..87c5a44aaf42625602a3cf8eab10996be20f9a56 100644 GIT binary patch literal 11064 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 Y`nORV6@){m3Ni82v>9UHCw2M@>F5dZ)H diff --git a/wolf3d/base/walls/074.5551 b/wolf3d/base/walls/074.5551 index 5998878cee4c3ba5d5233f5dcbcedf53043510b6..6b7b0469c5143275b8f61724bf2f1c4acff00c6e 100644 GIT binary patch literal 11064 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 literal 10978 zcmc(l!D|~y7RDonC5RA=8TOE4j=m+g=(MtZ7|CLZC1Xa`T-x?Uwl9uzQS6K3T@g8s z*f>F;!3h|`LcjzJxeWNSFbwU%Ym~t|+xYdz(DEyQ;dXzV}|e z`s%5jD_5>u$zQlKR`-8@u>#k{f4$rvE1gO&*QrcRxb&B&CaCpt{!Y(MC6&Q9)Y5m9 z{Jm`S_uk6fyvD3>{D;Z*f54w>3ng41;^L==Mm7s&1K06g@g*Ip=e6!}A&9rOiV4(xGhFxCo zh8iu2kL?ZESdSh_$?@l(U_ZDw=CK=G=^b&Vu&2W!0RqQ98 zU*2bRJC)%vES2@cV|vo!?F07vS{AS|%&sT(D6~i~;ajXBUyTfk{CQ(O-L3tl_U((3 z_#cFi17DZ$wSJ#4SIU6zYsBpPn)BfBSTD!QrF=`-*h<_aM!I-6h63%|-@pBR`ZSf3qX9WM z`J$BfrY1lS?C5OBbKhbDUSePF+tm%VD75cp^0MgL-%BgoZ%>YnAD7qw?OPQDzGE!iS*xrM+?YE^B z&98fLvAkDWK^I3Y@6kq$C+(#b-6;v*?1!7RAGvpJcfbxUD}gO7RA!G@grfKKsnCaZ zuocwf$7&Ilw}F?f$sfGu;tqakWO&T@3F|==D@qf%0hRz=TA>S!IDqe#gHl{%Zns~E z(j{AyC$Qdi5I&Zi+bP1^fG_Wh zfw6bl)&olmhR*4$s~SoPLv||LZ#7%CR$3X_!7}UzSM{MCJV6U>^q?GXjQ{IW4#AM&`x+wHo4#*lt*jJ8|b_;yvu{r8hz#yWvC!krH_YPcW77Oij>2nNx0R;(g7K zL2CpoB091%u}uqDlxS1C>fT~;$Sm_uKu~5yDaAu0$8=q!0r+Sd@O^&A^7&npD4?f0 zs8q1l1Yhs`d5zH8?%7r#jNO%AOVvc6t! z`qVQCvKY^*l+|zod#ks2mS_0y!YR9JF-WFEegP+vbI?M*<7K@e6H{A~b>W@qQ_nAy zd2p^P-_S{~T*UJX`jX`Z`@yf;B{cAb$(hi#R`w0tsjLTd^r4M0Auh3BHj>H8M&Xm= zmG|PZvM%xt<-v|`ya+xsy0xHt3%HJ`_w)oAErR_zU8YaTYh=6f8W5G|_<{?NDSWI4n-(rSfDUjGnrL10wrh2>UpavLpNvXgR{p1QTrMt3KVO%=^*>Co+yf~F zz6TXcd5dUGl=)Fl@HM-5 zDDaSY537Zuc~lm2iLu0JYF9ZO&sgf=Y!Z`_FXwG(j|MY_ zUzH#8-DPYy*cN_W8!GGM*@4c}^i<`9Q_Xu&rzNs`^847>mS~ES%Oj6x%f=J&=}vE0 zT{|ztS->yYT*}*&n}DkGTlfX5c@J>?N+Q+xh8U0R&YNn2+ORfsKrawohi=k$5FbQk ztyriGLg?&CPHfL(lwHxoW?;?F@zG#6XrMbtXuu5IX_YSM6hha(qpq^iC53r(t_#(Qd!J@r=gJils_^DYWF z8Y3N8d924PvLEYNe{>4xjKyx(%2+1<`}*TC%HCc`^hnnpB*#At^K1RV77qBVyVl?R zPn*1D-ZS0tGqd;0AR~UdW;3v#!+hA^FX?=jj}JUc^z`$Wm&GtC*Qvdq4Jp$q*70#X zo#*(4%sL0jiERXnB83u<#5ed_o!4JjcgM*{K|qEDUT!KH*+kpui{jMRC*XG~e8ukf zzk8fEUwgbG-|#%gKMb>jlH$ug&ehLLU`h5L*|m#%{c}(M<`~%7X1N?EWx~&u#8vQ@ ze{a0JxA>L2v#^-1zjuEheML|X2eXPN#f{2J)dG)7yx#xxaf83k{dc!BwVsR{{5|e7 z|1nQ}F-^a(T&$;WyrdIIwO%fJFZ0x7-S%lKE=)~~{PW{4r+ia7KV|-9zxny4|C%ok zab)A8Ox<=yl&QwI_!`Jx9KT!oZi(-YTsP*!9@+=NaGu(o{3ReZ^V!)jzRviob`~?< z$Gxw8x5W7NZNrE6x;Bd6Ud(|!ZQjYwWU8b2hxvzh9_FvwUr79mi?0@ThVkp?IQ6i1 ztEP3ed5gDx&hr-*#Q;&NvtM7yS#v~d&s()y_Ju!o%^R=7{ps-7udjaj@#M$tgYAR6 zd)o))w|8Ipxwrk+8g%+47*&xP^u>|~}c|H+5!QhAU%9+Ed{cOQHH z!#K)(IhXJang1zpws!OH`kp>KR(ilHC#%i5w{Bi)*qx`vLR|1jBW8#>Vn%oNfBS*; z!?ybQld}Wie6;l^!t|F`N{l4_Xd(A8eEJdJ+~Iu9M$JUy6>Gl#VF=10e%Kur*@;k^ zJg-@)X*&iVxxbuS)WW{OM~Hk#-!%4Uw>VH7{g9m*9{cluLX6p8yS6RvhIY6Uf4yhs z%WaD``YKk5+1+GUh5g80uraR`am0+Gk9%pw#(y8yfxcXlbt@CWwx8oWcE-FVT5Uv# zRibTcqs{lF#elD#>|(J1>lpSSzGZydqO)X?NAwYIL?WfQY)tjg)__$f0$7!>Cip5}`#q?qG`iYJp1x0<(_7V~(WyK*FP2aMvE-gz%S z*Sxhfn>Fc;!d?=K*v;%_+=v_52ie&sYh7&{&%%`SvNdDB1`m!$+2YmQRpV;r_gKiz zWXthnoR16HQS%o0LF;7k?j9?d2pdFt6E;UA6Vf*|_ERHHrQw zORpS9&1xLk?A7e7T}3pKUi4_sm{0L8@oc+qyg=@ub2n&Lj0SX$cJ0{^L18zVrB%~o28~Q6+vRvU`yj4o z@5Oby&os4@*xT>ZIhyb#*kqovWdNpG}V85$d!7#cesHOUQ6=uI=qmhoYy(rk^d zHBHyh)PW}O)~XOHe(TlsmRSs$<4+C|rEf1SHtyH>I2ihhcIT|B<`)AI0Kx%Q{o cpQ_gT-Zu|Sllsx@wYfMNn!CDSa<91XKWa9J@Bjb+ diff --git a/wolf3d/base/walls/076.5551 b/wolf3d/base/walls/076.5551 index a95f330a812a705ddd6b9d1adcba9b4f832b7dfe..c43179ba6d9a294572bce792284d644088cd37fa 100644 GIT binary patch literal 11064 zcmb7K3s_TUnm#zvnW-}sX9r8|Q=OaLs#OHr4(;qJ?uu5OjuHtfuBH2IwG}VSfJ%!~ zQMXzPI93{HjTa~tkrR^?ODF`$X{k*+vBWXOV~rXwXoE>5tyIuN^6&TlC*k6y)8%>e zJb!Zj|9toNd%u$(34*ZUmVdPT=YNSFUDt(d+oIA%i?Zx`)7;1tSA*NL}Qt$<| zoy88VE4`}ArEzS_`h0$koNZr!V$S?7m&!Kr#F|fKXSTg%?HG&fjI(BD8jUq_RC6Z% zY3MoMJ^$TzxNqNk7r#kxt8B{W^nLEapvDnrE&KDi^RhFl`Pz-kVvX!;GTA$y#pfmW zo9XIn8h2k)oyMWEUA$tZbK|W0ANYlCqP4J^G2_mtX1(e0{LOxqO>bh1rKQ+g>V?4; zPh+=9UN0V45BaAG4QzL(>`c4z;_ESO+4j8$4z_f;vh6uX#Gm2ZJx3B3L;mE)E1wwN zHqSOq=xAu{mYv@2*#~52u_H+kgRn>5SDhavxJ~kqiQRA3s6`OxH1^VP3{rY5$9B=J>rH-j=z9zJz->`{R zUz3sDW3|^8RwoJpgSJ!SXgE{07WzjC0iBlg|Dg7>Yr|=M@|{^np#SQ;muxt1VfL_T zvQuSy$otL}_%}jm@Si4qEylw=vXk~lNWn(hA23Y0g8li=>D#+ptL=4V4G-a*D<6Da zjpxj)z4C|QWZ$uy5;`I8*_$UwAG-dVF#tQ~PxkJ_=lP3wbNNL!^$O&j``_0|etW&h zM1#s!Sluo88X=c0R$7DWX^ZzJ_8nxwR9rW$$>;hqCT3*W3#+4-eL-vP|7CN@j)EYW zcXyg(L*Ci+E|*D86eR!d&f`wk*_o;E|DV|Vb0F`9@s=FOzqTSHKEXZD_I5|Z8LWjw ziNRihRT(+B?~~1!Dj&OebwBvkn@gN`cB>gEq3aT$&yc&f4n9oD!+3O<&(FOloPTiLc`3J)u zln?7x=Fi8v0A$ zlic75o`pRtW*>VM_iz09nlrL zl?^@WjDZBK|8}9_1pGf(@Ke5+ZY+_OC2{oAE$kb7)F(iQl>qrq^r)v2=Xm_C{NKgf*B z5VsE`V~u(s79;-OfAN()MRfnOf$Nk%DqG^#jho2tru@xYl4Pg7K6NANAL3n9$CJI1 z5~G|Gt=p&`YDMhN)EUR6d9&>gW*SE!4u)x~uLs#WUr)f|$@Q7!QJJwr5eL5QrE`Xp zer9>R4SMHZ$^91Bsi~1v?`5ZX{?=;fCkUH)JY}})ry(Au{xpZz%Qdf!-vIr@wr6<# z|8m6#<)~Yuwr@AWZpK(+>;kgu6GM;1LjQ%!_jnP5sa|Fv4<>#2CCjq& zdP?@wn*>2k^}E~EQ@Ld`^b>?CueLL$E$`1GYN1cbXQoJ8Pv5_1J+52p^*e!kTJinM zxC(>w0=qlAT`cqQ5zs>rifJu7-4^X5s2>}j{kRMDe&T0OjzK)WaOmh7*lqo9R*i+f zmKY~|jL(h1zq=rJr@65VS8rob4?C20OCf)=64d)ii_4jk&#YoK#q+PnulpPDN4se>FnH>xtwm*_ih>gZgn|6Znpz5dr?z7PA`J0y;);=Pd+|L}k2pl_Oh|49@N zdXvP|DIHDQs{8OiB?JB={0|Pmf1N?W|J?`v2>E;QfAoC9|6$Ex{0{`?kX$A?N$@k& z6X~nYji>`dJPFUk--Q28#Lr8^75uLR{*#<{#{XoSIgJ00qy(dy?e%`oTEAZ zp?^XB3giET-{%n?gz;Zx3*-O0YqX*G$uO1TC9)r9}he<1#^ zzAOFVXf5OKB_&*YMxEucaZhCuQ-?M);25{}e|IbO^sAj5PDH_7N zH$wQYW7^`5rhktAC8WQS??JKEsW%Ph_-{b}NA*v^fAoKbDM!=cKk5f~{)X}Y8Nz?y z!uR1n{N0ED$BPk%cf|j;AA5LXbR^?@k5(O>*@2;(xaN%v#&X;cdkn|4|?BjQ?@gy=T{J5zo5Q zO8+LZ%wGJ5{M7$ZKiePwdltfO1)lXsV1L4Y-v5r7Z{+drVIuXdchO7s~}@473Cj$@rT zZFw&0;N)>*#$(@}s+A?l&82>9Ef8MTq@;~Ko zgCQUIxM>E*f5fXAdISGM^?PBwwV=AC+~0tG4ILNuqi=fni4mhv&nJ(IeHi-}Bt30Z z_>M^XssFtvalgWc#443tU!5stj)fc}Vlzjf?@_DH-3+ocZ!pm0N%M029|e8F_%9xR zi2B*AKKzeN_ceAu<(4XUQeU5Cj}%0ze=%+5%L|iY+TL{R_({&T44uC4Q?Y9}26(_`mI#&aWYy2;+Z8(^^``S<}19$=^KwQ=#{y z)2GAvqeeXxgwzJ~FCCSeL-=1z_u|8F`!5+{~7gzg#R63{=eQXh1!s-qGXx$+@3#&(NdWoJ+krm?q(__+! z{}b<@>^;N#fM>w>d`&u*Q~~~1_Lu8C{zX>N0KXP{S6Q75ZJ5m|8vCuyIe@mn`NK1IWffl-+Gtxf0x4lpPunL@qgl_uTCF= z`M@3ce+S|p{GaS*EmH6w^P45`V?X|%mStbAzYG7bC;mV47XF`#_#ys(Qi%u8PS_(; zm-#Tqf8zhUiT?{F@71{i#Q*(a{y&QNzs6A-=KseB@_!*UGMMX&X$w~FJOum`gin0P zf9di{!he&zqnH1$9Kioi6aPn_GJyY6zi}J>Plf<|oQ}ZelI&;(gjrmFpZjGk;(J7~;S2b`iv|Gj z>mx7Jp2a>>Uc3c3u*A6P3*g!J@c%$a-n3iz{}S;3F~5HF55Q4{|I_@48UVz7KmKn~ z`UQ#4i-G^Br$&|*iTv47e0eA4=2c!s{41(?`8{tI1=#~_j<)yTO>oQ39<$ku=ZiXV z1@@I+C@%+pckEZa13i+7@1lN6XGhZfU*jPD&*!1LTtjFcj`@F!GXFny`}`mNU%6`4 zdYo&aKh(o($>+{PpW^bbt|qwStd^!mDa#(!EJYHIoJQ#QY!nIv+Ie zg}=w$7sh{!5ueli-+(x$`8n110rUT2)Kx(+cux~wwTNNw@|Kr2+f7_8qG5=2v@&9<5|GypT zf0)?iqWO0S|EZtj_UIOY|M6C3{-137%yQx;;^Mz({;zSwTNVD#-Xf&Z=KmjV1gJpWhtKh?iJ{*U=T?}vOI z>WA$0YU2NxUsz84JS)Wii4Wb%|7rez7yds?kVN2LfBw(=hr7-HIsV@||NkNQ|4;e< zt@zLRe;EJ4|L2DIzfuo_X)3#&^MCZexAFh(y}5{gn*R^r|1aG(|Hr(H@c-?oIK=ZC z8jk_-z5SEJThLFuC2k@7&$idQx?Avl;Su}ih==WmUz?5hoOi(g0rUToUi_Che)YqD zs%JF+Pg!{eeNuS-|7s!T|542a`30}zJ!!xBKlQtX)tme9pYn(B{}%qAoO-Su_;yM!2OnH8)$E!OJ#_5}%8aybZwnfY+bLpI^lY&*=G%JYK^{g}p4US574d9&mEHL|C@-Y}=uhx2wB z8O?R+`BNG1R~VCgsNX^o3vhWPi-dS(Zs&R2ucPO$rh5NX!^>p9Y`cNhsQ;sel$PRm z9;F4dXQN&S6+u7t2ZK%YK9c-@>d2?C-)kq_H0_CM4o=?Gfb$mVn3vDbNDuBWX;q*9 z;lGgoJJw0u{}xgR^XM6+z5eI+6qd0LUVp{g{7>B{{2xp9R@qAEF+~(Vj9u7|HT;iw zfd9F^VgGNG<>AEB!~Qpt{}C_bf6^cRZ|43#?ossb?|%*AkNnT|v6wqhzfW{EE-j+{ zXQ+6iy$}?pO{3+=wqtTBUvc?KY>Ff5fA1}wgZIC)XaAVya|V;JPw~J1#`+|CZ6cyhfg9Q}1F7@1KNd zCc=MJ(e^SOt1+7s}Hhg%=(B&FavHS&< z3h~RB`y<%t!^6iv!8+;Mf6h|bG>)BgzfAM0k3#;J$)9}wd58R0{9kK8{C(P0&+}i+ z;|2cT%Hxsj$7-A{6n~7@A4!)Xf&U=?8@uVfyE=(@qu!L4nKKsl&!GFezOtK?{HNa` zh|F6<^REX7xx0ZMZJljO{tHY>K>fXY{+HrB?JmagTM(#zlKm+EOCc|<18KhFvd*XH z_~QG*$^FmeCA*Yu`jr;@v4;L5?@Lcdy-J@ml-`?u(xFT&<&ciY8-Rs44s3# zpHu3idJ<=SdFMvz8{@2s{|P@R{(u+E7^?rp1M7cBsQz2H{o#MF5phZNpZahfzw|o; z*?Hqe2E`xz�fK_sO#dPeuICJurdWoBN;Sy+rRh!t%qP6fa8t=T=D2|BVf@9MjfU z|Bb;r=l^C8-mBY9{qrC3-k1Mj|2NX_M*8YM`F|nSl>a=R$p2hk$+(I?e}h`of*)t7 z7e0V|nG!oG8u6b>`XYW6{~O?c%I9s>L+)|AVQ+Wmg(6=66LH?%^Z(ht`cFKb^p6PF ze{-Mz$salv^1nmzKk^^-^Su)VvJ$qtIu6u5VbgHVyjF{CZwxC4QF${T2B=BF;}s#d~AKx5tR@#S#zCm+N~A zN-$R|q4POja{aUHVwIok-~0RwMZSpSii%tx{hp!X2K7IRep+9jeFvrLh(8Q#)>U>> zKcU!@KacFs@okBP{1MWh@UFl9{Cj%-0`EL-FRYd4zv&Q{LO*-`pk$r0zoMS(ulN)8 zhCOkAM5;)AT~u>oG1k=oQD7o&=^DhGviE!X9BW}J^iuANY2*6PeZHo1%S6KWVTgx; z`$OlDTw!~KzOSO+ThV@<maRkws9>Wk2V?=ZP>V>m`1~A|z zY`cB0_ho(DT?T*H+`f0Wdas7R_OIB=|7Gxapy5$pdpE}sn9luA!P}y2$S-^1X3r59 z((peWAC@)3epzd58NGgzrv9ztwfnE(9e1p~X3xBsOYm>sHMg=(=RX}E7Gz)RPZVVx z9L8$R{hx~WtZY4}ML8B?YtBE{*Qz;Ide4VZ6HhLw_v9fpWhBNPg;ZL6WBsS&i!Bz9 zyJ9P!qS9|f7P`(q#4-h6Y-xB`1d766^DR@)*Z!yC!^3gsvAhRuzI%Myzjwa%2=T3QD95$biyljSEH_Ga&Y0955 zj?>-!HbJu+f7~55ht2Ey;|~AbuM=b27T{nz_YZIE>!jGeuG8!&T;Oxx`Mf0~M~8n$ zq!>cOc4E!MVa9!URRCKJiqZ7yO5VXrSNx7$5u@dbhHqCN`eyuECGgU8HEZJSeF$${ z*o{?`hctdopqf%o_-|!wU8CQ2~NsG0$zSca&r{0nF;jx0Pc=a%rCwU3HSGf5)inoUC95%WG zvTXlNygY$!Td*ZC#+#SwE5;mOY!4gj_TdBD|8kN4E*+|No8RP}#v6O?yXR84>93#b z`zbc2zJ9Ln^~yNcj&_K?faj~xvtLKHF9IOZWnhv zURfRe_AhRCyRJv2#zGqluOBbZ{-zdeF~?)kwH58WeGi{w^Y|rW#lt^5`E&%T4z| zl4#BSi#3$CaH)RSlBInAgtESOfE=#|$FYpVgVWu{HY0OfWtE)|8|csolq$1g`3_$3 zxvqmu(NW36fAFM>K0Km24=<0drS4_b)!+WRUk7+L&iyz%+RUTNf-MbK_w(`LeN1&e zt<(JP{ideYugOj6Uk)C zbjj1**8M(}KiEU=M=DQul(Fw;zN4}GZF&Fw$JgonFy{X2mD80U#@&Bs2W6l%KMddh z$OInc`GNcY`N-YV4deCNMQfG$&MV|OJ+Go2cb|_z5h3*}ZB3f|No81-8tFSLOyi4} z{OekNp?Kq&R<4DHPlR|ijVA4|S(O?!Y4TIF&&TWgpk@V;b9yvm&O)13<#5jbe9Y;W zhtzMeZPKd}f7Dg^ZPGfs)id)YjwYSYUzFBIaWv=Kre(L-s$Z2lEADwisiIMrpo;Cy s6Fl{=YcfEwU6tzj|6ersWQD^98NL3F2HtkW5r$evt>EWXlU02G0uU5-IsgCw diff --git a/wolf3d/base/walls/078.5551 b/wolf3d/base/walls/078.5551 index 69a74984964d23908a3a7cf0a5f819b13d816cd1..3141c878c8fb2c7d28293f09581c8b6d6e9ec435 100644 GIT binary patch literal 11064 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 diff --git a/wolf3d/base/walls/080.5551 b/wolf3d/base/walls/080.5551 index b1b244bb64e43ac3522f5d4d7b6517f6e141c9db..4a03f44db214a849de6ac3b3bb766477f3a533c5 100644 GIT binary patch literal 11064 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 iw#_-aX|C}<$z_426>Vh)%Kno?xx{!@Y6{E literal 10978 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 literal 10978 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 literal 10978 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 diff --git a/wolf3d/base/walls/088.5551 b/wolf3d/base/walls/088.5551 index e5c01bad265acaf4843e5e73ec1c1dfd96ad95b4..b91f15beb6fa605b83fe632f4aabe8672103574a 100644 GIT binary patch literal 11064 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�% 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 literal 10978 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 diff --git a/wolf3d/base/walls/090.5551 b/wolf3d/base/walls/090.5551 index 17394b1642bc858f5f6e5a3da6e50714b9158a8f..e2486d6c0d484afb9e158b744715987e7d4f15d7 100644 GIT binary patch literal 11064 zcmaiac~nzp`hU=1r&v*2(W+DE0(Oei+Rjv4ZL1(nTw75I2rk%G5)CTV78Ow9(k5wb ztEfQudg9b=qbgt!UgTyhkVA)AXf+UJ%Ng}zw=gIf?*Y}(`U(fN}^X6Ti z?elE!%XkKZarl4zhvEPEk3atL<<&keReq{m6Xs%@CPdWL#k$#gch2$sTq;KQ=<<}8 z!|WpS)OBU$jyASwa-lf0p@mDz-kJQI(9AX^CDPTf-V{&_r!`pFCgxPP(bdH^(fQex z1dJ``O6nV0cvPl55!Q1}o2KvJhS}LBeGat|_dniy>5-$0us+ggwz|4R<^?A`o`x2- zN!r1!bHF(vm&^A$+C-K;2E*>>6H#;TFF1D!mh$a(OA*Ecw(;^+=72Q3;Dl$); zSy%-7$=7|Ga$H?p@>*al56@M%r09STl1!HA!n(zl^RLN1ZfN6CAq)@gXycMsX5?3Vc&f z4t+2Q^`Is9zJ~Nfi*JA)MdtSdXYV%vefS(kHR}fUIl6e1nscfjCpBGYx74%~XbIG#DnlHk-sg_TVmQF=G{q1!UF+3@qFVp>wob4D@t03{9M27&bIh=30U!^n(!9NTx*K4TX zwB|}5%AFgiu8(yQ)>dZG5X!xH@7k@%&li8X6hiYHea?ROJ81ubJMJOm&uhs1djqVi z$$WGZaS(|8<^kf)Nfq{kJxHal{ncA=e%!(4w~#;OF0%^cG#@Q%$N>KIh67()#TJ%M z_91OYy)4PQ04QVWv!(x(qJFQ)Qd>|z$0J_ZPgr@BXYtB-w0r1;j0nQY)Vv%*gZ|*$ zKz$|h!(htmP#?vzuU>_9)QP0K(SSp0o7*^ucyo`}TthiuJr;05T%Z_?Vn6CDZ{yB6 zNPi0BKrhfGKVkYUz^7%AC+~7Y3t|0UsW7+zXM-gnnPN+fj$i$yJj^9BKXDNb^v7o^ zJ4zZLzIc8Z?Zb1n`-)OfK9_B1BjV^AzR%{eiKw)ZP1ivWq+~|bewU41svdKeTs-U;7d;&3)iFGTd&EF1ApcL!`xc5`^+i(58-;le&z*?lZ-e{ zvZL!pY1*koMMGPRu0Av0%{;0|^3x&YYfWwI1U%=Bj@!eC z-z5tI4%FM$-!Gg+xi;kTy)aL?`1vPLukOrMfJ?4P>3^Do`yM|Qyovlw`X)_@<5Qt~ z6Y-qSKFf8Yy;1^0k1)=@Q2EPWk^d~&?@LjyOUFed<9ef@@eJ^9dHLezG{kEr>%mUI zfqu%;tG}Y3lsHCy6`EN(^4Pr_h!5`Yokz$wxlx`agLSuVRM}(QBD2&m=TkgSvGA4@ z>DT@&=b{~ko})>m-?X1!hq$bHyR9B^Y^*mg#NUhmJU0*JtlhD?68Y;%%TU~E6Pk;k znRONI^|ktM7x3KP3aSYG;>$*#0@ux%W{*dH?fEPr(o=Wogt)F>aAX0F1ru5AjNW7hZwCZ$0oW#5%s_22Kk=5FC20H_A{<@ki#;jautAF)a7w2&k&YqoyXX~ zL472ZdUt?d>yuyL#sPn(s+|3^ARm(odTq$+;qr53<%8vz$6?H9XuDCGn%7SgFyB*F zwifw2wYQ)Q{UI=U@v17kpja8suw`m3|5H>Y}V~1-M`BA1FmW$Gu@>InYnNi!~6xt&P6t zb!Zn?(O;Elk96+}z!BSYpJp%|T|E`7qbRrSqX^aq+woZ{$WsuJTL1du*Wb3lHk>cvx58uc8=DVdFQW;M3< z5G{~5=aO!uvuLO`xdCt`2-NX`Pb&0$<`a~MUby8d#A!18sZX59cQWtC1z0y#w=S$g z9LgufkKz7R)%9%j!`#_@6)uo7x3{?i=Ow)|h)XCS z@kIyvk0AeaR#qmSBbSA%7SpXO@%N7T=5LUnMaIIJ z7#F{sYB>|;0{_-r+8bu)QFAI49;`#9{E71sx1a7=TaI+r z0Gnj0_-=&)aWP^%7S_-rw%p@p?nn7sR&9oQBS!afzY_8y;OaxbvxTYYzqC`@VC7PG zKK0P(e}(f!BJ|r;?sHJjKs`AAk06f!{nTAA;8tJw^1)zS^%#pFesalom(IfcPu2x; zzCgJT-idx5aqiFWcpGt^u<)Z4vJR#*w()985&^%KPDC-u4bUHKxchk7L|{~s&Gz}K`{o}fMqbO`tp zQ}d;2&ttI};wYWO0RKOq6d~zpXknRNEf)vt9Dg9dMn97Y@>`LPQE9ip*y^GsLH~(3 z+PDw%JWZ!D5dYhK9`HlRi`gvL&(_OQbM;^s>T*-E662D=$=QJCD^#EGQO;`J)f@us zUHe;4E8_UV@&Y%?`M|&Y7Sf|TK2C>vpA1YN`~u~XF~EUaPIXc>&Me_{YdQ1k`-|+H;g{TmtfwL$R_-_#NUM2juM`B(wItgZWNL zhcLvJOXni8fAqR+Jj(f6X*^rv0Y*UQx(D9KrSC`nL z{Pw}$QU3HZ-YE2&+tX7{!FeV&?N3J>sY*I>Kt6q4_?2f64}o{~%;!=py=qw-@J(1Q z8r<24^R`b#W#Dh7o_l$6Jg-C-`4pFo(dpLkM?l~DvC7wU!>UG6upz2^Y`9ds#@QEwm58q*_RD`I%SH`|o<{&mQcY*RZ;(_%O$ zW^~-UL3^($xdZ3u?=1OEfMd1<=HVMiYz*MK{_TNa{#36nNkYH-l{N;~6~Dt>g?8wX z7c54(AK%NOaesIS&x7YZF|N5NhIo_`uZHuYwQAMw6vSCX+!&4cl&6y4WBllJF5c7t zd`e$A;{mxzsiZL!^+V?y62U%Hjhv`MKVu)z{s#J?6pG|wT+e#$>s*Z2xhdRr*hh{9 zlx~cFpKYvOj5sLEC|99g4znt=k&i9c@{glj2{(QX%75KxxR3fwW~-p@0D82%5b1=l z>cIbFbOY1hl%RZ)I0eYnOY~REcVWC-;Vlk8JSM9{3X3pKeDW#33g~E~zAzY&Uw*0r z_V*A?wbe4n>lABSDh=JbW=mvb_)g!^bCFSzkx;juXED5kSeI*y6gIH0DGL6@y35Z+ zMNJNGXc;f33QRAfpLo5)wp-8_a2RzQtpAk888phtVJLDjUsPBBtUG#a= z=QV)+jn*dh|^AWH`U=dg%eJ+>7Tm{r)Dzd66Y*-n^_>H&d0B z9u*07hKduY-5mxRRoDYgpkpbE`ap#K5`KKiM2!DCGxwhj>lRr!`#yOW`UP`jzjFcN z?Y^=ujQ~CONuq-BK5Lr;?8w$nWh!Wt*X@%QpncXd)cs-IkVj|j>cDf?(VI^pZXc!0 ze+%)t{`9F-{CX5MF(}s##+CNf!y29Q`wV7`8)J@<@nA2?AY21| z3iMBMRV3y+$yQk({{GE5;a53&1C*tK|eWW zw*h_q&2v9_VZEtz;1I5-28XP(F)ql4_hle{3{TcHBHqWMHwKuH$%%uuhHm{cQ5Ka|FbFw`#Z@ z`Ug{FR20~~r!+irQn=WB>AXVQ%5Q+WDYSf8jyMPp-vV~OaXx&~q)4GT?kn$b&JnCr zdO5Zv)Jw?L(rPma~fDa3CHuloZB#MfHKA{qLdYK!2{TY#&U zQa0uXsxaqBFkgS}jtbVR3F$A;sK-b1Z$du~ey6h$1jH9#^HH!b*HrEr^TJVHzs}djh7mW9cg2hWzR7jO$S}$;pts?Dh5q1xfEGf1#p6F6v~%pU zzM3E|_MaU=Jgr+YIhd~l>xWbD{Nh+G_%GKq{a02h)}PyEW&MEi4QwE1q8&HXXZ9hV zweFTZr^_CtpHOOR7pnJ^VoOm^L+b}uW07>9ataDWV9PWpA_Gi zG=lh@!!WoUZ7hAieLD;2P*I!n{)YD_?X}5pUjVo|zZ&Wx9;tIycVVBjjuG%<9apWd zn1l7|3PznD@J;z@=QSgJkNX1jSv<042OZSw!-M+UU^f%}Uj8hHrl(hb1)O-Yjn3kmk9az&YQvh^8V%p5cjwg zd)oY<-d-$O#X)1a!z5i zE7AYc7aCPzF2d5NSP6X<~@MENN%=rF#+~3(`vkNUf72Vx;N5y8QW|8ATu%5WID(x3sH_~W$ zg6rxZk4-@we(cNs199tL_UJa+dF{n&==<6FV#TU8IR5!3%@WinXHKyZ{b0ypzl(9c ztJ4PYyN3`6mVjJba=@yKMY)|eyOU_?DYf-J>=c@#H8~w2Rp7^_4>oW40O|T|4@dEP zTJR)T2MpX1e1_u}I@!T{(BDV64AjT3eFd|S?#NFv#GO9i_jANB?)moOA*`zh#*7CV zz<%l|!6@P&*|zC>0``TRufe=RUeUh44Eu~j7ifrA5clGqR)yK+Ei?8v4I@6?=lE?w zoK^4p8taYFIKB+y)fS_>AM--wCpUM%y@Z}UCa)AjpB9}~>4Nptsn!cI7$3H&Vsa6` zPio75MS9o28$SZxLB`ho8}cCA^shT~8KA`!n6@Gv=u_#Qln{_hzw!Nxevnt6J}TURgIr@M2w8|U|}?De62jG2nyeZXp&H;5~8H_I&}wgT>|m`!ZEcoxN}i$yD(MKYI)A zo5*q7LtcV=CBuFJP$zqymI)`c}a5mh}Z)6TXY1&WxI5alPal2 zJs*+ru`V(7tFq;YPk-yx&G`Gc(Bv$@Bi0v~*ELvYIKXexcr~@y4;cc^9b&*Gq#c;= zDUAe10Jjwjv_ll?hsxH${l19$dK=U|aL<z>n(bvB+$fdhALE0a%)&?y+{cK_KV;mj z!TpNe9VcAY7`=>$5Y z*FNaL`R0pLOh|Vy)@%{O_}P@-BE>B>l` z|9E84)kV$72V1iJ0qBVu_QU`eG1{@_g;wN8!bpRDxtFk99+9A4nTZ)tZ}(Ijw<)pi zC+l~;Da3ue@VOnZo)X9({S0=a_SMv=(5@$3*Wn&tMCok@E}}eJPUixi*rq(gP6EHX zYMZ6_9r<7y#3i=AOq!|1bthz;nBaWf(gXNSt+@zw7~sH@9()g3w?P5;h4@*$VGMDQ z8oe(c?~U>|#6w*bqotO7zXNf-B2huhEWN~m=MC#o{(>C}x&cB-Xk(@w^CL~KEMh}n z`RB~teL>v1jXtE$Ht(r~bIGY8Qt1DCDw==uW}=>AIQ*dgJTzxY?BI>_sl;yeE$}Bl z_;Z;1#(7EF7{n!!d6TxP9C0U_W1NHW&MOaCur4by4)g}`2{{@^q*#lM2lnDoIc>6rRNSc3(>y0>Hqu~=fwlHa1SV=GD;3X zJc7PU>uN+jD3qIM8O-0^*J;Fcp;ae>Uz%ou|MpZ!6uD40!o3d2mCu?4_0qL}wRp93$bDi#WCCaOS`+|m+qbIrCx?sL=(FG?7>y6SsJG~HJqqVWT z{0WHnsN|F}+}~yC>=c`ODtc|hT@X(-<6fg)!QTx5{f~HV!I2Rz+DGQ^9|b#_@&jjE zknbly)Z9V7r^3>6hn;v!Fg?k}Qceni>m+B=xuDMWx z>je8}&PJScIY!}~lqt7&c0$%;s{VfZg=a923m21P7}vL%_q>hk!$a5X#_!Gw1Kj6x zNry9gq66&j>mHhpc2q8{(W3pV8&|+P0!x2*$K@Qbmws&WxXD8EGE>oSU%r8Ms?N>k zV1HHM%>qAzcU0%-Py@uRwpp#b2GIA?3U2`KCA^LF8(g55+W4&$`*wQF@eu9ye#by8 z%6pgt{tNhh`$2~S^R{cI5$w-Yef!z<#Yi`Br}1kstV>bwgZFY9?>dW+5A&C_4CP+S zlF~x+jnc3p?@?_RzHMyI<{UYCY%oF-;3(x zpkI;sqWexz|4JSc^apjP(UFIGkqgw*@cZIBG}Og}rK`KMGnn76we+y{Jr%<{vM!*0 z^YZg)tS78@J1s)6zs=GFuWUUPlj4>yK|Rxd^hSc5`psY6ct1E^@&OC@CfomU2l$5j zpX~}i#;eciOgZX<`>cfKnwjzg^$G>_^Q2+vM;CFO^=?xym%LHhYiog5wej+LxI|t!l(E?1%irBLj5zI`n(mmk;k9gq0tq z4(6{l0zULBJjy;cv={ZdRX#L|`a9Y6=g+wRxMFSzVc}8zJX(QqA@NJ^Q1Bafax3EJ zuy`2a9lVDo16^2OxjSIQb21VoUg(c>S!p~M+R|i9Qy`DDq#3`yS{d9U!F|x-lXWOxz%{iV`I1(vVL!aP z8=V_*U&!>WdvN{aPyPjY6W;%lSaHxNYdLHVeV1Oj zC6s~nldMw-dI3EJD&W4EYbyK11^mO9_8L*nT}opGzGoC>qz3DL!*oF^&WFT@OvV0z z^Di~nQDiP&7P1cNc^y1IN{E(djf9mbNBQacd{|FdQ<fup=5#FV&immdX z-DyS!AMUyIvZGOeQ+NksFpBVgQGU8djr`Mv5zyar$yvL<6>>?)BepT{cQ~(eRE6`l zu5DBBn;7@-BRAL;{auRdlK0{T?_l8wX7qOVEjA6;&_BGKR)5?*)SJVlag@y7{)cmS|9XLkl$I( zpq&!nAH-+f_!%?stJh^@EQL5{tvn#Tg?eXHX2E-t$ZQPIC1@AMT2BDvrRew6fMde4 z%ku`xVK#cI-N?rS>jMMEslK~IKD7J#goIxZplu0o_6 zF_Xh>Xq%&R(peK6Q0H(sp^7^*7Ok~5TdnAy`q7cI*ng!TS`7WQ zh-$H#n$d2*-MvR*d=u;rD{|dPecaB}m6=ZGkAw)L6-;CYaYuJY-ync`29Ak%K(CChJWr z#2>Bo+F>}ohoHx=Ul0A0cKzwoP**awG$V0zF1+r^jFPV0@($IcOK{+IT709sb@VD?SP3P-JD^hkex0LlxA? zpuc*K6z!XEZ2f5m^lzt6p9VWKwFd9vT#S>>0Dl(J0kXhfDDam6agM2(P~e6B0`6xy z9PodphAU8AgY&3XS8WBxYg+n)692wJ=`#XfJSt9FoCfuRJ{i`dTod?e&|{2_gZrTm zr;|8^v4f$iqSP8Y+8yGb#L+cJE7Nr?!*O|)u^;(YOVoa$g-52=8o}>)l*^S1_gP>! z1_$H0j>839;Ql7774>Pgn&4h4S}PA20e>R%8iOL}$0Xnax{-qd?B+~|d1@F8D0q7g@@?onJ`D01E z!T9+X4!m1pU&Tqq_2$E^zXjv3yPyE>!=X-iGFE~1j^oRr4iQm4p-+wU(hBZ_eZU`5 zx5E85jV zlLzk~j~3X1@jzNw0R9!D3sLfvSl9BNy9DoJAivC*313U=Q1N}lr{Dhtyo++l%wx-f zaa52Q$jA7iS`76R@XHt{K|h7Rf69b7&LaYm}?nTNbQeoJny$tP5M4k9bfYYvR*97{}vz-5@{K zE6?&!{&;6U+|R-Li2ZN?<@O5zuV6n(a%GTzTNBz9`lx#@z$4rAbY(z=`<)fr09QQn qq}K!f#-r}rB`^;-cgo=$9`)b81{&&3$b0|o3(tzQ82$9WeE%P<_Irx} literal 10978 zcmZ9RA#WpF5`|~c%D^%h8I9f#S+x7W0?WWMh$00JGz>Hhd6KOFyMZ-hv@$d_Y-kXW zX=F>QXbl4m4QHf1U!7ZSPqwwmr2F1FRi{o>-R}44)2C1W`tbk1>F@mCKlKm(|M7pF zhyL+UAL{<`?)1m6kJsJl?&RmJ;OXkZ9ai6+R+nZun5-_oc*axj@$=i=zT;J1**|t3 zUdD&ISvJew=1{LLiC`P!ZExMon%Vqm{?yD4HFp;~-QA40i{0V1e*~XpI!z;#bxgFyp9;lbWSr88vZkZ1M{CW#NbuIV;r z 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 diff --git a/wolf3d/base/walls/092.5551 b/wolf3d/base/walls/092.5551 index da9aa14e8553a0452f9d6d711e9f3103ab103f31..46f7e0201bd38fcb2d4f655cd6fde858167d0511 100644 GIT binary patch literal 11064 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 literal 10978 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 literal 10978 zcmc(lKZ{&P7R6;Y7&;IR94!6_{s@Y86)0%LvW&nqGvPR!P@y(67{dw$vN8Su3Kcq3 zs9=I!MKUY~!zKI3XOb>8otTis6#W-(IHud42!bIz@iNVn+lY0ZXGZ8ai4x1rUYrl^>3VZM^OFTHbK`SGo%^sRD-pH{ zM=ku{-VeXd0QG|jmg|MtD2johv&W0o*|HlU{9XmuAAUy$pG^4Uu_ZiaLe=q%ylwve z{gdfhtb4X;Mm^Ds1t#|$MdRD}6QBG(qTXX(Vyx8OezpJbZkvC1neX2Uf@8+iY!7^0 zPx$&;*h+rq-(R!;!ygPW^xTZ?!5e*1hN@YmW}V-60#!ct;yC~CgVigEB1NT{#a`!y z-}#`;{OkSagdarIz$F}7VmhZ)bk!Lvv)5m%@B7aYzv5C2e752eO||KERvzs|z4 z|2ivN&gR;!M8_wKS-D2Ty#C+bH^0td_&XArW}IiRz$dRi^A)=>di}*d*1z*R3hd;@ zj!imkrSCDlibT!zbN<9%dtiC~yB=8j3`{f26J+Am_txzi_xid2)ZSb9gKZ@8XErmR zvaAmzjuPxKPb-B+?ZUk7}4>u5gmK4W2=6> zfra1sr`MSw6`!h@`Q*29=bY9re%*cY{S%*DMrPZZ&8+BS6*9k#-<2DU?C@n>f=GRd zBHJ-kW3&zadiMAm;QV!#p6#)DW^FJg8Vee%a`XF#e|`UP4p&&gPEX~DWHhUjVk}$r z>kgzH;QEDs+R$$gc$#Sp`u4nAZ{s&s6g$^z4$jtWR?!vNgTgI--GTD{0n3abYj5#- zWsL6#7#$;>(uGl)A@}DQqT6-)l&~M7~neA0O}UM?f}$Jo^g!M6&t-VVeX3h zmn`@!>5rI5M^KIzd7IHpOL_sQ5=&Btq*lwZI9G=;va9lwf^G-$dkYS zpq(nzcicYjcE*Z!hAUv)`9J?^?0_SF;G*i$jg6SjKmGzV?f`lVbN%Rq zojlNHzx9MgBP-zQ{9HT#^5!+({ooHmP>n@3vB%<3xWk7>z1oNPwG;jRWi}(sYK~Ej z*jbY$Uq|vv9qqq5_u~wV9bo=of)yP2jSB-TFfi|aYt*&Zulvq=29MsqPIVZ=cD@5_ zoilpDAV>Wv|8fQve#L+$bdC9FgvB=IWZB#K9FgeT_!DoGAbKRE=m;;-sD;t7_UbzE zkH0!BZ{N%BpJ0PvMsREe4|S;SIo+pt&u4zE{otQ|e-S(P!801(=#$0D+-Jt(uMrv-u>$_3e1aji=S_R{ckKX%n+OHtnM*O z>PxsQnfAEK_FUo``|A=v1|S7qyGkJe#JT3@yYxU zrsJH~a~TIw2{9LNle^#lzP7tMt7p&IrTX2~^H;T^??$5^vs(99@r+*U z_s#vP;!2;&CvxtmoF3!#SMI{EZ&`en-wZ*t&JtmhZoE>pST6 z!#H;C#BZ!c$C6*UOMdh%qeFV_U$utd{0H|c-}-ez$7jT$*O^Pr9l`l`AFb=R#uQHD zsT}51G_*v2?SqTy`!hEfYhSo-!?NU;cCEnJKWHV6-U$6#9_QCdxLERurmy&gab(t5 zy-|Ap_~j`5j_%irSM$nnT`VjA`M&Oi$MqX!WQH~CSGF~OzkhsoIpv!*S2WWPMJ@k& zJwI#2!f&lq4gctu{IUBs_pkYd=*rzQMt|}L*IIY72YcDq%tEXd{pMGJCEn;YsUK5>8T3V z?|+V)*P`?sTu+V2*ZCj$WOA>tdakU(s>=Dke=p~+$FgpPTAWK;Mul-$__g*@Q2K|p zBBcYiITP;THGgTp;QSQ&h%igI2Bwh)vOPmSFE4+2`JZa)JPDpf=s(zNjMX3h;U{MG*IQw)Uv{?|jrzKOWUUe9 z-#x1QSzju6ul#y<`nuH={MsX%^}%0#`S;Pk@-7&aKkiP?p8WaW+f9D`KZj}hCAQ)e z!`aciemBIg6*%&r)$fX)zq@Mj18;wQ_%-e9^3xZe{ruU_cfUXXNqK*NasHD2@Y~_H TPhY%!{ruJ2f4zPE_Vxb&G%W88 diff --git a/wolf3d/base/walls/096.5551 b/wolf3d/base/walls/096.5551 index 073eb1febc9d33300a11d6529bc21c187284ff9d..c1bbd2bda5285494e979ecef67bde4bb40a40fdd 100644 GIT binary patch literal 11064 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 F{7=!q{%!yO literal 10978 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 U{g0c=KYtpj>l~Th)4DhGf2p8l1poj5 diff --git a/wolf3d/base/walls/126.5551 b/wolf3d/base/walls/126.5551 index dcac03e47296b18e48a41d215861f9d01f2521e2..45ee06a38ec9e6786da06d310a768d38b75f5911 100644 GIT binary patch literal 11064 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 literal 10978 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 diff --git a/wolf3d/base/walls/128.5551 b/wolf3d/base/walls/128.5551 index 97b56a552c076e21f490692a9c7a7f5a154bbbe6..b91a5586751ec98e9086d6046fbaa6d28ad2e029 100644 GIT binary patch literal 11064 zcmbt)4^&fEx^K`@ZGBVYOu@9)_V&Hk@v74bebcV!n>WR>T3_vbEe*s!p|AF?k*OxV z#S3;igbv{xB(?~V#&Bpu1S%jk5l%aVQYCU=s4|r+V1dJ2a0FMiNO)u7hzAUk^M2n6 z*gs>}+_mmmi}kVpWbb{x@7v$^+rNG0t5mAo@BN|pcOO|^yttmZ>{$HJLl4EV3rl2K zr8>%-awH^Ne^tlEv#5T^!G7%`nZb^}|MA4D)sj;zsILCG*W8rJ%CcUc!JcyH^+L3c zRV!s3l}r4^8EhawIz7rL+8S9wzIih&PjbZxGZS9+dFIs*uU-{x7=O*0HKJ|ddk||R z>%#XYE;$k;TaZa84hFr4L_5`s)`cY`y;xr`7##6BMegFoC%lGcn*Z1_O_gXr-XaJj zucCu=Sj|ENV?AnCz@se_?Q&#(C)G>!UCdQHqBX!^{b^W#v6~GD+KPCL7Zr{7e}9ux z);riZc2%@2C$T2xnP;Cjso4OdQpvIx<+PN0A5pVi_;(5 zij-xZr?R5gf?54TPV^-uN#!~=_v4A6!|q_$D0aX6KG`4s@xes!Vjuj%>To=94EAN@ z=^0rnZ^V1cvc?n7lKwTGE{60RTTA+pWs%dN{btzJ`I2H6Z9_n5cMS)a$hf1k>G6`^Z#~8suwwrS zU$@#y^T#%bT*Uq&N9)rz>DVCbFCB*e@Uk4t$2y^4(g*aU$gnI2B4uG#%6uI8w;(r> zYz+8wNQQ+-d)OifROa7!MUKNb2M>-b?PFJ_1=<(9Jf_Qle^jgqgh{?!5m@P9p%=`n zvyz_%WZG{sZwyg;*fBar?Wl(TWU|9Uf=7f5H8qWs^oPQkeVl{Msi;}2j3Zo}@j_o4 z!>+%0(LVjuVoRUh%hI~ULyc_RksBci`>EoH+Z|i=sm;CW%2QIgXp8v!Nr&Do>m&ZF zN;t}#e1EP?{!ac|bL835F8J$Q+3jwbCV!ms_am!>u*8x6V)Sb4C*wymo27zy_6UA| zg)uRk4DM{|ABA!T#_PwE#BO8^fr#G=vwnH}%JB3RhQ^8brz{KD#Q|pAZ#YkS^|%ZE zKxIqmr4Z@c-E1-4LuHF)z8Yl=dsc_>d)iuC)$B^{rA3>Wk%kxlio!x(k|Nn zk&(kMVjM5Kt+ZxLbc(hEwPPWX6S;8c^tISp(dG|zcSG8fOKZn84U^?>L28>Oou~gG zlxo{G9&`3$L4$slw5%*`lctKskF7E(^J{n$W1bhcO^Y5o@BaO3u7R}zwQJiW?ap2k zGuc$SK`hX*iHXUHqBFy4vAkh)Rb^O>=A0aJmB=OH5$*qKjmS7Q2amHN8ZJ6|l=$jry%wZG0-a(1S_0dD-<$u+ZR}6+e|N!XF-ZqI>X^D-UA^T%JX?KnVq%>ql7Ai6 zQ3tgn{yHY`XtAz~7k}jMm-3eONc`Q>;fTcf=0?O9S=I`3`8U$8ZAKja zSHxd;WPJOr`M;+59fndhTV0KLJR+y8>$~%NX?_KNv?G2``~4bEV}aj4J}w<@EckE) z@x5JBn{=`IqM=vAj}H#|`;edf{>ztr!